Modell / Datensatz
modelscope/ms-swift avatar
modelscope/ms-swift

ms-swift: ein Trainingsframework für 600+ LLMs und 400+ MLLMs im Überblick

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 Sterne1.680 ForksPythonApache-2.0

Auf einen Blick

Was ist das?
ms-swift bündelt Feintuning, Alignment, Quantisierung und Deployment in einer Python-Bibliothek unter Apache-2.0. Der Artikel ordnet ein, für wen sich der Einstieg lohnt und wo die Dokumentation dünn bleibt.
Für wen ist es gedacht?
Wer viele verschiedene Modelle mit einer einheitlichen Pipeline trainieren, quantisieren und ausliefern will, findet in ms-swift eine breite Abdeckung unter Apache-2.0. Wer eine kleine, feste Modellpalette betreibt und deren Trainingsskripte ohnehin selbst pflegt, gewinnt durch die zusätzliche Abstraktion wenig.
Darf ich es kommerziell nutzen?
Ja. Apache-2.0 ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Das Repository hat innerhalb des letzten Tages neue Commits erhalten.
In welcher Sprache ist es geschrieben?
Hauptsächlich Python, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Welche Lücke ms-swift schließt

Feintuning großer Modelle besteht selten aus einem einzigen Skript. Wer ein Basismodell anpassen will, braucht Datenaufbereitung, einen Trainer, eine Methode zur Speicherreduktion, eine Auswertung und einen Weg, das Ergebnis auszuliefern. Jeder dieser Schritte hat eigene Abhängigkeiten, und die Modellklassen unterscheiden sich zwischen Text- und multimodalen Architekturen. ms-swift setzt genau dort an: Das Projekt bezeichnet sich selbst als Infrastruktur für Feintuning und Deployment und deckt nach eigener Angabe Training, Inferenz, Evaluation, Quantisierung und Auslieferung ab. Die Zielgruppe sind Anwender, die mehrere Modelle vergleichen wollen, ohne für jedes eine eigene Trainingspipeline zu schreiben. Die Breite ist das Verkaufsargument: 600+ reine Textmodelle und 400+ multimodale Modelle werden in der Einleitung genannt, dazu vortrainierte Verfahren von CPT über SFT bis DPO und GRPO. Wer nur ein einziges Modell mit einem festen Rezept trainiert, braucht diese Breite nicht. Wer regelmäßig neue Modelle ausprobiert, spart sich die wiederkehrende Integrationsarbeit.

Der Aufbau: Trainer, Backends und Parallelität

Die Architektur folgt dem Muster einer zentralen Kommandozeile, die Trainingsjobs konfiguriert und an austauschbare Backends weiterreicht. Für verteiltes Training nennt das Projekt DDP, DeepSpeed ZeRO2 und ZeRO3, FSDP beziehungsweise FSDP2 sowie Megatron. Megatron ist dabei nicht nur eine weitere Option, sondern bringt eigene Parallelisierungsstrategien mit: TP, PP, SP, CP, ETP, EP und VPP. Für MoE-Modelle ist das relevant, weil Expertenparallelität dort überhaupt erst sinnvolle Auslastung erzeugt. Die Speicheroptimierung liegt auf einer zweiten Ebene: GaLore, Q-Galore, UnSloth, Liger-Kernel, Flash-Attention 2 und 3 sowie Ulysses und Ring-Attention als Sequenzparallelität. Für lange Kontexte ist das der Unterschied zwischen lauffähig und nicht lauffähig. Beim Alignment setzt das Projekt auf eine ganze Familie von Verfahren: GRPO, DAPO, GSPO, SAPO, CISPO, CHORD, RLOO und Reinforce++. Dazu kommen Präferenzverfahren wie DPO, KTO, RM, CPO, SimPO und ORPO. Für die Auswertung dient EvalScope als Backend, für Inferenz und Deployment stehen vLLM, SGLang und LMDeploy bereit. Bemerkenswert ist, dass dieselbe Bibliothek auch Embedding-, Reranker- und Sequenzklassifikationsaufgaben abdeckt, also nicht auf generative Modelle beschränkt bleibt.

