Comment vérifier une estimation de calories de l'IA en 3 étapes
Un test publié montre des erreurs importantes : ChatGPT-5 avait une erreur absolue moyenne en pourcentage de 30,51 % sur l'énergie à partir d'une photo seule, et de 13,92 % avec une liste d'ingrédients accompagnée de quantités. Pour vérifier un chiffre, multiplie la valeur USDA pour 100 g par tes grammes, teste que 4 x protéines, 4 x glucides et 9 x lipides tombent près des calories, et demande les hypothèses de l'IA. Un accord ne prouve pas qu'un chiffre est juste.
Points clés
- Contrôle 1 : les kcal USDA pour 100 g x grammes / 100 donnent une référence pour ta quantité. Prends la fiche du même état de cuisson.
- Contrôle 2 : les protéines et les glucides apportent environ 4 kcal par gramme, et les lipides environ 9. La somme des macros doit tomber près des calories annoncées.
- La somme ne tient pas compte de l'alcool (7 kcal/g) et traite les fibres et les polyols de façon approximative. Ce sont des raisons connues pour qu'un nombre correct échoue à ce contrôle.
- Contrôle 3 : demande les grammes, cru ou cuit, la matière grasse de cuisson et une liste d'éléments ligne par ligne. La plupart des mauvaises réponses se cachent dans une hypothèse.
- Les trois contrôles peuvent réussir avec une mauvaise portion. Ils repèrent les nombres qui paraissent éloignés de la référence, pas les nombres justes.
Réponse courte : trois contrôles, et ce que chacun peut prouver
- Contrôle 1, la valeur de référence, repère une valeur crue utilisée pour un aliment cuit, ou un mauvais aliment.
- Contrôle 2, la somme des macros, repère un nombre de calories ou de macros estimé séparément du reste.
- Contrôle 3, les hypothèses, couvre la quantité, l'unité, la matière grasse de cuisson et les éléments comptés deux fois.
Si les contrôles 1 et 2 réussissent et que l'IA a supposé 200 g pour une assiette qui en contenait 300 g, la réponse est inférieure de 33 %, et rien sur la page ne le montre. Pour les preuves d'étude sur la taille de l'erreur de l'IA, voir si ChatGPT ou Claude peuvent suivre les calories. Pour les consignes qui donnent de meilleures réponses, voir comment compter les calories avec ChatGPT.
Contrôle 1 : multiplie la valeur USDA par tes grammes
USDA FoodData Central (FDC) est la base de données de composition des aliments du gouvernement américain. Chaque fiche liste les nutriments pour 100 g. Cherche l'aliment avec son état de cuisson, ouvre la fiche et lis la ligne « Energy » (énergie) en kcal. Le blanc de poulet rôti (FDC 171477) affiche 165 kcal, marqué comme calculé. Les fiches de cet article sont SR Legacy, que FDC décrit comme « final release April 2018 » (version finale d'avril 2018, traduction de notre part). Les produits plus récents ou de marque peuvent différer.
Exemple de calcul : trois aliments dans un même repas, à partir des valeurs FDC pour 100 g.
- Blanc de poulet, rôti, 150 g (FDC 171477) :
150 x 165 / 100 = 247,5 kcal- Riz blanc, cuit, 200 g (FDC 168878) :
200 x 130 / 100 = 260 kcal- Deux gros œufs durs (FDC 173424). FDC indique un gros œuf à 50 g, donc 100 g :
100 x 155 / 100 = 155 kcal- Total de référence :
247,5 + 260 + 155 = 662,5 kcalUne réponse de 650 kcal se situe à moins de 2 % de ce total. Une réponse de 1100 kcal mérite une question : d'où viennent les 437 kcal en plus ?
Deux habitudes rendent le contrôle 1 efficace. Fais correspondre l'état : le riz blanc cru fait 365 kcal pour 100 g (FDC 168877) et cuit 130, soit un facteur de 2,8. Le guide cru ou cuit explique la variation de poids. Convertis d'abord l'unité : dans FDC, une tasse de riz blanc cuit pèse 158 g et une tasse de flocons d'avoine cuits 234 g. Le guide tasses en grammes en dit plus.
À quelle distance est « proche » ? Une valeur USDA est typique, ce n'est pas la mesure de ton assiette. Repère pratique pour le lecteur : à environ 10 à 15 % de la référence, ou à 50 kcal près, c'est normal ; bien au-delà, cela mérite une question. C'est une habitude de lecture, pas une norme, ni le réglage d'un produit quelconque.
Contrôle 2 : les macros font-ils le total des calories ?
Beaucoup de chiffres de calories sont calculés à partir des protéines, des glucides et des lipides, avec des facteurs énergétiques. Les facteurs généraux sont 4 kcal par gramme de protéines, 4 pour les glucides et 9 pour les lipides. La règle d'étiquetage de 21 CFR 101.9(c)(1)(i) énumère les méthodes autorisées pour calculer les calories d'étiquette. La méthode (B) est le calcul général 4, 4 et 9 de l'USDA Handbook No. 74. La méthode (A) utilise les facteurs d'Atwater spécifiques du tableau 13 du même manuel. Un nombre de calories annoncé et ses macros sont liés par un calcul. Quand ils diffèrent beaucoup, l'un des deux est faux.
Exemple de calcul : 100 g de riz blanc cuit, FDC 168878 : protéines 2,69 g, glucides 28,17 g, lipides 0,28 g.
- Protéines :
4 x 2,69 = 10,76 kcal- Glucides :
4 x 28,17 = 112,68 kcal- Lipides :
9 x 0,28 = 2,52 kcal- Somme :
10,76 + 112,68 + 2,52 = 125,96 kcalL'USDA indique 130 kcal. L'écart est de 4 kcal, soit 3,1 %, ce qui est normal pour les facteurs généraux.
Pourquoi l'écart est faible mais non nul
L'USDA n'utilise pas 4-4-9 pour chaque aliment. Le téléchargement SR Legacy contient une table de facteurs de conversion calorique, avec des valeurs propres à chaque aliment pour les protéines, les lipides et les glucides. Pour un œuf dur (FDC 173424), elles valent 4,36, 9,02 et 3,68 ; pour le riz blanc cuit, 3,82, 8,37 et 4,16. Avec les facteurs propres à l'œuf, 100 g donnent 12,58 x 4,36 + 10,61 x 9,02 + 1,12 x 3,68 = 154,67 kcal, ce qui s'arrondit aux 155 de l'USDA. Les facteurs généraux donnent 150,3, soit un écart de 3,0 %.
Une réponse de l'IA ne fera presque jamais correspondre la somme exactement aux calories. Un écart de quelques pour cent est attendu ; cherche-en un bien plus grand. Des calories au-dessus de la somme ne sont acceptables que si quelque chose les explique, comme l'alcool ; sans un tel ingrédient, pose la question. Des calories nettement en dessous de la somme signalent en général un chiffre estimé séparément. Utilise la même tolérance qu'au contrôle 1 : sur un repas de 400 kcal, 50 à 60 kcal ; sur une collation de 100 kcal, le plancher de 50 kcal.
Quand la somme ne doit pas correspondre, et la réponse reste juste
| Type d'ingrédient | Effet sur la somme 4-4-9 | Que faire |
|---|---|---|
| Alcool | Ajoute 7 kcal par gramme que les protéines, les glucides et les lipides ne contiennent pas. La somme sous-compte. | Ajoute 7 x grammes d'alcool. |
| Fibres | Se trouvent dans les glucides mais apportent moins de 4 kcal par gramme. La somme surcompte. | Juge l'écart en kcal, pas en pourcentage. |
| Polyols | Comptés dans les glucides mais valent 0 à 3 kcal par gramme. La somme surcompte. | Retire-les des glucides et ajoute leur propre facteur. |
| Arrondi de l'étiquette | Les calories imprimées sont arrondies au multiple de 5 le plus proche jusqu'à 50, puis au multiple de 10. | Tolère quelques kcal dans un sens ou dans l'autre. |
Alcool : 7 kcal par gramme
Un article de l'armée américaine affirme : « Un gramme d'alcool contient sept calories » (traduction de notre part). Le verre standard américain contient environ 14 g d'alcool pur, selon le National Institute on Alcohol Abuse and Alcoholism : 12 fl oz de bière ordinaire, 5 fl oz de vin de table ou 1,5 fl oz d'alcool fort. L'USDA confirme : la vodka à 80 proof (FDC 174818) contient 33,4 g d'alcool et 231 kcal pour 100 g, sans protéines, glucides ni lipides. 33,4 x 7 = 233,8, à 1,2 % près.
Exemple de calcul : une canette de 12 fl oz de bière ordinaire. Pour 100 g, FDC 168746 indique 43 kcal, 0,46 g de protéines, 3,55 g de glucides, aucun lipide et 3,9 g d'alcool. La canette pèse 356 g, donc on multiplie par 3,56.
- Protéines et glucides :
3,56 x (4 x 0,46 + 4 x 3,55) = 57,1 kcal- Alcool :
3,56 x 3,9 = 13,9 g, et13,9 x 7 = 97,2 kcal- Avec l'alcool :
57,1 + 97,2 = 154,3 kcal. USDA pour la canette :3,56 x 43 = 153,1 kcalLa somme 4-4-9 seule est inférieure de 63 % à la valeur réelle : elle prendrait donc une réponse juste pour une réponse fausse.
Pour une boisson, ou une recette avec du vin ou un alcool fort, ajoute d'abord le terme alcool, et demande à l'IA les grammes d'alcool.
Fibres, polyols et arrondi
Les glucides « par différence » comprennent les fibres, en grande partie non digérées. La règle d'étiquetage admet 4, 4 et 9, avec les glucides comptés « moins la quantité de glucides non digestibles et de polyols » (traduction de notre part), et 2 kcal par gramme pour les glucides non digestibles solubles. Le brocoli bouilli (FDC 169967) montre l'effet. Pour 100 g, il contient 35 kcal, 2,38 g de protéines, 7,18 g de glucides (3,3 g de fibres) et 0,41 g de lipides. La somme simple donne 9,52 + 28,72 + 3,69 = 41,9 kcal, soit 6,9 kcal ou 19,8 % au-dessus de l'USDA. En pourcentage, cela paraît alarmant, mais c'est sous le plancher de 50 kcal.
Les polyols ont leurs propres facteurs dans 21 CFR 101.9(c)(1)(i)(F), de 0 kcal par gramme pour l'érythritol, 1,6 pour le mannitol, 2,1 pour le maltitol, 2,4 pour le xylitol et 2,6 pour le sorbitol. Une barre qui contient 12 g de maltitol dans ses glucides surcompte de 12 x (4 - 2,1) = 22,8 kcal.
La même section arrondit les calories d'étiquette « à l'incrément de 5 calories le plus proche, jusqu'à 50 calories incluses, et à l'incrément de 10 calories au-dessus de 50 », avec des facteurs appliqués « à la quantité réelle (c.-à-d. avant arrondi) » (traductions de notre part). Un 130 kcal imprimé peut donc varier de quelques kcal dans un sens ou dans l'autre.
Contrôle 3 : quelles hypothèses l'IA a-t-elle faites ?
Une IA transforme « un bol de riz » en grammes, en un état et en une quantité de matière grasse. Tu ne le vois pas, sauf si tu le demandes. Demande une liste ligne par ligne : pour chaque élément, les grammes, cru ou cuit, le mode de cuisson, la matière grasse ou la sauce ajoutée, et d'où vient la valeur pour 100 g. Une liste révèle aussi un élément compté deux fois, ce qu'aucun calcul ne détecte.
| Hypothèse | Ce qui ne va pas | Ampleur de l'erreur |
|---|---|---|
| Cru ou cuit | La valeur sèche est appliquée à un aliment cuit, ou l'inverse. | Riz blanc : 365 contre 130 kcal pour 100 g, un facteur de 2,8. |
| Unité | Une valeur pour 100 g est utilisée pour « 1 tasse ». | Flocons d'avoine cuits : 71 pour 100 g, mais une tasse fait 234 g, donc 71 x 2,34 = 166 kcal. |
| Matière grasse de cuisson | L'huile ou le beurre de la poêle est oublié. | 1 c. à soupe d'huile d'olive pèse 13,5 g, donc 884 x 0,135 = 119 kcal. |
| Double comptage | Un plat et ses composants figurent tous deux dans le total. | Le total est faussé de tout le plat. |
Une fois l'hypothèse connue, corrige-la en clair (« 150 g cuits, sans huile ») et redemande les chiffres. Puis refais les contrôles 1 et 2.
Fourchettes de vraisemblance : calories pour 100 g pour 12 aliments
Une liste de référence repère un nombre impossible sans recherche. Nous avons ouvert chaque fiche USDA et recalculé la somme 4-4-9.
| Aliment (état) | id FDC | kcal pour 100 g | P / G / L g | Somme 4-4-9 |
|---|---|---|---|---|
| Œuf dur | 173424 | 155 | 12,6 / 1,1 / 10,6 | 150 |
| Blanc de poulet, rôti | 171477 | 165 | 31,0 / 0 / 3,6 | 156 |
| Saumon d'élevage, cuit | 175168 | 206 | 22,1 / 0 / 12,4 | 200 |
| Riz blanc, cuit | 168878 | 130 | 2,7 / 28,2 / 0,3 | 126 |
| Flocons d'avoine cuits à l'eau | 173905 | 71 | 2,5 / 12,0 / 1,5 | 72 |
| Pâtes cuites, enrichies | 169737 | 158 | 5,8 / 30,9 / 0,9 | 155 |
| Lentilles bouillies | 172421 | 116 | 9,0 / 20,1 / 0,4 | 120 |
| Brocoli bouilli | 169967 | 35 | 2,4 / 7,2 / 0,4 | 42 |
| Huile d'olive | 171413 | 884 | 0 / 0 / 100 | 900 |
| Beurre demi-sel | 173410 | 717 | 0,9 / 0,1 / 81,1 | 734 |
| Banane, crue | 173944 | 89 | 1,1 / 22,8 / 0,3 | 99 |
| Cheddar | 173414 | 403 | 22,9 / 3,4 / 33,3 | 405 |
Lis le tableau en trois bandes. Les légumes et les féculents cuits se situent entre 35 et 160 kcal pour 100 g, la viande et le poisson cuits entre 155 et 210, le fromage, le beurre et l'huile entre 400 et 890. Une IA qui annonce 400 kcal pour 100 g de riz cuit dépasse plus de trois fois les 130 ci-dessus : elle a utilisé la valeur sèche, ou s'est trompée. Une IA qui annonce 150 pour l'huile d'olive a oublié presque toute la matière grasse.
Dix des douze sommes tombent à moins de 5,5 % de l'énergie USDA. Les cas atypiques sont le brocoli (+19,8 %, 6,9 kcal) et la banane (+10,9 %, 9,7 kcal), deux aliments où quelques kcal semblent grands en pourcentage. Le poulet cru, l'œuf frit et le riz brun ont d'autres valeurs. Le tableau fonctionne mieux pour un nombre qui s'écarte de moitié ou plus, pas d'environ 10 %.
Cinq mauvaises réponses et le contrôle qui repère chacune
Ces réponses sont inventées pour montrer le schéma. Aucune IA ne les a données.
1. Valeur crue sur du riz cuit
Inventé : « 150 g de riz blanc cuit : 548 kcal, 11 g de protéines, 120 g de glucides, 1 g de lipides. » La somme des macros fait 44 + 480 + 9 = 533 kcal, à moins de 3 % de 548, donc le contrôle 2 réussit. Les calories sont celles du riz cru : 150 x 365 / 100 = 547,5. Le contrôle 1 donne 150 x 130 / 100 = 195 kcal, donc la réponse est 2,8 fois trop haute.
2. Une tasse traitée comme 100 g
Inventé : « 1 tasse de flocons d'avoine cuits : 71 kcal, 2,5 g de protéines, 12 g de glucides, 1,5 g de lipides. » Ce sont des valeurs pour 100 g et la somme fait 71,5, donc le contrôle 2 réussit. Une tasse d'avoine cuite pèse 234 g, donc le bon chiffre est 71 x 2,34 = 166 kcal. Cela fait 57 % de trop peu. Le contrôle 1 le repère dès que tu convertis la tasse en grammes.
3. L'huile qui n'apparaît jamais
Inventé : « 150 g de blanc de poulet poêlé : 248 kcal, 46,5 g de protéines, 0 g de glucides, 5,4 g de lipides. » Un blanc rôti simple donne 150 x 165 / 100 = 247,5, et la somme vaut 186 + 48,6 = 234,6. Les deux réussissent, mais la cuisson à la poêle manque. Si une cuillère à soupe d'huile d'olive (119 kcal) reste sur l'aliment, le repas tourne autour de 367 kcal. On ne sait pas combien reste : demande donc une quantité de matière grasse.
4. Macros qui ne concordent pas avec les calories
Inventé : « 150 g de saumon de l'Atlantique cuit : 310 kcal, 33 g de protéines, 0 g de glucides, 5 g de lipides. » Le contrôle 1 réussit : 150 x 206 / 100 = 309 kcal. Le contrôle 2 échoue : 4 x 33 + 9 x 5 = 177 kcal, soit 133 de moins que les 310 annoncés (43 %). L'USDA indique 18,5 g de lipides pour 150 g, donc le chiffre des lipides est faux.
5. Un plat compté deux fois
Liste inventée : « Poulet 150 g : 248. Riz 150 g : 195. Bol poulet-riz : 443. Total : 886. » Chaque ligne réussit le contrôle 1. Les macros du total (101 g de protéines, 84,5 g de glucides, 11,7 g de lipides) font 847 kcal, à 4,4 % de 886, donc le contrôle 2 réussit. La troisième ligne répète les deux premières, et le vrai total est 248 + 195 = 443 kcal.
| Réponse | Contrôle 1 | Contrôle 2 | Contrôle 3 |
|---|---|---|---|
| 1. Riz cru | Signale | Réussit | Signale |
| 2. Tasse comptée comme 100 g | Signale après conversion de l'unité | Réussit | Signale |
| 3. Huile oubliée | Réussit | Réussit | Signale |
| 4. Macros fausses | Réussit | Signale | Réussit |
| 5. Double comptage | Réussit ligne par ligne | Réussit | Signale |
Dans cet ensemble inventé, le contrôle 2 signale une réponse sur cinq, le contrôle 1 deux, et le contrôle 3 quatre. C'est une propriété de ces exemples, pas un taux mesuré. Le contrôle par la somme ne voit que les incohérences internes.
Une version tableur des contrôles 1 et 2
Si tu notes tes repas chaque jour avec une IA, mets le calcul dans une feuille : une ligne par aliment, les chiffres de l'IA dans les colonnes de saisie. Nous avons recalculé à la main les lignes d'exemple, sans les exécuter dans un tableur : vérifie-les dans ta propre feuille.
| Colonne | Contenu | Formule à la ligne 2 |
|---|---|---|
| A à G | Aliment, grammes, kcal annoncées, protéines g, glucides g, lipides g, alcool g (vide s'il n'y en a pas) | Saisies de l'IA |
| H | Somme des macros en kcal | =4*D2+4*E2+9*F2+7*G2 |
| I | Écart en kcal | =C2-H2 |
| J | Part de l'écart sur la valeur annoncée | =IF(C2=0,"",ABS(I2)/C2) |
| K | Indicateur du contrôle 2 | =IF(ABS(I2)>MAX(0.15*C2,50),"ask","ok") |
| L | kcal USDA pour 100 g | Saisie depuis FDC |
| M | kcal de référence | =B2*L2/100 |
| N | Indicateur du contrôle 1 | =IF(ABS(C2-M2)>MAX(0.15*M2,50),"ask","ok") |
Les indicateurs affichent « ask » quand l'écart dépasse 15 % du nombre ou 50 kcal, selon le plus grand des deux. C'est la règle pratique ci-dessus. Pour une mise en forme conditionnelle sur A2:N500, utilise la formule personnalisée =$K2="ask" avec une couleur de remplissage, puis une seconde règle pour =$N2="ask".
Lignes de test, calculées à la main :
- Saumon, 150 g, annoncé 310, protéines 33, glucides 0, lipides 5 : H vaut 177, J vaut 0,43 et K affiche « ask ». M vaut 309, donc N affiche « ok ».
- Bière, une canette, annoncée 153, protéines 1,6, glucides 12,6, lipides 0, alcool 13,9 : H vaut 154,1 et K affiche « ok ». Si l'on laisse G vide, H tombe à 56,8, donc K affiche « ask ».
Où les contrôles cessent de fonctionner
- Une somme juste peut encore être fausse. Un mauvais aliment ou une mauvaise quantité, calculés correctement, réussissent les contrôles 1 et 2, comme les réponses 3 et 5.
- Une valeur USDA est une moyenne. FDC indique pour le cheddar (FDC 173414) 22,87 g de protéines pour 100 g, à partir de 39 points de données, avec des valeurs de 22,54 à 24,25. Cette dispersion ne couvre que le cheddar échantillonné.
- La portion est le maillon faible. Dans une évaluation de 2025 de ChatGPT-5 sur 195 plats, les estimations à partir de la seule image avaient une erreur absolue moyenne en pourcentage de 30,51 % pour l'énergie, et de 42,58 %, 41,95 % et 52,88 % pour les protéines, les glucides et les lipides. Avec une liste d'ingrédients accompagnée de quantités, l'erreur énergétique tombe à 13,92 % (Rodriguez-Jimenez et al., Nutrients, 2025).
- Les moyennes cachent l'erreur par élément. Dans une étude de 2023 portant sur 222 aliments, les moyennes des chatbots pour l'énergie ne différaient pas de façon significative de celles des nutritionnistes. Pourtant, seules 39,2 à 46,8 % des estimations par élément tombaient à moins de 10 % de la référence, et 57,7 à 61,3 % à moins de 20 % (Hoang et al., JAMA Network Open, 2023).
- Les plats mixtes et la cuisine de restaurant n'ont pas de fiche USDA unique, et l'huile, la sauce et le poids sont inconnus.
Pour l'erreur de comptage en général, voir à quel point l'erreur est grande dans le comptage des calories. Les contrôles resserrent une estimation. Ils ne la transforment pas en valeur certaine.
Ce que Remembite fait de ces contrôles
Avant d'enregistrer un repas, Remembite compare chaque aliment qu'il peut relier avec confiance à une référence fondée sur l'USDA, et vérifie les protéines, les glucides et les lipides par rapport aux calories. Il cherche des macros dont la somme dépasse les calories. Il ne remet pas en cause des calories au-dessus de la somme des macros, car l'alcool et les fibres peuvent l'expliquer ; la réponse 4 ci-dessus est donc celle que tu repères toi-même. Quand un chiffre s'écarte fortement, Remembite ne l'enregistre pas. Il renvoie une question à ton IA, qui te demande de le confirmer ou de le corriger.
Un aliment qu'il ne peut pas relier est enregistré tel que ton IA l'a envoyé, avec seulement le contrôle des macros. Chaque aliment du tableau de bord porte une étiquette : « Checked against USDA » (Vérifié avec l'USDA), « AI estimate » (Estimation de l'IA) ou « You confirmed » (Confirmé par toi). Remembite enregistre les chiffres envoyés par ton IA et ne les remplace pas. Le contrôle 3 reste à ta charge et à celle de ton IA. Cette étape est une invitation à revérifier, pas une garantie.
Gratuit pour commencer. Tout forfait payant sera annoncé ici avant son lancement. Le connecteur Claude est ouvert à toute personne ayant un compte Remembite. Remembite fonctionne aussi dans ChatGPT (bêta, avec le mode développeur). Remembite n'est pas affilié à Anthropic ni à OpenAI. Voir les étiquettes sur le tableau de bord d'exemple, ou crée un compte gratuit. La page méthodologie détaille cette étape.
Questions fréquentes
Le nombre de calories donné par ChatGPT est-il juste ?
C'est une estimation. Dans l'étude de 2023 citée plus haut, 39,2 à 46,8 % des estimations tombaient à moins de 10 % de la référence. Passe les trois contrôles et traite le résultat comme une fourchette.
Quel écart est normal ?
Quelques pour cent, car l'USDA utilise des facteurs propres à chaque aliment et les étiquettes arrondissent. Une règle pratique pour le lecteur : environ 10 à 15 %, ou 50 kcal.
Pourquoi ma boisson échoue-t-elle à la somme des macros ?
L'alcool apporte environ 7 kcal par gramme et ne fait pas partie des protéines, des glucides ou des lipides. Une bière de 12 fl oz donne 57 kcal sans lui et 154 kcal avec lui.
Si les trois contrôles réussissent, le nombre est-il juste ?
Non. Les contrôles repèrent les nombres incohérents ou qui paraissent éloignés de la référence. Un mauvais aliment ou une mauvaise quantité peut les réussir tous les trois.
Estimations, pas des conseils médicaux. Comment fonctionnent les chiffres.