ChatGPT的卡路里估算准确性如何?
我们对ChatGPT、Gemini和Claude的卡路里估算进行了测试,比较了50多种食物的验证营养数据。查看准确性和一致性结果与经过验证的数据库的对比。
ChatGPT已成为数百万人的默认营养顾问,但它并没有营养数据库。 当你询问ChatGPT一份鸡肉卷的卡路里时,它并不会在经过验证的食品数据库中查找答案,而是基于其训练数据中的模式生成一个统计上可能的回答。它给出的数字可能接近真实值,也可能偏差高达40%。如果你明天再问一次,得到的数字可能会有所不同。
我们对三大大型语言模型进行了测试——ChatGPT(GPT-4o)、Google Gemini和Anthropic的Claude,比较了它们与经过USDA和营养师确认的数据在50多种食品上的表现。我们的目标是回答三个具体问题:LLM的卡路里估算有多准确?它们在不同会话中的一致性如何?与专门的营养追踪应用相比,它们的表现如何?
我们如何测试LLM的卡路里准确性?
我们对每种食物项目提出相同的问题:“[特定份量的食物名称]的卡路里是多少?”每次查询都在一个新的会话中进行(没有对话历史),以模拟大多数用户与这些工具的互动方式——一次性的问题,没有上下文。
每种食物项目在五个独立会话中测试五次,以测量准确性(与验证数据相比)和一致性(会话之间的变化)。验证的参考值来自USDA FoodData Central数据库,并与营养师确认的条目进行了交叉参考。
我们测试了54种食品,涵盖六个类别:单一成分、简单餐食、复杂餐食、包装食品、餐厅菜品和饮料。
ChatGPT、Gemini和Claude的卡路里估算有多准确?
以下是54种食品的整体准确性结果,比较了每个LLM的平均估算与经过验证的卡路里值。
| 指标 | ChatGPT (GPT-4o) | Gemini | Claude | 验证数据库 (Nutrola) |
|---|---|---|---|---|
| 平均绝对误差 | ±18% | ±22% | ±16% | ±2–5% |
| 中位绝对误差 | ±14% | ±17% | ±12% | ±2% |
| 在±10%内的项目 | 42% | 35% | 48% | 95%+ |
| 在±20%内的项目 | 68% | 58% | 72% | 99%+ |
| 超过30%的误差项目 | 15% | 22% | 11% | <1% |
| 最差单项估算误差 | 55% | 68% | 45% | 8% |
所有三个LLM都显示出显著的卡路里估算误差,约三分之一到一半的估算超出了±10%的准确范围。相比之下,经过验证的营养数据库几乎每个条目的数据都在±5%以内,因为这些值来自实验室分析或制造商验证的营养事实,而不是由语言模型生成的。
2024年发表在Nutrients上的一项研究对150种常见食品进行了测试,发现ChatGPT-4的平均绝对误差为16.8%,与我们的发现一致。研究指出,ChatGPT在简单、知名的食品上表现最佳,而在混合菜肴和文化特定食品上表现最差。
LLM的卡路里准确性如何因食品类型而异?
食品类型是预测LLM准确性的最强指标。以下是按类别划分的结果。
| 食品类别 | 示例 | ChatGPT平均误差 | Gemini平均误差 | Claude平均误差 |
|---|---|---|---|---|
| 单一成分(生) | "100克生鸡胸肉" | ±8% | ±10% | ±7% |
| 常见水果/蔬菜 | "1根中等香蕉" | ±6% | ±8% | ±5% |
| 简单家常菜 | "2个鸡蛋炒黄油" | ±15% | ±18% | ±12% |
| 复杂/混合菜肴 | "鸡肉咖喱配烤饼" | ±25% | ±30% | ±22% |
| 品牌包装食品 | "1根KIND黑巧克力坚果棒" | ±12% | ±15% | ±10% |
| 餐厅特定菜品 | "Chipotle鸡肉卷碗" | ±20% | ±28% | ±18% |
| 饮料(特色) | "Grande Starbucks焦糖星冰乐" | ±10% | ±14% | ±8% |
单一成分和常见水果/蔬菜的估算最为准确,因为这些食品的卡路里值已建立并标准化,且在训练数据中频繁出现。100克生鸡胸肉(165卡路里)或一根中等香蕉(105卡路里)的卡路里含量在几乎所有营养来源中都是一致的。
复杂混合菜肴的估算最差,因为卡路里含量取决于特定的烹饪方法、成分比例和份量,LLM必须推断而不是查找。鸡肉咖喱的卡路里含量可能因奶油、油、黄油和米饭的用量而在350到750卡路里之间变化,而LLM无法知道你吃的是哪种版本。
品牌包装食品则呈现出有趣的情况。LLM有时可以从其训练数据中回忆起流行品牌产品的确切营养数据,但这些信息可能已经过时。产品配方经常发生变化,2023年训练的LLM可能会引用2024或2025年更新的卡路里数据。
LLM的卡路里估算在会话中的一致性如何?
一致性——在多次询问同一问题时得到相同答案——与准确性是两个不同的问题。一个估算可以是持续错误的,也可以是不一致的正确。我们通过在不同会话中对每个LLM提出相同的卡路里问题五次来测量一致性。
| 食品项目 | ChatGPT范围(5个会话) | Gemini范围(5个会话) | Claude范围(5个会话) | 验证值 |
|---|---|---|---|---|
| 凯撒鸡肉沙拉 | 350–470卡路里 | 350–450卡路里 | 380–440卡路里 | 400–470卡路里* |
| 花生酱三明治 | 320–450卡路里 | 340–480卡路里 | 350–410卡路里 | 370–420卡路里* |
| 泰式炒河粉(1份) | 400–600卡路里 | 350–550卡路里 | 420–520卡路里 | 450–550卡路里* |
| 大份麦当劳薯条 | 480–510卡路里 | 450–520卡路里 | 490–510卡路里 | 490卡路里 |
| 牛油果吐司(1片) | 250–380卡路里 | 200–350卡路里 | 280–340卡路里 | 280–350卡路里* |
| Chipotle卷饼 | 800–1,100卡路里 | 750–1,200卡路里 | 850–1,050卡路里 | 900–1,100卡路里* |
| 希腊酸奶配格兰诺拉麦片 | 250–400卡路里 | 280–420卡路里 | 270–350卡路里 | 300–380卡路里* |
*范围反映了食谱/份量的变化。验证数据库条目针对确切成分和份量。
| 一致性指标 | ChatGPT | Gemini | Claude |
|---|---|---|---|
| 5个会话的平均差异 | ±22% 的均值 | ±28% 的均值 | ±15% 的均值 |
| 超过100卡路里差异的项目 | 61% | 72% | 44% |
| 少于50卡路里差异的项目 | 22% | 15% | 33% |
| 最不一致的食品类型 | 复杂菜肴 | 复杂菜肴 | 复杂菜肴 |
| 最一致的食品类型 | 品牌包装食品 | 品牌包装食品 | 品牌包装食品 |
这种不一致性并不是一个错误,而是LLM工作方式的基本特性。它们以概率方式生成响应,相同的提示可能会根据采样参数、上下文窗口状态和模型温度产生不同的输出。相比之下,营养数据库对相同查询每次返回相同结果,因为它是一个确定性的查找,而不是生成过程。
对于卡路里追踪而言,这种不一致性意味着如果你询问ChatGPT关于每天吃的同一餐,你可能每次都会得到不同的卡路里计数。在一周内,这种随机变化可能会累积成数百或数千卡路里的追踪噪音。
LLM在卡路里数据上常犯的错误有哪些?
我们识别出在所有三种LLM中出现的五种系统性错误模式。
1. 默认使用“平均”份量。 当被问及“一片披萨”的卡路里时,LLM通常默认使用一个普通的中等披萨片。但披萨片的卡路里从200卡路里(薄皮,少奶酪)到400卡路里以上(深盘,丰富配料)不等。在没有具体说明类型、面皮和配料的情况下,LLM的默认值可能与实际食用的相差甚远。
2. 忽略烹饪油脂。 当询问“烤鸡胸肉”的卡路里时,LLM通常只报告鸡胸肉本身的卡路里(约165卡路里每100克),而不考虑烹饪时使用的油或黄油。这一做法持续低估了每份的实际卡路里,通常低50-150卡路里。
3. 过时的品牌信息。 产品配方会发生变化。2022年一根Clif Bar的卡路里为250卡路里,可能在2025年配方调整后变为260卡路里。训练于旧数据的LLM可能会引用过时的值。
4. 四舍五入和范围压缩。 LLM经常四舍五入到最接近的50或100卡路里,失去了在大规模上重要的精确度。“大约300卡路里”可能意味着275或325——一个50卡路里的范围在每日餐食中累积起来。
5. 文化和地区食品差异。 “一份炒饭”的卡路里在家庭厨房、中国美式外卖餐厅和曼谷街头小吃摊的定义差异很大。LLM通常默认使用西方的份量假设,而不考虑用户的具体上下文。
LLM的卡路里估算与Nutrola的验证数据库相比如何?
LLM与营养追踪应用之间的根本区别在于数据来源。LLM从训练数据中生成估算,而Nutrola则从经过营养师验证的数据库中查找值。
| 比较因素 | LLM(ChatGPT、Gemini、Claude) | Nutrola验证数据库 |
|---|---|---|
| 数据来源 | 训练数据(网络文本、书籍) | 营养师验证的食品数据库 |
| 准确性(平均误差) | ±16–22% | ±2–5% |
| 一致性 | 会话之间变化(±15–28%) | 每次查询结果相同 |
| 品牌特定数据 | 有时可用,可能过时 | 当前,制造商验证 |
| 份量处理 | 默认使用“平均”,除非指定 | 可调节的份量,精确到克 |
| 烹饪方法调整 | 不一致 | 生、熟、炸等有单独条目 |
| 条形码/UPC支持 | 不适用 | 包装食品即时查找 |
| 宏观营养素分解 | 通常提供,但误差相同 | 验证的蛋白质、脂肪、碳水化合物和微量营养素数据 |
| 每日追踪 | 会话之间没有记忆* | 持久的食品日记和总计 |
*ChatGPT和Gemini提供记忆功能,但这些功能旨在处理一般偏好,而不是结构化的营养记录。
2025年发表在British Journal of Nutrition上的一项比较研究测试了AI聊天机器人与三款商业营养追踪应用在7天饮食记录准确性上的表现。追踪应用的平均每日卡路里误差为5-8%,而AI聊天机器人的平均误差为18-25%。研究得出结论:“通用AI聊天机器人不适合作为专门的饮食评估工具的替代品。”
LLM在卡路里信息方面何时有用?
LLM并非在营养信息方面完全无用,它们在特定用例中表现良好。
一般营养教育。 询问“哪种宏观营养素对肌肉增长最重要?”或“卡路里赤字如何运作?”可以得到可靠的答案,因为这些信息在各个来源中都得到了一致的确认。
粗略的数量估算。 如果你需要知道一顿饭大约是300卡路里还是800卡路里——一个2倍的范围——LLM通常是正确的。当你需要知道一顿饭是450卡路里还是550卡路里时,它们的帮助就不那么大了。
餐食规划构思。 询问LLM“建议五种低于400卡路里的高蛋白早餐”可以产生有用的起点,尽管每个建议的卡路里估算应与数据库进行验证。
比较食品类别。 LLM可以可靠地告诉你坚果的卡路里密度高于水果,或者烤鸡的卡路里低于炸鸡。相对比较比绝对数字更准确。
何时不应使用LLM进行卡路里追踪?
根据准确性和一致性数据,LLM在以下几种情况下不应作为主要的卡路里追踪工具。
积极的减重或增重阶段。 当你的每日卡路里目标有±200卡路里的误差时,LLM的±18%的误差可能使你每天偏离目标300-500卡路里。在一周内,这可能完全抵消计划的赤字。
追踪复杂或混合菜肴。 复杂餐食的误差率(±22-30%)对于有意义的追踪来说过高。700卡路里的晚餐估算实际上是900卡路里,这意味着单一餐食就会导致每日200卡路里的误差。
一致的每日追踪。 会话之间的不一致性意味着在不同天记录的同一餐会产生不同的卡路里值,造成追踪数据中的噪音,使得趋势难以识别。
医疗或临床营养管理。 对于需要精确营养控制的糖尿病、肾病或其他疾病患者,LLM的卡路里估算无法满足安全饮食管理所需的准确性标准。
关键要点:LLM与验证数据库的卡路里准确性
| 发现 | 数据 |
|---|---|
| ChatGPT平均卡路里误差 | ±18% |
| Gemini平均卡路里误差 | ±22% |
| Claude平均卡路里误差 | ±16% |
| 验证数据库平均误差 | ±2–5% |
| LLM一致性(会话差异) | ±15–28% 的均值 |
| 数据库一致性 | 0% 差异(确定性查找) |
| 最准确的LLM食品类型 | 单一成分、常见水果(±5–10%) |
| 最不准确的LLM食品类型 | 复杂混合菜肴(±22–30%) |
| LLM估算在±10%内的项目 | 35–48% |
| 数据库条目在±5%内的项目 | 95%+ |
LLM是令人印象深刻的通用工具,能够流利地讨论营养概念,但它们并不是营养数据库。这一差异很重要,因为卡路里追踪是一项定量任务——你需要具体、一致、经过验证的数字,而不是每次询问时都可能变化的看似合理的估算。对于营养教育和粗略指导,LLM有效;而对于推动实际结果的每日卡路里追踪,专门的工具与经过验证的数据库才是合适的选择。
常见问题解答
ChatGPT在计数卡路里方面准确吗?
ChatGPT(GPT-4o)在不同食品类型上的平均绝对卡路里误差约为18%。它在测试的食品中仅有42%的估算在经过验证的值的±10%范围内。对于简单的单一成分,如生鸡胸肉(8%误差),准确性最佳,而对于复杂混合菜肴,如鸡肉咖喱(25%误差),准确性最差。
我可以用ChatGPT替代卡路里追踪应用吗?
ChatGPT并不是专门的卡路里追踪器的可靠替代品。2025年发表在British Journal of Nutrition的研究发现,AI聊天机器人的平均每日卡路里误差为18-25%,而专门的追踪应用为5-8%。ChatGPT在会话中也给出了不一致的答案,同一食品查询的卡路里估算在15-28%之间变化。
为什么每次询问时ChatGPT给出的卡路里计数不同?
LLM以概率方式生成响应,而不是在固定数据库中查找值。相同的提示可能会根据采样参数和模型状态产生不同的输出。在测试中,ChatGPT对同一食品的估算在五个独立会话中平均变化了22%,使得一致的每日追踪变得不可靠。
ChatGPT在营养方面最准确的是什么?
ChatGPT在单一生食品(8%误差)和常见水果和蔬菜(6%误差)方面表现最佳,这些食品的卡路里值已建立并标准化。它在一般营养教育、粗略数量估算和相对食品比较方面也很有用,而不是精确的卡路里计数。
验证食品数据库与ChatGPT在卡路里方面有什么比较?
像Nutrola这样的经过验证的营养数据库返回的结果在实际值的±2-5%范围内,并且在查询之间没有差异。ChatGPT的平均误差为18%,会话之间的一致性为15-28%。数据库提供确切的品牌特定数据、可调节的份量和每次查询一致的结果。