Neste guia abrangente, vamos mergulhar no mundo do ajuste fino de modelos de linguagem e aprender como executar um modelo ajustado localmente usando o LLaMa e o Ollama. Acompanhe o passo a passo para criar um modelo de linguagem especializado em gerar código SQL a partir de dados de tabelas.

A escolha do conjunto de dados é crucial para o sucesso do ajuste fino. Utilizaremos o conjunto de dados "Synthetic Text to SQL", que contém mais de 105.000 registros, ideal para treinar nosso modelo. Para este projeto, você pode utilizar uma GPU potente ou o Google Colab, que oferece recursos de computação em nuvem.
Recomendamos o uso do Anaconda com as bibliotecas CUDA (versão 12.1) e Python 3.10. Assegure-se de ter o Unsloth instalado, pois ele otimiza o processo de ajuste fino, reduzindo o uso de memória em até 80%. O LLaMa, um modelo de linguagem de código aberto com excelente desempenho em inglês, será nossa base.
Para configurar o ambiente, instale as dependências do Unsloth:
```bash conda create -n env_name python=3.10 conda activate env_name pip install -r requirements.txt pip install ipywidgets jupyter nbextension enable --py widgetsnbextension ```Este comando cria um novo ambiente e instala as bibliotecas necessárias, incluindo PyTorch, CUDA e o Unsloth. Execute seu Jupyter Notebook para começar.
No Jupyter Notebook, importe o modelo de linguagem do Unsloth, especificando o modelo LLaMa 3 de 8 bits e configurando o tamanho máximo de sequência para 2048 tokens. Ative o carregamento em 4 bits para reduzir o uso de memória.
```python from transformers import AutoTokenizer from transformers import AutoModelForSeq2SeqLM from peft import LoraConfig, get_peft_model from datasets import load_dataset from transformers import DataCollatorForSeq2Seq from transformers import Seq2SeqTrainer, Seq2SeqTrainingArguments from datasets import load_dataset # ... (código para carregar o modelo e configurar parâmetros) ```Em seguida, carregue o modelo PEFT com adaptadores LoRA, que permitem ajustar apenas uma pequena parte dos parâmetros do modelo, economizando tempo e recursos. O Unsloth oferece configurações recomendadas para este processo.
A formatação dos dados é crucial para o entendimento do modelo. Utilizaremos prompts no estilo Alpaca, ajustando o conjunto de dados para incluir apenas as informações relevantes: SQL, prompt e explicação do código gerado. Adapte o código para refletir essa formatação.
Configure o módulo de treinamento utilizando o Seq2SeqTrainer do Hugging Face. Defina parâmetros como número de etapas de treinamento, semente aleatória e etapas de aquecimento. Após a configuração, execute o treinamento.
Após o treinamento, converta o modelo para o formato adequado para execução local com o Ollama. Utilize o comando fornecido pelo Unsloth:
```bash # ... (comando para converter o modelo) ```Crie um arquivo chamado "modelfile" no diretório do modelo e adicione um prompt descritivo, como: "Você é um gerador de SQL que recebe a consulta de um usuário e fornece SQL útil para uso.".
Com o Ollama em execução, utilize o seguinte comando para carregar o modelo:
```bash ollama run ```Pronto! Agora você pode utilizar seu modelo de linguagem ajustado localmente com a API compatível com OpenAI.