Installation und der erste Trainingslauf

Die README nennt Python 3.12, PyTorch ab Version 2.0 und modelscope ab 1.23 als Voraussetzungen. Der übliche Weg führt über PyPI, das Paket heißt ms-swift. Für den Schnellstart verweist die Dokumentation auf eigene Anleitungen, und das Web-UI wird als eigener Einstiegspunkt beschrieben, über den sich Training, Inferenz, Evaluation und Quantisierung ohne eigenes Skript steuern lassen. Wer die Kommandozeile bevorzugt, konfiguriert den Lauf über Parameter statt über Python-Code. Ein konkretes Beispiel aus der README ist die Angabe, dass 7B-Modelle mit quantisierten Gewichten (BNB, AWQ, GPTQ, AQLM, HQQ, EETQ) mit rund 9 GB Trainingsspeicher auskommen. Diese Zahl stammt aus der Projektbeschreibung und ist keine unabhängige Messung. Die Hardwareliste umfasst A10, A100, H100, die RTX-Reihe, T4 und V100, AMD-GPUs der MI300-Serie, CPU, MPS sowie Ascend NPU. Wer auf einer dieser Plattformen arbeitet, sollte vor dem ersten Lauf klären, welche Quantisierungs- und Attention-Backends dort tatsächlich gebaut werden können, denn die Liste nennt unterstützte Hardware, nicht getestete Kombinationen.

Multimodale Daten und Agent-Templates

Für multimodale Modelle nennt das Projekt zwei Punkte, die den Aufwand im Alltag bestimmen. Erstens das Packing: Beispiele werden so gebündelt, dass die Sequenzlänge besser ausgelastet wird. Die README spricht von einer Steigerung der Trainingsgeschwindigkeit um mehr als 100 Prozent. Das ist eine Projektangabe ohne veröffentlichten Messaufbau, und der tatsächliche Effekt hängt von der Längenverteilung des eigenen Datensatzes ab. Zweitens die getrennte Steuerung von Vision-Encoder, Aligner und Sprachmodell. Wer nur den Aligner anpassen will, muss den Rest nicht einfrieren, sondern kann die Komponenten einzeln konfigurieren. Das ist praktisch, weil sich damit typische Fehler vermeiden lassen, etwa ein unbeabsichtigtes Mittrainieren des Vision-Encoders. Gemischte Daten aus Text, Bild, Video und Audio werden laut Projekt in einem Lauf verarbeitet. Für Agenten gibt es Templates, mit denen derselbe Datensatz für verschiedene Modelle verwendet werden kann. Das ist ein Formatierungsproblem, das in der Praxis viel Zeit kostet, weil jedes Modell seine eigenen Rollenmarker erwartet.

Wo die Grenzen liegen

Die größte Einschränkung ist die Abhängigkeit von der Modellliste. Die Unterstützung ist nicht automatisch, sondern wird pro Architektur gepflegt. Ein Modell, das nicht in der Liste steht, lässt sich nicht einfach über einen generischen Pfad trainieren. Das ist bei der Geschwindigkeit, mit der neue Architekturen erscheinen, ein strukturelles Problem: Zwischen Veröffentlichung eines Modells und Integration liegt immer eine Verzögerung, auch wenn das Projekt Day-0-Unterstützung für populäre Modelle angibt. Zweitens die Breite selbst. Hunderte Modelle, ein Dutzend Trainingsverfahren und mehrere Inferenz-Backends bedeuten viele Kombinationen, und nicht jede ist gleich gut gepflegt. Die README beschreibt Funktionen, nicht deren Reifegrad. Drittens die Hardware. Ascend NPU, AMD und MPS werden genannt, aber die genannten Optimierungen wie Flash-Attention oder Liger-Kernel sind eng an bestimmte Beschleuniger gebunden. Wer auf ungewöhnlicher Hardware arbeitet, muss damit rechnen, auf die einfacheren Pfade zurückzufallen. Und schließlich: Für ein einzelnes Modell mit einem festen Rezept ist der Rahmen schwerer als ein schlankes eigenes Trainingsskript, weil Konfiguration und Abhängigkeiten mitwachsen.

