Modell / Datensatz
arcee-ai/mergekit avatar
arcee-ai/mergekit

mergekit: Gewichte zusammenführen statt trainieren

Tools for merging pretrained large language models.

7.350 Sterne787 ForksPythonLGPL-3.0
GitHub

Auf einen Blick

Was ist das?
mergekit kombiniert vortrainierte Sprachmodelle direkt im Gewichtsraum. Das Werkzeug richtet sich an Teams, die Fähigkeiten aus mehreren Checkpoints bündeln wollen, ohne Trainingsdaten oder GPU-Cluster zu besitzen. Die entscheidende Einschränkung liegt in der Architekturkompatibilität.
Für wen ist es gedacht?
mergekit passt für Teams, die bereits mehrere fine-tuned Checkpoints derselben Architektur besitzen und deren Fähigkeiten ohne weiteren Trainingslauf bündeln wollen. Wer Modelle mit unterschiedlichen Tokenizern oder abweichender Layer-Struktur zusammenbringen möchte, sollte zuerst mergekit-tokensurgeon prüfen und den Aufwand für die Tokenizer-Transplantation realistisch einschätzen.
Darf ich es kommerziell nutzen?
Ja, unter Bedingungen. LGPL-3.0 ist eine Lizenz mit schwachem Copyleft: Sie dürfen sie in kommerzieller und proprietärer Software verwenden, müssen aber Änderungen an ihren eigenen Dateien unter derselben Lizenz veröffentlichen, wenn Sie sie weitergeben.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 4 Tagen.
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

Das Problem: Fähigkeiten bündeln ohne Trainingslauf

Ein fine-tuned Modell kann gut in Mathematik sein und schlecht in Rollenspiel. Ein zweites Modell verhält sich umgekehrt. Der übliche Weg, beide Fähigkeiten in einem Modell zu vereinen, führt über weitere Trainingsdaten und einen neuen Trainingslauf. mergekit geht einen anderen Weg: Es operiert direkt im Gewichtsraum der Modelle, wie die README formuliert, ohne den Rechenaufwand von Ensembling und ohne zusätzliches Training. Die README nennt als Anwendungsfälle das Kombinieren spezialisierter Modelle, den Transfer von Fähigkeiten ohne Zugriff auf Trainingsdaten und das Austarieren zwischen unterschiedlichen Verhaltensweisen. Der Nutzen liegt auf der Hand: Ein zusammengeführtes Modell hat dieselben Inferenzkosten wie ein einzelnes Modell, während ein Ensemble mehrere Modelle parallel laufen lassen muss. Die Zielgruppe sind Praktiker, die mehrere Checkpoints derselben Basisarchitektur besitzen und daraus eine Variante bauen wollen, ohne einen Trainingsjob zu bezahlen.

Out-of-core: warum der Merge auf CPU laufen kann

Der interessanteste Teil von mergekit ist nicht die Liste der Merge-Methoden, sondern der Umgang mit Speicher. Die README beschreibt einen out-of-core-Ansatz, der aufwendige Merges auch bei knappen Ressourcen erlaubt. Merges laufen demnach vollständig auf der CPU oder beschleunigt mit nur 8 GB VRAM. Dazu passt das Feature lazy loading of tensors: Tensoren werden erst geladen, wenn sie gebraucht werden, statt alle Ausgangsmodelle gleichzeitig im Speicher zu halten. Wer zwei 7B-Modelle in float16 zusammenführt, hält damit nicht beide vollständig im RAM, sondern arbeitet Tensor für Tensor. Das ist der Grund, warum mergekit auf einer gewöhnlichen Workstation benutzbar ist und nicht zwingend eine große GPU voraussetzt. Der Preis dafür ist Laufzeit: Ohne GPU und ohne --lazy-unpickle, das die README als Option von mergekit-yaml aufführt, kann ein Merge deutlich länger dauern als die reine Rechenzeit vermuten lässt.

Installation und der erste Merge

Die Installation folgt dem üblichen Muster für Python-Projekte aus dem Repository. Die README gibt exakt diese Befehle vor:

git clone https://github.com/arcee-ai/mergekit.git cd mergekit pip install -e .

Der Hinweis in der README ist ernst zu nehmen: Schlägt die Installation mit einem Fehler zu setup.py oder setup.cfg fehl, obwohl eine pyproject.toml gefunden wurde, muss pip auf eine Version größer 21.3 aktualisiert werden, etwa mit python3 -m pip install --upgrade pip. Das deutet darauf hin, dass der editable install über setuptools läuft und ältere pip-Versionen damit nicht umgehen können.

