Как это работает
Метод предложен на конференции ICLR 2020 и в исследовании показал лучшую корреляцию с человеческими оценками, чем метрики по совпадению слов [1]. Для русского языка достаточно указать язык в вызове библиотеки, для точности можно выбрать мультиязычную модель явно.
Значения BERTScore трудно интерпретировать в абсолюте, поэтому их часто пересчитывают относительно базовой линии (baseline rescaling).
Пример
1from bert_score import score
2
3P, R, F1 = score(
4 ["Товар можно вернуть в течение 14 дней после получения."],
5 ["Вернуть товар можно в течение 14 дней с момента получения."],
6 lang="ru",
7)
8print(F1.mean().item())Как применять в тестировании ИИ
Используйте как метрику близости смысла для отсева явного брака. Добавляйте отдельные проверки на числа, даты и отрицания, потому что именно их BERTScore пропускает.
Типичные ошибки
- Считать высокий BERTScore признаком правильного факта: «30 дней» вместо «14 дней» остаётся «похожим».
- Сравнивать значения разных моделей без пересчёта на базовую линию.
- Не проверять метрику на «ловушках» с подменённым числом и отрицанием.
Частые вопросы
Что такое BERTScore и чем он лучше BLEU?
BERTScore сравнивает контекстные эмбеддинги токенов, поэтому понимает перифраз и обычно ближе к человеческой оценке, чем BLEU. Но он слабо различает подмену числа и отрицание.
Подходит ли BERTScore для русского языка?
Да, библиотека поддерживает указание языка (lang="ru") и мультиязычные модели. Проверьте метрику на своих данных и ловушках, потому что качество зависит от модели эмбеддингов.
Источники
- BERTScore: Evaluating Text Generation with BERT — Zhang T., Kishore V., Wu F., Weinberger K. Q., Artzi Y., ICLR 2020 (arXiv:1904.09675)