PLUSH_PYTHON Telegram 41
Как правильно оценивать чатбота-"болталку"?
#ml

На работе мы делаем, в числе прочего, чатбота, который должен уметь поддержать разговор с пользователем на любую (приличную) тему, да так, чтобы непотребного чего-нибудь не ляпнул. С подобными чатботами есть известная проблема - автоматически оценить их качество не очень получается, нужна экспертная - то есть человеческая - оценка. А как её делать эффективно и результативно?

Первое соображение - "болталку" нужно оценивать по достаточно большому количеству примеров. Ещё хорошо, если ответы нашего бота будут случайно перемешаны с ответами других ботов и даже людей. Мы при обучении новой модели отдаём на оценку качества около полутора тысяч её ответов в разных контекстах (причём контексты разной длины). Ну, а чтобы не слишком уж полагаться на отдельно взятого эксперта - мало ли, не с той ноги сегодня встал(а), - делаем оценку с перекрытием. Каждый ответ модели оценивают три эксперта, независимо друг от друга.

Оценка тоже не самая простая. Чем чётче обозначены критерии, тем легче будет работа разметчиков, а значит, тем надёжнее результаты. Есть разные методики оценки, в их числе sensibleness and specificity average (SSA), которую разработали исследователи из Google. Она довольно проста и эффективна: оценивают разумность и специфичность ответов бота. Вот тут можно подробнее прочитать, но если вкратце, разумность - это про адекватность ответов, отсутствие в них бреда и оскорблений, например. Специфичность интереснее: ответы бота не должны быть слишком односложными, короткими, "на все случаи жизни". Простой пример:

Пользователь: У моего сына сегодня день рождения.

Бот А: Отличная песня!
Данный ответ не имеет смысла в этом контексте, поэтому он получает оценку 0 за разумность. Если за разумность 0, то и за специфичность автоматически тоже 0.

Бот Б: Понятно.
Данный ответ, в целом, разумен, но не специфичен, много на что можно сказать "понятно", но развитию темы это не способствует. Поэтому оценки 1 и 0, соответственно.

Бот В: Поздравляю от всей цифровой души. А сколько лет вашему сыну исполняется?
А вот это уже и разумный, и специфичный ответ. Да ещё и с юмором. Кстати, реальный ответ нашего бота. Вот бы он всегда так хорошо отвечал)

Мы добавили к SSA ещё пару дополнительных критериев, важных для бизнес-задачи. Итак, у нас есть оценки от трёх разметчиков по четырём параметрам. Что дальше? Имеет смысл также измерить согласие между аннотаторами. Каппа Коэна - отличная метрика, которую очень легко посчитать с помощью библиотеки scikit-learn. Она лучше, чем просто усреднение ответов разметчиков, потому что учитывает вероятность случайного совпадения. Другими словами, если у вас всего два возможных класса (0 и 1) и их распределение неравномерно, то вероятность случайного совпадения оценок гораздо выше, чем если бы классов было 15 и они встречались бы примерно с одинаковой частотой.

Каппа Коэна считается для каждой пары аннотаторов, благодаря чему мы можем увидеть, например, что ответы одного из разметчиков сильно отличаются от ответов двух других. Это может говорить о том, что данный эксперт не так понял задачу и его следует проинструктировать ещё раз. Или возможна ситуация, когда у всех троих разметчиков очень разные оценки по одному из критериев - тогда, возможно, данный критерий стоит сформулировать более понятно.



tgoop.com/plush_python/41
Create:
Last Update:

Как правильно оценивать чатбота-"болталку"?
#ml

На работе мы делаем, в числе прочего, чатбота, который должен уметь поддержать разговор с пользователем на любую (приличную) тему, да так, чтобы непотребного чего-нибудь не ляпнул. С подобными чатботами есть известная проблема - автоматически оценить их качество не очень получается, нужна экспертная - то есть человеческая - оценка. А как её делать эффективно и результативно?

Первое соображение - "болталку" нужно оценивать по достаточно большому количеству примеров. Ещё хорошо, если ответы нашего бота будут случайно перемешаны с ответами других ботов и даже людей. Мы при обучении новой модели отдаём на оценку качества около полутора тысяч её ответов в разных контекстах (причём контексты разной длины). Ну, а чтобы не слишком уж полагаться на отдельно взятого эксперта - мало ли, не с той ноги сегодня встал(а), - делаем оценку с перекрытием. Каждый ответ модели оценивают три эксперта, независимо друг от друга.

Оценка тоже не самая простая. Чем чётче обозначены критерии, тем легче будет работа разметчиков, а значит, тем надёжнее результаты. Есть разные методики оценки, в их числе sensibleness and specificity average (SSA), которую разработали исследователи из Google. Она довольно проста и эффективна: оценивают разумность и специфичность ответов бота. Вот тут можно подробнее прочитать, но если вкратце, разумность - это про адекватность ответов, отсутствие в них бреда и оскорблений, например. Специфичность интереснее: ответы бота не должны быть слишком односложными, короткими, "на все случаи жизни". Простой пример:

Пользователь: У моего сына сегодня день рождения.

Бот А: Отличная песня!
Данный ответ не имеет смысла в этом контексте, поэтому он получает оценку 0 за разумность. Если за разумность 0, то и за специфичность автоматически тоже 0.

Бот Б: Понятно.
Данный ответ, в целом, разумен, но не специфичен, много на что можно сказать "понятно", но развитию темы это не способствует. Поэтому оценки 1 и 0, соответственно.

Бот В: Поздравляю от всей цифровой души. А сколько лет вашему сыну исполняется?
А вот это уже и разумный, и специфичный ответ. Да ещё и с юмором. Кстати, реальный ответ нашего бота. Вот бы он всегда так хорошо отвечал)

Мы добавили к SSA ещё пару дополнительных критериев, важных для бизнес-задачи. Итак, у нас есть оценки от трёх разметчиков по четырём параметрам. Что дальше? Имеет смысл также измерить согласие между аннотаторами. Каппа Коэна - отличная метрика, которую очень легко посчитать с помощью библиотеки scikit-learn. Она лучше, чем просто усреднение ответов разметчиков, потому что учитывает вероятность случайного совпадения. Другими словами, если у вас всего два возможных класса (0 и 1) и их распределение неравномерно, то вероятность случайного совпадения оценок гораздо выше, чем если бы классов было 15 и они встречались бы примерно с одинаковой частотой.

Каппа Коэна считается для каждой пары аннотаторов, благодаря чему мы можем увидеть, например, что ответы одного из разметчиков сильно отличаются от ответов двух других. Это может говорить о том, что данный эксперт не так понял задачу и его следует проинструктировать ещё раз. Или возможна ситуация, когда у всех троих разметчиков очень разные оценки по одному из критериев - тогда, возможно, данный критерий стоит сформулировать более понятно.

BY Плюшевый Питон


Share with your friend now:
tgoop.com/plush_python/41

View MORE
Open in Telegram


Telegram News

Date: |

Healing through screaming therapy With the administration mulling over limiting access to doxxing groups, a prominent Telegram doxxing group apparently went on a "revenge spree." Ng was convicted in April for conspiracy to incite a riot, public nuisance, arson, criminal damage, manufacturing of explosives, administering poison and wounding with intent to do grievous bodily harm between October 2019 and June 2020. You can invite up to 200 people from your contacts to join your channel as the next step. Select the users you want to add and click “Invite.” You can skip this step altogether. Telegram channels enable users to broadcast messages to multiple users simultaneously. Like on social media, users need to subscribe to your channel to get access to your content published by one or more administrators.
from us


Telegram Плюшевый Питон
FROM American