LitGPT - Caixa de Ferramentas de Alto Desempenho para Grandes Modelos de Linguagem
Visão Geral do Projeto
LitGPT é uma caixa de ferramentas de código aberto para grandes modelos de linguagem desenvolvida pela Lightning AI, que oferece mais de 20 soluções de alto desempenho para pré-treinamento, ajuste fino e implantação em escala de grandes modelos de linguagem. O projeto é construído com base no Lightning Fabric, expandindo o Lit-LLaMA e o nanoGPT, com foco em fornecer capacidades de treinamento e implantação de LLM de nível empresarial.
Características Principais
✅ Características de Nível Empresarial
- Licença Apache 2.0 - Suporta uso empresarial ilimitado
- Amigável ao Desenvolvedor - Implementação de arquivo único sem camadas de abstração, facilitando a depuração
- Otimização de Desempenho - Projetado para máximo desempenho, redução de custos e aceleração do treinamento
- Receitas Validadas - Receitas de treinamento/ajuste fino altamente otimizadas testadas em escala empresarial
✅ Características Técnicas Avançadas
- Implementação do Zero - Todos os modelos são escritos do zero, sem camadas de abstração, controle total
- Flash Attention v2 - A mais recente otimização do mecanismo de atenção
- Suporte Multi-GPU - Implementado através de Paralelismo de Dados Totalmente Fragmentado (FSDP)
- Otimização de Memória - Descarregamento opcional de CPU e suporte TPU/XLA
- Técnicas de Quantização - Suporte para ponto flutuante de 4 bits, inteiro de 8 bits e quantização dupla
- Ajuste Fino Eficiente em Parâmetros - Suporte para LoRA, QLoRA, Adapter e Adapter v2
Modelos Suportados
LitGPT suporta mais de 20 modelos de linguagem grandes, incluindo:
Principais Famílias de Modelos
- Família Llama - Llama 3, 3.1, 3.2, 3.3 (1B-405B parâmetros)
- CodeGemma - Modelo de 7B especificamente para geração de código
- Família Gemma - Modelos de código aberto do Google
- Família Mistral - Incluindo Mistral 7B e Mixtral, entre outros
- Família Phi - Modelos pequenos e eficientes da Microsoft
- Família Qwen - Modelos multilíngues da Alibaba
- DeepSeek R1 - O mais recente modelo de inferência
Modelos em Destaque
- Família Falcon - Modelos de alto desempenho desenvolvidos pela TII
- StableLM - Modelo de linguagem estável da Stability AI
- TinyLlama - Variante Llama leve
- SmolLM - Modelo pequeno da Hugging Face
Funcionalidades Principais
1. Início Rápido
from litgpt import LLM
llm = LLM.load("microsoft/phi-2")
text = llm.generate("Fix the spelling: Every fall, the family goes to the mountains.")
print(text)
2. Ajuste Fino do Modelo
Suporta vários métodos de ajuste fino:
- Ajuste Fino Completo - Treina todos os parâmetros
- Ajuste Fino LoRA - Ajuste fino de adaptação de baixo posto
- QLoRA - Ajuste fino LoRA quantizado
- Ajuste Fino Adapter - Ajuste fino da camada de adaptador
Comando de exemplo:
litgpt finetune microsoft/phi-2 \
--data JSON \
--data.json_path my_custom_dataset.json \
--data.val_split_fraction 0.1 \
--out_dir out/custom-model
3. Pré-Treinamento do Modelo
Suporta treinamento do zero e continuação do pré-treinamento:
litgpt pretrain EleutherAI/pythia-160m \
--tokenizer_dir EleutherAI/pythia-160m \
--data TextFiles \
--data.train_data_path "custom_texts/" \
--train.max_tokens 10_000_000 \
--out_dir out/custom-model
4. Implantação do Modelo
Suporta implantação com um clique como um serviço Web:
# Implantação de modelo pré-treinado
litgpt serve microsoft/phi-2
# Implantação de modelo personalizado
litgpt serve out/custom-model/final
5. Avaliação do Modelo
Suporta vários benchmarks de avaliação:
litgpt evaluate microsoft/phi-2 --tasks 'truthfulqa_mc2,mmlu'
6. Chat Interativo
litgpt chat microsoft/phi-2
Vantagens Técnicas
Otimização de Desempenho
- Velocidade de Inferência Otimizada - Especificamente otimizado para inferência rápida
- Suporte à Quantização - Reduz o uso de memória
- Execução de GPU com Pouca Memória - Suporta ambientes com recursos limitados
- Escalabilidade de Nível de Produção - Suporta 1-1000+ GPU/TPU
Otimização de Memória e Computação
- Treinamento de Precisão Mista - Suporta mistura FP16, BF16, FP32
- Checkpoint de Gradiente - Reduz o uso de memória
- Descarregamento de CPU - Lida com modelos extra grandes
- Treinamento Distribuído - Suporte multi-nó multi-GPU
Treinamento Configurável
LitGPT fornece arquivos de configuração YAML validados, cobrindo diferentes cenários de treinamento:
litgpt finetune \
--config https://raw.githubusercontent.com/Lightning-AI/litgpt/main/config_hub/finetune/llama-2-7b/lora.yaml
Cenários de Aplicação
Pesquisa e Desenvolvimento
- Pesquisa de Modelos - Fornece código legível e facilmente modificável
- Experimentação de Algoritmos - Suporta a rápida implementação das mais recentes ideias de pesquisa
- Benchmark - Processo de avaliação de modelo padronizado
Aplicações Empresariais
- Modelos Personalizados - Ajuste fino de modelos para cenários de negócios específicos
- Implantação de Produção - Implantação de serviços de modelo de nível empresarial
- Otimização de Custos - Reduz custos de computação através de quantização e otimização
Educação e Aprendizagem
- Amigável para Iniciantes - Estrutura de código clara e documentação detalhada
- Ensino Prático - Fluxo completo do treinamento à implantação
- Treinamento em Pesquisa - Fornece ferramentas básicas confiáveis para pesquisadores
Ecossistema da Comunidade
Suporte a Projetos Conhecidos
- Projeto SAMBA - Modelo de espaço de estado híbrido desenvolvido pela Microsoft com base no LitGPT
- TinyLlama - Modelo pequeno de 300M parâmetros treinado usando LitGPT
- Desafio NeurIPS 2023 - Kit de ferramentas oficial designado para o desafio de eficiência LLM
Comunidade de Código Aberto Ativa
- Atualizações Contínuas - Adição regular de novos modelos e funcionalidades
- Contribuições da Comunidade - Boas-vindas a desenvolvedores de todos os níveis para participar
- Documentação Detalhada - Tutoriais abrangentes e documentação da API
Instalação e Uso
Instalação Básica
pip install 'litgpt[all]'
Instalação a partir do Código Fonte
git clone https://github.com/Lightning-AI/litgpt
cd litgpt
pip install -e '.[all]'
Fluxo de Uso Básico
- Escolha um Modelo - Escolha entre mais de 20 modelos suportados
- Prepare os Dados - Use conjuntos de dados integrados ou dados personalizados
- Configure o Treinamento - Use configurações predefinidas ou parâmetros personalizados
- Execute o Treinamento - Pré-treine ou ajuste fino o modelo
- Implante o Modelo - Implante como um serviço de produção
- Avalie o Modelo - Use benchmarks padrão
Documentação Técnica
LitGPT fornece documentação técnica completa, incluindo:
- Guia de Início Rápido - Tutorial completo de 0 ao LitGPT
- Tutorial de Ajuste Fino - Inclui instruções detalhadas para LoRA, QLoRA e Adapter
- Guia de Pré-Treinamento - Fluxo completo para treinar modelos do zero
- Documentação de Implantação - Melhores práticas para implantação em ambientes de produção
- Otimização de Desempenho - Tratamento de erros OOM e dicas de otimização de memória
- Implantação na Nuvem - Guia de uso de TPU e plataformas de nuvem
Resumo
LitGPT é uma caixa de ferramentas de modelo de linguagem grande abrangente e de alto desempenho, adequada para uma variedade de cenários de aplicação, desde pesquisa até produção. Com sua filosofia de design de implementação do zero e sem camadas de abstração, ele fornece aos usuários máxima flexibilidade e controle, ao mesmo tempo em que garante operação eficiente em várias condições de hardware por meio de ricas tecnologias de otimização e opções de configuração. Seja um pesquisador de IA, um desenvolvedor empresarial ou um aluno, todos podem encontrar uma solução que atenda às suas necessidades no LitGPT.