Как выбрать LLM для продакшена: слепая кросс-вендорная оценка
Новейшая, самая раскрученная модель выиграла единственную метрику, с которой я начал, и заняла последнее место по всему остальному, что реально имеет значение. Ради этого я и сел записывать.
У меня крутится автоматизированный пайплайн, который превращает идею в одну строку («две мультяшные рыбки ревниво ругаются») в готовое вертикальное видео. В его сердце — один вызов LLM, который я называю сценаристом: из сюжета и состава персонажей он выдаёт структурированный шот-лист для каждой сцены: описание первого кадра, движение камеры, реплики диалога, эмоциональные акценты и список объектов, которые должны оставаться скрытыми до намеренного раскрытия.
У этого одного вызова два свойства, из-за которых на нём стоит залипнуть всерьёз:
- Это потолок качества. Каждый следующий этап — изображение, видео, голос — лишь отрисовывает то, что решил сценарист. Плоский диалог или размытое описание уже не спасти дальше по конвейеру.
- Он работает на каждом проекте. То есть цена за вызов умножается на весь объём работы.
Сложи это вместе, и вопрос уже не «какая модель лучше», а «какая модель даёт больше всего качества на доллар». И не оставляет ли дешёвый текущий вариант на столе качество, за которое стоит доплатить.
Что стало триггером
Две претензии к текущему варианту, дешёвому GPT-5.4-mini. Первая — утечка в первый кадр: для комедийного отъезда-раскрытия — две рыбки ругаются, потом камера отъезжает и показывает, что они в крошечном аквариуме, в доме, под водой, а мимо пролетает ястреб — модель вписала раскрытие прямо в открывающий кадр. Панчлайн испорчен, первый кадр захламлён. Вторая — жидкий диалог: рабочий, но плоский, часто говорил только один персонаж.

Баг наглядно: GPT-5.4-mini вписал всё раскрытие-отъезд прямо в открывающий кадр — дом, комната, ястреб и крошечный аквариум видны разом. Панчлайн испорчен ещё до начала сцены.
Я мог бы поменять модель «на ощущениях». Вместо этого я прогнал оценку — потому что стоимость этого вызова умножается на каждое видео, которое я когда-либо сделаю.
Метод (вот это — переиспользуемая часть)
Честный вход. Я не писал синтетический тестовый промпт. Я воспроизвёл ровно те сообщения, которые пайплайн шлёт в продакшене: системный промпт на ~12 000 токенов с сюжетом, персонажами и всеми правилами авторинга, плюс крошечный пользовательский промпт («сгенерируй шот-лист из 1 сцены») и строгий контракт вывода в JSON. Каждая модель получила побайтово идентичный контент; адаптировался только механизм структурированного вывода под каждого вендора.
Четыре модели по оси стоимости: дешёвый текущий вариант (GPT-5.4-mini), новейший полноценный GPT (GPT-5.5), топовый Claude (Opus 4.8) и средний Claude (Sonnet 4.6).
Два инструмента. Детерминированный сканер утечек, который механически проверяет поля при t=0 на скрытые слова, незаявленные существительные-«чужаки» и формулировки раскрытия (балл: 10 минус штрафы). И слепая кросс-вендорная судейская коллегия: два судьи от разных вендоров (один Opus, один GPT-5.5) оценивали четыре анонимизированных вывода — переименованных в A/B/C/D, причём ни одному судье не сказали, какая модель что написала и какой из выводов его собственный, — по шести измерениям: диалог, описание, движение, эмоция, дисциплина первого кадра и связность.
Два судьи от разных вендоров страхуют от вкусовщины какой-то одной модели; анонимизация входов не даёт судье льстить собственной работе.
Что произошло
Раунд 1, узкий тест на утечку. На свежей выборке все четыре модели набрали чистые 10/10 против 0/10 у реального продакшен-кадра. Тот самый текущий вариант, что протёк в продакшене, здесь выдал чистый кадр из того же промпта.
Вот первый урок, и его легко упустить: баг был стохастическим, а не дефектом модели. При нормальной температуре сэмплирования сбой вероятностный. Один прогон не разделит модели по этой оси — и никакая замена модели не гарантирует чистый кадр.
Раунд 2, полная слепая оценка. Поскольку узкий тест насытился, я судил весь вывод. Итоги коллегии из 60 возможных:
- Claude Opus 4.8 — 49.5
- Claude Sonnet 4.6 — 49.0
- GPT-5.4-mini (текущий вариант) — 40.5
- GPT-5.5 — 34.0
Оба судьи независимо поставили две модели Claude наверх, а GPT-5.5 — в конец. Деталь, из-за которой я в это поверил: судья GPT-5.5 поставил модели собственного вендора на последнее место. Никакого предпочтения «своим» — если что, наоборот.
Разделило их конкретное. Верхние две написали настоящий двусторонний обмен репликами — одна рыбка обвиняет, другая отвечает («Я просто ела…», привязывая отговорку к червяку во рту) — плюс анимируемую физическую комедию («бьёт плавником по лицу, червяк вылетает»). Обе модели GPT выдали одностороннее обвинение и оставили второго персонажа простаивать.
И главное во всём исследовании: GPT-5.5, новейший флагман, выиграл узкую метрику утечки, но пришёл последним в целом. Первый кадр он держал чистым, а потом перенёс раскрытие в другое поле, которое сканер не проверял. Он прошёл прокси-метрику и всё равно испортил шутку.

