Home
Login

Boîte à outils d'affinage de grands modèles de langage efficace, flexible et complète, prenant en charge divers modèles et algorithmes d'entraînement.

Apache-2.0Python 4.6kInternLM Last Updated: 2025-05-29

XTuner - Boîte à outils efficace pour le fine-tuning de grands modèles de langage

Aperçu du projet

XTuner est une boîte à outils de fine-tuning de grands modèles de langage, efficace, flexible et complète, développée par l'équipe InternLM. Ce projet vise à fournir aux utilisateurs un outil simple d'utilisation et puissant pour le fine-tuning de divers grands modèles de langage, notamment InternLM, Llama, Qwen, ChatGLM, Baichuan et d'autres modèles courants.

Caractéristiques principales

1. Efficacité (Efficient)

  • Faibles besoins en ressources : Prend en charge le fine-tuning de grands modèles de langage avec 7B de paramètres sur un seul GPU de 8 Go.
  • Extension multi-nœuds : Prend en charge le fine-tuning multi-nœuds de plus de 70B de paramètres.
  • Optimisation des performances : Planifie automatiquement les opérateurs haute performance, tels que FlashAttention et les kernels Triton, pour améliorer le débit d'entraînement.
  • Intégration DeepSpeed : Compatible avec le framework DeepSpeed, permettant d'utiliser facilement diverses techniques d'optimisation ZeRO.

2. Flexibilité (Flexible)

  • Prise en charge de plusieurs modèles : Prend en charge une variété de grands modèles de langage.
    • Série InternLM (InternLM, InternLM2, InternLM2.5, InternLM3)
    • Série Meta Llama (Llama 2, Llama 3)
    • Autres modèles courants : Mixtral-8x7B, ChatGLM, Qwen, Baichuan, Gemma, DeepSeek, etc.
  • Prise en charge multimodale : Prend en charge les modèles de langage visuel (VLM), en particulier les modèles basés sur l'architecture LLaVA.
  • Pipeline de données : Pipeline de données soigneusement conçu, prenant en charge divers formats de jeux de données.
  • Divers algorithmes d'entraînement : Prend en charge QLoRA, LoRA, le fine-tuning complet des paramètres et d'autres stratégies d'entraînement.

3. Fonctionnalité complète (Full-featured)

  • Divers modes d'entraînement :
    • Pré-entraînement continu
    • Fine-tuning d'instructions
    • Fine-tuning d'agents intelligents
  • Fonctionnalités de conversation : Prend en charge la conversation avec de grands modèles à l'aide de modèles prédéfinis.
  • Intégration transparente : Les modèles de sortie peuvent être intégrés de manière transparente aux boîtes à outils de déploiement et de service (LMDeploy) ainsi qu'aux boîtes à outils d'évaluation à grande échelle (OpenCompass, VLMEvalKit).

Modèles pris en charge

XTuner prend en charge une large gamme de familles de modèles, y compris, mais sans s'y limiter :

Série de modèles Modèle spécifique Caractéristiques
InternLM InternLM, InternLM2, InternLM2.5, InternLM3 Optimisé pour le chinois, excellentes performances
Llama Llama 2, Llama 3 Modèle open source de Meta
Qwen Qwen 1.5, etc. Modèle open source d'Alibaba
ChatGLM ChatGLM3-6B, etc. Modèle open source de l'Université Tsinghua
Baichuan Baichuan2, etc. Modèle open source de Baichuan Intelligence
Mixtral Mixtral 8x7B Modèle d'experts mixtes de Mistral AI
Autres Gemma, DeepSeek, MiniCPM, etc. Modèles open source de diverses grandes entreprises

Capacités multimodales

XTuner excelle dans le domaine multimodal, en particulier dans les modèles de langage visuel :

  • Prise en charge de l'architecture LLaVA : Prise en charge complète du pré-entraînement et du fine-tuning de l'architecture LLaVA-v1.5.
  • Excellentes performances : Les performances du modèle LLaVA-InternLM2-20B sont remarquables.
  • Diverses combinaisons : Prend en charge diverses combinaisons d'encodeurs visuels et de modèles de langage.
  • Dernières versions :
    • LLaVA-Llama-3-8B
    • LLaVA-Llama-3-8B-v1.1
    • LLaVA-Phi-3-mini

Installation et utilisation

Préparation de l'environnement

