LMFlow - Kit de herramientas para el ajuste fino e inferencia de modelos fundacionales grandes
Resumen del proyecto
LMFlow es un proyecto de código abierto desarrollado por el equipo de OptimalScale, un kit de herramientas escalable, conveniente y eficiente para el ajuste fino de modelos de aprendizaje automático grandes. El proyecto está diseñado para ser fácil de usar, rápido y confiable, con el objetivo de hacer que la tecnología de modelos de lenguaje grandes esté disponible para toda la comunidad, cumpliendo la visión de "poner los modelos grandes al servicio de todos".
Dirección del proyecto: https://github.com/OptimalScale/LMFlow
Características principales
1. Soporte para diversos métodos de entrenamiento
- Ajuste fino de parámetros completos: Actualiza todos los parámetros para ajustar el modelo de lenguaje.
- LoRA (Adaptación de bajo rango): Algoritmo de ajuste fino eficiente en parámetros, más eficiente que el ajuste fino de parámetros completos.
- LISA (Muestreo de importancia por capas): Algoritmo de ajuste fino eficiente en memoria, capaz de entrenar modelos de 7B en 24 GB de memoria de GPU sin descarga.
2. Amplio soporte de modelos
Admite una variedad de modelos de lenguaje grandes convencionales, incluyendo:
- Serie DeepSeek: deepseek, deepseek_v2, deepseek_r1, etc.
- Serie LLaMA: llama2, llama3, llama3_for_tool
- Serie Qwen: qwen2, qwen2_for_tool, qwen2_5, etc.
- Gemma, Phi, Yi, InternLM2 y otras arquitecturas de modelos.
3. Técnicas de optimización del rendimiento
Optimización de la memoria
- FlashAttention-2: Admite la última tecnología FlashAttention, mejorando significativamente la velocidad de entrenamiento e inferencia.
- Puntos de control de gradiente: Optimiza el uso de la memoria mediante una estrategia de cálculo a cambio de memoria.
- DeepSpeed Zero-3: Admite el entrenamiento distribuido de modelos a gran escala.
Aceleración de la inferencia
- Integración de vLLM: Admite inferencia y servicio de LLM rápidos y fáciles de usar.
- Decodificación especulativa: Admite la tecnología de decodificación especulativa para acelerar la inferencia.
- Inferencia de CPU: Admite la ejecución de modelos LLaMA en la CPU (a través de la cuantificación de 4 bits).
4. Ricas características funcionales
Soporte de plantillas de conversación
- Plantillas de conversación preestablecidas de Llama-3 y Phi-3.
- Admite una variedad de plantillas comunes como chatml.
- Plantillas de conversación personalizables para obtener un mejor rendimiento.
Soporte multimodal
- Admite entrada multimodal de imagen y texto.
- Proporciona funcionalidad de chatbot multimodal.
- Servicio de demostración en línea disponible.
Procesamiento de contexto largo
- Admite la interpolación de posición (escalado lineal y NTK) para modelos LLaMA.
- Amplía la capacidad de procesamiento de contexto del modelo.
5. Evaluación y pruebas de referencia
LMFlow Benchmark es un marco de evaluación automática diseñado específicamente para modelos de lenguaje grandes de código abierto, que utiliza la verosimilitud logarítmica negativa (NLL) como métrica para evaluar la capacidad del modelo en las siguientes áreas:
- Conversación informal
- Razonamiento de sentido común
- Seguimiento de instrucciones
Innovación técnica
Algoritmo RAFT
El proyecto propone un nuevo algoritmo de alineación: Reward rAnked FineTuning (RAFT), que es más eficiente que el RLHF tradicional basado en PPO.
Optimizadores personalizados
Admite el entrenamiento de múltiples optimizadores personalizados, incluyendo:
- RMSprop, LION-32bit, Adam, AdamW
- AdaFactor, Adan, RAdam y más de 20 optimizadores.
- Se puede seleccionar la estrategia de optimización más adecuada según la tarea específica.
Casos de aplicación práctica
Avance en el campo médico
Los modelos entrenados con LMFlow se desempeñan de manera excelente en el campo médico, y su modelo de ajuste de tareas supera a ChatGPT en el campo médico, lo que demuestra un gran potencial para aplicaciones en campos verticales.
Serie de modelos Robin
El proyecto ha lanzado múltiples modelos Robin de alto rendimiento:
- Robin-33B-V2: Obtuvo una excelente puntuación de 64.1 en la clasificación Huggingface LLM.
- Proporciona puntos de control de múltiples tamaños: 7B, 13B, 33B, 65B, etc.
Instalación y uso
Requisitos del entorno
- Principalmente probado en Linux OS (Ubuntu 20.04).
- Admite versiones CUDA 10.3-11.7.
- Entorno Python 3.9.
Instalación rápida
git clone -b v0.0.9 https://github.com/OptimalScale/LMFlow.git
cd LMFlow
conda create -n lmflow python=3.9 -y
conda activate lmflow
conda install mpi4py
pip install -e .
Instalación de PyPI
pip install lmflow-finetune
Impacto tecnológico
El proyecto LMFlow ha tenido un impacto significativo en la academia y la industria:
- Artículos relacionados publicados en las principales conferencias académicas.
- Recibió mucha atención y uso en GitHub.
- Realizó una importante contribución al ecosistema de modelos de lenguaje grandes de código abierto.
Resumen
LMFlow, como un kit de herramientas integral para modelos de lenguaje grandes, no solo proporciona soluciones completas de entrenamiento e inferencia de modelos, sino que también ha innovado en múltiples aspectos, como la optimización de la memoria, la aceleración del rendimiento y la evaluación de modelos. Reduce la barrera de entrada para el uso de modelos de lenguaje grandes, permitiendo que más investigadores y desarrolladores construyan e implementen convenientemente sus propios modelos de lenguaje, logrando verdaderamente el objetivo de "poner los modelos grandes al servicio de todos".