Home
Login

Um kit de ferramentas de ajuste fino para modelos de linguagem grandes, eficiente, flexível e completo, com suporte para vários modelos e algoritmos de treinamento.

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

XTuner - Kit de Ferramentas Eficiente para Ajuste Fino de Modelos de Linguagem Grandes

Visão Geral do Projeto

XTuner é um kit de ferramentas eficiente, flexível e completo para ajuste fino de modelos de linguagem grandes, desenvolvido pela equipe InternLM. Este projeto visa fornecer aos usuários uma ferramenta fácil de usar e poderosa para ajustar finamente vários modelos de linguagem grandes, incluindo InternLM, Llama, Qwen, ChatGLM, Baichuan e outros modelos populares.

Características Principais

1. Eficiência (Efficient)

  • Baixa Demanda de Recursos: Suporta o ajuste fino de modelos de linguagem grandes de 7B parâmetros em uma única GPU de 8GB
  • Escalabilidade Multi-Nó: Suporta ajuste fino multi-nó de mais de 70B parâmetros
  • Otimização de Desempenho: Agendamento automático de operadores de alto desempenho, como FlashAttention e kernels Triton, para aumentar a taxa de transferência de treinamento
  • Integração DeepSpeed: Compatível com o framework DeepSpeed, facilitando o uso de várias técnicas de otimização ZeRO

2. Flexibilidade (Flexible)

  • Suporte a Múltiplos Modelos: Suporta vários modelos de linguagem grandes
    • Série InternLM (InternLM, InternLM2, InternLM2.5, InternLM3)
    • Série Meta Llama (Llama 2, Llama 3)
    • Outros modelos populares: Mixtral-8x7B, ChatGLM, Qwen, Baichuan, Gemma, DeepSeek, etc.
  • Suporte Multimodal: Suporta modelos de linguagem visual (VLM), especialmente modelos baseados na arquitetura LLaVA
  • Pipeline de Dados: Pipeline de dados cuidadosamente projetado, suportando vários formatos de conjuntos de dados
  • Vários Algoritmos de Treinamento: Suporta QLoRA, LoRA, ajuste fino de parâmetros completos e outras estratégias de treinamento

3. Funcionalidade Completa (Full-featured)

  • Vários Modos de Treinamento:
    • Pré-treinamento contínuo
    • Ajuste fino de instruções
    • Ajuste fino de agentes inteligentes
  • Funcionalidade de Diálogo: Suporta diálogo com modelos grandes usando modelos predefinidos
  • Integração Perfeita: Os modelos de saída podem ser integrados perfeitamente com kits de ferramentas de implantação e serviço (LMDeploy) e kits de ferramentas de avaliação em larga escala (OpenCompass, VLMEvalKit)

Modelos Suportados

XTuner suporta uma ampla gama de famílias de modelos, incluindo, mas não se limitando a:

Série de Modelos Modelo Específico Características
InternLM InternLM, InternLM2, InternLM2.5, InternLM3 Otimizado para chinês, excelente desempenho
Llama Llama 2, Llama 3 Modelo de código aberto da Meta
Qwen Qwen 1.5, etc. Modelo de código aberto da Alibaba
ChatGLM ChatGLM3-6B, etc. Modelo de código aberto da Universidade Tsinghua
Baichuan Baichuan2, etc. Modelo de código aberto da Baichuan Intelligence
Mixtral Mixtral 8x7B Modelo de especialista misto da Mistral AI
Outros Gemma, DeepSeek, MiniCPM, etc. Modelos de código aberto de várias empresas

Capacidades Multimodais

XTuner se destaca no campo multimodal, especialmente em modelos de linguagem visual:

  • Suporte à Arquitetura LLaVA: Suporte completo para pré-treinamento e ajuste fino da arquitetura LLaVA-v1.5
  • Excelente Desempenho: O modelo LLaVA-InternLM2-20B tem desempenho notável
  • Várias Combinações: Suporta várias combinações de codificadores visuais e modelos de linguagem
  • Lançamentos Mais Recentes:
    • LLaVA-Llama-3-8B
    • LLaVA-Llama-3-8B-v1.1
    • LLaVA-Phi-3-mini

Instalação e Uso

Preparação do Ambiente

