Обзор и развитие LLM алаймента: История и современные практики
Что такое алаймент больших языковых моделей, как развивался и куда идем
Что такое alignment больших языковых моделей и зачем он нужен?
Большие языковые модели становятся все более совершенны, они не только хорошо генерируют текст, но и неплохо справляются с выполнением различных заданий, например, машинный перевод, суммаризация, вопросно-ответные системы, создание контента и другие.
Однако даже самые продвинутые LLM не всегда ведут себя корректно. Ответы языковых моделей могут не просто не соответствовать ожиданиям пользователей, отвечая нерелевантно или не точно следуя инструкции, но и генерировать неэтичный или небезопасный контент.
Alignment - это процесс выравнивания намерений большой языковой модели с намерениями человека.
В общем понимании alignment важен по трем причинам. В английском это правило трех H:
То есть модель должна быть честной и не пытаться обмануть пользователя. В тоже время была полезной, генерировала ответ строго по инструкции в приятном и удобном для конкретного случая виде, но при этом не распространяла опасную и вредную информацию. На самом деле здесь есть трейд офф между полезностью и безопасностью, потому что у каждого пользователя свои границы того, что считать полезным ответом, а что неэтичным. Задача алаймента минимизировать риски, связанные с использованием больших языковых моделей, при этом улучшив пользовательский опыт.
Роль алаймента в пайплайне обучения LLM.
Обычно пайплайн обучения больших языковых моделей состоит из следующих этапов:
- Сбор большого корпуса текстовых данных, без какой либо разметки. Дальше предобучение на задачу предсказания следующего токена на этом корпусе.
На этом этапе модель получается очень умной, она знает все о мире, что мы смогли уложить в обучающий корпус, но она по-большому счету бесполезна, так как умеет лишь предсказывать следующий токен, но быть удобной и безопасной она не умеет.
- Следующий этап это составление датасета инструкций: запрос - ответ, и дообучение претрен модели на нем - SFT, instruction tuning этап.
Здесь мы закладываем в модель навыки выполнения инструкций, она учится понимать, что от нее требуется, какие задачи нужно выполнять, как общаться с пользователем. На этом этапе модель не просто умная, но и существенно более полезная.
- Заключительный этап - это Alignment. Здесь мы закладываем в LLM ценности, которым хотим, чтобы она следовала. Чтобы ее ответ был более естественным и сильнее нравился пользователем.
На самом деле, в сообществе есть мнение, что 20% усилий и 80% результата достигаются за счет простого SFT, то есть этапа instruction-tuning. А оставшиеся 80% усилий и 20% результата это alignment, потому что поведение модели обычно меняется не так сильно после него, особенно если требования не самые специфичные. В то время, как времени и денег на сбор датасета и проведения экспериментов по дообучению тратится сильно больше, чем на простой instruction tuning.
В каком виде собирать датасет для алаймента?
Выбор формата датасета для финальной стадии обучения LLM важный вопрос, от которого зависят трудозатраты при обучении и итоговое качество модели, поэтому сразу о нем проговорим.
Глобально можно выделить 3 формы датасетов.
Формат такой же как и для обычного instruction tuning.
- легко собирать
- быстро обучать, много доступных и понятных библиотек и фреймворков
- прогнозируемый результат
- качество не самое высокое, потому что модель не знает, какие ответы могли бы быть плохими, а видит только хорошие ответы
Улучшение предыдущего формата, путем добавления явной информации о том, какие ответы приемлемы, а какие нет.
- сложнее найти такую разметку
- лейблы могут быть шумными
- сложнее обучать без какой-либо гарантии на лучший результат
- не так много инструментов для дообучении на таком датасете
Здесь оба ответа для того же самого промпта, что позволяет показать модели на примере одной инструкции как надо и как не надо отвечать.
- собирать такую разметку сложно, в каких-то бизнес кейсах напрямую с прода такой фидбек реальных пользователей не получить
- непрогнозируемый результат: может переобучиться или не сойтись. Бывает такое, что модели вставляют странные символы, неправильные окончания, больше галлюцинируют.
- обучать долго и дорого + не так много инструментов, и модели, которые работают с таким форматом, обычно требуют бОльшего кол-ва ГПУ памяти.
RLHF. OpenAI. PPO
Training language models to follow instructions with human feedback
Про формат данных поговорили, теперь давайте пройдемся по ключевым этапам развития алаймента.
В индустрии большой вклад в развитие технологии алаймента внесли исследователи из OpenAI в работе RLHF. Они предложили не останавливаться на этапе инстракшн тюнинг и продолжить дообучение модели через концепцию обучения с подкреплением для того, чтобы лучше учитывать предпочтения пользователей.
Обучение с подкреплением здесь это обучаемый агент (то есть наша модель) или, как еще говорят, обучаемая политика взаимодействия со средой (то есть генерация текста при условии промпта), которая получает обратную связь от модели наград.
Видим, что OpenAI не останавливаются на SFT дообучении претрен модели на датасете инструкций. Идут дальше и собирают human feedback - то есть датасет предпочтений, в котором для каждого промпта есть хороший и плохой ответы. На этом датасете, они обучают модель наград, которая должна ранжировать ответы LLM. Потом дообучаем большую языковую модель генерировать такие ответы, которые максимизируют скор из ревард модели.
- нужно собирать разметку для обучающей выборки для модели наград, через ассесоров это долго, дорого и сложно итеративно обновлять.
- используем синтетическую награду от внешней модели, которую можно хакнуть, то есть сгенерировать плохой ответ, ревард которого будет очень большим, для этого в обучающий функционал помимо реварда добавляют штраф в виде KL-дивергенции между распределениями вероятностей следующего токена для SFT и обучаемой политик, чтобы итоговая модель не сильно далеко уходила от своей прошлой версии, тем не менее это не всегда помогает избежать переобучения или расхождения модели.
- вычислительно дорого и долго, потому что нужно держать в памяти не только текущую модель, но и предыдущую версию для KL-дивергенции, а также ревард модель.
- потом алгоритм PPO, используемый для обучения с подкреплением, очень чувствителен к гиперпараметрам, и его результаты сложно воспроизводить
Constitutional AI
Constitutional AI: Harmlessness from AI Feedback
Еще одним шагом в развитии технологии алаймента стал Constitutional AI.
Исследователи антропик предложили написать свод правил, то есть конституцию для большой языковой модели. Это подробная, полная расписанная система ценностей, которую хотим заложить в поведение модели.
- Находим очень полезную (то есть разговорчивую) модель, обычно ее несложно получить, так как, после небольшого инстракт тюнинг получаются обычно именно такие модели.
- Генерируем ответы с помощью этой модели на датасете инструкций.
- Показываем конституцию той же самой модели и просим раскритиковать предыдущий ответ по ней
- Просим перегенерировать ответ в соответствии с конституцией и критикой
- Получаем датасет промпт + два ответа: плохой и хороший
- Дообучаем исходную модель с помощью алаймента на собранном датасете
Я думаю, ключевой вклад антропик в том, что они показали, как можно только с помощью конституции и разговорчивой полезной LLM собрать хороший датасет для алаймента.
Также даже если у вас уже есть датасет или тем более его еще нет, нужно первым делом сформулировать свою конституцию, которой должна следовать большая языковая модель.
DPO
Direct Preference Optimization: Your Language Model is Secretly a Reward Model
Авторы DPO поднимают вопрос о необходимости обучать модель наград на датасете предпочтений, чтобы потом с помощью обучения с подкреплением искать оптимальную политику, максимизирующую эту награду. Они выводят лосс так, что оптимизируемая политика наилучшим образом соответствует датасету предпочтений через функционал для классификации, обучая неявную модель наград, оптимальная политика которой может быть получена в явной форме.
- Избавились от необходимость дополнительно обучать модель наград и держать ее в памяти при обучении с подкреплением
- Заменили сложные алгоритмы RL на простую максимизацию правдоподобия
- По-прежнему нужно держать в памяти исходную политику, полученную до алаймента, чтобы не уходить далеко от нее и не переобучаться
- DPO все равно не всегда стабильно обучается, может расходиться и переобучаться
Улучшения DPO
Чтобы преодолеть недостатки функционала DPO, авторы разных статей придумывали свои улучшения.
- Авторы RSO предлагают использовать hinge лосс поверх negative likelihood из Slic-hf.
- Авторы IPO приводят более глубокое понимание математических алгоритмов за DPO и пытаются бороться с переобучением по-своему трансформируя вид функционала.
- Авторы CPO на примере задачи машинного перевода обобщают лосс DPO и выбивают из LLM еще большее качество.
- Авторы KTO предлагают новый функционал для обучения на датасете с бинарными предпочтениями: лайк / дизлайк.
На самом деле улучшений и новых методов по типу DPO очень много, постоянно появляются новые, вот список тех, кто уже доступен для использования в trainer-е hf.
Упрощения процедуры алаймента
Есть работы, которые направлены на упрощение процедуры алаймента.
ORPO: Odds Ratio Preference Optimization
ORPO, набирающая популярность в индустрии, предлагает избавиться от этапа SFT и сразу же дообучать претрен модель на датасете предпочтений, сильно максимизируя вероятность ответа победителя и слабо минимизируя вероятность ответа проигравшего.
Также в ORPO не нужно хранить в памяти исходную модель.
OpenChat: Advancing Open-source Language Models with Mixed-Quality Data
Другая очень популярная, сильная открытая языковая модель openchat обучена с помощью C-RLFT алаймента. Он еще более простой в реализации.
- Собираем обычный SFT датасет, но разграничиваем источники, где-то качественные данные, а где-то не всегда хорошие ответы. Пример такого разделение: все ответы gpt3.5 считаем sub-optimal, а все ответы gpt-4 считаем экспертными.
- Дальше просто дообучаем LLM с помощью кросс энтропии, присваивая большие веса в лоссе для экспертных семплов.
Lima: Less Is More for Alignment
И еще одна статья, которая ставит под сомнение необходимость сложных методов, подчеркивая важность простого SFT дообучения. Авторы предлагают собрать максимально чистый и качественный датасет пусть и небольшой и на нем обучаться в supervised режиме. Таким образом, инвестиция времени и денег на разметку и простое дообучение приносит неплохой результат, а самое главное прогнозируемый.
Заключение
На сегодняшний день исследования и разработки в этой области ведутся в совершенно разных направлениях. Компании и лаборатории разрабатывают множество разнообразных подходов, и нет универсального метода, которым бы все пользовались.
Некоторые модели и методы направлены на обучение на датасете предпочтений, предлагая свои улучшения и обобщения на новые виды функций потерь. Какие-то подходы углубляются в понимание исходных моделей, данных и оптимизационных функционалов. Другие сосредоточены на освоении новых форматов датасетов. Существуют подходы, упрощающие процедуру алаймента, при которых обучение проводится только в supervised режиме.
Однако, не стоит забывать, что alignment не ограничивается лишь обучением моделей. Сейчас выходят статьи, направленные на интерпретацию внутренних процессов модели, там авторы пытаются понять, как мыслит модель и как можно влиять на ее поведение через активацию внутренних представлений.
Понятное заключение доклада - это то, что алаймент сложная задача, требующая в первую очередь системного подхода. Необходимо четко определить цели и проблемы, сформулировать систему ценностей, которую модель должна разделять, и итеративно усложнять способы обучения, учитывая ваши вычислительные ресурсы, специфичные задачи и данные.