ИИ просили посчитать углеводы 27 000 раз — он не сошёлся сам с собой ни разу
Инженер прогнал 4 ИИ-модели через 26 904 запроса на одних и тех же 13 фотографиях. Лучшая модель промахнулась на 2,4%, худшая выдала разброс в десять раз. Что это значит для любого продукта, где LLM возвращает число.
Один и тот же ИИ на одной фотке паэльи отвечает 55 граммов углеводов в одном запросе и 484 — в следующем; для диабетика это переход от нормы инсулина к 43 лишним единицам, риск тяжёлой гипогликемии. Так выглядит недетерминизм LLM на численной задаче — свойство, при котором модель на повторе того же входа возвращает разные ответы. Тим Стрит, инженер с диабетом 1 типа, прогнал четыре топовые модели через 26 904 запроса по тринадцати фотографиям еды, и ни одна не дала стабильный ответ при повторе. Если у вас в продукте LLM возвращает число — сумму чека, размер дефекта, оценку риска — у вас та же паэлья, просто без диабетика на конце.
Опыт описан в блоге Diabettech 25 апреля 2026 года. Стрит использует ИИ как помощника в подсчёте углеводов — вводных данных для расчёта инсулиновой дозы — и захотел понять, насколько модели вообще способны давать стабильный ответ на одном и том же фото. По стандартам клинических исследований воспроизводимость ответа — базовое требование к измерительному инструменту.
Ключевые выводы
ИИ не умеет считать углеводы дважды одинаково
Главное за 30 секунд
26 904 запроса к четырём моделям (GPT-5.4, Claude Sonnet 4.6, Gemini 2.5 Pro, Gemini 3.1 Pro Preview) на тринадцати фотографиях.
Лучшая модель — Claude Sonnet 4.6 с коэффициентом вариации 2,4%. У Gemini 2.5 Pro — 11,0% (хуже всех).
Худший случай — Gemini 2.5 Pro на паэлье: разброс 55–484 г углеводов в одних и тех же запросах. На инсулин это коридор 5,5–48,4 единицы — разница в 42,9 единицы между двумя ответами одной модели.
«Точно неправильно»: на сэндвиче с сыром три модели сошлись около 28 г, реальное значение — 40 г. Конвергенция на ошибке опаснее, чем разброс.
Confidence-скор почти не коррелирует с точностью: модели уверенно врут.
Позиция DTN-UK: общедоступные LLM нельзя использовать как автономных советников по дозе инсулина.
Что и как тестировал Стрит
Автор взял 13 фотографий блюд с заранее известным содержанием углеводов (часть — лабораторно выверенные значения, часть — упаковка с пищевой ценностью). Каждое фото отправлялось четырём моделям не менее 500 раз через API с одним и тем же промптом, без памяти и контекста между запросами.
Тестируемые модели:
- GPT-5.4 от OpenAI — флагман на момент тестов
- Claude Sonnet 4.6 от Anthropic
- Gemini 2.5 Pro от Google — стабильная версия
- Gemini 3.1 Pro Preview от Google — превью новой версии
Промпт просил модель оценить углеводы в блюде и вернуть число грамм плюс уровень уверенности от 0 до 1. Температура — минимальная для каждого API (lowest randomness setting), как рекомендуется для численных задач.
Недетерминизм LLM в цифрах: коэффициент вариации
Стрит измеряет стабильность через коэффициент вариации (CV) — отношение стандартного отклонения к среднему. Чем меньше CV, тем стабильнее модель отвечает на одну и ту же картинку.
Claude держит разброс в пределах нескольких процентов; у Gemini — двузначный CV. На отдельных блюдах CV у Gemini регулярно превышает 10–20%.
Паэлья: 55–484 грамма на одной фотографии
Самый яркий пример из эксперимента. На фотографии паэльи Gemini 2.5 Pro на 500+ запросов выдал результаты в диапазоне от 55 до 484 г углеводов на одном и том же фото — без какого-либо повода для разброса в самих данных.
Если перевести в дозу инсулина по типичному соотношению 1 единица на 10 г углеводов — получается коридор от 5,5 до 48,4 единиц на одно и то же блюдо. Разброс — 42,9 единицы. Для среднего взрослого с диабетом 1 типа 30+ лишних единиц — гипогликемия с риском комы.
Confidence не спасает
Логичное решение — фильтровать ответы по уверенности модели: брать только те, где confidence высокий. Стрит проверил гипотезу. Корреляция confidence с точностью у моделей отрицательная — коэффициент r от −0,01 до −0,17. Уверенность модели не просто бесполезна, она антикоррелирует с правильностью: чем увереннее модель, тем выше шанс, что она ошибается.
Модели возвращают «уверенно неправильные» ответы так же часто, как «уверенно правильные». На сэндвиче с сыром три из четырёх моделей сошлись на ответе около 28 г углеводов с высоким confidence — реальное значение по упаковке было 40 г. Модели согласовались на ошибке и были в ней уверены.
Опасность не в том, что ИИ ошибается. Опасность в том, что ИИ ошибается уверенно и согласованно. Конвергенция на неправильном ответе хуже разброса вокруг правильного — она выглядит как сигнал, а не как шум, и автоматизированная система примет её за факт.
Почему это важно за пределами медицины
Эксперимент Стрита — редкий случай, когда недетерминизм LLM измерен на одной и той же простой задаче в больших объёмах. Большинство бенчмарков считают точность в среднем по выборке; здесь измерена стабильность одного ответа. Это два разных свойства, и для продакшна часто важнее второе.
Где это аукнется
- OCR-замена «через ИИ»: модель распознаёт сумму в чеке/инвойсе. Сегодня 1500, завтра 1505 на той же фотке.
- Извлечение полей из документов: дата, ИНН, артикул. Каждый прогон может дать другой результат.
- Скоринг и оценка: модель оценивает риск/уверенность/качество ответа — числа гуляют между запросами.
- Подсчёт объектов на изображении: люди в очереди, машины на парковке, дефекты на детали.
- Ассистенты для измерений: размеры на фото, время по видео, дозировки в рецептах.
Что делать в продукте
- Не доверять одному вызову. Делать 3–5 запросов и смотреть распределение, а не точку.
- Считать CV локально. Если CV между прогонами выше порога — возвращать «не уверен», а не среднее.
- Игнорировать confidence-поле. На простых задачах оно почти не несёт информации.
- Спрашивать, что модель «видит». Стрит советует отдельным запросом получить описание фото — это ловит грубые ошибки распознавания (паэлья vs ризотто).
- Не использовать LLM как автономного советника в задачах с асимметрией риска (медицина, финансы, безопасность). LLM — рекомендатель, решение принимает человек.
Кого выбрать, если уж приходится
Если в продукте уже есть единичный вызов LLM на численную задачу и нет возможности сделать ансамбль — по данным Стрита, единственный приемлемый вариант — Claude Sonnet 4.6. Его CV в 4–5 раз ниже, чем у любой из других трёх моделей.
Это не значит, что Claude всегда точнее в среднем — речь только о стабильности ответа на одной картинке. Точность среднего у моделей сопоставима в пределах ошибки эксперимента; модели расходятся именно на воспроизводимости.
Позиция диабетического сообщества
Британская DTN-UK (Diabetes Technology Network UK, рабочая группа Association of British Clinical Diabetologists) — профессиональная ассоциация эндокринологов и диабет-инженеров — выпустила позицию, что общедоступные LLM (ChatGPT, Claude, Gemini, Copilot) не должны использоваться как автономные советники по дозе инсулина. Использовать их можно только как один из инструментов под контролем врача и при понимании ограничений.
Стрит, который сам диабетик и инженер, в выводах подчёркивает: ИИ помог ему поправить ручной счёт несколько раз, и в этом смысле штука полезная. Но автоматизировать инсулиновую дозу через LLM сегодня — нельзя.
Частые вопросы
Это проблема температуры? Если поставить temperature=0, всё стабилизируется?
Нет. Все тесты Стрита проводились на минимальной температуре, и недетерминизм всё равно был. Часть случайности приходит не из сэмплинга, а из того, что forward pass на сервере не batch-invariant: результат для запроса зависит от того, в какой batch он попал, и кто ещё в этот batch попал. Это аппаратное свойство инференса, температурой его не убрать. Подробности — в разборе Thinking Machines.
А если модель видит миллиметровую разметку или весы — она же должна стабилизироваться?
На контролируемых сценах с эталоном CV действительно падает. Но в реальных пользовательских фото (тарелка, телефон, естественное освещение) — нет. Эксперимент Стрита тестирует именно реалистичные условия, не лабораторные.
Что лучше — спросить ИИ один раз или у пяти моделей по разу?
Лучше пять раз у одной — это даёт оценку CV для конкретного входа и среднее с меньшим шумом. Микс из разных провайдеров поверх одного входа добавляет систематическую ошибку: у моделей разные смещения, и среднее по разным моделям не имеет физического смысла. Стрит советует один провайдер, ансамбль из 3–5 запросов и контроль CV.
Это применимо к моему продукту, если я не считаю калории?
Если ваш продукт извлекает число из картинки через LLM — применимо. Подсчёт объектов, измерения, оценки, OCR-замена — все эти задачи демонстрируют тот же недетерминизм. Текстовые задачи (классификация, экстракция полей из текста) обычно стабильнее, но и там стоит мерить CV для критичных полей.
Какая модель безопаснее для общего применения?
По данным эксперимента — Claude Sonnet 4.6 с большим отрывом по стабильности. Для продакшна рекомендация: 3–5 параллельных вызовов к выбранной модели + детектор разброса, не одиночный вызов.
Главный вывод
Эксперимент Стрита — первый известный нам случай, когда недетерминизм LLM на простой задаче измерен в публичном сетапе с большим N. Цифры неудобные: даже у Claude Sonnet 4.6 — лучшей модели в тесте — CV в 2,4% означает, что при нормальном распределении один из тридцати ответов будет за пределами одного стандартного отклонения от среднего. В задачах с асимметрией риска (медицина, финансы, инфраструктура) этого хватает, чтобы инструмент был непригоден как автономный.
Для разработки это не аргумент против ИИ — это аргумент за ансамблирование, измерение CV и явное признание того, что LLM возвращает распределение, а не точку. Промпт «верни число» и одиночный вызов API — это иллюзия точечного ответа поверх случайной выборки.
Ссылка на полное исследование с графиками и сырыми данными — блог Diabettech. Если у вас есть продакшн-фича, в которой LLM возвращает число, — повторите методику на десяти типичных входах за один вечер. Скорее всего, вы найдёте свой эквивалент паэльи.