Какую LLM ставить в production для контента на русском? Протестировали 18 моделей — одна в 130× дешевле при 91% качества

Какую LLM ставить в production для контента на русском? Протестировали 18 моделей — одна в 130× дешевле при 91% качества

Battle test на русском и английском: цена, качество и артефакты — открытый лидерборд

127 баллов из 100. Не опечатка.

Qwen выступал судьёй в тесте LLM-моделей. Оценивал чужие выводы объективно — плюс-минус. Но когда дело дошло до оценки своей же модели, выставил 127 баллов. При слепой оценке, без указания имён, результат всё равно оказался раздут.

Позже мы нашли исследование, объясняющее механизм: модели предпочитают текст с низкой perplexity — то есть похожий на свой собственный. Узнают «свой почерк», даже если не знают автора. Но тогда мы просто смотрели на цифру 127 и думали: какого хрена…

Это был момент, когда стало ясно — стандартные подходы к оценке LLM не работают. Раньше мы поняли другое: публичные бенчмарки не отвечают на главный вопрос. Не «какая модель умнее», а какую модель поставить в production, чтобы она генерировала контент для клиентов и не съела весь бюджет.

Мы генерируем образовательные уроки для клиента. Сотни тысяч API-вызовов. Каждый лишний цент — это тысячи долларов в месяц. Но нельзя брать самую дешёвую модель: контент должен быть качественным. Формула SPIN, расшифрованная неправильно, или вымышленный кейс — и урок идёт в мусор вместе с доверием клиента. Выбор модели — это trade-off между «не разориться» и «не опозориться».

Почему MMLU и HumanEval бесполезны, когда нужен контент

Все знают, какая модель лучше кодит. Есть LMSYS Chatbot Arena, HumanEval, Aider Polyglot. Для разговорных способностей — EQ-Bench. Для кода — решено. Для «общего интеллекта» — тоже неплохо. Но когда LLM генерирует не код и не чат-ответы, а уроки, отчёты, коммерческие предложения — начинается terra incognita.

Ни один публичный бенчмарк не скажет, какая модель напишет лучший урок по B2B-продажам на русском. Какая не вставит китайские иероглифы посреди абзаца. И за какую цену.

Три конкретные проблемы:

  • Абстрактные задачи. MMLU тестирует знание фактов. HumanEval — генерацию кода. GSM8K — арифметику. Никто не тестирует: «напиши урок на 3000 слов с введением, четырьмя секциями, упражнениями, Mermaid-диаграммами и LaTeX-формулами». А это то, что нужно в production.
  • 95% бенчмарков — на английском. Модель может идеально писать на английском и вставлять «静态的 бухгалтерский учет» в русский текст. Мы обнаружили это у 7 из 18 моделей. Ни один бенчмарк не ловит такие ошибки — они не тестируют на русском.
  • Цены нет в уравнении. GPT-5.4 лидирует на всех бенчмарках. Но стоит $0.10 за вызов. При 10 000 уроках в месяц — $1000. Qwen3 235B набирает на 9% меньше баллов, но стоит $0.0008 за вызов. Те же 10 000 уроков — $8. Разница — $992 в месяц. Ни один бенчмарк не покажет эту математику.

С кодом эту проблему уже документировали. Команда Cursor опубликовала CursorBench — внутренний бенчмарк. Оказалось, что результаты на реальных задачах сильно расходятся с публичными лидербордами. OpenAI подтвердили: около 60% задач SWE-bench содержали дефектные тесты, а топ-модели просто зазубрили правильные патчи. Бенчмарк измерял не качество, а способность к запоминанию.

С контентом — та же проблема. Только её никто не измерял. Пока мы не попробовали.

Battle Test: как это устроено

Мы не изобретали «революционную методологию». Мы решали свою задачу — выбрать модель для генерации уроков — и получили инструмент, который можно адаптировать под любые сценарии. Текущая версия теста — 4.2. Первые три были хуже. Четвёртая — терпима. Это итеративный процесс, не откровение.

Почему именно уроки? Образовательный контент — идеальный стресс-тест. Урок имеет жёсткую структуру: введение, разделы, итоги, упражнения — легко проверить, всё ли на месте. Нельзя отделаться общими фразами — нужны формулы, кейсы, конкретные числа. Формулы вроде EOQ или SPIN либо правильные, либо нет — галлюцинации видны сразу. И 3000 слов — модель не может спрятаться за короткими ответами.

