Pular para o conteúdo principal
InicioTutoriaisInteligência Artificial (IA)

Guia para iniciantes do LlaMA-Factory WebUI: Ajuste fino dos LLMs

Saiba como fazer o ajuste fino dos LLMs em conjuntos de dados personalizados, avaliar o desempenho e exportar e servir modelos com facilidade usando a estrutura com pouco ou nenhum código do LLaMA-Factory.
Actualizado set. de 2024  · 12 min leer

Neste tutorial, exploraremos como ajustar o modelo Llama 3 8B usando a LlaMA-Factory WebUI no conjunto de dados de perguntas e respostas da Wikipédia. Começaremos apresentando a WebUI do LlaMA-Factory e, em seguida, você o configurará no ambiente do Google Colab. Depois de configurado, você verá o processo de ajuste fino do modelo Llama 3 8B no conjunto de dados e, em seguida, avaliará o desempenho do modelo por meio da interface de bate-papo.

À medida que avançarmos, você também aprenderá a carregar conjuntos de dados personalizados, mesclar modelos e exportá-los para o Hugging Face. Por fim, abordaremos como implantar o modelo ajustado, tornando-o acessível por meio da API da OpenAI.

Você pode obter conhecimento prático sobre tópicos populares de IA, como ChatGPT, modelos de linguagem grandes, IA generativa e muito mais, fazendo o curso Fundamentos de IA programa de habilidades.

Ajuste fino de LLMs usando a imagem de capa da WebUI do LlaMA-Factory

Imagem do autor | Canva

O que é o LlaMA-Factory?

hiyouga/LLaMA-Factory é um projeto de código aberto que permite que você faça o ajuste fino de mais de 100 modelos de linguagem grandes (LLMs) por meio de uma interface WebUI. Ele fornece um conjunto abrangente de ferramentas e scripts para ajuste fino, chatbot, atendimento e avaliação comparativa de LLMs. 

O LLaMA-Factory foi projetado especificamente para iniciantes e profissionais não técnicos que desejam ajustar LLMs de código aberto em seus conjuntos de dados personalizados sem aprender conceitos complexos de IA. Os usuários só precisam selecionar um modelo, adicionar seu conjunto de dados e ajustar alguns parâmetros para iniciar o processo de treinamento. 

Após a conclusão do treinamento, o mesmo aplicativo da Web pode ser usado para testar o modelo, após o que ele pode ser exportado para o Hugging Face ou salvo localmente. Isso proporciona uma maneira rápida e eficiente de fazer o ajuste fino dos LLMs localmente.

Primeiros passos com o LlaMA-Factory WebUI

Nesta seção, aprenderemos como instalar e iniciar o LlaMA-Factory WebUI no Google Colab e no Microsoft Windows. 

O Google Colab fornece acesso a GPUs gratuitas, portanto, se o seu laptop não tiver uma GPU ou CUDA instalada, você pode usar o Google Colab. Recomendei que você começasse com um notebook Colab. 

  1. Inicie o notebook do Google Colab com o tipo de tempo de execução "T4 GPU". 
  2. Na célula de código, digite o seguinte comando para clonar o repositório LLaMA-Factory do GitHub e instalar todos os pacotes Python necessários. 
%cd /content/
%rm -rf LLaMA-Factory
!git clone https://github.com/hiyouga/LLaMA-Factory.git
%cd LLaMA-Factory
%ls
%pip install -e .[torch,bitsandbytes]
  1. Para acessar modelos e conjuntos de dados, você precisa fazer login na CLI da Hugging Face. Para isso, você deve gerar um novo token de acesso acessando as configurações do Hugging Face, clicando em "Access Tokens" e criando um novo token para o Google Colab.

Gerar o novo token de acesso Hugging Face

  1. Crie a variável de ambiente Hugging Face usando o recurso "Secrets" do Colab, que nos permite criar variáveis de ambiente que podem ser acessadas com segurança no notebook.

