MergeKit: un toolkit open source para fusionar modelos de lenguaje preentrenados 77

小编 ·

MergeKit: un toolkit open source para fusionar modelos de lenguaje preentrenados

MergeKit es una herramienta en Python que fusiona varios modelos grandes en uno solo, combinando las fortalezas de cada uno. Por ejemplo, si el modelo A destaca en redacción y el modelo B en programación, mergekit puede combinarlos en un modelo más potente. Permite fusionar en CPU o GPU, y se recomienda empezar con modelos de alta precisión para después cuantificar y calibrar. Este proyecto de IA es muy popular entre los desarrolladores: algunos lo han usado para transformar contenido educativo en temática de videojuegos, haciendo la creación más eficiente y divertida.

MergeKit: un toolkit open source para fusionar modelos de lenguaje preentrenados

¿Qué es Mergekit?

Mergekit es una herramienta de Python que permite combinar varios modelos grandes en uno solo, aprovechando las ventajas de cada uno. Por ejemplo, si el modelo A es excelente para escribir y el modelo B destaca en programación, mergekit puede fusionarlos para crear un modelo más potente. También permite realizar la fusión en CPU o GPU; se recomienda empezar fusionando modelos de alta precisión y luego aplicar cuantización y calibración. Este proyecto de ia es muy popular entre los desarrolladores; por ejemplo, algunos lo utilizan para transformar contenido educativo en temáticas de juegos, haciendo que la creación sea más eficiente y divertida.

MergeKit:一个用于合并预训练语言模型的开源工具包.jpg

Funciones principales de Mergekit

  • Fusión de modelos: combina varios modelos de lenguaje preentrenados en un único modelo multifuncional, sin necesidad de entrenamiento adicional ni de sobrecarga computacional de integración.

  • Múltiples algoritmos de fusión: admite varios métodos de fusión, como interpolación lineal, interpolación lineal esférica (SLERP), Task Arithmetic, TIES, DARE, entre otros.

  • Compatible con diferentes hardware: compatible con CPU o GPU, con un mínimo de 8 GB de VRAM.

  • Bajo consumo de memoria: utiliza una técnica de carga diferida de tensores para reducir el uso de memoria.

  • Interpolación de parámetros: admite gradientes de interpolación de valores de parámetros, ofreciendo un control más granular.

  • Ensamblaje por capas: admite el ensamblaje de modelos de lenguaje a partir de fragmentos de capas de diferentes modelos (“Frankenmerging”).

  • Fusión de mezcla de expertos: combina varios modelos densos en un modelo de mezcla de expertos.

  • Extracción de LoRA: extrae aproximaciones de bajo rango compatibles con PEFT a partir de modelos ajustados.

  • Métodos de fusión evolutiva: incluye algunos métodos experimentales de fusión evolutiva.

Características principales de Mergekit

  • Ejecución multiplataforma: compatible con GPU y CPU, con un mínimo de 8 GB de VRAM para acelerar el proceso.

  • Bajo consumo de memoria: mediante la carga diferida de tensores.

  • Múltiples algoritmos de fusión: incluye interpolación lineal, SLERP, Task Arithmetic, entre otros, y se irán añadiendo más algoritmos en el futuro.

  • Interfaz gráfica de usuario (GUI): ofrece una GUI basada en Arcee que simplifica el proceso de fusión.

Instalación y uso

Instalación

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

Uso

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

Casos de uso de Mergekit

  • Fusión de capacidades de modelos: combinar modelos de distintas áreas especializadas en un único modelo multifuncional.

  • Optimización del rendimiento: combinar las ventajas de diferentes modelos para mejorar el rendimiento general.

  • Optimización en entornos con recursos limitados: crear modelos más pequeños pero potentes cuando los recursos computacionales son limitados.

  • Personalización de modelos a medida: adaptar el modelo según necesidades específicas.

  • Investigación y experimentación con modelos: ofrece a los investigadores una plataforma flexible para explorar diferentes estrategias de fusión.

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