Home
Login

Un conjunto de herramientas de ajuste fino de modelos de lenguaje grandes, eficiente, flexible y con todas las funciones, que admite múltiples modelos y algoritmos de entrenamiento.

Apache-2.0Python 4.6kInternLM Last Updated: 2025-05-29

XTuner - Un Kit de Herramientas Eficiente para el Ajuste Fino de Modelos de Lenguaje Grandes

Resumen del Proyecto

XTuner es un kit de herramientas eficiente, flexible y con todas las funciones para el ajuste fino de modelos de lenguaje grandes, desarrollado por el equipo de InternLM. Este proyecto tiene como objetivo proporcionar a los usuarios una herramienta fácil de usar y potente para ajustar finamente varios modelos de lenguaje grandes, incluidos los modelos principales como InternLM, Llama, Qwen, ChatGLM, Baichuan, etc.

Características Principales

1. Eficiencia (Efficient)

  • Bajos Requisitos de Recursos: Admite el ajuste fino de modelos de lenguaje grandes de 7B parámetros en una sola GPU de 8GB.
  • Escalado Multi-Nodo: Admite el ajuste fino multi-nodo de más de 70B parámetros.
  • Optimización del Rendimiento: Programa automáticamente operadores de alto rendimiento, como FlashAttention y kernels de Triton, para mejorar el rendimiento del entrenamiento.
  • Integración de DeepSpeed: Compatible con el framework DeepSpeed, lo que facilita el uso de varias técnicas de optimización ZeRO.

2. Flexibilidad (Flexible)

  • Soporte Multi-Modelo: Admite varios modelos de lenguaje grandes.
    • Serie InternLM (InternLM, InternLM2, InternLM2.5, InternLM3)
    • Serie Meta Llama (Llama 2, Llama 3)
    • Otros modelos principales: Mixtral-8x7B, ChatGLM, Qwen, Baichuan, Gemma, DeepSeek, etc.
  • Soporte Multi-Modal: Admite modelos de lenguaje visual (VLM), especialmente modelos basados en la arquitectura LLaVA.
  • Pipeline de Datos: Pipeline de datos cuidadosamente diseñado que admite conjuntos de datos en varios formatos.
  • Múltiples Algoritmos de Entrenamiento: Admite múltiples estrategias de entrenamiento como QLoRA, LoRA, ajuste fino de parámetros completos, etc.

3. Funcionalidad Completa (Full-featured)

  • Múltiples Modos de Entrenamiento:
    • Pre-entrenamiento Continuo
    • Ajuste Fino de Instrucciones
    • Ajuste Fino de Agentes
  • Funcionalidad de Diálogo: Admite el diálogo con modelos grandes utilizando plantillas predefinidas.
  • Integración Perfecta: Los modelos de salida se pueden integrar sin problemas con el kit de herramientas de implementación y servicio (LMDeploy) y el kit de herramientas de evaluación a gran escala (OpenCompass, VLMEvalKit).

Modelos Soportados

XTuner admite una amplia gama de familias de modelos, incluyendo, pero no limitado a:

Serie de Modelos Modelo Específico Características
InternLM InternLM, InternLM2, InternLM2.5, InternLM3 Optimizado para chino, excelente rendimiento
Llama Llama 2, Llama 3 Modelo de código abierto de Meta
Qwen Qwen 1.5, etc. Modelo de código abierto de Alibaba
ChatGLM ChatGLM3-6B, etc. Modelo de código abierto de la Universidad Tsinghua
Baichuan Baichuan2, etc. Modelo de código abierto de Baichuan Intelligence
Mixtral Mixtral 8x7B Modelo de expertos mixtos de Mistral AI
Otros Gemma, DeepSeek, MiniCPM, etc. Modelos de código abierto de varias empresas

Capacidades Multi-Modales

XTuner se destaca en el campo multi-modal, especialmente en modelos de lenguaje visual:

  • Soporte de Arquitectura LLaVA: Soporte completo para el pre-entrenamiento y ajuste fino de la arquitectura LLaVA-v1.5.
  • Excelente Rendimiento: El modelo LLaVA-InternLM2-20B tiene un rendimiento sobresaliente.
  • Múltiples Combinaciones: Admite múltiples combinaciones de codificadores visuales y modelos de lenguaje.
  • Últimos Lanzamientos:
    • LLaVA-Llama-3-8B
    • LLaVA-Llama-3-8B-v1.1
    • LLaVA-Phi-3-mini

Instalación y Uso

Preparación del Entorno

