Light-R1 : 360 modèles d'inférence superbes open source pour le domaine mathématique

Introduction générale

Light-R1 est un modèle d'IA open-source développé par l'équipe de Qihoo360 (Qihoo360) qui se concentre sur la chaîne de pensée (COT), une longue chaîne de raisonnement en mathématiques. Il est basé sur le modèle Qwen2.5-32B-Instruct et, grâce à une méthode d'entraînement unique basée sur le perfectionnement supervisé (SFT) et l'optimisation directe des préférences (DPO), il a obtenu des scores élevés de 76,6 et 64,6 aux concours de mathématiques AIME24 et AIME25, respectivement, pour un coût d'environ 1 000 dollars seulement (6 heures d'entraînement sur 12 machines H800). Le point fort de Light-R1 est l'efficacité et la rentabilité des performances obtenues en partant d'un modèle sans capacité d'inférence à longue chaîne, combiné à des données décontaminées et à des techniques de fusion de modèles. Le projet ne se contente pas de publier le modèle, il ouvre également tous les ensembles de données d'entraînement et le code, dans le but de promouvoir la popularité et le développement des modèles d'inférence à longue chaîne.

Light-R1:360开源的数学领域超强推理模型

 

Liste des fonctions

  • raisonnement mathématiqueLe logiciel de gestion de l'information : Il permet de résoudre avec précision des problèmes pour des concours mathématiques difficiles tels que l'AIME.
  • Soutien au raisonnement en chaîne longue: en codant en dur <think> Le modèle est ainsi contraint de raisonner progressivement sur des problèmes complexes.
  • partage des ressources en open sourceLes données complètes de formation SFT et DPO et les scripts de formation basés sur l'usine 360-LLaMA sont disponibles.
  • Déploiement efficace du raisonnement: Soutien vLLM et SGLang afin d'optimiser la vitesse d'inférence des modèles et l'utilisation des ressources.
  • Outils d'évaluation des modèlesIntégration du code d'évaluation DeepScaleR, fournissant des résultats de référence tels que AIME24.
  • Décontamination des donnéesLes données de formation ne doivent pas être contaminées par des données de référence telles que MATH-500, AIME24/25, etc. afin d'améliorer l'équité.

Utiliser l'aide

Processus d'acquisition et d'installation

Light-R1 est un projet open source hébergé sur GitHub qui permet aux utilisateurs d'acquérir et de déployer des modèles en suivant les étapes ci-dessous :

  1. Accéder aux dépôts GitHub
    Ouvrez votre navigateur et entrez l'URL https://github.com/Qihoo360/Light-R1permet d'accéder à la page d'accueil du projet. Cette page contient une introduction au modèle, des liens vers des ensembles de données et des descriptions de codes.
  2. entrepôt de clones
    Clonez le projet localement en tapant la commande suivante dans un terminal ou une ligne de commande :
git clone https://github.com/Qihoo360/Light-R1.git

Une fois le clonage terminé, allez dans le répertoire du projet :

cd Light-R1
  1. Télécharger les fichiers modèles
    Le modèle Light-R1-32B est hébergé sur Hugging Face. Accès https://huggingface.co/Qihoo360/Light-R1-32BSi vous souhaitez télécharger le fichier de poids du modèle, suivez les instructions de la page. Après le téléchargement, placez le fichier dans un répertoire approprié de votre dépôt local (par ex. models/), le chemin exact peut être trouvé dans la documentation du projet.
  2. Installation d'environnements dépendants
    Light-R1 recommande d'utiliser vLLM ou SGLang pour l'inférence, et nécessite l'installation des dépendances correspondantes. Prenons l'exemple de vLLM :
  • Assurez-vous que Python 3.8 ou une version ultérieure est installé.
  • Installer vLLM :
    pip install vllm
    
  • Si la prise en charge du GPU est nécessaire, assurez-vous que CUDA est configuré (12 périphériques H800 ou équivalents sont recommandés).
  1. Préparer des ensembles de données (facultatif)
    Si vous avez besoin de reproduire l'entraînement ou de l'affiner, vous pouvez télécharger les ensembles de données SFT et DPO à partir de la page GitHub (lien dans le tableau de bord). Curriculum SFT & DPO datasets (Partie). Décompressez-la et placez-la dans le data/ Catalogue.

Principales fonctions

1. le raisonnement mathématique avec Light-R1

La fonction principale de Light-R1 est de résoudre des problèmes mathématiques, en particulier des sujets complexes qui nécessitent de longues chaînes de raisonnement. Voici les étapes :

  • Lancer un service de raisonnement
    Allez dans le répertoire du projet dans le terminal et exécutez la commande suivante pour démarrer le service d'inférence vLLM :