# Criar ambiente virtual Python 3.10
conda create --name xtuner-env python=3.10 -y
conda activate xtuner-env

Métodos de Instalação

Método 1: Instalar via pip

pip install -U xtuner

Método 2: Integrar DeepSpeed

pip install -U 'xtuner[deepspeed]'

Método 3: Instalar a partir do código fonte

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

Início Rápido

1. Preparar o arquivo de configuração

# Ver todos os arquivos de configuração disponíveis
xtuner list-cfg

# Copiar o arquivo de configuração para personalizar
xtuner copy-cfg ${CONFIG_NAME} ${SAVE_PATH}

2. Começar o ajuste fino

# Ajuste fino em GPU única
xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --deepspeed deepspeed_zero2

# Ajuste fino em múltiplas GPUs
NPROC_PER_NODE=${GPU_NUM} xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --deepspeed deepspeed_zero2

3. Conversão de Modelo

# Converter o modelo PTH para o formato Hugging Face
xtuner convert pth_to_hf ${CONFIG_NAME_OR_PATH} ${PTH} ${SAVE_PATH}

4. Teste de Diálogo

# Dialogar com o modelo ajustado
xtuner chat ${NAME_OR_PATH_TO_LLM} --adapter ${NAME_OR_PATH_TO_ADAPTER}

Funcionalidades Avançadas

1. Paralelismo de Sequência

  • Suporta treinamento de sequências extremamente longas
  • Método de treinamento eficiente e escalável
  • Adequado para cenários que exigem o processamento de texto longo

2. Treinamento DPO/ORPO

  • Suporta Otimização Direta de Preferência (DPO)
  • Suporta Otimização de Preferência de Razão de Chances (ORPO)
  • Suporta treinamento de Modelo de Recompensa
  • Suporta dados compactados e paralelismo de sequência

3. Otimização de Raciocínio Matemático

  • Suporta OREAL (um novo método de aprendizado por reforço)
  • Otimizado especificamente para tarefas de raciocínio matemático

Desempenho

Velocidade de Treinamento

  • Llama2 7B: Possui excelente velocidade de treinamento em uma única GPU
  • Llama2 70B: Suporta treinamento paralelo em múltiplas GPUs, com excelente desempenho de velocidade
  • DeepSeek V2: Aumento de 2 vezes na velocidade de treinamento em comparação com a versão anterior

Eficiência de Memória

  • Baixa Demanda de Memória: 20GB de memória GPU são suficientes para o ajuste fino QLoRA
  • Ajuste Fino de Parâmetros Completos: 4x80GB GPU podem realizar o ajuste fino de parâmetros completos
  • Otimização de Memória: Reduz significativamente o uso de memória por meio de várias técnicas de otimização

Integração com o Ecossistema

XTuner, como uma parte importante do ecossistema InternLM, está intimamente integrado com outras ferramentas:

  • LMDeploy: Kit de ferramentas de implantação e serviço de modelos
  • OpenCompass: Kit de ferramentas de avaliação em larga escala
  • VLMEvalKit: Kit de ferramentas de avaliação de modelos de linguagem visual
  • Lagent: Framework de agentes inteligentes
  • AgentLego: Biblioteca de API de ferramentas multifuncionais

Cenários de Aplicação

1. Pesquisa Acadêmica

  • Pesquisa de ajuste fino de modelos de linguagem grandes
  • Desenvolvimento de modelos multimodais
  • Validação de novos algoritmos

2. Aplicações Industriais

  • Chatbots personalizados
  • Desenvolvimento de modelos específicos de domínio
  • Assistentes de IA de nível empresarial

3. Educação e Treinamento

  • Ensino de cursos de IA
  • Construção de ambientes experimentais
  • Treinamento de habilidades

Conclusão

XTuner é um kit de ferramentas de ajuste fino de modelos de linguagem grandes abrangente e de alto desempenho. Ele não apenas suporta uma ampla gama de modelos e algoritmos de treinamento, mas também fornece uma cadeia de ferramentas completa, desde a preparação de dados até a implantação de modelos, fornecendo aos usuários uma solução completa. Seja para pesquisa acadêmica ou aplicações industriais, o XTuner pode atender às necessidades de diferentes cenários e é a escolha ideal para realizar o ajuste fino de modelos de linguagem grandes.