LMFlow - Kit de Ferramentas para Ajuste Fino e Inferência de Modelos Fundacionais Grandes
Visão Geral do Projeto
LMFlow é um projeto de código aberto desenvolvido pela equipe OptimalScale, um kit de ferramentas escalável, conveniente e eficiente para ajuste fino de modelos de aprendizado de máquina grandes. O projeto foi projetado para ser amigável, rápido e confiável, com o objetivo de tornar a tecnologia de modelos de linguagem grandes acessível a toda a comunidade, realizando a visão de "tornar os modelos grandes acessíveis a todos".
Endereço do Projeto: https://github.com/OptimalScale/LMFlow
Principais Características
1. Suporte a Diversas Formas de Treinamento
- Ajuste Fino de Parâmetros Completos: Atualiza todos os parâmetros para ajustar finamente o modelo de linguagem
- LoRA (Low-Rank Adaptation): Algoritmo de ajuste fino eficiente em termos de parâmetros, mais eficiente do que o ajuste fino de parâmetros completos
- LISA (Layerwise Importance Sampling): Algoritmo de ajuste fino eficiente em termos de memória, capaz de treinar modelos de 7B em 24GB de memória de vídeo sem descarregar
2. Amplo Suporte a Modelos
Suporta vários modelos de linguagem grandes populares, incluindo:
- Série DeepSeek: deepseek, deepseek_v2, deepseek_r1, etc.
- Série LLaMA: llama2, llama3, llama3_for_tool
- Série Qwen: qwen2, qwen2_for_tool, qwen2_5, etc.
- Gemma, Phi, Yi, InternLM2 e outras arquiteturas de modelo
3. Técnicas de Otimização de Desempenho
Otimização de Memória
- FlashAttention-2: Suporta a mais recente tecnologia FlashAttention, melhorando significativamente a velocidade de treinamento e inferência
- Checkpoint de Gradiente: Otimiza o uso de memória por meio de uma estratégia de troca de computação por memória
- DeepSpeed Zero-3: Suporta treinamento distribuído de modelos em larga escala
Aceleração de Inferência
- Integração vLLM: Suporta inferência e serviço de LLM rápidos e fáceis de usar
- Decodificação Especulativa: Suporta a tecnologia de decodificação especulativa para acelerar a inferência
- Inferência de CPU: Suporta a execução de modelos LLaMA em CPUs (por meio de quantização de 4 bits)
4. Recursos Funcionais Abundantes
Suporte a Modelos de Diálogo
- Modelos de diálogo Llama-3 e Phi-3 mais recentes predefinidos
- Suporta vários modelos comuns, como chatml
- Modelos de diálogo personalizáveis para obter melhor desempenho
Suporte Multimodal
- Suporta entrada multimodal de imagem e texto
- Fornece funcionalidade de chatbot multimodal
- Serviço de demonstração online disponível
Processamento de Contexto Longo
- Suporta interpolação de posição (escalonamento linear e NTK) para modelos LLaMA
- Expande a capacidade de processamento de contexto do modelo
5. Avaliação e Testes de Referência
LMFlow Benchmark é uma estrutura de avaliação automática projetada especificamente para modelos de linguagem grandes de código aberto, usando a verossimilhança logarítmica negativa (NLL) como uma métrica para avaliar a capacidade do modelo nas seguintes áreas:
- Conversa casual
- Raciocínio de senso comum
- Seguir instruções
Inovação Técnica
Algoritmo RAFT
O projeto propôs um novo algoritmo de alinhamento: Reward rAnked FineTuning (RAFT), que é mais eficiente do que o RLHF tradicional baseado em PPO.
Otimizador Personalizado
Suporta vários treinamentos de otimizadores personalizados, incluindo:
- RMSprop, LION-32bit, Adam, AdamW
- AdaFactor, Adan, RAdam e mais de 20 outros otimizadores
- A estratégia de otimização mais adequada pode ser selecionada de acordo com a tarefa específica
Casos de Aplicação Prática
Avanços na Área Médica
Os modelos treinados pelo LMFlow têm um excelente desempenho na área médica, e seus modelos de ajuste de tarefas superam o ChatGPT na área médica, demonstrando o enorme potencial de aplicação em áreas verticais.
Série de Modelos Robin
O projeto lançou vários modelos Robin de alto desempenho:
- Robin-33B-V2: Obteve uma excelente pontuação de 64,1 no ranking Huggingface LLM
- Fornece checkpoints de vários tamanhos, como 7B, 13B, 33B, 65B
Instalação e Uso
Requisitos de Ambiente
- Testado principalmente no sistema operacional Linux (Ubuntu 20.04)
- Suporta versões CUDA 10.3-11.7
- Ambiente Python 3.9
Instalação 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 .
Instalação PyPI
pip install lmflow-finetune
Impacto Técnico
O projeto LMFlow já teve um impacto importante na academia e na indústria:
- Artigos relacionados foram publicados em conferências acadêmicas de alto nível
- Recebeu muita atenção e uso no GitHub
- Fez contribuições importantes para o ecossistema de modelos de linguagem grandes de código aberto
Resumo
Como um kit de ferramentas abrangente para modelos de linguagem grandes, o LMFlow não apenas fornece soluções completas de treinamento e inferência de modelos, mas também inova em muitos aspectos, como otimização de memória, aceleração de desempenho e avaliação de modelos. Ele reduz o limite para o uso de modelos de linguagem grandes, permitindo que mais pesquisadores e desenvolvedores construam e implantem seus próprios modelos de linguagem de forma conveniente, realizando verdadeiramente o objetivo de "tornar os modelos grandes acessíveis a todos".