Обучите собственную модель вывода DeepSeek R1 с помощью Unsloth

Новости ИИОпубликовано 7 месяцев назад Круг обмена ИИ
8.2K 00

Сегодня компания Unsloth рада представить вам Расстелите салфетку Исследование R1 в DeepSeek обнаруживает "момент прозрения", когда R1-Zero оптимизируется с помощью политики групповой относительности (GRPO) Самостоятельное обучение позволяет выделить больше времени на обдумывание без обратной связи.

Unsloth усовершенствовал весь процесс GRPO, чтобы он использовал на 80% меньше VRAM, чем Hugging Face + FA2, что позволяет пользователям воссоздать "момент прозрения" R1-Zero всего на 7 ГБ VRAM, используя Qwen2.5 (1,5B).

Попробуйте бесплатный блокнот GRPO от Unsloth:Llama 3.1 (8B) на Colab
Ноутбуки GRPO для других моделей, таких как Phi-4, можно найти в документации Unsloth по адресу

 

💡 Основные детали

  • Благодаря 15 ГБ VRAM Unsloth позволяет преобразовать любую модель с параметрами до 15 ББ (например, Llama 3.1 (8 ББ), Phi-4 (14 ББ), Mistral (7 ББ) или Qwen2.5 (7 ББ)) в инферентную модель.
  • Минимальные требования: обучайте собственные модели вывода локально, используя всего 7 ГБ VRAM.
  • Гениальная команда Tiny-Zero доказала, что пользователи могут достичь момента прозрения с помощью Qwen2.5 (1,5B) - но для этого требовалось 2 графических процессора A100 (160 ГБ VRAM). Теперь, с Unsloth, пользователи могут достичь того же момента прозрения с помощью одного GPU с 7 ГБ VRAM!
  • Ранее GRPO поддерживала только полную тонкую настройку, но Unsloth делает ее доступной для QLoRA и LoRA.
  • Обратите внимание, что это не тонкая настройка DeepSeek модели перегонки R1, а также настраивается по данным перегонки R1 (которые уже поддерживаются Unsloth). Это преобразование стандартной модели в полноценную модель вывода с использованием GRPO.
  • Примеры использования GRPO: если пользователь хочет создать индивидуальную модель со стимулами (например, для юриспруденции, медицины и т.д.), то GRPO может помочь.
    Если у пользователя есть входные и выходные данные (например, вопросы и ответы), но нет цепочки мыслей или процесса рассуждения, GRPO может волшебным образом создать процесс рассуждения для пользователя! + еще

 

🤔 GRPO + моменты "прозрения"

Исследователи DeepSeek заметили "момент прозрения" во время обучения R1-Zero с помощью чистого обучения с подкреплением (RL). Модель научилась увеличивать время размышлений, переоценивая свой первоначальный подход без каких-либо подсказок или предопределенных инструкций со стороны человека.

В тестовом примере, несмотря на то что Unsloth обучил Phi-4 за 100 шагов, используя только GRPO, результаты уже очевидны. Модель без GRPO не думала о Токене, в то время как модель, обученная с помощью GRPO, думала о Токене и также дала правильный ответ.

使用 Unsloth 训练您自己的 DeepSeek R1 推理模型
Это волшебство можно воспроизвести с помощью GRPO, алгоритма RL, который эффективно оптимизирует ответы без необходимости использования функции ценности, в отличие от Proximal Policy Optimisation (PPO), которая опирается на функцию ценности. В записных книжках Unsloth использует GRPO для обучения модели с целью позволить ей автономно развивать свои собственные возможности самооценки и поиска, создавая мини-момент прозрения.

Как это работает:

  • Модель генерирует группы ответов.
  • Каждый ответ оценивается на основе правильности или другой метрики, созданной некоторой функцией вознаграждения, а не моделью вознаграждения Большой языковой модели.
  • Рассчитайте средний балл по группе.
  • Баллы за каждый ответ сравнивались со средним значением по группе.
  • Модель была усовершенствована для поддержки ответов с более высокими баллами.

 

Например, предположим, что Unsloth хочет, чтобы модель решала:
Сколько будет 1+1? >> Цепочка мыслей/вычислений >> Ответ - 2.
Сколько будет 2+2? >> Цепочка размышлений/вычислений >> Ответ - 4.