Definir a variável de ambiente no Google Colab usando os segredos.

  1. Faça login no Hugging Face Hub usando o token de acesso do Hugging Face. 
from huggingface_hub import login
from google.colab import userdata
hf_token = userdata.get("HUGGINGFACE_TOKEN")
login(token = hf_token)
  1. Inicie o LLaMA-Factor WebUI usando o endereço llamafactory-cli. Estamos definindo GRADIO_SHARE=1 para que você possa gerar um link público para acessar o aplicativo Web. 
%cd /content/LLaMA-Factory/
!GRADIO_SHARE=1 llamafactory-cli webui
  1. Clique no URL público para iniciar a WebUI na nova guia. 

URL pública do webui do fator Llama

A WebUI do LLAMA-Factory parece simples, mas tem muitas opções e guias. Vamos explorá-las na próxima seção. 

Llama Factory WebUI em execução no Google Colab

Se você estiver enfrentando problemas para iniciar sua própria WebUI do LlaMA-Factory, consulte o Bloco de notas do Google Colab.

Executando o LlaMA-Factory WebUI no Windows

Se quiser executar o LlaMA-Factory WebUI localmente no Windows, você precisará instalar uma versão pré-construída da biblioteca bitsandbytes. Ele é compatível com CUDA 11.1 a 12.2, portanto, selecione a versão apropriada com base na versão que você possui. versão CUDA.

  1. Vá para o terminal do Windows e digite o comando Git para clonar o repositório LLaMA-Factory do GitHub.
  2. Instale todos os pacotes Python necessários.
  3. Instale a biblioteca bitsandbytes para Windows.
$ git clone https://github.com/hiyouga/LLaMA-Factory.git

$ cd LLaMA-Factory

$ pip install -e .[torch,bitsandbytes]

$ pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.41.2.post2-py3-none-win_amd64.whl
  1. Inicie o LLaMA-Factory WebUI.
$ llamafactory-cli webui
  1. Não se esqueça de fazer login no Hugging Face usando a CLI, fornecendo a ele um token de acesso. 
$ huggingface-cli login

Ajuste fino do bate-papo do LlaMA-3 8B usando o LlaMA-Factory WebUI

Não haverá codificação nesta seção. Selecionaremos o modelo e o conjunto de dados para ajuste fino, alteraremos alguns parâmetros e pressionaremos alguns botões para um treinamento mais rápido. 

Para entender a teoria por trás do ajuste fino de modelos de linguagem grandes, confira este guia abrangente: Ajuste fino de modelos de idiomas grandes.

Seleção do conjunto de dados e do modelo

Estaremos ajustando o unsloth/llama-3-8b-bnb-4bit no modelo Microsoft/wiki_qa da Microsoft. O conjunto de dados contém várias colunas, conforme mostrado abaixo, mas usaremos as colunas "pergunta" e "resposta" para o ajuste fino do modelo. 

Repositório de conjunto de dados Wiki_QA no Hugging Face Hub.

Fonte: microsoft/wiki_qa | Corpus de resposta a perguntas Wiki da Microsoft

Não é possível carregar o modelo completo de instruções LLaMA-3-8B na versão gratuita do Google Colab. Em vez disso, carregaremos a versão quantizada de 4 bits do mesmo modelo fornecido pelo Unsloth. 

Para fazer isso, selecione o nome do modelo "Custom" (Personalizado) e cole o link do repositório "unsloth/llama-3-8b-bnb-4bit" no caminho do modelo.

Configuração do modelo e do conjunto de dados no LlaMA-Factory WebUI

Podemos selecionar vários conjuntos de dados para ajustar nosso modelo. No entanto, para este tutorial, usaremos apenas o conjunto de dados "Wikiqa", que você pode selecionar facilmente em um conjunto de dados predefinido, conforme mostrado acima. 

Ajuste dos parâmetros de treinamento 

