Entraînez votre propre modèle d'inférence R1 de DeepSeek avec Unsloth

Aujourd'hui, Unsloth a le plaisir de vous présenter le Débarbouillettes L'étude R1 de DeepSeek révèle un "moment d'épiphanie" dans lequel R1-Zéro est optimisé par l'utilisation d'une politique relative de groupe (GRPO) L'apprentissage autodirigé permet de consacrer plus de temps à la réflexion sans retour d'information manuel.

Unsloth a amélioré l'ensemble du processus GRPO pour utiliser 80% de VRAM en moins que Hugging Face + FA2, ce qui permet aux utilisateurs de recréer le "moment d'épiphanie" de R1-Zero avec seulement 7 Go de VRAM en utilisant Qwen2.5 (1.5B).

Essayez le carnet de notes GRPO gratuit d'Unsloth :Llama 3.1 (8B) sur Colab
Pour les ordinateurs portables GRPO pour d'autres modèles tels que le Phi-4, consultez la documentation d'Unsloth à l'adresse suivante

 

💡 Détails clés

  • Avec 15 Go de VRAM, Unsloth permet aux utilisateurs de convertir n'importe quel modèle comportant jusqu'à 15 Go de paramètres (par exemple, Llama 3.1 (8 Go), Phi-4 (14 Go), Mistral (7 Go) ou Qwen2.5 (7 Go)) en un modèle inférentiel.
  • Configuration minimale requise : formez vos propres modèles d'inférence localement avec seulement 7 Go de VRAM.
  • La brillante équipe de Tiny-Zero a prouvé que les utilisateurs pouvaient réaliser leurs propres moments d'épiphanie en utilisant Qwen2.5 (1.5B) - mais cela nécessitait 2 GPU A100 (160GB VRAM). Désormais, avec Unsloth, les utilisateurs peuvent réaliser le même moment d'épiphanie avec un seul GPU de 7 Go de VRAM !
  • Auparavant, GRPO ne permettait qu'un réglage fin complet, mais Unsloth le rend disponible pour QLoRA et LoRA.
  • Notez qu'il ne s'agit pas d'un réglage fin DeepSeek du modèle de distillation R1, ni n'est réglé à l'aide des données de distillation R1 (qui sont déjà prises en charge par Unsloth). Il s'agit d'une conversion du modèle standard en un modèle d'inférence à part entière utilisant GRPO.
  • Les cas d'utilisation du GRPO sont les suivants : si un utilisateur souhaite créer un modèle personnalisé avec des incitations (par exemple pour le droit, la médecine, etc.), le GRPO peut l'aider.
    Si un utilisateur dispose de données d'entrée et de sortie (par exemple des questions et des réponses) mais pas de chaîne de pensée ou de processus de raisonnement, GRPO peut magiquement créer des processus de raisonnement pour l'utilisateur ! + Plus d'informations

 

🤔 GRPO + moments d'épiphanie

Les chercheurs de DeepSeek ont observé un "moment d'épiphanie" lors de l'entraînement de R1-Zero à l'aide d'un apprentissage par renforcement (RL) pur. Le modèle a appris à prolonger son temps de réflexion en réévaluant son approche initiale sans aucune orientation humaine ou instruction prédéfinie.

Dans un exemple test, même si Unsloth a entraîné Phi-4 en 100 étapes en utilisant seulement GRPO, les résultats sont déjà évidents. Le modèle sans GRPO n'a pas pensé au jeton, alors que le modèle entraîné avec GRPO y a pensé et a également donné la bonne réponse.

使用 Unsloth 训练您自己的 DeepSeek R1 推理模型
Cette magie peut être reproduite avec GRPO, un algorithme RL qui optimise efficacement les réponses sans avoir besoin d'une fonction de valeur, contrairement à l'Optimisation des Politiques Proximales (OPP), qui s'appuie sur une fonction de valeur. Dans ses carnets, Unsloth utilise GRPO pour entraîner un modèle dans le but de lui permettre de développer de manière autonome ses propres capacités d'auto-validation et de recherche, créant ainsi un mini-moment d'épiphanie.

Comment cela fonctionne-t-il ?

  • Le modèle génère des groupes de réponse.
  • Chaque réponse est notée en fonction de la justesse ou d'une autre mesure créée par une fonction de récompense, plutôt que par le modèle de récompense du Big Language Model.
  • Calculez le score moyen du groupe.
  • Les scores de chaque réponse ont été comparés à la moyenne du groupe.
  • Le modèle a été amélioré pour prendre en charge les réponses les mieux notées.

 

Par exemple, supposons que Unsloth veuille que le modèle résolve :
Qu'est-ce que 1+1 ? >> chaîne de pensée/processus de calcul >> La réponse est 2.
Qu'est-ce que 2+2 ? >> chaîne de pensée/processus de calcul >> La réponse est 4.

