Unsloth e Llama 3: como ensinar o modelo a chamar APIs de forma estável via JSON

A Machine Learning Mastery publicou um guia de ajuste fino do Llama 3 para tool calling próprio, usando a biblioteca Unsloth. O problema é que o modelo genérico não mantém um JSON estrito para uma API específica: acrescenta texto extra, confunde tipos e inventa campos. A solução é um ajuste fino com QLoRA em exemplos do seu próprio schema. Segundo o projeto, o Unsloth acelera o treinamento em até 2 vezes e reduz o consumo de memória em até 70%, o que permite ajustar um modelo de 8B em uma única GPU da classe T4. • Objetivo: JSON válido e argumentos de função corretos • Método: QLoRA, pesos base em 4 bits e pequenos adaptadores • Hardware: uma placa de vídeo de 16 GB

Processado por IA de Machine Learning Mastery; editado por Hamidun News
Unsloth e Llama 3: como ensinar o modelo a chamar APIs de forma estável via JSON
Fonte: Machine Learning Mastery. Colagem: Hamidun News.
Ouvir artigo
Ficha técnica e números-chave
ParâmetroDados
Fonte originalMachine Learning Mastery ↗
Editor-chefe
ObjetivoJSON válido e argumentos de função corretos
MétodoQLoRA, pesos base em 4 bits e pequenos adaptadores
Hardwareuma placa de vídeo de 16 GB

A Machine Learning Mastery lançou um guia de ajuste fino do Llama 3 para tool calling próprio, usando a biblioteca Unsloth em Python. O problema aparece logo na primeira linha: o Llama 3 se sai bem em uma ampla gama de tarefas, mas um agente que precisa devolver, de forma confiável, um JSON estruturado para uma API específica não se contenta com essa amplitude. Basta um argumento omitido ou uma frase a mais antes da chave de abertura para a chamada da função falhar. Do trecho disponível, só se conhece a formulação do problema; por isso, abaixo analisamos a abordagem padrão para resolvê-lo, em vez de recontar o artigo linha por linha.

Por que o modelo genérico quebra as chamadas

Quando um agente trabalha com uma API, um erro de formato sai caro. O validador de schema rejeita a resposta inteira, e uma nova requisição custa dinheiro e tempo. Um modelo sem ajuste costuma falhar sempre do mesmo jeito: texto antes e depois do JSON, campos inventados, string no lugar de número, nome de função inexistente. Um prompt com exemplos reduz a taxa desses erros, mas não os elimina, sobretudo quando o schema tem dezenas de funções com parâmetros aninhados.

O ajuste fino resolve o problema de outra forma. O modelo recebe centenas ou milhares de pares "pedido do usuário → chamada correta" exatamente no seu schema e deixa de adivinhar o formato. Ele passa a ser a forma habitual de responder.

O que o Unsloth oferece

O Unsloth é uma biblioteca de código aberto para acelerar o ajuste fino de LLMs. Os autores afirmam que ela acelera o treinamento em até 2 vezes e reduz o consumo de memória de vídeo em até 70% em relação à pilha padrão. Esses números são do próprio projeto, não de medições independentes, e podem ser diferentes no seu hardware. O valor prático está em outro ponto: combinada com QLoRA, a biblioteca permite manter os pesos base em 4 bits e treinar apenas pequenos adaptadores LoRA. Nesse modo, um modelo de 8 bilhões de parâmetros cabe em uma única placa de vídeo de 16 GB, como a T4 do Colab gratuito.

Conjunto típico para essa tarefa:

  • Base: Llama 3 8B Instruct
  • Método: LoRA ou QLoRA com quantização de 4 bits dos pesos base
  • Dados: pares "pedido → chamada de função" em JSON, seguindo estritamente o schema da sua API
  • Stack: Python, Unsloth, Hugging Face Datasets, TRL (SFTTrainer)
  • Hardware: uma GPU com 16 GB de memória ou mais
  • Saída: um adaptador que pesa uma fração pequena do modelo completo; se necessário, ele é mesclado à base e exportado em GGUF para llama.cpp ou Ollama

Onde estão as armadilhas

