Как стать автором
Поиск
Написать публикацию
Обновить

Выбросить нельзя, переобозначить. Или как дообучать LLM даже на ошибках и без RLHF

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров246
Автор оригинала: Tianjun Zhang, Fangchen Liu, Justin Wong, Pieter Abbeel, Joseph E. Gonzalez

Одним из сложнейших этапов дообучения LLM является процесс выравнивания (alignment), который зачастую играет решающую роль в качестве модели. Традиционным подходом к решению данной задачи является RLHF, но для него нужны дополнительные обучаемые модели, а это дополнительные вычислительные затраты и трудности в настройке.

В цикле своих исследований об обучении LLM я наткнулся на интересную статью, в которой авторы предлагают метод Hindsight Instruction Relabeling (HIR).

Ссылка на источник находится тут. Очень проработанная статья, советую почитать.

Предыдущие материалы цикла:

Self-Alignment with Instruction Backtranslation — Метод генерации синтетечиских данных для дообучения LLM.
BOLT: Bootstrapping LongCoT — Метод, позволяющий научить LLM думать дольше.

Или если удобнее в Telegram.

Если кратко, то модель генерирует пары инструкция, вывод. В случаях, когда вывод оказывается неверным, данная пара не отбрасывается. Модель меняет инструкцию так, чтобы она соответствовала фактическому, пусть и "неправильному", выводу модели. И вот, из некорректных пар мы получаем данные для обучения. Звучит необычно, но, по экспериментам авторов статьи, данный метод обходит RLHF.

Пример:

Инструкция: Сгенерируй правильный ответ на запрос
Запрос: Сколько будет 8 * 7?
Ответ модели: 57

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

Инструкция: Сгенерируй неправильный ответ на запрос
Запрос: Сколько будет 8 * 7?
Ответ модели: 57

Выглядит как что-то незаконное...

Концептуальная основа: Интерпретация LLM в парадигме RL.

В качестве формализации обучения LLM следовать инструкциям, авторы представили задачу в концепции целеориентированного обучения с подкреплением (Goal-Conditioned Reinforcement Learning)

В рамках этой концепции, задача моделируется как вектор Марковского процесса принятия решений (Markov Decision Process):

\langle\mathcal{S, A, P, R, G}\rangle

Где:

  • S — Пространство состояний. Это последовательность входных токенов, которую получает модель.

  • A — Пространство действий. Это набор возможных токенов, которые модель может сгенерировать на следующем шаге.

  • P — Вероятность перехода. Это, по сути, сама языковая модель, которая предсказывает вероятность следующего токена, учитывая текущее состояние.

  • R — Функция вознаграждения. Обычно задаётся набором эвристик (сравнение по ключевым словам, шаблоны, регулярные выражения).

  • G — Цель. Это инструкция, или промпт, которую модель должна выполнить.

В контексте GCRL, модель рассматривается как политика, которая стремится достичь определённой цели. В классическом GCRL агента учат достигать заранее поставленной цели. Однако HIR вводит радикальное изменение: вместо того чтобы учить модель достигать изначальной цели, мы меняем цель в зависимости от полученного результата (не лучшая стратегия по жизни).

Такое переосмысление задачи становится возможным благодаря тому, что в данном алгоритме LLM имеет двойственную роль:  

  • LLM как политика (Policy): Модель, которая выбирает следующее действие (токен) на основе текущего состояния. Это её основная функция.

  • LLM как модель мира (World Model): Модель, которая обладает внутренним знанием о том, как устроен мир, и может предсказывать исходы или переходы между состояниями. Эта способность позволяет алгоритму самостоятельно генерировать данные для обучения, взаимодействуя с самой моделью, а не с внешней средой. Таким образом, HIR использует модель, чтобы собрать данные об её собственном поведении, а затем использует эти данные, чтобы улучшить её же политику.

Исходная модель выступает в двух ролях.
Исходная модель выступает в двух ролях.

Ключевые этапы алгоритма

Алгоритм представляет собой двухэтапный процесс, который состоит из онлайн-сэмплирования и офлайн-обучения.

Ключевые этапы.
Ключевые этапы.

Этап 1: Онлайн-сэмплирование.

На данном этапе с помощью LLM создаются пары "инструкция-запрос-ответ". Если обратиться к парадигме RL, то данный эпат является фазой исследования (exploration). Критически важным аспектом данного этапа является использование высокой температуры сэмплирования. В статье предлагается использовать температуру, равную 1. Тем самым модель (агент) исследует разнообразные ответы (состояния), набивает себе шишки, благодаря которым будет в дальнейшем учиться.

Этап 2: Офлайн-обучение.

На этом этапе алгоритм использует набор данных, сгенерированный на предыдущей фазе. Полученные тройки "инструкция-запрос-ответ" проходят через две функции:

  • Функция обратной связи. Она возвращает 1, если ответ соответствует текущей инструкции (например, если модель, получив инструкцию «сгенерируй правильный ответ», выдала верный результат) и 0 во всех остальных случаях.

  • Функция перемаркировки. Если функция обратной связи выдала 1, то инструкция остаётся неизменной. Иначе (модель, например, получив инструкцию «сгенерируй правильный ответ», выдала неверный результат) инструкция инвертируется. Например, если изначальная инструкция была "сгенерируй правильный ответ", то инвертированной будет "сгенерируй неправильный ответ".

Далее мы переходим к классическому обучению с учителем. Но с небольшой корректировкой функции потерь:

L_{final} = L_{supervise} + \alpha·L_{contrastive} + \beta·L_{entropy}

Здесь:

  • \alpha, \beta — коэффициенты для балансировки вклада каждого компонента.

  • L_{supervise}— кросс-энтропия между целевым выходом и предсказанием модели (стандартная функция потерь для задачи обучения с учителем).

  • L_{contrastive}— компонент, помогающий избежать ситуации, когда разные инструкции приводят к одному и тому же выходу (нарушение следования инструкциям).
    Обозначим:
    \mathcal{P}_{ik} = P(o_i | p_k, q_k) — логарифм вероятности генерации ответа o_i при заданной инструкции p_k и запросаq_k.
    Тогда:
    L_{contrastive} = - ∑_{i=1}^n log \frac{exp(\mathcal{P}_{ii})}{∑_{k=1}^n exp(\mathcal{P}_{ik})}

    Данный лосс поощряет модель выдавать конкретный ответ (o_i)​ именно в своей инструкции​(p_i, q_i), и подавляет вероятность того, что тот же выход произойдёт при других инструкциях (p_k, q_k) .

  • L_{entropy}— отрицательная энтропия, усиливающая разнообразие генерации и предотвращающая преждевременную сходимость модели к детерминированному (скучному) поведению.
    L_{entropy} = ∑_{k=1}^n \mathcal{P}_k log \mathcal{P}_k
    Где \mathcal{P}_k​ — вероятностное распределение выходов при k-той инструкции.

Результаты.

В итоге, мы получили алгоритм, который не требует дополнительных моделей (а это новые гиперпараметры и вычислительные издержки), прост в работе (происходит обучение с учителем) и максимально использует как верные, так и неверные варианты.

По результатам оценок на задачах BigBench, обученная с помощью HIR модель обходит модели, обученные с помощью PPO и FARL. Даже модель, обученная на полном бенчмарке, уступает HIR-модели.

Вот такой получился алгоритм. Постараюсь протестировать его на практике, потому что результаты уж очень хороши. Получатся интересные результаты — опубликую их во второй части. А пока работаем дальше ;)

Спасибо за внимание!

Теги:
Хабы:
0
Комментарии0

Публикации

Ближайшие события