Por que saída estruturada importa
Saída estruturada é uma das tarefas mais comuns dos LLMs no mundo real, mas a maioria dos benchmarks a dilui em notas de raciocínio ou extração, em vez de medi-la isoladamente. A pergunta decisiva é se o modelo devolve uma saída válida e parseável no formato pedido — a chamada conformidade de schema. É isso que decide se ele pode ser ligado a um sistema downstream.
Um guia publicado no Hugging Face Blog mostra uma receita pública e barata para melhorar essa conformidade: fazer fine-tuning do modelo LFM2.5-350M com GRPO (Group Relative Policy Optimization), usando a biblioteca TRL, e avaliar no benchmark IFStruct. O melhor: o processo inteiro cabe em uma GPU gratuita do Colab ou Kaggle.
A receita em resumo
- Modelo: LFM2.5-350M, uma arquitetura híbrida de atenção e convolução.
- Dados: cerca de 500 amostras do dataset Nemotron, cada uma pareando um prompt com um JSON Schema alvo.
- LoRA: adaptador com ~6 milhões de parâmetros (1,66% do modelo).
- Recompensas: três funções combinadas por soma ponderada — validade do formato, contagem de campos e conformidade com o schema.
- Treino: 100 passos, com 8 gerações por grupo de prompt, em GPU de 16 GB.
Para fechar a distância entre a distribuição do Nemotron e a avaliação do IFStruct, os prompts foram aumentados: 40% recebem a instrução de devolver a saída dentro de um bloco de código cercado, e 20% são convertidos em tarefas de lista de nível superior.
O resultado: ganhos exatamente onde o treino mirou
| Grupo IFStruct | Base | Com GRPO | Δ |
|---|---|---|---|
| Geral | 22,6% | 29,7% | +7,1 |
| JSON | 18,0% | 31,9% | +13,9 |
| YAML | 27,2% | 27,5% | +0,3 |
| Lista simples | 16,6% | 29,7% | +13,1 |
A taxa de acerto em JSON subiu quase 14 pontos (18,0% → 31,9%), enquanto YAML ficou praticamente estável. O modelo de 350M parâmetros ainda fica abaixo do Qwen3.5-2B (33,15%), mas o ponto do estudo é outro: um fine-tuning leve e barato aproxima um modelo pequeno de um muito maior na tarefa específica.
Fluxo técnico, passo a passo
O pipeline tem duas metades que rodam em lugares diferentes. O fine-tuning roda na GPU (Colab ou Kaggle); a avaliação roda localmente num MacBook, servindo o modelo via llama.cpp em um endpoint compatível com OpenAI. Depois do treino, o adaptador LoRA é fundido de volta aos pesos e convertido para GGUF BF16 para servir. O repositório, o notebook e o dataset estão disponíveis publicamente no GitHub e no Hugging Face.
A conclusão dos autores é contundente: uma rodada curta de GRPO, com ~500 amostras e 100 passos, eleva o LFM2.5-350M de 22,6% para 29,7% no IFStruct. Ou seja, um sinal de recompensa barato e específico de tarefa pode tornar um modelo pequeno substancialmente mais confiável quanto à forma, fechando boa parte da distância para modelos várias vezes maiores.
Por que isso importa agora
Para quem desenvolve com LLMs no Brasil, a lição prática é valiosa: conformidade de saída — devolver JSON válido no formato certo — é frequentemente o que separa um protótipo de um sistema em produção. E, ao contrário do que se poderia supor, não é preciso um modelo gigante nem uma infraestrutura cara para melhorá-la. Uma GPU gratuita e 100 passos de treino bastam.
Descubra mais sobre noticiAI
Assine para receber nossas notícias mais recentes por e-mail.



