Каждое сравнение моделей, которое вы читаете, — это либо таблица с бенчмарками, которую никто не может воспроизвести, либо субъективный обзор двух моделей, которые автор и без того предпочитал. Поэтому 2 сентября 2026 года мы сделали скучный вариант: одни и те же три промпта, отправленные по одному разу каждой из двенадцати актуальных моделей через наш API, с замером времени стриминга и выставлением счёта по тем ценам, которые реально платит ключ NinjaChat. Ничто из приведённого ниже не было отредактировано, отобрано по лучшим результатам или запущено повторно ради более красивых цифр.
Коротко о главном. Все двенадцать написали корректную функцию слияния интервалов, собственные тесты которой проходят. GPT-5.6 Terra в среднем быстрее всех доходил до первого токена и оказался самым быстрым по части кода — менее трёх секунд. GPT-5.6 Luna и gpt-oss-120b разделили звание самых дешёвых: около десятой доли цента за все три ответа. Два самых дорогих отдельных ответа за день — совет основателю от Kimi K3 (1034 токена рассуждений, 27 секунд) и код от Claude Opus 5, который одновременно является самым тщательным кодом за весь день. Между этими крайностями интересные различия касались вовсе не корректности. Они касались того, сколько каждая модель думает перед тем, как заговорить, какой хост её обслуживал, и во что всё это обходится.
Методология
- Дата и место: 2 сентября 2026 года, один день после полудня, один ноутбук на домашнем подключении в США.
- Маршрут: каждый запрос шёл через NinjaChat API,
POST /api/v1/chat/completions, с обычным ключом из playground. Задержка, которую вы видите, включает наш роутинг, выбранного нами провайдера и собственное время провайдера. В столбце «Обслужено» указан конкретный провайдер для каждого ответа. - Модели: Claude Opus 5, GPT-5.5, GPT-5.6 Sol, GPT-5.6 Terra, GPT-5.6 Luna, Kimi K3, Gemini 3.7 Flash, GLM-5.2, GLM-4.7, MiniMax M3, gpt-oss-120b и Qwen 3.8 Flash.
- Настройки: temperature 0.7, ограничение вывода 2500 токенов, стриминг включён с отчётом об использовании, все остальные параметры оставлены по умолчанию для каждой модели. Большинство этих моделей рассуждают по умолчанию, и наш API отдельно отчитывается по токенам рассуждений в отличие от видимого вывода, поэтому оба столбца присутствуют в каждой таблице. Два хоста — DeepInfra для GLM-4.7 и Fireworks для GLM-5.2 — отчитываются о рассуждениях внутри счётчика вывода, поэтому в этих строках стоит большое число выходных токенов и ноль в столбце рассуждений.
- Тайминг: время до первого токена — момент прихода первого видимого символа ответа после любых скрытых рассуждений. Общее время — до закрытия стрима. Запросы выполнялись по одному, без параллелизма, после разогревочного запроса к каждой модели, так что ничто из приведённого ниже не включает холодный старт на нашей стороне.
- Стоимость: сумма, которую наш API отчитался как выставленная к оплате за данный запрос, с точностью до десятитысячной доллара. Никаких оценок по прайс-листу.
- Один запуск на ячейку. Без повторных попыток, без выбора лучшего из трёх. Второй запуск не воспроизведёт эти числа до запятой. Но должен воспроизвести рейтинг.
Три промпта скопированы дословно из разделов «Реальные ответы» на страницах наших моделей, так что вы видите здесь те же самые задачи, что показаны на этих страницах:
- «Напиши на Python функцию, которая объединяет перекрывающиеся интервалы, плюс три коротких теста. Уложи весь ответ в 40 строк кода.»
- «Примерно в 120 словах объясни начинающему основателю, когда выбрать монолит вместо микросервисов, и назови один сигнал, означающий, что пора разделять.»
- «Перепиши это предложение тремя способами, каждый в явно отличающемся тоне (простой, игривый, официальный): "Our app makes budgeting easy." Подпиши каждый вариант.»
Промпт 1: слияние перекрывающихся интервалов
Отсортировано по общему времени. Все приведённые ниже ответы прошли собственные тесты при запуске кода.
| Модель | Обслужено | Время до первого токена | Общее время | Выходные токены | Токены рассуждений | Выставлено за этот ответ |
|---|---|---|---|---|---|---|
| GPT-5.6 Terra | OpenAI | 1,5 с | 2,9 с | 184 | 0 | $0,0023 |
| Gemini 3.7 Flash | 2,8 с | 3,3 с | 232 | 445 | $0,0052 | |
| MiniMax M3 | Fireworks | 3,3 с | 4,9 с | 285 | 271 | $0,0008 |
| gpt-oss-120b | Fireworks | 4,4 с | 6,3 с | 280 | 434 | $0,0006 |
| GPT-5.6 Luna | OpenAI | 5,9 с | 7,2 с | 171 | 374 | $0,0007 |
| Claude Opus 5 | Anthropic | 3,7 с | 8,6 с | 621 | 89 | $0,0180 |
| Qwen 3.8 Flash | Novita | 8,1 с | 9,1 с | 175 | 757 | $0,0005 |
| GPT-5.6 Sol | OpenAI | 8,8 с | 10,7 с | 194 | 26 | $0,0046 |
| GLM-5.2 | Fireworks | 12,9 с | 14,6 с | 989 | 0 | $0,0045 |
| Kimi K3 | Fireworks | 16,5 с | 21,7 с | 309 | 771 | $0,0166 |
| GPT-5.5 | OpenAI | 9,5 с | 29,4 с | 196 | 60 | $0,0079 |
| GLM-4.7 | DeepInfra | 60,6 с | 67,1 с | 1363 | 0 | $0,0031 |
Двенадцать из двенадцати — корректно, что говорит о том, что для любой современной модели это решённая задача. Различия — во вкусовых предпочтениях, в том, как модель тратит токены, и в одном случае — в том, что именно она понимает под словом «тест».
Самый лаконичный ответ пришёл от GLM-4.7: четырнадцать строк, без комментариев, без отдельной проверки пустого ввода, потому что цикл обрабатывает её сам.
def merge_intervals(intervals):
intervals.sort(key=lambda x: x[0])
merged = []
for start, end in intervals:
if not merged or start > merged[-1][1]:
merged.append([start, end])
else:
merged[-1][1] = max(merged[-1][1], end)
return merged
Claude Opus 5 пошёл в другую сторону. Это единственная версия с docstring, тремя именованными тест-функциями, покрывающими пустой ввод, одиночный элемент, смежные, несортированные и вложенные интервалы, а также примечанием о том, что смежные интервалы сливаются, поскольку сравнение замкнутое, с однобуквенным изменением для полуоткрытой семантики. Это также ответ, наиболее вероятно раздражающий строгого читателя: кодовый блок ровно в 40 строк при промпте, просившем уложиться в менее чем 40. Kimi K3 написал следующую по тщательности версию: одна тест-функция с тремя прокомментированными случаями, несортированный и вложенный ввод.
Семейство GPT произвело почти одинаковую функцию четырежды. Terra справился за 2,9 секунды без токенов рассуждений и без docstring — самый быстрый ответ на этот промпт. Sol добавил docstring и вернул кортежи. Luna размышлял 374 токена на пути к самому короткому ответу среди GPT. GPT-5.5 написал ту же функцию, что и Sol, после чего поток завис: первый токен через 9,5 секунды, последний — через 29,4, при этом вывод составил 196 токенов. Это тот тип единичного события, который второй запуск, вероятно, не воспроизведёт, — именно поэтому мы об этом и говорим.
MiniMax M3 — строка, которую стоит перечитать. Его три «теста» — это операторы print с ожидаемым значением в комментарии рядом, которые не могут упасть. Код верный, мы его запускали, но модель ответила на несколько иной вопрос, чем тот, что задавался. Четыре модели — Gemini 3.7 Flash, GLM-4.7, MiniMax M3 и Qwen 3.8 Flash — сортируют список прямо у вызывающего, что нормально для сниппета и является багом в библиотеке.
Медленные строки — это строки о хостах. GLM-4.7, обслуживаемый DeepInfra, добирался до первого символа целую минуту; хост считает его рассуждения внутри 1363 выходных токенов. Kimi K3 на Fireworks размышлял 771 токен и занял 22 секунды.
Вердикт: Terra для подобной функции. Opus 5, если вам нужен ответ, который чему-то учит, и вы готовы принять 40 строк.
Промпт 2: монолит или микросервисы
| Модель | Обслужено | Время до первого токена | Общее время | Выходные токены | Токены рассуждений | Выставлено за этот ответ |
|---|---|---|---|---|---|---|
| MiniMax M3 | Fireworks | 2,5 с | 4,0 с | 177 | 76 | $0,0004 |
| GPT-5.6 Luna | OpenAI | 2,6 с | 4,4 с | 165 | 75 | $0,0003 |
| GPT-5.6 Terra | OpenAI | 2,4 с | 4,6 с | 167 | 0 | $0,0021 |
| Gemini 3.7 Flash | 4,3 с | 4,6 с | 160 | 901 | $0,0081 | |
| GPT-5.5 | OpenAI | 2,7 с | 5,0 с | 163 | 31 | $0,0061 |
| gpt-oss-120b | Fireworks | 5,5 с | 6,5 с | 180 | 70 | $0,0003 |
| Claude Opus 5 | Anthropic | 2,7 с | 7,5 с | 332 | 23 | $0,0092 |
| GPT-5.6 Sol | OpenAI | 7,0 с | 10,0 с | 164 | 238 | $0,0082 |
| GLM-5.2 | Fireworks | 15,0 с | 16,5 с | 1259 | 0 | $0,0057 |
| Kimi K3 | Fireworks | 23,8 с | 26,9 с | 170 | 1034 | $0,0185 |
| Qwen 3.8 Flash | Novita | 29,9 с | 30,9 с | 162 | 3810 | $0,0019 |
| GLM-4.7 | DeepInfra | 78,9 с | 86,2 с | 1063 | 0 | $0,0024 |
Каждая модель дала один и тот же заголовочный совет: начинайте с монолита, — что является верным заголовочным советом. Вопрос на самом деле касался второй части: назовите один сигнал, означающий, что пора разделять. Ответы разбились на два лагеря.
Организационный лагерь считал сигналом людей. Kimi K3: «команды больше не могут деплоиться независимо», с предупреждением, что разбиение по неверным швам даёт «распределённый монолит: всю операционную боль, но ни капли независимости». Gemini 3.7 Flash назвал это «организационным узким местом» и добавил фразу: «микросервисы — инструмент для масштабирования человеческих организаций и скорости деплоя, а не ранних стадий кодовой базы». GLM-5.2 назвал это «конкуренцией при деплое». GLM-4.7 сказал «организационное трение» и предложил тест: если уже ни один человек не может понять всю систему целиком, вы переросли монолит.
Лагерь узких мест считал сигналом конкретную часть системы. Claude Opus 5 сделал это осязаемым: «CPU-интенсивный транскодер видео, который голодает ваше API», — и завершил лучшей фразой дня: «Всё остальное — "кажется беспорядком", "Netflix так делает" — не является сигналом». GPT-5.6 Sol: «разделяйте, когда чётко определённая часть продукта регулярно нуждается в независимом деплое или масштабировании, а монолит это ощутимо не позволяет», — затем: «выделите только эту границу, дайте ей чёткий интерфейс и владельца, а всё остальное оставьте вместе». Luna добавила предложение, которое все остальные забыли: выделите — «измерьте улучшение» — и остановитесь. MiniMax M3 уместил ту же идею в меньше слов и одну запоминающуюся фразу: «Преждевременное разбиение убивает больше стартапов, чем плохой код».
Таблица добавляет то, что скрывает текст. Opus 5 разросся до 162 слов при цели в 120 — самый длинный ответ на этот промпт. Qwen 3.8 Flash размышлял 3810 токенов — более чем в двадцать раз больше того, что написал, — и потратил 31 секунду на то, чтобы сказать что-то разумное. Sol размышлял 238 токенов, занял десять секунд и обошёлся почти вчетверо дороже ответа Terra — ради абзаца, который лучше ровно на одно предложение.
Вердикт: Opus 5, если вам нужен ответ, который вы перешлёте основателю. GPT-5.5 или Terra — за лучший абзац в секунду. MiniMax M3, если дело принципиально в том, что это стоило четыре сотых цента.
Промпт 3: три тона
| Модель | Обслужено | Время до первого токена | Общее время | Выходные токены | Токены рассуждений | Выставлено за этот ответ |
|---|---|---|---|---|---|---|
| gpt-oss-120b | Fireworks | 1,6 с | 1,8 с | 62 | 41 | $0,0002 |
| GPT-5.6 Luna | OpenAI | 1,6 с | 2,1 с | 44 | 0 | $0,0001 |
| GPT-5.6 Sol | OpenAI | 2,2 с | 3,2 с | 47 | 0 | $0,0011 |
| GPT-5.6 Terra | OpenAI | 2,4 с | 3,3 с | 54 | 0 | $0,0008 |
| GPT-5.5 | OpenAI | 2,2 с | 3,4 с | 47 | 0 | $0,0016 |
| MiniMax M3 | Fireworks | 3,0 с | 3,4 с | 55 | 191 | $0,0004 |
| Gemini 3.7 Flash | 3,3 с | 3,4 с | 57 | 429 | $0,0037 | |
| Claude Opus 5 | Anthropic | 2,8 с | 3,9 с | 101 | 28 | $0,0035 |
| Qwen 3.8 Flash | Novita | 6,3 с | 6,7 с | 44 | 48 | $0,0001 |
| Kimi K3 | Fireworks | 9,2 с | 10,2 с | 69 | 413 | $0,0076 |
| GLM-5.2 | Fireworks | 10,8 с | 11,3 с | 747 | 0 | $0,0034 |
| GLM-4.7 | DeepInfra | 68,6 с | 69,7 с | 1049 | 0 | $0,0024 |
Это промпт, обнажающий небрежное чтение. gpt-oss-120b и Qwen 3.8 Flash оба вернули исходное предложение без изменений в качестве «простого» варианта. Это защитимое прочтение слова «простой» и очевидный промах слова «перепиши». gpt-oss-120b делает это при каждом запуске данного теста, который мы проводили, — это устойчивая особенность, а не случайность.
Две модели написали игривую фразу с настоящим голосом. Kimi K3: «Бюджетирование? Проще простого. Наше приложение берёт на себя все расчёты — вам и делать ничего не нужно!» Claude Opus 5: «Бюджетирование раньше было рутиной — теперь это буквально тап, свайп — и готово.» Opus 5 также написал единственный официальный вариант с конкретным утверждением — «сокращая финансовую рутину до нескольких минут в месяц», — тогда как все остальные прибегали к абстракциям. Семь из двенадцати использовали где-нибудь выражение «a breeze», одиннадцать из двенадцати употребили «streamlines» в официальном варианте. Официальная версия Gemini, «seamless budget optimization and fiscal clarity», — именно то, что стоит показать своей маркетинговой команде в качестве предостережения.
Настоящая история здесь — в стоимости. GLM-4.7 потратил 70 секунд на 32 слова, потому что его хост отчитался о 1049 выходных токенах за них — большинство из которых составляют рассуждения, которые он не детализирует. Luna и Qwen 3.8 Flash каждый справился с задачей за сотую доли цента, Luna — за две секунды. Если ваш продукт перефразирует предложения в промышленных масштабах, это решение о стоимости, а не о качестве, — если только вам специально не нужен голос Opus 5 или Kimi.
Вердикт: Opus 5 или Kimi K3 для текста, который будет читать человек, Luna — для текста, который будет читать конвейер.
Весь день в одной таблице
Сколько каждой модели было выставлено за все три ответа, от самой дешёвой, с указанием обслужившего провайдера и прайс-листа, по которому каждая модель выставляет счёт на API NinjaChat по состоянию на 2 сентября 2026 года.
| Модель | Выставлено за все три ответа | Среднее время до первого токена | Самый медленный ответ | Обслужено | Цена за 1М токенов вход / выход |
|---|---|---|---|---|---|
| GPT-5.6 Luna | $0,0011 | 3,4 с | 7,2 с | OpenAI | $0,2 / $1,2 |
| gpt-oss-120b | $0,0011 | 3,8 с | 6,5 с | Fireworks | $0,35 / $0,75 |
| MiniMax M3 | $0,0016 | 2,9 с | 4,9 с | Fireworks | $0,3 / $1,2 |
| Qwen 3.8 Flash | $0,0025 | 14,8 с | 30,9 с | Novita | $0,15 / $0,47 |
| GPT-5.6 Terra | $0,0052 | 2,1 с | 4,6 с | OpenAI | $2 / $12 |
| GLM-4.7 | $0,0079 | 69,4 с | 86,2 с | DeepInfra | $0,6 / $2,2 |
| GLM-5.2 | $0,0136 | 12,9 с | 16,5 с | Fireworks | $1,4 / $4,4 |
| GPT-5.6 Sol | $0,0139 | 6,0 с | 10,7 с | OpenAI | $4 / $20 |
| GPT-5.5 | $0,0156 | 4,8 с | 29,4 с | OpenAI | $5 / $30 |
| Gemini 3.7 Flash | $0,0170 | 3,5 с | 4,6 с | $1,5 / $7,5 | |
| Claude Opus 5 | $0,0307 | 3,1 с | 8,6 с | Anthropic | $5 / $25 |
| Kimi K3 | $0,0427 | 16,5 с | 26,9 с | Fireworks | $3 / $15 |
Из этого следуют три закономерности.
Рассуждения — это скрытая цена. Kimi K3 по прайсу дешевле трёх топовых моделей, но оказался самой дорогой моделью дня, потому что размышлял от 400 до 1000 токенов на каждом промпте, включая перефразирование. Gemini 3.7 Flash по той же причине обошёлся дороже GPT-5.5. Самый дорогой ответ Sol — не самый длинный, а тот, над которым он думал. Если для задачи не нужна цепочка рассуждений, выбирайте модель, которая не делает этого по умолчанию, или снижайте интенсивность рассуждений там, где API это позволяет.
Дёшево теперь по-настоящему хорошо. Luna, gpt-oss-120b и MiniMax M3 написали корректный код, разумные советы и пригодный текст за сумму от десятой до шестой доли цента каждый — все три промпта вместе. Два года назад модели этого уровня провалились бы на задаче с кодом.
Хост — часть задержки. GLM-4.7 на бумаге быстрая модель и оказалась самым медленным объектом в тесте, потому что обслуживавший её хост тратил минуту на запуск каждого ответа. Kimi K3 и GLM-5.2 на Fireworks были быстры, когда начинали писать, и медленны до этого момента. Модели OpenAI, Google и Anthropic отвечали напрямую из лабораторий. Именно поэтому наш API показывает аптайм и задержку по провайдеру, а не по модели, и именно поэтому столбец «Обслужено» присутствует в каждой таблице выше.
Какую модель для чего выбрать
- Нужен лучший ответ, цена вторична: Claude Opus 5. Самый тщательный код, ответ основателю, который вы действительно перешлёте, единственный рерайт с конкретным утверждением, и в среднем 3 секунды до первого токена.
- Нужно качество фронтира по средней цене: GPT-5.6 Terra. Самое быстрое время до первого токена во всём сете, рассуждения только там, где вопрос их требует, счёт за день — менее половины от Sol.
- Нужна самая мощная модель OpenAI вне зависимости от цены: GPT-5.5, но обратите внимание на потолок вывода в 32К токенов, прежде чем направлять её на длинные генерации.
- Работаете с высоконагруженным конвейером: GPT-5.6 Luna или MiniMax M3. Десятая — шестая доля цента за весь набор задач, всё под пять секунд на двух текстовых промптах.
- Нужна большая модель с открытыми весами и длинным контекстом: Kimi K3 для написания текстов, GLM-5.2 по цене — и закладывайте время на рассуждения для обоих.
- Нужен текст, который будут читать люди: Opus 5, затем Kimi K3. Пропустите две модели, вернувшие исходное предложение.
Запустите сами
Каждая из перечисленных выше моделей доступна на NinjaChat API одним изменением строки model — API совместим с OpenAI. Аккаунт с подтверждённым номером телефона получает стартовый баланс $0,50, карта нужна только для пополнения. Подставьте нужный id и повторите любой промпт из этой статьи. В ответе будет указано, что с вас списали и какой провайдер вас обслужил.
curl https://www.ninjachat.ai/api/v1/chat/completions \
-H "Authorization: Bearer $NINJACHAT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-terra",
"messages": [{"role": "user", "content": "In about 120 words, tell a first-time founder when to choose a monolith over microservices, and the one signal that means it is time to split."}],
"max_tokens": 2500,
"temperature": 0.7,
"stream": true,
"stream_options": {"include_usage": true}
}'
import time
from openai import OpenAI
client = OpenAI(base_url="https://www.ninjachat.ai/api/v1", api_key="YOUR_KEY")
for model in ["claude-opus-5", "gpt-5.6-terra", "minimax-m3"]:
t0 = time.perf_counter()
first = None
stream = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": "Rewrite three ways (plain, playful, executive): Our app makes budgeting easy."}],
max_tokens=2500,
temperature=0.7,
stream=True,
stream_options={"include_usage": True},
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content and first is None:
first = time.perf_counter() - t0
if chunk.usage:
print(model, "reasoning tokens:", chunk.usage.completion_tokens_details.reasoning_tokens)
print(model, "first token", round(first, 2), "s, total", round(time.perf_counter() - t0, 2), "s")
Актуальные цены по каждой модели без необходимости в ключе доступны по GET https://www.ninjachat.ai/api/v1/models. Пользовательская сторона — те же модели в окне чата: выберите любую на странице /models на платном плане.
Часто задаваемые вопросы
Какая модель была самой быстрой в этом тесте? GPT-5.6 Terra: в среднем 2,1 секунды до первого токена и самый быстрый полный ответ на задаче с кодом — 2,9 секунды. Следом — MiniMax M3 и Claude Opus 5, оба примерно по три секунды до первого токена в среднем.
Какая модель была самой дешёвой? GPT-5.6 Luna и gpt-oss-120b разделили первое место с примерно десятой долей цента за все три ответа по выставленному счёту NinjaChat API на 2 сентября 2026 года. MiniMax M3 немного отстал.
Кто-то ошибся на задаче с кодом? Нет. Все двенадцать моделей написали функцию слияния, собственные тесты которой проходят. Claude Opus 5 попал ровно в 40 строк, MiniMax M3 выводил результаты через print вместо assert, а четыре модели сортируют список прямо у вызывающего — это важно знать, если вы копируете код в библиотеку.
Почему GLM-4.7 и Kimi K3 такие медленные в таблицах? Рассуждения и хостинг в связке. Оба долго думают перед тем, как начать писать, а хост, обслуживавший GLM-4.7 в тот день, тратил около минуты на запуск каждого ответа и включал рассуждения в счётчик выходных токенов. На другом хосте или при сниженной интенсивности рассуждений оба оказались бы в середине таблицы.
Почему одна и та же модель стоит по-разному на разных промптах? Потому что токены рассуждений тарифицируются как выходные. GPT-5.6 Sol потратил 26 токенов рассуждений на промпт с кодом и 238 — на промпт об основателях, поэтому ответ об основателях обошёлся почти вдвое дороже, несмотря на меньший объём.
Могу ли я это воспроизвести? Да. Три промпта приведены выше дословно, настройки перечислены в разделе «Методология», а сниппет на Python замеряет время для любой модели тем же способом, что мы использовали, и выводит токены рассуждений. Рассчитывайте, что абсолютные числа будут меняться от запуска к запуску, а рейтинг — сохраняться.