python -m vllm.entrypoints.api_server --model path/to/Light-R1-32B

Parmi ceux-ci path/to/Light-R1-32B Remplacez-le par le chemin d'accès au fichier du modèle. Lorsqu'il est lancé, le service écoute sur le port local par défaut (généralement 8000).

  • Envoyer une demande d'inférence
    Utilisez un script Python ou la commande curl pour envoyer des questions mathématiques au modèle. Prenons l'exemple de curl :
curl http://localhost:8000/v1/completions 
-H "Content-Type: application/json" 
-d '{
"model": "Light-R1-32B",
"prompt": "<think>Solve the equation: 2x + 3 = 7</think>",
"max_tokens": 200
}'

Le modèle renvoie des processus de raisonnement et des réponses étape par étape, par exemple :

{
"choices": [{
"text": "<think>First, subtract 3 from both sides: 2x + 3 - 3 = 7 - 3, so 2x = 4. Then, divide both sides by 2: 2x / 2 = 4 / 2, so x = 2.</think> The solution is x = 2."
}]
}
  • mise en garde
  • <think> Les étiquettes sont codées en dur et doivent être incluses dans l'entrée pour déclencher l'inférence de la chaîne longue.
  • Pour les défis de niveau AIME, il est recommandé d'ajouter max_tokens(par exemple, 500) pour s'assurer que le raisonnement est complet.

2. formation au modèle de réplication

Si vous souhaitez reproduire le processus de formation de Light-R1 ou en faire un développement secondaire, vous pouvez suivre les étapes ci-dessous :

  • Préparation de l'environnement de formation
    Utilisez le cadre 360-LLaMA-Factory et installez les dépendances :
pip install -r train-scripts/requirements.txt
  • Exécuter la phase 1 du SFT
    compilateur train-scripts/sft_stage1.shassurez-vous que le chemin d'accès au modèle et le chemin d'accès à l'ensemble de données sont corrects, puis exécutez :
bash train-scripts/sft_stage1.sh

Cette phase utilise 76 000 ensembles de données et dure environ 3 heures (12 H800).

  • Exécuter la phase 2 du SFT
    De même, courir :
bash train-scripts/sft_stage2.sh

Utiliser des ensembles de données plus difficiles (3k) pour améliorer les performances du modèle.

  • Exécution du DPD
    Mise en œuvre :
bash train-scripts/dpo.sh

Le DPO optimise encore les capacités d'inférence sur la base des résultats de l'étape 2 du SFT.

  • Fusion de modèles
    Utilisez le script de fusion fourni (par ex. merge_models.py), en fusionnant les modèles SFT et DPO :
python merge_models.py --sft-model sft_stage2 --dpo-model dpo --output Light-R1-32B

3. l'évaluation de la performance du modèle

Light-R1 fournit des outils d'évaluation pour tester des critères de référence tels que l'AIME24 :

  • Exécuter le script d'évaluation
    existent deepscaler-release/ cataloguer, exécuter :
python evaluate.py --model Light-R1-32B --benchmark AIME24

Les résultats seront consignés dans le journal de bord et la note moyenne devrait être proche de 76,6 à 64 reprises.

Fonctions vedettes

Optimisation de l'inférence en chaîne longue

Light-R1 Adopté <think> répondre en chantant </think> Un étiquetage spécial pour s'assurer que le modèle raisonne étape par étape à travers le problème mathématique. Par exemple, entrée :

<think>Find the number of positive integers less than 100 that are divisible by 3 or 5.</think>

Modèle de sortie :

<think>Let’s use inclusion-exclusion. Numbers divisible by 3: 99 ÷ 3 = 33. Numbers divisible by 5: 99 ÷ 5 = 19. Numbers divisible by 15 (LCM of 3 and 5): 99 ÷ 15 = 6. Total = 33 + 19 - 6 = 46.</think> Answer: 46.

Garanties de décontamination des données

Les données d'entraînement sont rigoureusement décontaminées pour garantir l'équité dans les tests de référence tels que AIME24/25. L'utilisateur peut vérifier l'ensemble des données (data/ (Catalogue) Vérifier qu'il n'y a pas de sujets en double.

Exemples de formations peu coûteuses

Light-R1 démontre la faisabilité d'une formation efficace, et les utilisateurs peuvent se référer aux scripts de formation pour adapter le modèle à d'autres domaines (par exemple, la physique).

Conseils et astuces

  • Amélioration de la précision du raisonnement: Augmentation max_tokens ou en moyenne sur plusieurs séries.
  • Problèmes de débogageLes journaux d'évaluation : Consultez les journaux d'évaluation pour analyser le processus de raisonnement du modèle sur des sujets spécifiques.
  • Soutien communautairePour plus d'informations, consultez la page GitHub du site WeChat.
© 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...