Модель с лучшей строчкой в публичном рейтинге может проиграть более дешёвой на вашей задаче. Рейтинг так устроен: он отвечает на другой вопрос.
Почему публичный рейтинг не отвечает на ваш вопрос
Публичные тесты проверяют общие способности: математику, код на типовых задачах, знание фактов. Ваша задача почти всегда уже и специфичнее. Разбор документов одного формата, классификация по вашим категориям, текст в тоне вашего продукта.
Второй повод не верить таблице целиком: популярные наборы данных давно лежат в открытом доступе. Есть подозрение, что часть их содержимого попадает в обучающие данные новых моделей. Тогда модель «помнит» ответ и не решает задачу заново.
Третья причина самая простая. Рейтинг усредняет результат по тысячам разнородных запросов, а в продакшене у вас один тип запроса, который повторяется тысячи раз. Средний балл по чужим задачам про вашу задачу не говорит ничего.
Что такое своя оценка на реальных примерах
Суть такая: берёте двадцать-тридцать настоящих примеров из продукта, для каждого фиксируете правильный или приемлемый ответ, прогоняете через несколько моделей и сравниваете по одной метрике.
Лаборатория для этого не нужна. Это быстрая проверка с одним вопросом: какая модель и какой промпт дают лучший результат на моих данных за мои деньги.
Первый набор за двадцать минут
Шаг первый, пять минут. Соберите двадцать реальных запросов, которые уже приходили в продукт, или напишите близкие к ним. Синтетику не выдумывайте: нужны настоящие формулировки пользователей.
Шаг второй, пять минут. Для каждого запроса запишите, каким должен быть хороший ответ. Хватит одной фразы: «называет сумму и дату», «не придумывает несуществующий товар». Формальные метрики добавите позже, для старта достаточно короткого критерия.
Шаг третий, пять минут. Напишите небольшой скрипт: он прогоняет все двадцать запросов через API с одним и тем же промптом и складывает ответы в файл. Псевдокод:
for item in dataset:
response = call_model(model_id, item.prompt)
save(item.id, model_id, response, tokens_used, latency)
Шаг четвёртый, пять минут. Запустите тот же набор на второй модели, подешевле, и на третьей, если есть кандидат. Положите ответы рядом и вручную отметьте, какие проходят критерий, а какие нет.
Как считать результат, а не оценивать на глаз
Грубая метрика лучше впечатления. Самая простая: доля примеров, где ответ прошёл критерий. Двадцать примеров, пятнадцать прошли, значит 75%.
Вторая цифра: цена. Разделите стоимость всего прогона на число примеров, и получится цена за ответ. Теперь вопрос звучит иначе: не «какая модель умнее», а «какая даёт нужное качество дешевле». Часто выигрывает не флагман, а модель на ступень ниже, которой дали чуть более длинный промпт.
Если ошибка дорого обходится, добавьте третью метрику: долю случаев, когда модель не промахнулась слегка, а уверенно выдумала факт. Такие ответы обходятся дороже обычной неточности.
Ошибки, из-за которых самодельный тест врёт
Три-пять примеров дают случайный результат: модели может повезти или не повезти на конкретных формулировках. Двадцать примеров это разумный минимум, тридцать-пятьдесят надёжнее.
Выдуманные примеры вместо настоящих запросов пользователей тоже подводят. Синтетика обычно проще реальных формулировок, поэтому оценка выходит завышенной.
Третья ловушка: разные промпты для разных моделей. Если каждой досталась своя отшлифованная формулировка, непонятно, что вы сравнили. Сами модели или умение писать промпты?
Когда пересматривать набор
Набор не застывает. Обновляйте его, когда меняется формат входных данных, когда появляется новый класс запросов и когда выходит новая версия модели, которой вы уже пользуетесь. Старая оценка, перенесённая на свежую версию, может ошибаться в обе стороны.
Храните набор и логи ответов рядом с кодом проекта, а не в личных заметках. Через полгода это единственный способ объяснить, почему выбрали именно эту модель.
Коротко
Публичный рейтинг описывает среднюю задачу в среднем мире. Ваша оценка на двадцати реальных примерах с ценой за ответ описывает вашу задачу и ваш бюджет. Начните с малого: двадцать запросов, один скрипт, две модели. Первая цифра появится в тот же час.