Der Haupteinstieg ist das Skript mergekit-yaml. Es nimmt eine YAML-Konfiguration und einen Ausgabepfad entgegen:

mergekit-yaml path/to/your/config.yml ./output-model-directory [--cuda] [--lazy-unpickle] [--allow-crimes] [... other options]

Die vollständige Liste der Argumente liefert mergekit-yaml --help. Wer ein Ergebnis teilen will, kann laut README die von mergekit erzeugte README.md als Model Card verwenden oder anpassen und das Verzeichnis anschließend mit huggingface-cli upload your_hf_username/my-cool-model ./output-model-directory . hochladen, nachdem huggingface-cli login mit einem Token mit Schreibrechten ausgeführt wurde.

Die YAML-Konfiguration: was tatsächlich gesteuert wird

Eine Merge-Konfiguration ist ein YAML-Dokument, das die Operationen beschreibt. Die README nennt als primäre Elemente merge_method, slices, models, base_model, parameters, dtype sowie tokenizer beziehungsweise tokenizer_. Wichtig ist die Aussage, dass slices und models zueinander exklusiv sind: Entweder setzt man ganze Modelle zusammen, oder man greift einzelne Layer-Blöcke aus verschiedenen Modellen heraus. Das zweite Vorgehen ist die Grundlage für das, was die README Frankenmerging nennt, die stückweise Montage eines Modells aus Layern anderer Modelle. base_model wird nur von bestimmten Merge-Methoden benötigt. parameters enthält Gewichte und Dichten und lässt sich laut README auf verschiedenen Ebenen der Konfiguration angeben, was bedeutet, dass globale Vorgaben durch spezifischere Werte überschrieben werden können. dtype legt fest, in welchem Datentyp der Merge gerechnet wird. Die README verweist für Details auf die Abschnitte zu Parameter Specification, Tokenizer Configuration und Chat Template Configuration, ohne deren Inhalt im Auszug wiederzugeben. Wer eine Konfiguration schreibt, sollte diese Abschnitte in der vollständigen Dokumentation nachlesen, statt die Parameter aus Beispielen zu erraten.

Merge-Methoden, LoRA-Extraktion und MoE

mergekit unterstützt laut README viele Merge-Methoden, ohne im Auszug eine vollständige Liste zu nennen. Klar benannt sind einige Verfahrensfamilien. Die LoRA-Extraktion erlaubt es offenbar, aus einem Merge eine LoRA zu gewinnen, statt ein vollständiges Modell zu erzeugen. Das Mixture-of-Experts-Merging baut Modelle, bei denen verschiedene Expertenteile aus verschiedenen Quellen stammen. Die evolutionary merge methods suchen Parameterkombinationen über einen evolutionären Prozess, was bedeutet, dass mehrere Merges evaluiert und verglichen werden müssen, bevor das Ergebnis feststeht. Für komplexe Abläufe gibt es mergekit-multi für mehrstufige Merges und mergekit-pytorch für das Zusammenführen roher PyTorch-Modelle, die nicht im Hugging-Face-Format vorliegen. mergekit-tokensurgeon schließlich dient der Tokenizer-Transplantation. Diese Aufteilung in separate Kommandozeilenwerkzeuge ist sinnvoll, weil jeder Schritt eigene Parameter braucht, sie erhöht aber auch die Zahl der Stellen, an denen eine Konfiguration falsch sein kann.

Wo mergekit an Grenzen stößt

Die README nennt unterstützte Architekturen: Llama, Mistral, GPT-NeoX, StableLM und weitere. Das ist die zentrale Einschränkung. Modelle lassen sich nur dann sinnvoll im Gewichtsraum mischen, wenn ihre Architektur und ihr Tokenizer zusammenpassen. Ein Merge zwischen einem Llama-Modell und einem Modell mit anderem Vokabular ist kein Konfigurationsproblem, sondern ein Strukturproblem, und genau dafür existiert mergekit-tokensurgeon als separates Werkzeug. Wer glaubt, mergekit könne beliebige Modelle kombinieren, wird enttäuscht. Ein zweiter Punkt: Ein Merge ist kein Training. Er kann Fähigkeiten nicht erzeugen, die in keinem der Ausgangsmodelle vorhanden sind, und er kann Qualitätsverluste erzeugen, wenn Gewichte aus Modellen mit unterschiedlichen Trainingsverläufen gemittelt werden. Die README beschreibt merging als Technik, um Fähigkeiten zu transferieren und Kompromisse zu finden, nicht als Verfahren, das neue Fähigkeiten garantiert. Drittens: Die Auswahl der richtigen Merge-Methode und ihrer Parameter ist empirisch. Die README liefert Beispiele, aber keine Garantie, dass eine bestimmte Konfiguration für ein konkretes Modellpaar funktioniert. Wer kein Evaluationssetup besitzt, kann das Ergebnis eines Merges nicht beurteilen.

