Modèle / jeu de données
modelscope/ms-swift avatar
modelscope/ms-swift

ms-swift : un cadre unique pour l'entraînement, l'alignement et le déploiement de 600+ LLM et 400+ MLLM

Use PEFT or Full-parameter to CPT/SFT/DPO/GRPO 600+ LLMs (Qwen3.6, DeepSeek-V4, GLM-5.1, InternLM3, Llama4, ...) and 300+ MLLMs (Qwen3-VL, Qwen3-Omni, InternVL3.5, Ovis2.5, GLM4.5v, Gemma4, Llava, Phi4, ...) (AAAI 2025).

15 636 étoiles1 680 forksPythonApache-2.0

En bref

De quoi s’agit-il ?
ms-swift, porté par la communauté ModelScope, couvre le cycle complet des grands modèles textuels et multimodaux : pré-entraînement, SFT, DPO, GRPO, quantification et déploiement. Sa force est l'étendue du catalogue pris en charge ; sa limite est la complexité de configuration que cette étendue impose.
À qui s’adresse-t-il ?
Adoptez ms-swift si vous devez entraîner ou aligner plusieurs familles de modèles, notamment multimodales, sans réécrire votre pipeline à chaque changement d'architecture. Passez votre chemin si votre besoin se limite à un seul modèle texte et à une recette LoRA stable : la surface de configuration devient un coût sans contrepartie.
Puis-je l’utiliser commercialement ?
Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
En quel langage est-il écrit ?
Principalement Python, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Le problème : chaque famille de modèles impose son propre pipeline

Entraîner un LLM ne consiste pas seulement à lancer une boucle d'optimisation. Il faut préparer les données, choisir une méthode de param-efficient fine-tuning, gérer la parallélisation sur plusieurs GPU, aligner le modèle sur des préférences humaines, quantifier les poids, puis servir le résultat derrière une API compatible avec les clients existants. Dans la pratique, chaque famille de modèles (Qwen, Llama, InternLM, GLM) arrive avec ses conventions de tokenizer, ses formats de gabarit de conversation et ses particularités d'architecture. Un pipeline écrit pour Llama demande généralement une réécriture partielle pour passer à DeepSeek ou à un modèle multimodal. ms-swift répond à ce problème en proposant une couche d'abstraction unique au-dessus de ces différences. Le README annonce la prise en charge de plus de 600 modèles textuels et de plus de 400 modèles multimodaux, avec un support qualifié de Day-0 pour les sorties populaires. La cible est claire : les équipes qui doivent expérimenter sur plusieurs architectures, ou qui veulent conserver un même outillage quand un nouveau modèle remplace l'ancien.

Architecture : une façade CLI au-dessus de Transformers, DeepSpeed, Megatron et vLLM

ms-swift ne réimplémente pas l'entraînement distribué. D'après le README, il s'appuie sur des briques existantes : DeepSpeed ZeRO2 et ZeRO3, FSDP et FSDP2, ainsi que Megatron pour les stratégies de parallélisme TP, PP, CP, EP, ETP et VPP. L'inférence et l'évaluation passent par Transformers, vLLM, SGLang ou LMDeploy selon le moteur choisi. La quantification s'appuie sur GPTQ, AWQ, BNB et FP8. Le rôle de ms-swift est donc d'orchestrer ces composants derrière une interface cohérente, avec des gabarits de modèles et des gabarits d'agents qui normalisent les formats d'entrée. Un point de conception intéressant : le README indique que les gabarits d'agents permettent d'utiliser un même jeu de données pour entraîner des modèles différents. C'est précisément là que se situe la valeur ajoutée, plus que dans les algorithmes eux-mêmes, qui sont pour la plupart disponibles ailleurs. Le revers de cette médiation est qu'un bug dans la couche de gabarits peut affecter silencieusement plusieurs familles de modèles à la fois.

Méthodes d'entraînement couvertes : du LoRA au GRPO

La liste des méthodes param-efficientes est longue : LoRA, QLoRA, DoRA, LoRA+, LLaMAPro, LongLoRA, LoRA-GA, ReFT, RS-LoRA, Adapter et LISA. Pour l'alignement, le README cite DPO, KTO, RM, CPO, SimPO et ORPO. Côté apprentissage par renforcement, la famille GRPO est déclinée en GRPO, DAPO, GSPO, SAPO, CISPO, CHORD, RLOO et Reinforce++. Le projet couvre également les tâches d'Embedding, de Reranker et de classification de séquences. Cette accumulation pose une question légitime : toutes ces méthodes sont-elles maintenues au même niveau ? Le README ne fournit pas d'indication sur ce point, et la présence d'une méthode dans une liste ne garantit ni sa stabilité ni sa couverture de tests. Pour un utilisateur, la conséquence pratique est qu'il faut traiter chaque algorithme comme une fonctionnalité distincte à valider, et non comme un bloc homogène.

Mise en route : installation et commandes de base

Le README renvoie à une section Installation et à une section Quick Start, sans en détailler le contenu dans l'extrait fourni. Les badges indiquent Python 3.12, PyTorch ≥2.0 et ModelScope ≥1.23 comme prérequis. Le paquet est publié sur PyPI sous le nom ms-swift, ce qui suggère une installation via pip, mais je ne peux pas confirmer la commande exacte à partir du matériel dont je dispose. De même, le README mentionne une interface Web-UI pour l'entraînement, l'inférence, l'évaluation et la quantification, sans donner la commande de lancement. Les points d'entrée CLI précis (par exemple les scripts swift sft, swift infer ou équivalents) ne figurent pas dans l'extrait. La documentation en ligne, hébergée sur swift.readthedocs.io en versions anglaise et chinoise, est la source à consulter pour les commandes exactes et les clés de configuration. Toute affirmation sur la syntaxe précise des commandes serait ici une invention.

