Какую LLM ставить в production для контента на русском? Протестировали 18 моделей — одна в 130× дешевле при 91% качества. ai.. ai. benchmarks.. ai. benchmarks. Claude.. ai. benchmarks. Claude. gpt.. ai. benchmarks. Claude. gpt. llm.. ai. benchmarks. Claude. gpt. llm. nlp.. ai. benchmarks. Claude. gpt. llm. nlp. openrouter.. ai. benchmarks. Claude. gpt. llm. nlp. openrouter. Quality Assessment.. ai. benchmarks. Claude. gpt. llm. nlp. openrouter. Quality Assessment. qwen.. ai. benchmarks. Claude. gpt. llm. nlp. openrouter. Quality Assessment. qwen. искусственный интеллект.. ai. benchmarks. Claude. gpt. llm. nlp. openrouter. Quality Assessment. qwen. искусственный интеллект. Машинное обучение.. ai. benchmarks. Claude. gpt. llm. nlp. openrouter. Quality Assessment. qwen. искусственный интеллект. Машинное обучение. Управление разработкой.

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

Когда судья и участник — одно лицо: Qwen ставит себе 127 из 100

LLM-судья оценивает сам себя. Что могло пойти не так?

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

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

Мы потом нашли исследование, которое объясняет механизм: модели предпочитают текст с низкой 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 содержали дефектные тесты, а frontier-модели попросту зазубрили правильные патчи. Бенчмарк измерял не качество модели, а качество запоминания.

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

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

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

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

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

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

#

Тема

Домен

1

B2B-продажи: SPIN, Challenger, MEDDIC

Commercial

2

Финансовое планирование и cash flow

Finance

3

Управление рисками в цепочках поставок

Operations

4

Стратегическое ценообразование

Commercial

5

Управление талантами и удержание

HR

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

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

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

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

Критерии оценки: семантическое качество (35 баллов), практическая ценность (25), соответствие заданию (15), отсутствие галлюцинаций (10), структура и навигация (10), визуализация (5). Плюс бонусы за уникальные инсайты и штрафы за артефакты.

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

quality_norm = model_score / max_score
cost_norm = 1 - (log(model_cost) - log(min_cost)) / (log(max_cost) - log(min_cost))
value = 70% × quality_norm + 30% × cost_norm

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

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

Мы начинали с трёх судей. Claude с двойным весом, DeepSeek как primary judge, 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 для оценки Claude-выводов — там другая модель.

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

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

#

Модель

Баллы

Tier

Avg слов

Артефакты

1

GPT-5.4

97

S

3 451

CLEAN

2

Claude Opus 4.6

96

S

2 676

CLEAN*

3

Claude Sonnet 4.6

95

S

2 618

CLEAN*

4

Qwen 3.6+

94

A

2 435

CJK×1

5

GPT-5.2

93

A

2 732

EN headers

6

GLM-5.1

91

A

2 351

CJK×1

7

GLM-5

90

A

2 505

CJK×1

8

Qwen3 235B

88

A

2 410

CLEAN

9

MiMo V2 Pro

88

A

2 027

CLEAN

10

Qwen 3.5+

87

A

2 241

CLEAN

11

MiniMax M2.5

86

A

2 059

CLEAN

12

DeepSeek V3.2

83

A

2 076

CJK×1

13

MiniMax M2.7

83

A

2 230

CJK×2

14

Gemma 4 31B

82

A

1 700

CLEAN

15

Kimi K2

81

A

1 449

CJK+trunc

16

MiMo V2 Flash

76

B

2 019

CJK×1

17

GPT-OSS 120B

73

B

1 518

CLEAN

18

MiMo V2 Omni

70

B

CJK×5

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

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

#

Модель

Value

Баллы

$/вызов

1

Qwen3 235B

93.5

88

$0.0008

2

Gemma 4 31B

85.4

82

$0.0016

3

DeepSeek V3.2

84.7

83

$0.0021

4

GPT-OSS 120B

82.1

73

$0.0009

5

MiniMax M2.5

81.6

86

$0.0056

7

GPT-5.4

70.2

97

$0.1014

8

Claude Opus 4.6

69.4

96

$0.2101

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

Оговорка про Qwen3 235B: $0.0008 за вызов — это текущая цена на OpenRouter, и она аномально низкая. Обычно эта модель стоит дороже. Цены на OpenRouter плавают — провайдеры периодически устраивают промо-периоды, и Qwen3 235B сейчас явно в таком. 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 копирует промпт. Во всех пяти темах GPT-5.2 вставляет инструкции из промпта прямо в заголовки: «## Введение — Hook (statistic) + preview (100-150 words)». Это не заголовок — это строка из XML-промпта. Prompt plagiarism. Модель за $0.03 не отличает инструкцию от контента. Серьёзно?

Gemma 4 31B удивила всех. 31 миллиард параметров — в разы меньше остальных участников. Но 82 балла и Tier A. Чистый русский, ни одного артефакта. И единственная модель из 18, которая в уроке по ценообразованию упомянула метод Ван Вестендорпа — психологическую технику определения оптимальной цены. Остальные 17 прошли мимо. При её размере каждый токен Gemma несёт больше смысла, чем у моделей в 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. Понимаю, звучит как немного — но это именно сожжённые деньги. Не бюджет клиента, не грант, не R&D-статья в отчёте. Личные деньги, потраченные на то, чтобы 18 моделей сгенерировали десятки уроков, которые никто не будет читать, — только для того, чтобы сравнить результат. И $95 — это не один прогон. Финальный тест 18 моделей обошёлся примерно в $3. Остальные $92 — десятки итераций: отладка промптов, калибровка судей, эксперименты с тремя судьями (которые мы потом выбросили), тестирование старых моделей, которые в финальный лидерборд не попали. Путь к $3 стоил в 30 раз дороже самого теста.

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

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

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

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

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

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

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

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

Стоимость считайте из реальных 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.

Автор: Maslennikovig

Источник