# Créer un environnement virtuel Python 3.10
conda create --name xtuner-env python=3.10 -y
conda activate xtuner-env

Méthodes d'installation

Méthode 1 : Installation via pip

pip install -U xtuner

Méthode 2 : Intégration de DeepSpeed

pip install -U 'xtuner[deepspeed]'

Méthode 3 : Installation à partir du code source

git clone https://github.com/InternLM/xtuner.git
cd xtuner
pip install -e '.[all]'

Démarrage rapide

1. Préparer le fichier de configuration

# Afficher toutes les configurations disponibles
xtuner list-cfg

# Copier le fichier de configuration pour le personnaliser
xtuner copy-cfg ${CONFIG_NAME} ${SAVE_PATH}

2. Démarrer le fine-tuning

# Fine-tuning sur un seul GPU
xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --deepspeed deepspeed_zero2

# Fine-tuning sur plusieurs GPU
NPROC_PER_NODE=${GPU_NUM} xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --deepspeed deepspeed_zero2

3. Conversion de modèle

# Convertir le modèle PTH au format Hugging Face
xtuner convert pth_to_hf ${CONFIG_NAME_OR_PATH} ${PTH} ${SAVE_PATH}

4. Test de conversation

# Converser avec le modèle fine-tuné
xtuner chat ${NAME_OR_PATH_TO_LLM} --adapter ${NAME_OR_PATH_TO_ADAPTER}

Fonctionnalités avancées

1. Parallélisme de séquence

  • Prend en charge l'entraînement de séquences extrêmement longues
  • Méthode d'entraînement efficace et extensible
  • Convient aux scénarios nécessitant le traitement de longs textes

2. Entraînement DPO/ORPO

  • Prend en charge Direct Preference Optimization (DPO)
  • Prend en charge Odds Ratio Preference Optimization (ORPO)
  • Prend en charge l'entraînement du modèle de récompense
  • Prend en charge les données packed et le parallélisme de séquence

3. Optimisation du raisonnement mathématique

  • Prend en charge OREAL (une nouvelle méthode d'apprentissage par renforcement)
  • Optimisé spécifiquement pour les tâches de raisonnement mathématique

Performances

Vitesse d'entraînement

  • Llama2 7B : Possède une excellente vitesse d'entraînement sur un seul GPU.
  • Llama2 70B : Prend en charge l'entraînement parallèle multi-GPU, avec d'excellentes performances de vitesse.
  • DeepSeek V2 : Amélioration de la vitesse d'entraînement de 2 fois par rapport à la version précédente.

Efficacité de la mémoire

  • Faibles besoins en mémoire : 20 Go de mémoire GPU suffisent pour le fine-tuning QLoRA.
  • Fine-tuning complet des paramètres : 4x80 Go de GPU peuvent effectuer un fine-tuning complet des paramètres.
  • Optimisation de la mémoire : Réduit considérablement l'utilisation de la mémoire grâce à diverses techniques d'optimisation.

Intégration de l'écosystème

XTuner, en tant que composant important de l'écosystème InternLM, est étroitement intégré à d'autres outils :

  • LMDeploy : Boîte à outils de déploiement et de service de modèles
  • OpenCompass : Boîte à outils d'évaluation à grande échelle
  • VLMEvalKit : Boîte à outils d'évaluation des modèles de langage visuel
  • Lagent : Framework d'agents intelligents
  • AgentLego : Bibliothèque d'API d'outils multifonctionnels

Scénarios d'application

1. Recherche académique

  • Recherche sur le fine-tuning de grands modèles de langage
  • Développement de modèles multimodaux
  • Validation de nouveaux algorithmes

2. Applications industrielles

  • Chatbots personnalisés
  • Développement de modèles spécifiques à un domaine
  • Assistants IA d'entreprise

3. Éducation et formation

  • Enseignement de cours d'IA
  • Mise en place d'environnements expérimentaux
  • Formation aux compétences

Conclusion

XTuner est une boîte à outils de fine-tuning de grands modèles de langage complète et performante. Il prend non seulement en charge une large gamme de modèles et d'algorithmes d'entraînement, mais fournit également une chaîne d'outils complète, de la préparation des données au déploiement du modèle, offrant aux utilisateurs une solution unique. Que ce soit pour la recherche académique ou les applications industrielles, XTuner peut répondre aux besoins de différents scénarios et constitue un choix idéal pour le fine-tuning de grands modèles de langage.