TGTGInsighttelegram intelligenceLIVE / telegram public index
← AI[ex]Time
AI[ex]Time avatar

TGINSIGHT POST

Post #34

@AIexTime

AI[ex]Time

Views900Post view count
PostedOct 2110/21/2023, 07:29 AM
Post content

Post content

В продолжение поста про Mistral и его различные модификации (Instruct, Orca) хочется также упомянуть модель Zephyr-7b-alpha. Это файнтюн модели Mistral на пользовательские предпочтения, чтобы сделать модель в роли helpful assistant. Для таких целей сейчас популярно использовать RLHF. Подход заключается в том, что сначала мы учим Reward Model (RM) на отсортированных по предпочтению ответах (то есть в итоге RM по тексту может дать ему некоторую оценку), а затем дообучаем основную модель в режиме RL, обычно используя алгоритм PPO. Задача обучения — максимизировать награду из RM, при этом не сильно меняя исходные веса модели, чтобы не переобучиться. Проблема в том, что это слишком нестабильный подход (RM может найти скрытые фичи, которые негативно будут влиять на генерализацию, например, давать текстам, где есть код, выше оценку. PPO может научиться обманывать RM и получать высокую награду, генерируя бессмысленные тексты и т.д. Вот, кстати, неплохая статья на тему). В мая 2023 вышла интересная работа: Direct Preference Optimization: Your Language Model is Secretly a Reward Model. Авторы показали, что двухэтапное обучение RLHF можно с некоторыми допущениями заменить на выражение, зависящее только от pi и pi_ref (см. картинку). Это означает, что 1) Нам не нужна RM и 2) Нам не нужен RL. Лосс в DPO считается максимально просто и в TRL занимает всего 7 строчек. Единственное, нужно иметь размеченные данные с упорядоченными ответами, то есть пары вида text1|x > text2|x. Именно DPO и применили к модели Zephyr. По отзывам ребят, кто заводил DPO у себя, работает этот алгоритм действительно хорошо и намного стабильнее PPO.