Нейролента - подборка новостей о нейронных сетях, ChatGPT

Не секрет, что для 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
🍿
🚬
...