Чистый первый кадр на Sonnet 4.6: только два персонажа. Червяк во рту рыбки-клоуна — та самая отговорка, которую обыгрывает диалог: деталь истории, а не утёкшее раскрытие.
Оптимизация одной метрики может активно отбирать худший продукт. Единственное, что это поймало, — взгляд на весь вывод целиком, вслепую.
Решение «качество против стоимости»
Это та секция, ради которой исследование и существует. На живом вызове одна сцена на Sonnet 4.6 съела ~12k входных + ~1.3k выходных токенов — вход доминирует за счёт фиксированного системного промпта, выход растёт с числом сцен. Грубые соотношения на проект для видео из 6 сцен (перепроверь текущие цены вендоров перед тем, как называть цифры; устойчивая часть тут именно соотношения):
- GPT-5.4-mini — ~1× (дешевле всех), качество 40.5
- Sonnet 4.6 — ~15× от текущего варианта, качество 49.0
- Opus 4.8 — ~5× от Sonnet, качество 49.5
- GPT-5.5 — тот же тир, что Sonnet, качество 34.0
Читать это можно в трёх плоскостях:
- Дешёвое — не бесплатное. Текущий вариант примерно в 15× дешевле, но на 8.5 балла качества ниже — и поскольку сценарист задаёт потолок, этот разрыв вылезает в каждом видео. Экономия возвращается худшим выводом.
- Самое дорогое здесь не оправдано. Opus номинально №1, но его преимущество в 0.5 балла над Sonnet лежит внутри шума коллегии из двух судей. И это при ~5× стоимости за токен на вызове, который работает на каждом проекте.
- Новейший флагман доминируется. GPT-5.5 одновременно и хуже, и не дешевле. Нет ни одной рабочей точки, где он — правильный выбор. «Новейший и самый раскрученный» — это не то же самое, что «лучший для задачи».
Поэтому я зашипил Sonnet 4.6 — колено кривой: примерно качество Opus, заметно выше обоих GPT, за примерно пятую часть цены Opus. Две доводки держат счёт честным: нетворческие вспомогательные вызовы (валидатор, нормализатор диалога) остаются на дешёвой модели, потому что ничего не сочиняют; а модель сценариста — это одна константа в конфиге, так что повысить до Opus или понизить обратно — правка в одну строку.
А баг, с которого всё началось? Апгрейд модели снижает шансы утечки в первый кадр, но не убирает бросок кубика. Надёжное решение — детерминированное: собирать открывающий кадр из ограниченных слотов (персонажи, их поза и эмоция, только окружающий фон) и вырезать любое раскрытие или объект-«чужака» в коде, независимо от модели. Платить за модель побольше ради надёжности, которую можно получить детерминированно и бесплатно, — это та же ловушка дешёвой модели, только вывернутая наизнанку.
Что я хотел бы, чтобы вы забрали, а не приняли на веру
Честные ограничения: этот рейтинг держится на одной генерации на модель и двух судьях. Разрыв Opus/Sonnet — шум, считайте их равными. Судьи к тому же сами игроки (анонимизация и кросс-вендорное согласие снижают самопредпочтение, но не стирают его). Это один сценарий, один жанр. Более крепкое исследование гоняет N≥10–20 сэмплов на модель и репортит распределения, а не точечные баллы. Ничто из этого не переворачивает направленный результат, но ограничивает, насколько жёстко его можно формулировать.
Части, которые переносятся в любой кейс, независимо от того, какой вендор побеждает у вас:
- Тестируй на своём реальном промпте, а не на синтетическом. Честность зависит от идентичного, продакшен-точного входа.
- Меряй целостно и вслепую. Одна прокси-метрика рано или поздно выберет худший продукт; анонимизированное кросс-вендорное судейство это ловит.
- Считай цену в реальных токенах и сравнивай качество на доллар, а не пиковое качество — особенно для вызова, умноженного на весь твой объём работы.
- Отделяй стохастические баги от качества модели. Если дефект то появляется, то пропадает между прогонами одной и той же модели — он вероятностный; чини его в коде, а не откупайся моделью побольше.
---
Я Дмитрий Гарупа, fractional CTO, который руками строит и шипит AI-системы и записывает то, чему меня учит работа, — например, как я дал своим AI-агентам постоянную память между сессиями. Если вы гоняете подобные оценки или хотите оспорить то, как я провёл эту, — напишите мне: самые острые возражения — самые полезные.