Ajuste os argumentos de treinamento do modelo rolando a página para baixo. Vamos definir os seguintes parâmetros:

  • Taxa de aprendizado para 4e-5
  • Épocas até 1.0
  • Máximo de amostras para 1000 para acelerar o treinamento do modelo

O restante dos argumentos será mantido com seus valores padrão. Esses valores podem ser alterados para modificar o comportamento do modelo ajustado. 

Definir parâmetros de treinamento no LlaMA-Factory WebUI

Também temos a opção de alterar o LoRa e outras configurações relacionadas à LoRa. Para este tutorial, manteremos todas as outras configurações em seus valores padrão.

Definir as configurações do LoRA no LlaMA-Factory WebUI

Iniciar o processo de treinamento

Role mais para baixo na página para ver a configuração do treinamento. Forneça o diretório de saída e o caminho de configuração e pressione o botão "Start" (Iniciar). O gráfico de perdas levará algum tempo para ser exibido, pois o LlaMA-Factor primeiro fará o download do modelo e do conjunto de dados e, em seguida, carregará ambos, o que pode levar pelo menos 5 minutos.

Iniciando o processo de treinamento no LlaMA-Factory WebUI

Quando o modelo estiver totalmente carregado e o treinamento for iniciado, você começará a ver visualizações no gráfico de perdas. Como podemos observar, a perda está diminuindo gradualmente com o número de etapas, o que é ótimo.

Na metade do treinamento do modelo no LlaMA-Factory WebUI

Quando o treinamento for concluído, você verá a mensagem de conclusão no canto inferior esquerdo. Como podemos observar, a perda foi reduzida gradualmente e atingiu um patamar após 45 etapas.

Ajuste fino do modelo concluído no LlaMA-Factory WebUI

Se você for um cientista ou desenvolvedor de dados, será fácil ajustar seu modelo usando a linguagem Python. 

Temos um guia detalhado para pessoas técnicas que desejam treinar o LlaMA-3 aqui: Ajuste fino do Llama 3 e seu uso local: Um guia passo a passo.

Avaliação do modelo de ajuste fino

Para avaliar o modelo ajustado, precisamos mudar o menu de "Train" (Treinar) para "Chat" (Conversar). Em seguida, vá para "Caminho do ponto de verificação" e carregue o adotante ajustado salvo. 

Definir o caminho do ponto de verificação no LlaMA-Factory WebUI

Depois disso, clique no botão "Load model" (Carregar modelo) e aguarde alguns segundos até que o modelo seja carregado com sucesso. 

carregar o modelo de ajuste fino salvo

Role para baixo para ver a caixa de entrada do bate-papo e escreva uma pergunta geral sobre a cadeia de montanhas. 

Digitando a pergunta simples na caixa de bate-papo.

Como resultado, você obterá uma resposta simples e direta, semelhante ao conjunto de dados "wiki_qa".

Resposta gerada pelo modelo Llama-3 com ajuste fino

Vamos tentar fazer outra pergunta. Podemos ver que o modelo tem um desempenho excepcional. Em 30 minutos, fizemos o ajuste fino do modelo, o que levaria mais de 4 horas usando a biblioteca Transformer. Isso é incrível. 

Resposta gerada pelo modelo Llama-3 com ajuste fino

Às vezes, o ajuste fino não é a solução para todos os problemas do LLM. É por isso que você deve ler o site RAG vs Fine-Tuning: A Comprehensive Tutorial with Practical Examples e saiba o que funciona melhor para você.

Recursos adicionais do LlaMA-Factory WebUI

Além dos modelos de ajuste fino e teste, o ecossistema LLaMA-Factory oferece vários recursos principais, incluindo o uso de dados personalizados para ajuste fino, fusão e exportação de modelos e implantação de modelos ajustados usando o VLLM. 

Conjunto de dados personalizado

Para adicionar um conjunto de dados personalizado, basta modificar o arquivo data/dataset_info.json e ele se tornará acessível na WebUI do LLaMA-Factory. 

