Практика: дообучаем модель через GRPO

Урок 21 из 104 курса «HuggingFace: курс по Transformers»: официальный курс Hugging Face Learn (Хаггинг Фейс) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

О чём урок

Теперь, когда вы ознакомились с теорией, давайте применим ее на практике! В этом упражнении вы выполните тонкую настройку модели с помощью GRPO. [!ПОДСКАЗКА] Это упражнение было написано экспертом по fine-tuning LLM @mlabonne. Сначала установим зависимости для этого упражнения. Теперь импортируем необходимые библиотеки. Weights & Biases — это инструмент для логирования и мониторинга ваших экспериментов. Мы будем использовать его для логирования процесса fine-tuning. Вы можете выполнить это упражнение без входа в Weights & Biases, но рекомендуется сделать это для отслеживания ваших экспериментов и интерпретации результатов. Теперь загрузим набор данных. В данном случае мы будем использовать набор данных mlabonne/smoltldr, который содержит список коротких рассказов. Теперь загрузим модель. Для этого упражнения мы будем использовать модель SmolLM2-135M. Это небольшая модель с 135 миллионами параметров, которая работает на ограниченном оборудовании. Это делает модель идеальной для обучения, но она не является самой мощной из существующих. Если у вас есть доступ к более мощному оборудованию, вы можете попробовать выполнить fine-tuning более крупной модели, такой как SmolLM2-1.7B. Теперь загрузим конфигурацию LoRA. Мы воспользуемся LoRA, чтобы уменьшить количество обучаемых параметров и, в свою очередь, объем памяти, необходимый для fine-tuning модели. Если вы не знакомы с LoRA, вы можете узнать о ней подробнее в Главе 11. Как упоминалось в предыдущем разделе, GRPO может использовать любую функцию вознаграждения для улучшения модели. В данном случае мы будем использовать простую функцию вознаграждения, которая побуждает модель генерировать текст длиной 50 токенов. Теперь определим аргументы обучения. Мы будем использовать класс GRPOConfig для определения аргументов обучения в типичном стиле transformers. Если вы впервые определяете аргументы обучения, вы можете ознакомиться с классом TrainingArguments для получения дополнительной информации или с Главой 2 для подробного введения. Теперь мы можем инициализировать trainer с моделью, набором данных и аргументами обучения, а затем начать обучение.

План урока

  1. Установка зависимостей
  2. Импорт и вход в Weights & Biases
  3. Загрузка набора данных
  4. Загрузка модели
  5. Загрузка LoRA
  6. Определение функции вознаграждения
  7. Определение аргументов обучения
  8. Публикация модели в Hub во время обучения

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Полезные гиды