O principal risco está nos dados. Se os exemplos de treinamento forem escritos de forma descuidada, o modelo aprende esse descuido com a mesma confiança. O template de chat usado no treinamento precisa ser o mesmo da inferência, incluindo os tokens especiais do Llama 3. Uma divergência aí é a causa mais comum do clássico "no notebook funcionava, em produção não".

A segunda armadilha é a falta de exemplos negativos. O agente precisa saber não chamar a função quando a pergunta não tem relação com ela, ou pedir esclarecimento quando falta um argumento. Sem esses casos, o modelo ajustado passa a chamar ferramentas a qualquer pretexto.

O terceiro problema é a avaliação. O loss de treinamento diz pouco sobre a qualidade do agente. É preciso um conjunto de validação separado e três métricas: proporção de JSON sintaticamente válido, precisão na escolha da função e precisão nos valores dos argumentos.

Na prática

Comece pequeno. Reúna de 300–500 exemplos de qualidade a partir de logs reais, anote-os conforme o schema e reserve obrigatoriamente 10–20% para validação. Rode o QLoRA no modelo de 8B e compare o resultado com o Llama 3 base, que recebe no prompt os mesmos schemas de função. Se o ganho em validade do JSON e em precisão dos argumentos for visível, amplie o dataset. Se não for, verifique o template de chat e a qualidade da anotação.

O ajuste fino não substitui o constrained decoding. A geração guiada por gramática ou por schema JSON garante a sintaxe, enquanto o ajuste fino cuida do sentido: qual função escolher e o que colocar nos argumentos. Juntas, as duas abordagens entregam o resultado mais previsível. Vale lembrar também que o Llama 3 já não é novidade em 2026, mas a receita em si se aplica a outros modelos compatíveis com o Unsloth.

História

Perguntas frequentes sobre a notícia

Por que o modelo genérico quebra as chamadas?

Quando um agente trabalha com uma API, um erro de formato sai caro. O validador de schema rejeita a resposta inteira, e uma nova requisição custa dinheiro e tempo. Um modelo sem ajuste costuma falhar sempre do mesmo jeito: texto antes e depois do JSON, campos inventados, string no lugar de número, nome de função inexistente. Um prompt com exemplos reduz a taxa desses erros, mas não os elimina, sobretudo quando o schema tem dezenas de funções com parâmetros aninhados. O ajuste fino resolve o problema de outra forma. O modelo recebe centenas ou milhares de pares "pedido do us

O que o Unsloth oferece?

O Unsloth é uma biblioteca de código aberto para acelerar o ajuste fino de LLMs. Os autores afirmam que ela acelera o treinamento em até 2 vezes e reduz o consumo de memória de vídeo em até 70% em relação à pilha padrão. Esses números são do próprio projeto, não de medições independentes, e podem ser diferentes no seu hardware. O valor prático está em outro ponto: combinada com QLoRA, a biblioteca permite manter os pesos base em 4 bits e treinar apenas pequenos adaptadores LoRA. Nesse modo, um modelo de 8 bilhões de parâmetros cabe em uma única placa de vídeo de 16 GB, como

Onde estão as armadilhas?

O principal risco está nos dados. Se os exemplos de treinamento forem escritos de forma descuidada, o modelo aprende esse descuido com a mesma confiança. O template de chat usado no treinamento precisa ser o mesmo da inferência, incluindo os tokens especiais do Llama 3. Uma divergência aí é a causa mais comum do clássico "no notebook funcionava, em produção não". A segunda armadilha é a falta de exemplos negativos. O agente precisa saber não chamar a função quando a pergunta não tem relação com ela, ou pedir esclarecimento quando falta um argumento. Sem esses casos, o model

ZK
Zhemal Khamidun — CPO da Alpina Digital, gerente de produto do AlpinaGPT. Cria produtos de IA desde 2019. O Hamidun News é um projeto pessoal que virou um agregador em produção com mais de 6.000 leitores.
✦ Unified AI Workspace

Access Frontier LLMs & Multimodal AI in One Workspace

Discover NomadNet AI (nomadnet.ai) — unified access to frontier language models, research synthesis, and multimodal workflows.

Try NomadNet AI →Launch NomadNet Agent
O que você acha?
Carregando comentários…