Home
Login

Um kit de ferramentas expansível, conveniente e eficiente para ajuste fino e inferência de modelos de base grandes, projetado para ser amigável, rápido e confiável, e aberto a toda a comunidade.

Apache-2.0Python 8.4kOptimalScale Last Updated: 2025-05-15

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".