Изначально нужно собрать много данных, чтобы наполнить вычислительный процесс/цепочку размышлений. Но GRPO (алгоритм, используемый в DeepSeek) или другие алгоритмы RL могут направить модель на автоматическое проявление способности к рассуждению и создание траекторий рассуждений. Вместо этого Unsloth необходимо создать хорошие функции вознаграждения или валидаторы. Например, если модель получает правильный ответ, дайте ей 1 балл. Если некоторые слова написаны неправильно, вычтите 0,1 балла. И так далее! Unsloth может предоставить множество функций для поощрения этого процесса.

 

🦥 GRPO в Незрячем

Если вы используете GRPO с Unsloth локально, пожалуйста, также "pip install diffusers", так как это зависимость.

Подождите не менее 300 шагов, чтобы вознаграждение действительно увеличилось, пожалуйста, используйте последнюю версию vLLM. имейте в виду, что пример Unsloth на Colab был обучен только в течение часа, поэтому результаты не идеальны. Чтобы получить хорошие результаты, пользователь должен тренироваться не менее 12 часов (так работает GRPO), но имейте в виду, что это не обязательно, так как пользователь может остановиться в любой момент.

Для правильной генерации Thinking Token рекомендуется применять GRPO к моделям с параметрами не менее 1,5B, поскольку модели меньшего размера могут не сгенерировать его. Если пользователь использует базовую модель, убедитесь, что у него есть шаблон чата. отслеживание потерь при обучении для GRPO теперь встроено непосредственно в Unsloth, что устраняет необходимость использования внешних инструментов, таких как wandb.

使用 Unsloth 训练您自己的 DeepSeek R1 推理模型
В дополнение к добавлению поддержки GRPO, Unsloth также поддерживает Online DPO, PPO и RLOO! Ниже приведен график, сравнивающий потребление VRAM Online DPO Unsloth со стандартным Hugging Face + FA2.

使用 Unsloth 训练您自己的 DeepSeek R1 推理模型

✨ Unsloth x vLLM

20-кратное увеличение пропускной способности и экономия 50% VRAM:

Теперь пользователи могут использовать vLLM непосредственно в стеке тонкой настройки, что обеспечивает большую пропускную способность и позволяет пользователям одновременно выполнять тонкую настройку и рассуждать о модели! Динамическое 4-битное квантование с использованием Unsloth's Llama 3.2 3B Instruct на 1 A100 40GB, оценка 4000 жетоны / с или около того. На Tesla T4 с 16 ГБ памяти (с бесплатным GPU Colab) пользователи получают 300 жетонов/с.

Unsloth также волшебным образом избавился от необходимости одновременно загружать vLLM Unsloth может изначально настраивать Llama 3.3 70B инструкция в 1 48 ГБ GPU, при этом вес Llama 3.3 70B занимает 40 ГБ VRAM. Без устранения двойного использования памяти Unsloth потребует >= 80 ГБ VRAM при загрузке как Unsloth, так и vLLM.

Но с Unsloth пользователи все еще могут точно настроить и получить преимущества быстрого вывода в VRAM объемом до 48 ГБ! Чтобы использовать быстрый вывод, сначала установите vllm и инстанцируйте Unsloth с параметром fast_inference:

pip install unsloth vllm
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "unsloth/Llama-3.2-3B-Instruct",
fast_inference = True,
)
model.fast_generate(["Hello!"])

 

Открытие vLLM в Unsloth

  • vLLM теперь может загружать Unsloth Dynamic 4-bit quantisation. Как и Unsloth's 1.58bit Dynamic R1 GGUF, Unsloth показал, что динамическое квантование некоторых слоев до 4 бит, а некоторых до 16 бит значительно повышает точность, сохраняя при этом небольшой размер модели.
  • Unsloth автоматически выбирает несколько параметров для учета оперативной памяти, эффективности VRAM и максимальной пропускной способности (например, # предварительно заполненных блоков токенов, # максимальных последовательностей и т. д.) Unsloth по умолчанию включает -O3 в vLLM и включает кэширование префиксов Unsloth обнаружил, что Flashinfer на самом деле медленнее на старых GPU на 10%. Кэш FP8 KV делает его на 10% медленнее, но удваивает потенциал пропускной способности.
  • Unsloth позволяет загружать LoRA в vLLM, разбирая словарь состояний, а не загружая его с диска - это может ускорить обучение GRPO в 1,5 раза. Активной областью исследований является редактирование адаптера LoRA в vLLM напрямую (Unsloth пока не знает, как это сделать). Это может значительно ускорить работу, поскольку Unsloth сейчас перемещает данные GPU без необходимости.
  • vLLM может иметь случайные скачки VRAM, особенно во время генерации пакетов. unsloth добавил функцию генерации пакетов, чтобы уменьшить скачки памяти.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...