Wann man besser woanders ansetzt

Naheliegend ist der Vergleich mit Hugging Face TRL in Kombination mit peft und transformers. Beide Ansätze decken SFT und Präferenzverfahren ab, unterscheiden sich aber im Zuschnitt. TRL ist bewusst klein gehalten: Es liefert Trainer-Klassen, die sich direkt in ein bestehendes transformers-Skript einbetten lassen. Man schreibt Python, importiert die Trainer und behält die Kontrolle über den gesamten Ablauf. ms-swift geht den umgekehrten Weg und stellt eine eigene Konfigurations- und Kommandoebene über die Trainer, mit dem Ziel, denselben Aufruf für hunderte Modelle zu verwenden. Wer ohnehin in Python arbeitet und nur ein Modell anpasst, ist mit TRL näher an der Bibliothek. Wer dagegen viele Modelle vergleichen und die Pipelines nicht mehrfach schreiben will, profitiert vom ms-swift-Ansatz. Ein zweiter Unterschied liegt beim Umfang: ms-swift bringt Quantisierung, Deployment und Evaluation mit, TRL überlässt diese Schritte anderen Werkzeugen. Das ist keine Frage von besser oder schlechter, sondern davon, ob man ein Bündel oder einzelne Bausteine bevorzugt.

Wartung, Versionen und Lizenz

Die Veröffentlichungsfrequenz ist hoch. Zwischen dem 14. August und dem 8. September 2026 liegen drei Releases: v4.5.0, v4.5.2 und v4.5.3. Wer ms-swift produktiv einsetzt, muss mit häufigen Aktualisierungen rechnen und sollte Versionen pinnen, statt ungeprüft zu aktualisieren. Die Kombination aus PyTorch, modelscope, Transformers, DeepSpeed, Megatron und den Inferenz-Backends erzeugt einen großen Abhängigkeitsgraphen, in dem eine einzelne Versionsänderung mehrere Komponenten betreffen kann. Für die Wartung bedeutet das: Ein Update ist kein trivialer Vorgang, sondern eine Änderung an einem Bündel. Das Projekt steht unter Apache-2.0. Diese Lizenz erlaubt kommerzielle Nutzung, Veränderung und Weitergabe, verlangt aber, dass Lizenz- und Urheberrechtshinweise erhalten bleiben und Änderungen kenntlich gemacht werden. Sie enthält eine ausdrückliche Patentgewährung. Wichtig ist die Abgrenzung: Die Lizenz betrifft den Code von ms-swift, nicht die trainierten Modellgewichte. Deren Nutzungsbedingungen stammen von den jeweiligen Rechteinhabern und können abweichen. Wer ein Modell kommerziell einsetzt, muss dessen eigene Lizenz prüfen. Das ist keine Rechtsberatung, sondern ein Hinweis auf die zwei getrennten Ebenen.

Redaktionelles Fazit

Wer viele verschiedene Modelle mit einer einheitlichen Pipeline trainieren, quantisieren und ausliefern will, findet in ms-swift eine breite Abdeckung unter Apache-2.0. Wer eine kleine, feste Modellpalette betreibt und deren Trainingsskripte ohnehin selbst pflegt, gewinnt durch die zusätzliche Abstraktion wenig. Vor dem ersten Produktiveinsatz sollte man prüfen, ob das eigene Modell in der unterstützten Liste steht, ob die installierte transformers-Version zum Modell passt und ob der gewählte Beschleuniger in der Hardware-Aufzählung des Projekts auftaucht.

Offizielle Quellen

  1. License: Apache-2.0
  2. modelscope/ms-swift on GitHub
  3. Project website
  4. README
  5. Releases
Community-Notizen

Community-Notizen