Если модель проходит этот тест, она потянет и коммерческие предложения, и аналитические записки, и отчёты.

Каждой модели отправляем XML-структурированный промпт (~1000 токенов) с инструкцией: написать полный урок. Temperature 0.65, max_tokens 16384. Пять разных бизнес-тем из разных доменов:

  • B2B-продажи: SPIN, Challenger, MEDDIC
  • Commercial
  • Финансовое планирование и cash flow
  • Управление рисками в цепочках поставок
  • Operations
  • Стратегическое ценообразование
  • Commercial
  • Управление талантами и удержание

Пять тем, а не одна — потому что одна точка данных ничего не значит. Это как оценивать футболиста по одному удару. Одна модель может блестяще написать про продажи и провалить финансы. Пять тем дают стабильную картину.

После генерации — автоматические проверки: CJK-символы в русском тексте, заголовки, скопированные из промпта (prompt plagiarism), теги , фразы «As an AI…», битый Mermaid-синтаксис. Всё это ловится за секунды.

Что не ловится автоматикой — англицизмы. Китайский иероглиф — однозначный артефакт, регулярка справится. Но «performance management» в тексте про HR — это норма или модель не смогла перевести? А «cash flow» в тексте про финансы? Мы до сих пор спорим, где провести границу. Пока решаем вручную. Честная нерешённая проблема.

Финальная оценка — Claude Opus 4.6 в режиме максимального reasoning. Единственный судья. Почему — объясняется ниже.

Критерии оценки:

  • Семантическое качество — 35 баллов
  • Практическая ценность — 25
  • Соответствие заданию — 15
  • Отсутствие галлюцинаций — 10
  • Структура и навигация — 10
  • Визуализация — 5

Плюс бонусы за уникальные инсайты и штрафы за артефакты.

И отдельно — Value Score. Формула, учитывающая и качество, и цену:

Логарифм здесь не для красоты. С линейной шкалой GPT-5.4 (0.016) и Qwen3 235B ($0.0008) получали почти одинаковый cost_norm (~0), потому что обе «бесконечно дороже» Qwen. Разница в 6 раз исчезала. Логарифмическая шкала даёт GLM-5 справедливые 0.46 против 0.13 у GPT-5.4. Середина перестаёт быть мёртвой зоной, и формула отражает реальность: модель за $0.016 — это не то же самое, что за $0.10.

Один судья лучше трёх

Мы начинали с трёх судей: Claude с двойным весом, DeepSeek как primary, Qwen как secondary. Казалось логичным — коллегиальная оценка. Три мнения лучше одного.

Нет. Три мнения хуже одного, если одно из них систематически врёт.

LLM-судьи раздувают баллы на 15–30 пунктов. Не случайно, не иногда — систематически. Secondary judge (Qwen) оценивал Qwen-модели на 127 из 100 — это не bias, это абсурд. При расхождении больше 15% добавляли tiebreaker (Gemini), что ещё сильнее размывало результат.

Пример: MiMo V2 Flash. В февральском тесте с тремя судьями — 100 баллов. Tier S, лидер! В апрельском тесте с Claude-only — 76 баллов. Разница 24 балла — пропасть между «ставим в production» и «подождём следующую версию».

Есть научная подкладка. Исследование «Play Favorites» (arxiv 2508.06709) измерило self-bias у LLM-судей: GPT-4o завышает оценки своих выводов на ~10%, Claude — на ~25%. Механизм простой: модели предпочитают текст с низкой perplexity, то есть стилистически похожий на их собственные генерации. Узнают «родной почерк» даже в слепом тесте.

Наш вывод: лучше один честный судья с известным bias, чем три, из которых один врёт, а ты не знаешь когда. (Кстати, это напоминает code review: один строгий ревьюер полезнее, чем трое, которые ставят approve не глядя.)

Да, Claude оценивает себя в этом тесте. Мы это не прячем — в таблице стоит звёздочка. Claude Opus 4.6 набрал 96 баллов, Claude Sonnet 4.6 — 95. Возможно, реальные цифры на 5–10% ниже. Мы осознанно приняли этот trade-off: один судья с предсказуемым bias лучше, чем зоопарк с непредсказуемыми. А в production-пайплайне мы не используем Claude для оценки своих же выводов — там другая модель.

