Практика: GRPO с Unsloth

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

О чём урок

В этом упражнении вы будете fine-tune модель с помощью GRPO (Group Relative Policy Optimization) и Unsloth, чтобы улучшить способности модели к reasoning. Мы рассмотрели GRPO в Главе 3. Unsloth — это библиотека, которая ускоряет LLM fine-tuning, позволяя обучать модели быстрее и с меньшими вычислительными ресурсами. Unsloth интегрируется с TRL, поэтому мы будем опираться на то, что узнали в предыдущих разделах, и адаптируем это для специфики Unsloth. [!TIP] Это упражнение можно запустить на бесплатном Google Colab T4 GPU. Для лучшего опыта следуйте инструкциям в notebook, ссылка на который приведена выше, и попробуйте выполнить его самостоятельно. Сначала установим необходимые библиотеки. Нам понадобится Unsloth для ускоренного fine-tuning и vLLM для быстрого inference. Unsloth предоставляет класс (FastLanguageModel), который интегрирует transformers с оптимизациями Unsloth. Импортируем его: Теперь загрузим модель Google Gemma 3 1B Instruct и настроим её для fine-tuning: Этот код загружает модель с 4-битной квантизацией для экономии памяти и применяет LoRA (Low-Rank Adaptation) для эффективного fine-tuning. Параметр target_modules указывает, какие слои модели fine-tune, а use_gradient_checkpointing позволяет обучать с более длинными контекстами. [!TIP] Мы не будем подробно рассматривать LoRA в этой главе, но вы можете узнать больше в Главе 11. Для этого упражнения мы будем использовать датасет GSM8K, который содержит математические задачи для начальной школы. Мы отформатируем данные так, чтобы побудить модель показывать свой reasoning перед предоставлением ответа. Сначала определим формат prompt и ответов: Теперь подготовим датасет: Датасет подготовлен путём извлечения ответа из датасета и его форматирования в виде строки. Как мы обсуждали на предыдущей странице, GRPO может использовать функции вознаграждения для направления обучения модели на основе проверяемых критериев, таких как длина и форматирование. В этом упражнении мы определим несколько функций вознаграждения, которые поощряют различные аспекты хорошего reasoning. Например, мы будем вознаграждать модель за предоставление целочисленного ответа и за соблюдение строгого формата.

План урока

  1. Установка зависимостей
  2. Настройка Unsloth
  3. Подготовка данных
  4. Определение функций вознаграждения
  5. Обучение с GRPO
  6. Тестирование модели
  7. Сохранение модели
  8. Публикация в Hugging Face Hub

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

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