Как измерить качество сгенерированного текста?
Конечно, кажется, что можно использовать только метрики, пришедшие из машинного перевода (например, BLEU - считает n-граммы от 1 до 4 слов (униграммы, биграммы, триграммы, 4-граммы) плюс штраф за краткость, ссылка на интересную статью про это).
Кстати, только с 2010 по 2020 было предложено 100+ новых метрик — все мы тут не рассмотрим. Но в эпоху LLM простого сравнения слов уже, мягко говоря, недостаточно 💯.
Основные метрики:
🦋 BLEU плохо работает там, где допустимо множество правильных формулировок.
🤩 ROUGE — recall-ориентированная метрика, считает пересечение n-грамм и самую длинную общую подпоследовательность (ROUGE-L) с эталоном.
☄️ METEOR учитывает точные совпадения, стемминг, синонимы и порядок слов. Обычно лучше коррелирует с человеческой оценкой, чем BLEU.
⚫️ COMET — обученная нейросетевая метрика для перевода. Ее корреляция с человеческими оценками заметно выше, чем у BLEU.
🍄 BERTScore (тут и тут) вместо сравнения слов сравнивает эмбеддинги токенов. Если модель перефразировала предложение без потери смысла, BERTScore это увидит, а BLEU — нет.
😴 MAUVE (тут и тут) оценивает насколько распределение сгенерированных текстов похоже на распределение человеческих.
LLM оценивают LLM
Последние пару лет все большую популярность набирает подход LLM-as-a-Judge, когда одна языковая модель оценивает ответы другой по заранее заданным критериям (релевантность, связность, фактическая корректность, полнота, стиль и т.д.). Одна из самых известных работ почитать на эту тему — G-Eval, где GPT-4 использовался в качестве автоматического эксперта. Авторы показали, что такой подход лучше коррелирует с человеческими оценками, чем классические автоматические метрики.
Но и здесь есть свои проблемы: позиционный bias (при парном сравнении судья чаще выбирает ответ на определённой позиции), склонность завышать оценки длинным и многословным ответам и self-preference — модель предпочитает тексты, похожие на свои собственные. 😭 Поэтому судью тоже нужно валидировать на выборке с человеческой разметкой.
Оценка фактической точности
FActScore (обрати внимание, в названии статьи не расшифровка аббревиатуры!) особенно полезна для RAG-систем, QA и генерации биографий или энциклопедических текстов, где важно не галлюцинировать.
👋Идея очень простая!
Ответ модели разбивается на атомарные факты — минимальные утверждения, которые можно проверить независимо друг от друга. Для каждого факта проверяется, подтверждается ли он надежным источником (например, Wikipedia или документами из RAG). Итоговый FActScore — это доля подтвержденных фактов.
Сегодня качество генерации оценивают не одной метрикой, а сразу по нескольким направлениям :
1⃣ семантическое сходство (BERTScore);
2⃣ качество текста в целом (LLM-as-a-Judge);
3⃣фактическая корректность (например, FActScore для RAG и QA);
4⃣ безопасность (доля harmful-ответов, jailbreak success rate);
5⃣предпочтения пользователей (win rate в A/B-тестах).
Хорошая практика сегодня в том, чтобы комбинировать несколько автоматических оценок, использовать LLM-as-a-Judge и, конечно, сверяться с человеческой разметкой.
Все!
🌱
Конечно, кажется, что можно использовать только метрики, пришедшие из машинного перевода (например, BLEU - считает n-граммы от 1 до 4 слов (униграммы, биграммы, триграммы, 4-граммы) плюс штраф за краткость, ссылка на интересную статью про это).
Кстати, только с 2010 по 2020 было предложено 100+ новых метрик — все мы тут не рассмотрим. Но в эпоху LLM простого сравнения слов уже, мягко говоря, недостаточно 💯.
Основные метрики:
🦋 BLEU плохо работает там, где допустимо множество правильных формулировок.
🤩 ROUGE — recall-ориентированная метрика, считает пересечение n-грамм и самую длинную общую подпоследовательность (ROUGE-L) с эталоном.
☄️ METEOR учитывает точные совпадения, стемминг, синонимы и порядок слов. Обычно лучше коррелирует с человеческой оценкой, чем BLEU.
⚫️ COMET — обученная нейросетевая метрика для перевода. Ее корреляция с человеческими оценками заметно выше, чем у BLEU.
🍄 BERTScore (тут и тут) вместо сравнения слов сравнивает эмбеддинги токенов. Если модель перефразировала предложение без потери смысла, BERTScore это увидит, а BLEU — нет.
😴 MAUVE (тут и тут) оценивает насколько распределение сгенерированных текстов похоже на распределение человеческих.
LLM оценивают LLM
Последние пару лет все большую популярность набирает подход LLM-as-a-Judge, когда одна языковая модель оценивает ответы другой по заранее заданным критериям (релевантность, связность, фактическая корректность, полнота, стиль и т.д.). Одна из самых известных работ почитать на эту тему — G-Eval, где GPT-4 использовался в качестве автоматического эксперта. Авторы показали, что такой подход лучше коррелирует с человеческими оценками, чем классические автоматические метрики.
Но и здесь есть свои проблемы: позиционный bias (при парном сравнении судья чаще выбирает ответ на определённой позиции), склонность завышать оценки длинным и многословным ответам и self-preference — модель предпочитает тексты, похожие на свои собственные. 😭 Поэтому судью тоже нужно валидировать на выборке с человеческой разметкой.
Оценка фактической точности
FActScore (обрати внимание, в названии статьи не расшифровка аббревиатуры!) особенно полезна для RAG-систем, QA и генерации биографий или энциклопедических текстов, где важно не галлюцинировать.
👋Идея очень простая!
Ответ модели разбивается на атомарные факты — минимальные утверждения, которые можно проверить независимо друг от друга. Для каждого факта проверяется, подтверждается ли он надежным источником (например, Wikipedia или документами из RAG). Итоговый FActScore — это доля подтвержденных фактов.
Сегодня качество генерации оценивают не одной метрикой, а сразу по нескольким направлениям :
1⃣ семантическое сходство (BERTScore);
2⃣ качество текста в целом (LLM-as-a-Judge);
3⃣фактическая корректность (например, FActScore для RAG и QA);
4⃣ безопасность (доля harmful-ответов, jailbreak success rate);
5⃣предпочтения пользователей (win rate в A/B-тестах).
Хорошая практика сегодня в том, чтобы комбинировать несколько автоматических оценок, использовать LLM-as-a-Judge и, конечно, сверяться с человеческой разметкой.
Все!
🌱