Alternativen: Ensembling und weiteres Fine-Tuning

Die README selbst zieht den Vergleich zum traditionellen Ensembling. Der Unterschied liegt im Ansatz: Beim Ensembling laufen mehrere Modelle parallel, und ihre Ausgaben werden kombiniert. Das kostet Inferenzzeit und Speicher proportional zur Zahl der Modelle. Ein Merge erzeugt dagegen ein einzelnes Modell mit den Inferenzkosten eines einzelnen Modells. Der zweite naheliegende Weg ist weiteres Fine-Tuning auf gemischten Daten. Dieses Verfahren kann Fähigkeiten tatsächlich neu formen, benötigt aber Trainingsdaten und Rechenzeit, die beim Merging entfallen. mergekit positioniert sich genau in dieser Lücke: kein Trainingslauf, aber auch keine Garantie auf neue Fähigkeiten. Für Teams, die mehrere spezialisierte Checkpoints derselben Basis besitzen und keinen Zugriff auf die ursprünglichen Trainingsdaten haben, ist das ein praktikabler Kompromiss. Wer dagegen ein Modell für eine neue Domäne braucht, für die es keine Ausgangsmodelle gibt, ist mit Fine-Tuning besser bedient.

Wartung, Lizenz und was vor dem Einsatz zu prüfen ist

mergekit steht unter LGPL-3.0. Das ist eine Copyleft-Lizenz, die für eine Bibliothek gilt, die typischerweise eingebunden und nicht verändert wird. Wer mergekit als Werkzeug aufruft, um eigene Modellgewichte zu erzeugen, berührt damit nach verbreiteter Lesart nicht automatisch die Lizenz der erzeugten Gewichte. Wer mergekit dagegen modifiziert und weiterverbreitet, muss die Bedingungen der LGPL beachten. Das ist keine Rechtsberatung, sondern ein Hinweis darauf, dass die Lizenzfrage vor einer Weitergabe geprüft werden sollte. Zur Wartung: Die letzte Veröffentlichung v0.1.4 stammt vom 31. Oktober 2025, der letzte Push ins Repository wird mit Juni 2026 angegeben. Das deutet auf ein gepflegtes, aber nicht hektisch entwickeltes Projekt hin. Die README weist selbst darauf hin, dass weitere Merge-Methoden hinzukommen, sobald sie Aufmerksamkeit erregen. Das bedeutet: Die Methodenliste ist nicht stabil, und Konfigurationen können bei einem Upgrade andere Ergebnisse liefern. Wer Merges reproduzieren muss, sollte die eingesetzte mergekit-Version festhalten. Vor dem ersten produktiven Einsatz lohnt es sich, mergekit-yaml --help vollständig zu lesen, weil die README nur einen Teil der Optionen aufführt, und die Abschnitte zur Tokenizer- und Chat-Template-Konfiguration in der vollständigen Dokumentation zu prüfen, da der Auszug sie nur benennt.

Redaktionelles Fazit

mergekit passt für Teams, die bereits mehrere fine-tuned Checkpoints derselben Architektur besitzen und deren Fähigkeiten ohne weiteren Trainingslauf bündeln wollen. Wer Modelle mit unterschiedlichen Tokenizern oder abweichender Layer-Struktur zusammenbringen möchte, sollte zuerst mergekit-tokensurgeon prüfen und den Aufwand für die Tokenizer-Transplantation realistisch einschätzen. Vor jedem Lauf lohnt ein Blick in mergekit-yaml --help, weil sich die Parameter zwischen den Merge-Methoden unterscheiden und die README nur einen Teil der Optionen dokumentiert.

Offizielle Quellen

  1. arcee-ai/mergekit on GitHub
  2. Issues
  3. License: LGPL-3.0
  4. README
  5. Releases
Community-Notizen

Community-Notizen