Home
Login

Une boîte à outils extensible, pratique et efficace pour le réglage fin et l'inférence de grands modèles de base, conçue pour être conviviale, rapide et fiable, et ouverte à toute la communauté.

Apache-2.0Python 8.4kOptimalScale Last Updated: 2025-05-15

LMFlow - Boîte à outils pour le fine-tuning et l'inférence de grands modèles de fondation

Aperçu du projet

LMFlow est un projet open source développé par l'équipe OptimalScale, une boîte à outils évolutive, pratique et efficace pour le fine-tuning de grands modèles d'apprentissage automatique. Ce projet est spécialement conçu pour être convivial, rapide et fiable, dans le but de rendre la technologie des grands modèles de langage accessible à toute la communauté, réalisant ainsi la vision de "mettre les grands modèles au service de tous".

Adresse du projet : https://github.com/OptimalScale/LMFlow

Caractéristiques principales

1. Prise en charge de diverses méthodes d'entraînement

  • Fine-tuning complet des paramètres : Mise à jour de tous les paramètres pour affiner le modèle de langage
  • LoRA (Low-Rank Adaptation) : Algorithme de fine-tuning efficace en termes de paramètres, plus efficace que le fine-tuning complet des paramètres
  • LISA (Layerwise Importance Sampling) : Algorithme de fine-tuning efficace en termes de mémoire, capable d'entraîner des modèles 7B dans une mémoire GPU de 24 Go sans déchargement

2. Large prise en charge des modèles

Prise en charge de plusieurs grands modèles de langage courants, notamment :

  • Série DeepSeek : deepseek, deepseek_v2, deepseek_r1, etc.
  • Série LLaMA : llama2, llama3, llama3_for_tool
  • Série Qwen : qwen2, qwen2_for_tool, qwen2_5, etc.
  • Diverses architectures de modèles telles que Gemma, Phi, Yi, InternLM2

3. Techniques d'optimisation des performances

Optimisation de la mémoire

  • FlashAttention-2 : Prise en charge de la dernière technologie FlashAttention, améliorant considérablement la vitesse d'entraînement et d'inférence
  • Gradient Checkpointing : Optimisation de l'utilisation de la mémoire grâce à une stratégie de calcul contre mémoire
  • DeepSpeed Zero-3 : Prise en charge de l'entraînement distribué de modèles à grande échelle

Accélération de l'inférence

  • Intégration vLLM : Prise en charge de l'inférence et du service LLM rapides et faciles à utiliser
  • Décodage spéculatif : Prise en charge de la technologie de décodage spéculatif pour accélérer l'inférence
  • Inférence CPU : Prise en charge de l'exécution de modèles LLaMA sur CPU (via une quantification à 4 bits)

4. Richesse des fonctionnalités

Prise en charge des modèles de conversation

  • Modèles de conversation Llama-3 et Phi-3 les plus récents prédéfinis
  • Prise en charge de plusieurs modèles courants tels que chatml
  • Modèles de conversation personnalisables pour de meilleures performances

Prise en charge multimodale

  • Prise en charge des entrées multimodales d'images et de texte
  • Fournit des fonctionnalités de chatbot multimodal
  • Service de démonstration en ligne disponible

Traitement du contexte long

  • Prise en charge de l'interpolation de position (mise à l'échelle linéaire et NTK) pour les modèles LLaMA
  • Extension de la capacité de traitement du contexte du modèle

5. Évaluation et tests de référence

LMFlow Benchmark est un cadre d'évaluation automatique spécialement conçu pour les grands modèles de langage open source, utilisant la vraisemblance négative (NLL) comme indicateur pour évaluer les capacités du modèle dans les domaines suivants :

  • Conversation informelle
  • Raisonnement de bon sens
  • Suivi des instructions

Innovation technique

Algorithme RAFT

Le projet propose un nouvel algorithme d'alignement : Reward rAnked FineTuning (RAFT), cette méthode est plus efficace que le RLHF traditionnel basé sur PPO.

Optimiseurs personnalisés

Prise en charge de divers entraînements d'optimiseurs personnalisés, notamment :

  • RMSprop, LION-32bit, Adam, AdamW
  • AdaFactor, Adan, RAdam et plus de 20 autres optimiseurs
  • Possibilité de choisir la stratégie d'optimisation la plus adaptée à la tâche spécifique

Cas d'application pratiques

Percée dans le domaine médical

Les modèles entraînés par LMFlow sont performants dans le domaine médical, et leur modèle de réglage de tâche surpasse ChatGPT dans ce domaine, démontrant ainsi un potentiel énorme dans les applications verticales.

Série de modèles Robin

Le projet a publié plusieurs modèles Robin haute performance :

  • Robin-33B-V2 : Obtient un excellent score de 64,1 sur le classement Huggingface LLM
  • Fournit des points de contrôle de plusieurs tailles : 7B, 13B, 33B, 65B, etc.

Installation et utilisation

Configuration requise

  • Principalement testé sur Linux OS (Ubuntu 20.04)
  • Prise en charge des versions CUDA 10.3-11.7
  • Environnement Python 3.9

Installation rapide

git clone -b v0.0.9 https://github.com/OptimalScale/LMFlow.git
cd LMFlow
conda create -n lmflow python=3.9 -y
conda activate lmflow
conda install mpi4py
pip install -e .

Installation PyPI

pip install lmflow-finetune

Impact technique

Le projet LMFlow a déjà eu un impact important dans les milieux universitaires et industriels :

  • Articles connexes publiés dans des conférences universitaires de premier plan
  • A reçu beaucoup d'attention et d'utilisation sur GitHub
  • A apporté une contribution importante à l'écosystème des grands modèles de langage open source

Résumé

LMFlow, en tant que boîte à outils complète pour les grands modèles de langage, fournit non seulement des solutions complètes d'entraînement et d'inférence de modèles, mais a également innové dans de nombreux aspects tels que l'optimisation de la mémoire, l'accélération des performances et l'évaluation des modèles. Il réduit le seuil d'utilisation des grands modèles de langage, permettant à davantage de chercheurs et de développeurs de construire et de déployer facilement leurs propres modèles de langage, réalisant ainsi véritablement l'objectif de "mettre les grands modèles au service de tous".