Introdução geral
O LLaMA-Factory é uma estrutura de ajuste fino unificada e eficiente que oferece suporte à personalização flexível e ao treinamento eficiente de mais de 100 modelos de linguagem grandes (LLMs). A interface da Web integrada do LLaMA Board permite que os usuários façam o ajuste fino dos modelos sem escrever código. A estrutura integra uma variedade de métodos avançados de treinamento e dicas práticas para melhorar significativamente a velocidade de treinamento e a utilização da memória da GPU.
Lista de funções
- Suporte a vários modelosSuporte para LLaMA, LLaVA, Mistral, Qwen e outros modelos multilíngues.
- Vários métodos de treinamentoInclui corte de volume total, corte de congelamento, LoRA, QLoRA, etc.
- algoritmo eficienteIntegração de GaLore, BAdam, Adam-mini, DoRA e outros algoritmos avançados.
- habilidade práticaSuporte para FlashAttention-2, Unsloth, Liger Kernel e muito mais.
- Monitoramento experimentalFornece ferramentas de monitoramento, como LlamaBoard, TensorBoard, Wandb, MLflow e muito mais.
- inferência rápidaAPIs do tipo OpenAI: fornece APIs do tipo OpenAI, interface do usuário do Gradio e interfaces CLI.
- Suporte a conjuntos de dadosSuporte para download de modelos e conjuntos de dados pré-treinados do HuggingFace, ModelScope e outras plataformas.
Usando a Ajuda
Processo de instalação
- Clone o código do projeto:
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
- Instale a dependência:
pip install -e ". [torch,metrics]"
As dependências opcionais incluem: torch, torch-npu, metrics, deepspeed, liger-kernel, bitsandbytes e outras.
Preparação de dados
Consulte dados/README.md
Saiba mais sobre o formato de arquivo do conjunto de dados. Você pode usar conjuntos de dados no hub HuggingFace/ModelScope/Modelers ou carregar conjuntos de dados em seu disco local.
Início rápido
Use os seguintes comandos para executar o LoRA para ajustar, raciocinar e mesclar modelos do Llama3-8B-Instruct:
llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml
llamafactory-cli chat exemplos/inference/llama3_lora_sft.yaml
llamafactory-cli export exemplos/merge_lora/llama3_lora_sft.yaml
Para uso mais avançado, consulte exemplos/README.md
.
Usando a GUI da placa LLaMA
O ajuste fino é feito por meio da GUI da placa LLaMA fornecida pelo Gradio:
llamafactory-cli webui
Implementação do Docker
Para usuários de CUDA:
cd docker/docker-cuda/
docker compose up -d
docker compose exec llamafactory bash
Para usuários do Ascend NPU:
cd docker/docker-npu/
docker compose up -d
docker compose exec llamafactory bash
Para usuários do AMD ROCm:
cd docker/docker-rocm/
docker compose up -d
docker compose exec llamafactory bash
Implementação da API
Inferência usando APIs no estilo OpenAI e vLLM:
API_PORT=8000 llamafactory-cli api examples/inference/llama3_vllm.yaml
Visite esta página para obter a documentação da API.
Faça o download de modelos e conjuntos de dados
Se você tiver problemas para fazer download de modelos e conjuntos de dados do Hugging Face, poderá usar o ModelScope:
exportar USE_MODELSCOPE_HUB=1
Treine um modelo especificando o ID do modelo do ModelScope Hub, por exemplo LLM-Research/Meta-Llama-3-8B-Instruct
.
Registro de resultados experimentais com W&B
Para registrar os resultados de um experimento usando o Weights & Biases, adicione os seguintes parâmetros ao arquivo yaml:
wandb.
projeto: "seu_nome_do_projeto"
entidade: "seu_nome_da_entidade"