SSA для диалоговых моделей и проблема релевантности и специфичности.



Рассуждения...



Часто в своей рутине приходится производить оценку качества работы диалоговых систем е2е. Для этого мы используем SSA.



Основная идея такого подхода:

1. Собираем диалоги: качеству, содержанию и репрезентации, по отношению к целевому домену, которой мы доверяем.

2. Обстреливаем этими диалогами нашу систему по принципу: мы вам контекст, вы нам ответ.

3. Отправляем результаты работы контекст+ответ в разметку.

4. Для каждого примера оцениваем насколько релевантный и специфичный ответ.



Ответ релевантный, если он разумен/логичен и соответствует контексту/теме диалога. Ответ специфичный, если он не только конгруентен теме общения, но ещё является конкретным, полным, содержательным. Не полными и содержательными являются, к примеру, общие фразы да/нет/не знаю и тп.



При этом, ответ может быть релевантным, но неспецифичным, далее показательный пример:

- Сегодня отличная погода! Самое-то погулять.

- Полностью с Вами согласен.



Или попроще:

- Сегодня отличная погода! Время совершить прогулку.

- Ага.



В обоих случаях, фразы ответы универсальны. Так можно ответить почти на любой пассаж. Поэтому обладают слабой специфичностью или во все не специфичны, но при этом релевантны. Естественно если ответ нерелевантный, то и неспецифичный .



Пример релевантного и специфичного ответа:

- Сегодня отличная погода! Время прогуляться.

- Прекрасная идея, одеваюсь, жду тебя у фонтана через час.



А теперь о проблемах насущных. Сегодня хочу рассказать об паре. Первая, для моделей generative/decoder like, - это проблема потолка релевантности. Известен факт, что генеративные модели имеют трудности с фактологией, галюцинациями и токсичной генерацией. При этом, такие модели зачастую оригинальны в своих ответах, их генерации сложно чаще всего назвать неспецифичными. Это благодаря, конечно, такой штуке как перплексия. Именно она как мера качества генерации, даёт консенсус между длиной и оригинальностью генерации. Кстати я сам делал замеры корреляции специфичности ответа и его длины. Как вы думаете отлична ли она от 0.5?) у меня было 0.66+ ...



Но вернёмся к нашим баранам. Как ранее интересно решали проблемы с релевантностью? Да всё при помощи тех же самых: incontext augmentation, RETRO, RAG и тп и тд. Цель всего одна: помимо промта, разными способами (подмешиванием текста или векторов) из внешних больших источников знаний дать подсказку LLM. Тем самым, модели, как было показано во всех выше перечисленных статьях улучшали показатели SSA. В первую очередь, за счёт решения проблем с фактологией и галюцинациями.



Казалось бы на этом всё. Но...

Пришёл RLHF, о котором уже слышно из каждого котелка. И если задуматься, этот подход тюнинга на малом, но более надёжном датасете с оценками от кожанных мешков, так же способствует разом:



1) улучшению фактологии

2) аккуратному, не токсичному общению

3) снижению галлюцинаций

4) большому разнообразию, ака специфичности.



И для этого, пусть и не просто, но возможно, путём настройки инструкций + RL моделек оценки , решать сразу проблемы улучшения пользовательского опыта и ведения диалога в принципе.

И как было уже отмечено, это не золотая пуля. Естественно грамотный претрейн важен, он решает задачу генерализации знаний. Но RLHF, получается, на дотюне после, не про генерализацию (генерализацию мы как раз пытаемся в процессе не потерять путём KL divergence регуляризации к базовой модели), он, на мой взгляд про улучшение именно решения конечных задач для юзера.