Этот проект представляет собой реализацию полного RLHF (Reinforcement Learning from Human Feedback) пайплайна, основанного на алгоритме REINFORCE с baseline. Цель — продемонстрировать классический подход к дообучению языковых моделей.
Для развертывания проекта и установки зависимостей используйте uv:
# Создание и активация виртуального окружения
uv venv .venv
source .venv/bin/activate
# Установка зависимостей и проекта в режиме редактирования
uv sync --extra dev
# (Опционально) Установка pre-commit хуков для линтинга
pre-commit installВесь процесс разделен на четыре последовательных шага, которые запускаются через Makefile:
# Шаг 1: Загрузка SFT (Supervised Fine-Tuning) модели
make sft
# Шаг 2: Обучение Reward Model (RM)
make rm
# Шаг 3: Обучение RLHF модели с помощью REINFORCE
make reinforce
# Шаг 4: Финальная валидация и сравнение моделей
make evalsrc/: Основной исходный код, используемый в скриптах.scripts/: Исполняемые скрипты для каждого шага пайплайна.models/: Директория для сохранения весов обученных моделей (SFT, RM, RLHF).reports/: Отчеты, метрики и анализ проведенных экспериментов.
Ключевой вывод проекта: для уже сильной SFT-модели базовый алгоритм REINFORCE не дает прироста в качестве, а его неправильная реализация приводит к значительной деградации.
Все этапы работы, включая возникшие трудности, их решения и финальные результаты, подробно задокументированы в reports/README.md.