Сравнение

Как сравнить модели и не переплатить

Публичные рейтинги не говорят, сколько модель стоит именно на вашей задаче. Здесь — методика честного сравнения: один набор промптов, замер времени и usage, расчёт итога по тарифам каталога.

Для кого: разработчики и команды, выбирающие модель под продукт, бота или агента

Создать API key

Быстрый старт

От ключа до первого ответа

  1. 01

    Определите задачу: соберите 10–20 реальных промптов, шкалу качества и лимиты времени ответа.

  2. 02

    Прогоните фикс-набор: одинаковые промпты и max_tokens на обеих моделях, ID — из каталога.

  3. 03

    Считайте итог: качество, время, usage и стоимость по тарифам каталога — решает баланс, а не один ответ.

Рабочий шаблон

Скопируйте основу и замените модель

Используйте только идентификатор из актуального каталога. Ключ храните в переменной окружения.

Python · прогон одной задачи на двух моделях
import os
import time
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NORMAHUB_API_KEY"],
    base_url="https://api.normahub.cc/v1",
)

prompt = "Сожми отзыв в одно предложение: ..."
for model in ["MODEL_ID_A", "MODEL_ID_B"]:
    start = time.monotonic()
    resp = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": prompt}],
        max_tokens=256,
    )
    elapsed = time.monotonic() - start
    print(model, f"{elapsed:.2f}s", resp.usage)
Один base URL и ключ для всех моделей — замена кандидата без новой интеграции.
История запросов с usage, суммами и request ID — проверка каждого прогона.
Актуальные ставки и калькулятор на странице моделей — считайте по живым цифрам каталога.

Детали решения

Как это устроено

Методология сравнения: одинаковые условия

Фиксируйте всё, что влияет на итог: ID моделей из каталога и ответа /v1/models, параметры вызова, дату и время прогона. Каждый ответ сохраняйте с HTTP-статусом, latency, usage (input, output, cached), итоговой стоимостью из истории кабинета и request ID для разбора. Перед замерами проверяйте страницу статуса — деградация маршрута искажает время и ошибки. Один и тот же набор запускайте на обеих моделях подряд, без изменения промптов и лимитов. Только так разница в качестве и цене принадлежит моделям, а не шуму окружения.

Цена vs качество: младшие против флагманов

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

Контекст и кэш: где прячется счёт

Сравнение по одному короткому промпту врёт: в проде модель везёт системный промпт, историю диалога и RAG-вставки, поэтому вход растёт от запроса к запросу. Меряйте полную длину входа на реальных диалогах — медиану и верхний перцентиль, а не один вызов. Повторяющийся контекст выносите в кэшируемые блоки и проверяйте cached usage в ответе: скидка действует только при подтверждённом кэше. Image-генерации считайте отдельно — фиксированная цена за картинку, а не токенные ставки. Смешивание этих единиц ломает любой сравнительный итог.

Fallback-цепочки: сравнивайте связки, а не одиночек

В проде работает не одна модель, а связка: дешёвая первая попытка, флагман — страховка после ошибки или слабого ответа. Сравнивайте именно такие цепочки по полной стоимости операции: число вызовов, ретраи, разбор ошибок и повторные прогоны. Дорогой fallback, включённый всегда, съедает экономию роутера. Настройте классификатор сложности, лимиты max_tokens и разбор кодов ошибок, затем прогоните фикс-набор целиком через каждую связку. Побеждает связка с лучшим балансом качества и месячного итога, а не самая умная одиночка.

Оплата и контроль расходов

Запросы оплачиваются с предварительно пополненного баланса по актуальным ставкам выбранной модели. Минимум и комиссия показываются перед оплатой в кабинете; лимит расходов задаётся для API-ключа.

Ограничения доступности

Возможности зависят от модели и внешнего маршрута. При недоступности provider запрос может завершиться ошибкой; проверяйте каталог, статус и документацию перед production.

Частые вопросы

Как сравнить две модели на моей задаче?

Зафиксируйте набор из 10–20 реальных промптов, прогоните обе модели с одинаковыми параметрами, оцените качество по своей шкале и сверьте время, usage и итог по тарифам каталога. Побеждает лучший баланс, а не один удачный ответ.

Почему публичные бенчмарки врут про мою задачу?

Бенчмарки меряют усреднённые задания чужими метриками, без вашего контекста, истории диалога и лимитов latency. Модель-лидер рейтинга может проигрывать на ваших промптах и стоить дороже в проде. Доверяйте только прогону своего фикс-набора с замером времени и usage.

Сколько стоит само сравнение?

Обычно копейки: короткие прогоны фикс-набора на двух моделях с лимитом max_tokens стоят доли цента каждый, итог виден в истории кабинета. Ограничьте длину ответов, используйте дешёвые шаги для отладки методики и считайте итог формулой входа и выхода.

Когда выбирать флагман, а не младшую модель?

Когда цена ошибки выше переплаты: сложный код, агенты с инструментами, длинные рассуждения и конфликтные обращения. Для классификации, черновиков и коротких ответов младшей достаточно. Сомневаетесь — прогоните оба класса на фикс-наборе и сравните дельту качества с дельтой счёта.

Где актуальные цены и ID моделей?

В каталоге моделей и ответом /v1/models вашим ключом: ставки входа и выхода, кэш-тарифы и точные идентификаторы. Цены меняются, поэтому не копируйте ID и цифры из чужих статей — берите их из каталога перед каждым прогоном.

Дальше

Сравнивайте в каталоге: живые цены, ставки входа и выхода, калькулятор месячного итога.