18 моделей: кто победил

Полный лидерборд по качеству (Claude Score, 100-балльная шкала):

  • Claude Opus 4.6
  • Claude Sonnet 4.6
  • EN headers
  • Qwen3 235B
  • MiMo V2 Pro
  • MiniMax M2.5
  • DeepSeek V3.2
  • MiniMax M2.7
  • Gemma 4 31B
  • MiMo V2 Flash
  • GPT-OSS 120B
  • MiMo V2 Omni

*self-evaluation bias — Claude оценивает себя

А теперь — Value Score. Формула «цена/качество», ради которой всё затевалось:

  • Qwen3 235B
  • Gemma 4 31B
  • DeepSeek V3.2
  • GPT-OSS 120B
  • MiniMax M2.5
  • Claude Opus 4.6

GPT-5.4 — лидер по качеству. Седьмой по value. Claude Opus — второй по качеству. Восьмой по value. А Qwen3 235B — восьмой по качеству и первый по value. В 130 раз дешевле GPT-5.4 при разнице в 9 баллов.

Оговорка про Qwen3 235B: $0.0008 за вызов — это текущая цена на OpenRouter, и она аномально низкая. Обычно модель стоит дороже. Цены на OpenRouter плавают — провайдеры устраивают промо-периоды. Value Score пересчитается, когда цена вернётся к нормальной. Но даже при цене в 5–10 раз выше она останется в топ-3 по value — качество у неё реальное, это не скидочный артефакт.

Для тех, кто строит production-пайплайны — это не академический интерес. Это разница между $1000 и $8 в месяц за 10 000 генераций.

Отдельно про колонку «Avg слов». Мы просили 3000 слов. GPT-5.4 стабильно выдаёт 3400+ — единственная модель, которая последовательно перевыполняет задание. Kimi K2 обрезает на 1449 словах — у неё жёсткий лимит в 4096 токенов. Gemma 4 при 31B параметрах — 1700 слов, но каждое слово по делу. MiMo V2 Omni выдаёт 1852 слова с пятью CJK-артефактами — коротко и с мусором.

Что мы не ожидали найти

Китайские иероглифы как системная болезнь. 7 из 18 моделей вставляют CJK-символы в русский текст. Не по ошибке — системно, воспроизводимо. MiMo V2 Omni — рекордсмен: «静态的 бухгалтерский учет» появляется во всех пяти уроках. DeepSeek V3.2 — «в内部нем обсуждении». MiniMax M2.7 — «典型ный пример». GLM-5 — «成本低ых» вместо «низкозатратных».

Это не баг. Это системная проблема моделей, обученных на мультиязычных корпусах с преобладанием китайского. Токенизатор «путает» языковые границы. Для англоязычных задач — не проявляется. Для русских — проявляется регулярно. И ни один публичный бенчмарк этого не покажет.

GPT-5.2 копирует промпт. Во всех пяти темах вставляет инструкции из промпта прямо в заголовки: «## Введение — Hook (statistic) + preview (100-150 words)». Это не заголовок — это строка из XML-промпта. Prompt plagiarism. Модель за $0.03 не отличает инструкцию от контента.

Gemma 4 31B удивила всех. 31 миллиард параметров — в разы меньше остальных. Но 82 балла и Tier A. Чистый русский, ни одного артефакта. И единственная модель из 18, которая в уроке по ценообразованию упомянула метод Ван Вестендорпа — психологическую технику определения оптимальной цены. Остальные 17 прошли мимо. При её размере каждый токен несёт больше смысла, чем у моделей в 10 раз крупнее.

MiMo V2 Pro — нестабильна. На одной теме — 95 баллов, Tier S. На другой — 80 баллов и 1529 слов вместо 3000. Разброс 15 баллов — максимальный среди топ-10. Если поставить её в production, в одном уроке из пяти клиент получит сокращённую версию. Battle test из пяти тем ловит такую нестабильность. Тест из одной — нет.

Англицизмы хуже иероглифов. CJK — регулярка, автопроверка, готово. А с английскими вставками сложнее. «Supply chain» — норма. «Key performance indicators» — тоже. А «Let’s consider the following approach» посреди русского абзаца — это артефакт, модель переключилась на английский.

