Ваша языковая модель только что уверенно заявила, что Наполеон проиграл битву при Ватерлоо в 1816 году. Вы ей верите? А если она так же уверенно пишет код с уязвимостями или медицинские рекомендации из альтернативной реальности? Проблема галлюцинаций LLM — не новость, но как ее измерить, кроме как вручную проверять каждый ответ? FACTS Benchmark Suite — это инструмент, который превращает субъективное "мне кажется, она врет" в холодные, объективные цифры.
Что такое FACTS и зачем он нужен
FACTS — это не очередной академический датасет, который пылится на полке arXiv. Это живой, публичный бенчмарк с 3513 тщательно отобранными примерами, который проверяет, насколько модель привязана к реальным фактам. Основа — утверждения из Wikipedia, которые затем искажаются в ключевых местах (даты, имена, числа, отношения). Задача модели — определить, правда это или ложь.
Как устроен измеритель лжи
Под капотом FACTS — это Python-пакет и датасет в формате JSONL. Каждый пример выглядит так:
{
"id": "example_42",
"context": "The Eiffel Tower is a wrought-iron lattice tower on the Champ de Mars in Paris, France. It is named after the engineer Gustave Eiffel, whose company designed and built the tower.",
"claim": "The Eiffel Tower was designed by Gustave Eiffel.",
"label": "SUPPORTS" // или "REFUTES"
}
Методология оценки прямолинейна: подаем контекст и утверждение в модель, просим оценить, поддерживает ли контекст утверждение. Затем сравниваем ответ модели с истинной меткой. Главная метрика — accuracy (доля правильных ответов). Все просто, как молоток. И так же эффективно.
1 Установка и запуск за 5 минут
Не нужно разворачивать серверы или платить за API. Все работает локально.
pip install facts-benchmark
# Скачиваем датасет
wget https://storage.googleapis.com/facts-benchmark/facts.tar.gz
tar -xzf facts.tar.gz
# Запускаем оценку для своей модели
python -m facts.evaluate \
--model_name_or_path your-model-path \
--output_dir ./results
Внимание: если ваша модель требует специфичного формата промптов (например, чат-темплейты), придется покопаться в коде. Разработчики FACTS дали базовую поддержку популярных семейств (Llama, Mistral), но с экзотикой могут быть танцы с бубном.
FACTS против других бенчмарков: кто кого?
TruthfulQA, HellaSwag, MMLU — все они меряют знания или рассуждения. FACTS меряет именно grounding. Это разница между "знает ли модель, что столица Франции — Париж" и "может ли модель понять, что в данном тексте говорится о Париже".
| Бенчмарк | Что измеряет | Размер | Публичный лидерборд |
|---|---|---|---|
| FACTS | Grounding, фактическая точность | 3513 примеров | Да (Kaggle) |
| TruthfulQA | Правдивость, избегание заблуждений | 817 вопросов | Нет |
| HellaSwag | Здравый смысл, завершение ситуаций | ~10k примеров | Да (Papers with Code) |
FACTS выигрывает в конкретике. Он не пытается измерить все сразу. Только одно: если дать модели текст, будет ли она ему следовать или начнет выдумывать? Это критично для RAG-систем, где модель должна строго придерживаться предоставленных документов. Кстати, если ваша модель теряет информацию в середине контекста, вам сюда — Lost in the Middle.
Kaggle leaderboard: публичная порка моделей
Разработчики выложили лидерборд на Kaggle. Там уже есть результаты десятков моделей — от GPT-4 до открытых 7B-параметровых карликов. Картина предсказуема: большие платные модели впереди, открытые — сзади. Но есть и сюрпризы. Например, некоторые модели с высокими показателями на MMLU здесь проваливаются. Почему? Потому что они натренированы на запоминание фактов, а не на их проверку в контексте.
Лидерборд — отличный способ быстро сравнить модели, не запуская свои тесты. Но помните: accuracy в 85% на FACTS не означает, что модель не будет галлюцинировать в вашем приложении. Это лишь один из индикаторов. Для полноценного сравнения моделей используйте специальные промпты и инструменты для визуализации.
Кому FACTS реально пригодится, а кому нет
FACTS — инструмент для конкретных задач. Вот кому он подойдет:
- Разработчики RAG-систем: Если ваша система извлекает документы, а модель их игнорирует и генерирует чушь, FACTS поможет подобрать модель, которая лучше следует контексту.
- Исследователи: Для изучения феномена grounding'а и сравнения архитектур. Например, понять, помогает ли увеличение контекста или специальная тренировка.
- Инженеры по машинному обучению: Для мониторинга деградации модели после дообучения или дистилляции. Упал score на FACTS — что-то пошло не так.
А вот кому FACTS не нужен:
- Тем, кто выбирает модель для чата: Если вам нужна модель для креативных задач, разговоров или генерации кода без жесткой привязки к фактам, FACTS даст мало полезной информации. Лучше посмотрите общие сравнения моделей.
- Новичкам в LLM: Если вы только начинаете, возможно, сначала разберитесь с основами. FACTS — инструмент для продвинутых пользователей.
Ограничения: где FACTS не дотягивает
Инструмент не идеален. Вот его больные места:
- Только английский язык: Датасет собран на английской Wikipedia. Для других языков придется искать аналоги или делать свой.
- Упрощенная задача: FACTS проверяет бинарную классификацию (поддерживает/опровергает). В реальности бывают частичные совпадения, неточности, которые не вписываются в эту схему.
- Статичность данных: Wikipedia меняется, а датасет — нет. Утверждения могут устаревать.
Несмотря на это, FACTS — один из немногих инструментов, которые дают количественную оценку grounding'а. Если вы серьезно работаете с LLM, которые должны придерживаться фактов, добавьте FACTS в свой арсенал. Иначе вы рискуете получить систему, которая, как в эффекте Манделы, создает свою реальность.
Что дальше? Запустите FACTS на вашей текущей модели. Если score ниже 80%, задумайтесь о смене модели или дополнительной тренировке. И не забывайте, что даже лучшая модель на FACTS может ошибаться в реальных условиях. Всегда нужен человеческий надзор. Или хотя бы еще один бенчмарк.