Не секрет, что для RLHF (Reinforcement Learning from...
Не секрет, что для RLHF (Reinforcement Learning from Human Feedback) — последнего этапа тренировки систем типа ChatGPT — необходимы специализированные методы. Один из них — PPO (Proximal Policy Optimization), придуманный в стенах OpenAI в далёком 2017м году. В целом, логично: сами придумали метод, сами нарастили экспертизу через десятки экспериментов, и потом применяют тут и там.
Одним из основных отличий PPO от других методов тех времён заявлялась простота имплементации и низкое количество гиперпараметров, которые необходимо перебирать. На бумаге звучит здорово, но, к сожалению, на практике не всё так радужно.
Ещё в прошлом году я наткнулся на блогпост «The 37 Implementation Details of Proximal Policy Optimization» (подготовлен к конференции ICLR). По названию, думаю, уже можно прочувствовать всю боль «much simpler to implement» метода🤣 . Сбор всех частичек и воспроизведение результатов заняли у авторов ТРИ ГОДА. Какие-то вещи менялись прямо в коде репозитория OpenAI между разными версиями (с разницей в качестве в ДВА РАЗА), что-то не объяснялось в статье и никем не упоминалось, а некоторые вещи выглядели багами, но почему-то давали результат. У этой статьи есть видео-саммари в трёх частях, вот ссылка на плейлист. В общем, если вы хотите глубже разобраться, да или просто прокачаться — очень рекомендую к разбору.
На этом дело не закончилось, и те же авторы решили посмотреть репозиторий openai/lm-human-preferences 2019го года. Это код для статьи «Fine-Tuning Language Models from Human Preferences» с легендарными Paul Christiano и Alec Radford в соавторах. Здесь как раз впервые применяется PPO для оптимизации LLM под человеческие предпочтения. Ранние наработки по ChatGPT, говоря иначе.
Работа заняла уже меньше 3 лет, и вот буквально вчера появился блог «The N Implementation Details of RLHF with PPO», который практически в точности воспроизводит результаты работы OpenAI, но на PyTorch и с современными библиотеками, а не на устаревшем TensorFlow. Это, кстати, было одной из больших заноз. Например, оптимизатор Adam имплементирован в этих фреймворках по-разному, и из коробки просто не получалось повторить тренировку.
Но моя любимая история тут — это проблема с запуском на конкретном сетапе видеокарт (чтобы получить оригинальные метрики и кривые обучения и понимать, с чем сравнивать). Следите за руками:
1) на 1xV100 не хватает памяти, так как аккумулирования градиентов не было
2) на A100 запустить невозможно — старый TF не поддерживает новые видеокарты
3) на 8xV100 16GB тоже не хватает памяти
4) так что работает всё строго на 8xV100 32GB. Такая вот магия!
А ещё один из датасетов OpenAI потеряли при переезде с одного хранилища на другое😱
В общем, чтиво получается максимально интересное и увлекательное, позволяющее лучше разобраться во всех тонкостях, причём даже если RLHF вам не интересен.
————————————————————————
Эх, а вот редставьте сколько бы всего интересного можно было найти в репозитории для тренировки и инференса LLM уровня GPT-4🍿 🚬 ...
Одним из основных отличий PPO от других методов тех времён заявлялась простота имплементации и низкое количество гиперпараметров, которые необходимо перебирать. На бумаге звучит здорово, но, к сожалению, на практике не всё так радужно.
Ещё в прошлом году я наткнулся на блогпост «The 37 Implementation Details of Proximal Policy Optimization» (подготовлен к конференции ICLR). По названию, думаю, уже можно прочувствовать всю боль «much simpler to implement» метода
На этом дело не закончилось, и те же авторы решили посмотреть репозиторий openai/lm-human-preferences 2019го года. Это код для статьи «Fine-Tuning Language Models from Human Preferences» с легендарными Paul Christiano и Alec Radford в соавторах. Здесь как раз впервые применяется PPO для оптимизации LLM под человеческие предпочтения. Ранние наработки по ChatGPT, говоря иначе.
Работа заняла уже меньше 3 лет, и вот буквально вчера появился блог «The N Implementation Details of RLHF with PPO», который практически в точности воспроизводит результаты работы OpenAI, но на PyTorch и с современными библиотеками, а не на устаревшем TensorFlow. Это, кстати, было одной из больших заноз. Например, оптимизатор Adam имплементирован в этих фреймворках по-разному, и из коробки просто не получалось повторить тренировку.
Но моя любимая история тут — это проблема с запуском на конкретном сетапе видеокарт (чтобы получить оригинальные метрики и кривые обучения и понимать, с чем сравнивать). Следите за руками:
1) на 1xV100 не хватает памяти, так как аккумулирования градиентов не было
2) на A100 запустить невозможно — старый TF не поддерживает новые видеокарты
3) на 8xV100 16GB тоже не хватает памяти
4) так что работает всё строго на 8xV100 32GB. Такая вот магия!
А ещё один из датасетов OpenAI потеряли при переезде с одного хранилища на другое
В общем, чтиво получается максимально интересное и увлекательное, позволяющее лучше разобраться во всех тонкостях, причём даже если RLHF вам не интересен.
————————————————————————
Эх, а вот редставьте сколько бы всего интересного можно было найти в репозитории для тренировки и инференса LLM уровня GPT-4
Источник: Сиолошная
2023-10-26 07:02:43