Logotipo-500-x-400-px.png

Ajuste Fino de um Modelo de Linguagem Grande Localmente com Ollama

Neste guia prático, vamos explorar o processo de ajuste fino de um modelo de linguagem grande (LLM) e executá-lo localmente em sua máquina usando o Ollama. Aprenderemos como usar dados específicos para treinar um LLM menor e obter um desempenho superior em tarefas específicas, comparado a modelos maiores. Abordaremos também como configurar o ambiente necessário, preparar os dados e utilizar as ferramentas certas para um processo de treinamento eficiente.

pxhkDaKzBaY-1

Encontrando o Conjunto de Dados Ideal

A escolha do conjunto de dados é crucial para o sucesso do ajuste fino de um LLM. Um conjunto de dados relevante para a tarefa em questão permite treinar um modelo menor que pode superar o desempenho de modelos maiores em tarefas específicas.

Neste exemplo, vamos criar um LLM rápido e pequeno que gera código SQL a partir de dados de tabelas. Para isso, utilizaremos o conjunto de dados "Synthetic Text to SQL", que contém mais de 105.000 registros, divididos em colunas de prompt, SQL, complexidade do conteúdo, entre outros.

É importante ressaltar que este projeto não exige hardware complexo e pode ser executado em máquinas com menos recursos. Utilizaremos o Google Colab para treinar o modelo na nuvem caso você não possua uma GPU.

Ferramentas Essenciais: Unsloth e Llama

Para este projeto, utilizaremos duas ferramentas poderosas: Unsloth e Llama.

  • Unsloth: O Unsloth permite o ajuste fino eficiente de vários modelos de código aberto com uma redução de até 80% no uso de memória.
  • Llama: Um LLM desenvolvido para fins comerciais e de pesquisa, especialmente em inglês, com alto desempenho.

Configurando o Ambiente

Antes de começar, certifique-se de ter o Anaconda e as bibliotecas CUDA instaladas em sua máquina. Recomenda-se usar CUDA 12.1 e Python 3.10.

Em seguida, instale as dependências do Unsloth, que incluem:

  • PIE
  • Torch
  • Bibliotecas CUDA
  • A versão mais recente do Unsloth

Crie um novo ambiente para o projeto e instale o Jupyter Notebook. Após a instalação, execute o Jupyter Notebook para começar a codificar.

CopyofIAGenerativanoDireito40

R$ 59,90

Ajustando o Modelo

No Jupyter Notebook, importe o modelo de linguagem rápida usando o Unsloth, especificando o modelo Llama 3/8 bits, um comprimento máximo de sequência de 2048 tokens e carregando-o em 4 bits para reduzir o uso de memória.

Em seguida, carregue o modelo PEFT (Parameter-Efficient Fine-Tuning), que utiliza adaptadores LoRA para atualizar apenas 1 a 10% dos parâmetros do modelo, economizando tempo e recursos.

A próxima etapa é formatar os dados para o modelo Llama 3, que utiliza prompts no estilo Alpaca. Adapte o código para incluir apenas as informações relevantes do conjunto de dados, como SQL, prompts e explicações.

Utilize o treinador de ajuste fino supervisionado do Hugging Face para treinar o modelo, definindo parâmetros como etapas máximas, semente e etapas de aquecimento.

Após o treinamento, converta o modelo para o tipo de arquivo correto para execução local com Ollama usando um comando do Unsloth.

Executando o Modelo com Ollama

No terminal, navegue até o caminho onde o arquivo do modelo está salvo e crie um arquivo chamado "modelfile". Abra o arquivo em um editor de código e adicione um prompt, como "Você é um gerador de SQL que recebe a consulta de um usuário e fornece SQL útil para usar."

Com o Ollama em execução, execute o comando para ler os itens no arquivo "modelfile" e iniciar o modelo usando o llama.cpp, permitindo a execução local do seu LLM ajustado.

Parabéns! Agora você tem um LLM ajustado fino em execução localmente, pronto para ser integrado em suas aplicações.

Gostou do conteúdo? Compartilhe

Facebook
LinkedIn
WhatsApp
Twitter
Telegram
Email

Referência

Ajuste Fino de um Modelo de Linguagem Grande Localmente com Ollama

Este site utiliza cookies. Ao continuar a navegar neste site, você aceita o uso de cookies e nossa política de privacidade.