# Crear un entorno virtual Python 3.10
conda create --name xtuner-env python=3.10 -y
conda activate xtuner-env

Métodos de Instalación

Método 1: Instalar a través de pip

pip install -U xtuner

Método 2: Integrar DeepSpeed

pip install -U 'xtuner[deepspeed]'

Método 3: Instalar desde el código fuente

git clone https://github.com/InternLM/xtuner.git
cd xtuner
pip install -e '.[all]'

Inicio Rápido

1. Preparar el Archivo de Configuración

# Ver todas las configuraciones disponibles
xtuner list-cfg

# Copiar el archivo de configuración para personalizarlo
xtuner copy-cfg ${CONFIG_NAME} ${SAVE_PATH}

2. Comenzar el Ajuste Fino

# Ajuste fino en una sola GPU
xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --deepspeed deepspeed_zero2

# Ajuste fino en múltiples GPU
NPROC_PER_NODE=${GPU_NUM} xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --deepspeed deepspeed_zero2

3. Conversión de Modelos

# Convertir el modelo PTH al formato Hugging Face
xtuner convert pth_to_hf ${CONFIG_NAME_OR_PATH} ${PTH} ${SAVE_PATH}

4. Prueba de Diálogo

# Dialogar con el modelo ajustado finamente
xtuner chat ${NAME_OR_PATH_TO_LLM} --adapter ${NAME_OR_PATH_TO_ADAPTER}

Funciones Avanzadas

1. Paralelismo de Secuencia

  • Admite el entrenamiento de secuencias extremadamente largas.
  • Método de entrenamiento eficiente y escalable.
  • Adecuado para escenarios que requieren el procesamiento de texto largo.

2. Entrenamiento DPO/ORPO

  • Admite la Optimización Directa de Preferencias (DPO).
  • Admite la Optimización de Preferencias de Odds Ratio (ORPO).
  • Admite el entrenamiento del Modelo de Recompensa.
  • Admite datos empaquetados y paralelismo de secuencia.

3. Optimización del Razonamiento Matemático

  • Admite OREAL (un nuevo método de aprendizaje por refuerzo).
  • Optimizado específicamente para tareas de razonamiento matemático.

Rendimiento

Velocidad de Entrenamiento

  • Llama2 7B: Tiene una excelente velocidad de entrenamiento en una sola GPU.
  • Llama2 70B: Admite el entrenamiento paralelo en múltiples GPU, con un excelente rendimiento de velocidad.
  • DeepSeek V2: Aumenta la velocidad de entrenamiento en 2 veces en comparación con la versión anterior.

Eficiencia de Memoria

  • Bajos Requisitos de Memoria: 20GB de memoria GPU son suficientes para el ajuste fino de QLoRA.
  • Ajuste Fino de Parámetros Completos: 4x80GB GPU pueden realizar el ajuste fino de parámetros completos.
  • Optimización de Memoria: Reduce significativamente el uso de memoria a través de varias técnicas de optimización.

Integración del Ecosistema

XTuner, como una parte importante del ecosistema InternLM, está estrechamente integrado con otras herramientas:

  • LMDeploy: Kit de herramientas de implementación y servicio de modelos.
  • OpenCompass: Kit de herramientas de evaluación a gran escala.
  • VLMEvalKit: Kit de herramientas de evaluación de modelos de lenguaje visual.
  • Lagent: Framework de agentes.
  • AgentLego: Biblioteca de API de herramientas multifuncionales.

Escenarios de Aplicación

1. Investigación Académica

  • Investigación sobre el ajuste fino de modelos de lenguaje grandes.
  • Desarrollo de modelos multi-modales.
  • Verificación de nuevos algoritmos.

2. Aplicaciones Industriales

  • Chatbots personalizados.
  • Desarrollo de modelos específicos de dominio.
  • Asistentes de IA de nivel empresarial.

3. Educación y Formación

  • Enseñanza de cursos de IA.
  • Configuración de entornos experimentales.
  • Formación de habilidades.

Conclusión

XTuner es un kit de herramientas de ajuste fino de modelos de lenguaje grandes con todas las funciones y un rendimiento excelente. No solo admite una amplia gama de modelos y algoritmos de entrenamiento, sino que también proporciona una cadena de herramientas completa, desde la preparación de datos hasta la implementación del modelo, brindando a los usuarios una solución integral. Ya sea para investigación académica o aplicaciones industriales, XTuner puede satisfacer las necesidades en diferentes escenarios y es la opción ideal para realizar el ajuste fino de modelos de lenguaje grandes.