Граница размыта. Автоматическая проверка даёт кучу ложных срабатываний — не отличает IT-термин от сбоя. Пока решаем ручной проверкой с whitelist’ом допустимых английских терминов. Whitelist растёт с каждым тестом. Это открытая задача. Если у кого-то есть идея — пишите.

$95 и зачем мы это делаем

Все тесты — за наш счёт. $95 на API-ключе OpenRouter. Это сожжённые деньги. Не бюджет клиента, не грант. Личные деньги, потраченные на то, чтобы 18 моделей сгенерировали десятки уроков, которые никто не будет читать — только ради сравнения. $95 — это не один прогон. Финальный тест 18 моделей обошёлся в $3. Остальные $92 — десятки итераций: отладка промптов, калибровка судей, эксперименты с тремя судьями (которые выбросили), тестирование старых моделей. Путь к $3 стоил в 30 раз дороже самого теста.

Мы делаем это, потому что сами строим продукт, где LLM генерирует контент для клиентов. Нам нужно знать, какую модель ставить. Публичные бенчмарки этого не говорят — мы проверили.

Результаты мы не прячем. У нас есть интерактивный лидерборд с фильтрами — но ссылку не ставим. Хабр не любит, когда статьи превращаются в воронку на внешний сайт. Кому интересно — ссылка в посте в Telegram. Там же обновления после каждого прогона: новые модели, цены, пересчёт value.

Нас спрашивают: «А зачем вам это?». Затем, что мы сами выбираем модель для production каждый месяц. Рынок LLM меняется быстрее, чем успеваешь обновить конфигурацию. Модель, которая была лидером по value в феврале, может потерять позицию в апреле. Тестирование — не разовый проект, это рутина. И раз уж мы всё равно прогоняем тесты — почему бы не поделиться результатами.

Хотите, чтобы протестировали конкретную модель, которой нет в лидерборде? Пишите @maslennikovig — добавим в следующий прогон.

Как адаптировать под свои задачи

Наш тест заточен под образовательный контент, но подход работает для любой генерации. Замените наши пять бизнес-тем на свои реальные сценарии — то, что модель будет генерировать в production. «Напиши коммерческое предложение на пять страниц для логистической компании» — вот это тест. «Сгенерируй текст» — нет.

Судью берите одного, и не того, кого тестируете. Мы прошли через эксперимент с тремя — не повторяйте. LLM-судьи раздувают баллы для «своих», даже в слепом тесте. Один судья с известным bias — предсказуем. Три с неизвестным — лотерея.

Артефакты проверяйте автоматически. CJK-символы, prompt plagiarism, теги — всё это ловится регуляркой и должно быть в пайплайне до оценки качества. Если модель вставляет иероглифы — не имеет значения, насколько хорош текст вокруг. Клиент видит «典型ный пример» и закрывает страницу.

Стоимость считайте из реальных API-ответов: usage.total_tokens × price_per_token. Прайс-листы — это ценник до скидок и лимитов. Реальный cost-per-call зависит от длины вывода, а она у каждой модели разная. GPT-5.4 генерирует 3400+ слов — дороже не только из-за цены за токен, но и из-за длины. Qwen3 235B — 2400 слов. Экономия и на цене, и на объёме.

Для value score — логарифмическая шкала. Линейная превращает всё, что дороже копейки, в одинаковое «дорого». А если не хотите считать value самостоятельно — используйте нашу формулу. Она в статье, лицензий не требуется.

Вместо морали

Лучший бенчмарк — тот, который тестирует вашу задачу. MMLU не скажет, справится ли модель с уроком по supply chain management на русском. HumanEval не скажет, вставит ли она иероглифы в текст для клиента. LMSYS не скажет, сколько это будет стоить при 10 000 вызовов в месяц.

Мы построили свой тест. Потратили $95, нашли кучу сюрпризов, и теперь знаем, что ставить в production. Если вы строите что-то, где LLM генерирует контент для людей — постройте свой бенчмарк. Это проще, чем кажется: пять реальных задач, один судья, автоматические проверки на артефакты, формула value score. Всё.

А если хотите начать с наших данных — они открыты. Без регистрации, без подписки, без «оставьте email».

Лидерборд и обновления — в канале. Инструменты — на GitHub. Вопросы, предложения по моделям для тестирования, или просто поговорить — @maslennikovig.

Читать оригинал