MergeKit : une boîte à outils open source pour fusionner des modèles de langage pré-entraînés 76

小编 ·

MergeKit : une boîte à outils open source pour fusionner des modèles de langage pré-entraînés

MergeKit est un outil Python qui fusionne plusieurs grands modèles en un seul en combinant leurs forces. Par exemple, si le modèle A excelle en rédaction et le modèle B en programmation, mergekit peut les fusionner en un modèle plus puissant. La fusion peut se faire sur CPU ou GPU, et il est recommandé de commencer avec des modèles haute précision puis de quantifier et calibrer. Ce projet d'IA est très populaire auprès des développeurs — certains l'utilisent pour transformer du contenu éducatif en thématique de jeu vidéo, rendant la création plus efficace et plus amusante.

MergeKit : une boîte à outils open source pour fusionner des modèles de langage pré-entraînés

Qu'est-ce que Mergekit ?

Mergekit est un outil Python qui permet de fusionner plusieurs grands modèles en un seul, en exploitant les forces de chacun. Par exemple, si le modèle A est très performant en écriture et le modèle B excelle en programmation, mergekit peut les combiner pour créer un modèle encore plus puissant. Il peut également effectuer la fusion sur CPU ou GPU, et il est recommandé de commencer par fusionner des modèles en haute précision, puis de procéder à la quantification et à l'étalonnage. Ce projet IA est très apprécié des développeurs ; certains l'utilisent par exemple pour transformer des contenus éducatifs en thèmes ludiques, rendant la création plus efficace et plus amusante.

MergeKit : une boîte à outils open source pour fusionner des modèles de langage pré-entraînés.jpg

Fonctionnalités principales de Mergekit

  • Fusion de modèles : fusionner plusieurs modèles de langage pré-entraînés en un modèle multifonctionnel, sans entraînement supplémentaire ni surcharge de calcul liée à l'intégration.

  • Multiples algorithmes de fusion : prise en charge de diverses méthodes de fusion telles que l'interpolation linéaire, l'interpolation linéaire sphérique (SLERP), l'arithmétique de tâches (Task Arithmetic), TIES, DARE, etc.

  • Compatibilité matérielle : prise en charge de l'exécution sur CPU ou GPU, avec un minimum de 8 Go de mémoire vidéo requis.

  • Faible consommation de mémoire : utilisation du chargement paresseux des tenseurs pour réduire l'empreinte mémoire.

  • Interpolation des paramètres : prise en charge du gradient d'interpolation des valeurs des paramètres, offrant un contrôle plus fin.

  • Assemblage par couches : prise en charge de l'assemblage de modèles de langage à partir de fragments de couches issus de différents modèles (« Frankenmerging »).

  • Fusion de modèles MoE : fusionner plusieurs modèles denses en un modèle de mélange d'experts.

  • Extraction de LoRA : extraction d'approximations de bas rang compatibles PEFT à partir de modèles fine-tunés.

  • Méthodes de fusion évolutives : inclut certaines méthodes de fusion évolutives expérimentales.

Caractéristiques principales de Mergekit

  • Exécution multiplateforme : prise en charge de l'exécution sur GPU et CPU, accélération possible avec un minimum de 8 Go de VRAM.

  • Faible consommation de mémoire : obtenue grâce au chargement paresseux des tenseurs.

  • Multiples algorithmes de fusion : inclut l'interpolation linéaire, SLERP, l'arithmétique de tâches, etc., et d'autres algorithmes seront ajoutés à l'avenir.

  • Interface graphique (GUI) : fournit une interface graphique basée sur Arcee, simplifiant le processus de fusion.

Installation et utilisation

Installation

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

Utilisation

mergekit-yaml config.yml ./output-dir --cuda

Cas d'utilisation de Mergekit

  • Fusion des capacités des modèles : fusionner des modèles issus de différents domaines spécialisés en un seul modèle multifonctionnel.

  • Optimisation des performances : combiner les avantages de différents modèles pour améliorer les performances globales.

  • Optimisation dans des environnements à ressources limitées : créer des modèles plus petits mais puissants dans des contextes où les ressources de calcul sont limitées.

  • Personnalisation sur mesure des modèles : adapter les modèles en fonction de besoins spécifiques.

  • Recherche et expérimentation sur les modèles : fournir aux chercheurs une plateforme flexible pour explorer différentes stratégies de fusion.

Github :https://github.com/arcee-ai/mergekit