Contraintes matérielles et mémoire

Le README revendique la prise en charge de A10, A100, H100, des cartes RTX, T4, V100, des GPU AMD de la série MI300, du CPU, de MPS et des NPU Ascend. Il annonce également qu'un modèle de 7 milliards de paramètres peut être entraîné avec environ 9 Go de ressources grâce à l'entraînement sur modèles quantifiés (BNB, AWQ, GPTQ, AQLM, HQQ, EETQ). Ces chiffres proviennent du README et n'ont pas été reproduits ici. Ils méritent d'être lus avec prudence : la consommation mémoire dépend fortement de la longueur de séquence, de la taille du lot et du type d'optimiseur. Pour les longs contextes, le projet propose GaLore, Q-Galore, UnSloth, Liger-Kernel, Flash-Attention 2 et 3, ainsi que les techniques de parallélisme de séquence Ulysses et Ring-Attention. Le support annoncé du CPU et de MPS est à considérer comme un mode de secours pour le débogage, pas comme une cible de production.

Ce que le projet ne résout pas

L'étendue du catalogue est aussi sa principale faiblesse. Prendre en charge 600 modèles textuels et 400 multimodaux implique une matrice de compatibilité large, et le README ne publie pas de tableau indiquant quelles combinaisons de modèle, méthode d'entraînement et moteur d'inférence sont effectivement validées. Un utilisateur qui combine un modèle récent, une méthode d'alignement peu répandue et un backend de quantification spécifique peut se retrouver dans une zone non testée. Deuxième limite : le projet est explicitement lié à l'écosystème ModelScope, avec une documentation principale en chinois et en anglais. Pour une équipe qui a bâti son pipeline autour de l'écosystème Hugging Face seul, l'intégration demande un travail d'adaptation que le README n'aborde pas. Troisième limite : la dépendance à Megatron, DeepSpeed et FSDP signifie que les problèmes de performance ou de stabilité peuvent provenir de ces couches plutôt que de ms-swift, ce qui complique le diagnostic.

Alternatives : quand choisir autre chose

Deux alternatives méritent d'être citées, avec des approches différentes. Hugging Face TRL et PEFT proposent une boîte à outils plus modulaire : PEFT gère les adaptateurs LoRA et QLoRA, TRL fournit les entraîneurs SFT, DPO et GRPO. La différence est philosophique : PEFT et TRL exposent des composants que vous assemblez vous-même, ce qui donne un contrôle plus fin sur chaque étape et une intégration naturelle avec l'écosystème Hugging Face. ms-swift, à l'inverse, fournit un pipeline intégré avec des gabarits de modèles et d'agents, au prix d'une couche d'abstraction supplémentaire. LLaMA-Factory est un autre point de comparaison : il vise également l'entraînement unifié de nombreux modèles, avec une interface Web-UI et une configuration YAML. Le choix entre les deux dépendra de la couverture effective de vos modèles cibles et de la qualité de la documentation dans votre langue de travail. Aucun de ces projets n'est universellement supérieur ; la différence se joue sur la profondeur du support par modèle, pas sur la longueur de la liste.

Licence, maintenance et coût de mise à jour

ms-swift est distribué sous licence Apache-2.0, ce qui autorise l'usage commercial, la modification et la redistribution, à condition de conserver les mentions de copyright et de licence. Cette licence couvre le code du cadre, pas les poids des modèles que vous téléchargez : chaque modèle conserve sa propre licence, parfois restrictive. Le rythme de publication est soutenu : trois versions en un mois selon les données du dépôt (v4.5.0 le 14 août 2026, v4.5.2 le 16 août, v4.5.3 le 8 septembre). Ce rythme implique un coût de maintenance réel pour les équipes qui suivent la branche principale : les interfaces de configuration peuvent évoluer entre versions mineures, et il faut prévoir des tests de non-régression sur vos propres recettes d'entraînement. La stratégie raisonnable est d'épingler une version dans votre fichier de dépendances et de ne monter de version qu'après validation. Le README ne décrit pas de politique de support à long terme pour les anciennes versions.

Conclusion éditoriale

Adoptez ms-swift si vous devez entraîner ou aligner plusieurs familles de modèles, notamment multimodales, sans réécrire votre pipeline à chaque changement d'architecture. Passez votre chemin si votre besoin se limite à un seul modèle texte et à une recette LoRA stable : la surface de configuration devient un coût sans contrepartie. Avant de vous engager, vérifiez trois points dans le dépôt : que votre modèle figure dans la liste des architectures prises en charge, que la version de PyTorch requise (≥2.0, Python 3.12 selon les badges du README) correspond à votre image de conteneur, et que la licence Apache-2.0 du cadre est compatible avec les licences propres aux poids que vous comptez télécharger.

Sources officielles

  1. License: Apache-2.0
  2. modelscope/ms-swift on GitHub
  3. Project website
  4. README
  5. Releases
Notes de la communauté

Notes de la communauté