Au départ, il faut collecter un grand nombre de données pour alimenter le processus de calcul/la chaîne de pensée. Mais GRPO (l'algorithme utilisé par DeepSeek) ou d'autres algorithmes RL peuvent guider le modèle pour montrer automatiquement le pouvoir de raisonnement et créer des trajectoires de raisonnement. Au lieu de cela, Unsloth doit créer de bonnes fonctions de récompense ou des validateurs. Par exemple, s'il obtient la bonne réponse, il faut lui donner 1 point. Si certains mots sont mal orthographiés, soustraire 0.1. Et ainsi de suite ! Unsloth peut fournir de nombreuses fonctions pour récompenser ce processus.

 

🦥 GRPO dans Unsloth

Si vous utilisez GRPO avec Unsloth localement, veuillez également "pip install diffusers" car il s'agit d'une dépendance.

Attendez au moins 300 pas pour que la récompense augmente réellement, utilisez la dernière version de vLLM. Rappelez-vous que l'exemple d'Unsloth sur Colab n'a été entraîné que pendant une heure, les résultats ne sont donc pas bons. Pour obtenir de bons résultats, l'utilisateur doit s'entraîner pendant au moins 12 heures (c'est ainsi que fonctionne GRPO), mais gardez à l'esprit que ce n'est pas obligatoire car l'utilisateur peut s'arrêter à tout moment.

Il est recommandé d'appliquer GRPO à des modèles avec au moins 1.5B de paramètres pour générer correctement le Thinking Token, car les modèles plus petits peuvent ne pas être en mesure de le générer. Si l'utilisateur utilise un modèle de base, assurez-vous que l'utilisateur a le modèle de chat. Le suivi des pertes d'entraînement pour GRPO est maintenant intégré directement dans Unsloth, éliminant le besoin d'outils externes tels que wandb.

使用 Unsloth 训练您自己的 DeepSeek R1 推理模型
En plus de l'ajout du support GRPO, Unsloth supporte désormais le DPO en ligne, le PPO et le RLOO ! Voir ci-dessous un tableau comparant la consommation de VRAM du DPO en ligne d'Unsloth à celle du Hugging Face + FA2 standard.

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

Unsloth x vLLM

Un débit 20 fois plus élevé et des économies de VRAM de 50% :

Les utilisateurs peuvent maintenant utiliser vLLM directement dans la pile de réglage fin, ce qui permet un meilleur débit et permet aux utilisateurs de régler finement et de raisonner sur le modèle simultanément ! Quantification dynamique sur 4 bits à l'aide de Llama 3.2 3B Instruct d'Unsloth sur 1 A100 40GB, estimé à 4000 jetons / s environ. Sur une Tesla T4 de 16 Go (avec le GPU Colab gratuit), les utilisateurs obtiennent 300 jetons / s.

Unsloth a également éliminé, comme par magie, la nécessité de charger simultanément le fichier vLLM Unsloth peut initialement affiner le Llama 3.3 70B Instruct in 1 48GB GPU, avec les poids du Llama 3.3 70B occupant 40GB de VRAM. Sans éliminer la double utilisation de la mémoire, Unsloth nécessiterait >= 80GB de VRAM lors du chargement d'Unsloth et de vLLM.

Mais avec Unsloth, les utilisateurs peuvent encore affiner et bénéficier des avantages de l'inférence rapide dans des VRAMs allant jusqu'à 48GB ! Pour utiliser l'inférence rapide, installez d'abord vllm et instanciez Unsloth avec 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!"])

 

Découverte de vLLM dans Unsloth

  • vLLM peut désormais charger la quantification dynamique 4 bits d'Unsloth. Comme le Dynamic R1 GGUF d'Unsloth à 1,58bit, Unsloth a montré que la quantification dynamique de certaines couches à 4 bits et de certaines couches à 16 bits améliore considérablement la précision tout en conservant un modèle de petite taille.
  • Unsloth sélectionne automatiquement plusieurs paramètres pour tenir compte de la RAM, de l'efficacité de la VRAM et du débit maximum (par exemple, # blocs pré-remplis de tokens, # séquences max, etc.) Unsloth active par défaut -O3 dans vLLM et active la mise en cache des préfixes Unsloth a trouvé que Flashinfer est en fait plus lent de 10% sur les GPU plus anciens. Le cache FP8 KV le rend 10% plus lent, mais double le potentiel de débit.
  • Unsloth permet de charger LoRA dans vLLM en analysant le dictionnaire d'états au lieu de le charger à partir du disque - cela peut rendre votre formation GRPO 1,5 fois plus rapide. Un domaine de recherche actif est la manière d'éditer l'adaptateur LoRA dans vLLM directement (Unsloth ne sait pas encore comment). Cela pourrait être un énorme accélérateur, car Unsloth déplace maintenant des données GPU inutilement.
  • vLLM peut étrangement avoir des pics de VRAM aléatoires, en particulier lors de la génération de lots. unsloth a ajouté une fonction de génération de lots pour réduire les pics de mémoire.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...