Para obter informações detalhadas sobre o formato necessário dos arquivos de conjunto de dados e como modificar o arquivo dataset_info.json, consulte o arquivo data/README.md que você pode consultar.

Você pode optar por usar conjuntos de dados dos hubs Hugging Face ou ModelScope, ou pode carregar o conjunto de dados do seu disco local.

arquivo dataset_info.json aberto no Google Colab.

Visualização do arquivo data/dataset_info.json

Mesclando e exportando o modelo 

Você pode mesclar facilmente o adaptador LoRA ajustado com o modelo completo e exportá-lo para o Hugging Face Hub clicando na guia "Export". 

Ajuste o tamanho máximo do fragmento, defina o caminho do diretório de exportação e especifique o ID do repositório do Hugging Face Hub e o dispositivo de exportação. O processo levará alguns minutos para que você mescle o modelo e carregue todos os arquivos do modelo no Hugging Face Hub.

Observação: A versão gratuita do Colab oferece apenas 12 GB de RAM, enquanto a fusão do LoRA de um modelo de 8 bilhões de parâmetros exige pelo menos 16 GB de RAM. Portanto, essa operação não pode ser realizada na versão gratuita do Colab.

Mesclando e exportando o modelo para o Hugging Face Hub

Ao mesclar e enviar o modelo ajustado para o Hugging Face Hub, você pode fazer a fusão e a experiência.

Implante com a API no estilo OpenAI e vLLM

O LlaMA-Factory é fornecido com a estrutura do vLLM para o serviço e a implementação de modelos. Ao digitar o seguinte comando, podemos servir o modelo Llama-3-8B-Instruct e acessá-lo por meio da API Python da OpenAI ou da RestAPI. 

$ API_PORT=8000 llamafactory-cli api examples/inference/llama3_vllm.yaml

Você pode até mesmo modificar o arquivo ou criar seu próprio arquivo .yaml para servir seu modelo ajustado na produção. Tudo o que você precisa fazer é fornecer o caminho para a pasta do modelo localmente ou no Huggin Face Hub. 

llama3_vllm.yaml file content.

Fonte: hiyouga/LLaMA-Factory (github.com)

Se você estiver procurando uma solução low-code semelhante que permita o ajuste fino dos LLMs, especificamente o modelo proprietário GPT-4o, temos um guia abrangente para você. Confira nosso tutorial passo a passo aqui: Ajuste fino do GPT-4 da OpenAI: Um guia passo a passo.

Conclusão

A WebUI do LLaMA-Factory simplifica o processo para iniciantes e especialistas. Tudo o que você precisa fazer é ajustar alguns parâmetros para fazer o ajuste fino do modelo em um conjunto de dados personalizado. Usando a mesma interface de usuário, você pode testar o modelo e exportá-lo para o Hugging Face ou salvá-lo localmente. Isso permite que você implante o modelo em produção posteriormente usando o comando LLaMA-Factory CLI api. É muito simples. 

Em vez de escrever centenas de linhas de código e solucionar problemas de ajuste fino, você pode obter resultados semelhantes com apenas alguns cliques.

Neste tutorial, aprendemos sobre a WebUI do LLaMA-Factory e como ajustar o modelo LLaMA-3-8B-Instruct em um conjunto de dados de perguntas e respostas da Wikipédia usando essa estrutura. Além disso, testamos o modelo ajustado usando o menu do chatbot integrado e exploramos os recursos adicionais oferecidos pelo LLaMA-Factory.

Saiba como fazer o ajuste fino dos LLMs usando Python, inscrevendo-se gratuitamente no próximo webinar Como ajustar seu próprio modelo Llama 3.

Temas

Principais cursos de LLM da DataCamp

Certificação disponível

Course

Desenvolvimento de aplicativos LLM com LangChain

3 hr
8.3K
Descubra como criar aplicativos com tecnologia de IA usando LLMs, prompts, cadeias e agentes no LangChain.
See DetailsRight Arrow
Start Course
Ver maisRight Arrow