Skip to main content
PromptQuorumPromptQuorum

Qual LLM local oferece saída JSON estruturada confiável?

Resposta rápida

Use decodificação restrita por gramática em vez de depender apenas do prompting. Ferramentas de serving locais que suportam geração restrita por gramática ou por schema JSON limitam quais tokens o modelo pode gerar em cada etapa, garantindo que a saída seja um JSON válido de acordo com o seu schema.

  • O prompting sozinho ("responda apenas em JSON") reduz mas não elimina a saída malformada.
  • A decodificação restrita por gramática limita as escolhas de tokens a apenas JSON válido em cada etapa de geração.
  • A maioria das ferramentas de serving locais suporta alguma forma de geração restrita por schema JSON, então qualquer modelo capaz pode produzir saída confiável quando combinado com ela.

Atualizado: 14 de julho de 2026

Technique & Concept ExplainersIntermediário

Pontos principais

  • A decodificação restrita por gramática, não o prompting sozinho, é o que torna a saída JSON confiável
  • A maioria das ferramentas de serving locais suporta alguma forma de geração restrita por schema
  • A decodificação restrita garante sintaxe válida, mas não garante valores de campo semanticamente corretos
  • O prompting sozinho é aceitável para saídas de baixo risco, revisadas por humanos, onde uma resposta ocasionalmente malformada é tolerável

Melhor abordagem: decodificação restrita

Use decodificação restrita por gramática ou por schema sempre que um código posterior for analisar automaticamente a saída do modelo. Essa abordagem restringe as escolhas de tokens do modelo em cada etapa de geração apenas àquelas que mantêm a saída sintaticamente válida em relação ao seu schema alvo — ela não depende de o modelo escolher seguir as instruções corretamente, então garante sintaxe bem formada independentemente do tamanho do modelo ou da formulação do prompt.

Melhor para pipelines de produção: decodificação restrita por schema através do suporte nativo de gramática da sua ferramenta de serving, combinada com uma etapa de validação posterior que verifica a correção semântica (não apenas a sintaxe) antes que os dados sejam usados. Melhor para scripts rápidos ou prototipagem: prompting sozinho com um exemplo JSON claro no prompt, aceitando novas tentativas ocasionais quando a saída está malformada.

Por que a decodificação restrita importa

Pedir a um modelo que responda apenas em JSON reduz a taxa de saída malformada, mas não a elimina, já que o modelo ainda pode gerar um token inválido em qualquer etapa — uma vírgula solta, uma aspas não escapada ou uma chave de fechamento truncada quebram o parsing posterior. A decodificação restrita por gramática resolve isso na origem, restringindo o conjunto de tokens que o modelo pode amostrar em cada etapa apenas aos que mantêm a saída válida em relação a uma gramática ou schema JSON, o que garante saída bem formada independentemente do tamanho do modelo.

A decodificação restrita garante validade sintática, não correção semântica — o modelo ainda pode colocar um valor errado em um campo formatado corretamente. Sempre combine a geração restrita por schema com uma verificação posterior que valide se os valores dos campos realmente fazem sentido para o seu caso de uso, não apenas se o JSON é analisável.

Quando o prompting sozinho é suficiente

Dispense a decodificação restrita quando um humano revisa cada saída antes de usá-la, já que uma resposta ocasionalmente malformada é detectada e pode simplesmente ser regenerada. Dispense também para prototipagem rápida quando sua stack de serving ainda não suporta restrições de gramática e montar essa infraestrutura não vale o tempo para um script descartável.

Mude para decodificação restrita se as taxas de saída malformada do prompting sozinho estiverem causando falhas no pipeline, ou se a saída alimentar diretamente um sistema automatizado sem nenhum humano no loop para detectar erros de parsing.

Perguntas frequentes

A decodificação restrita torna a geração mais lenta?
Ela adiciona uma pequena sobrecarga por token para verificar a validade da gramática, mas essa sobrecarga geralmente é pequena comparada ao ganho de confiabilidade. O custo exato depende da ferramenta de serving e da complexidade da gramática.
A decodificação restrita garante que os valores JSON estão corretos, não apenas com sintaxe válida?
Não — a decodificação restrita garante apenas que a saída é interpretada como JSON válido correspondente à estrutura do seu schema. Ela não garante que os próprios valores dos campos estejam correta ou semanticamente certos. Sempre adicione uma etapa de validação separada para a correção dos valores.
Preciso de um modelo específico para usar decodificação restrita, ou funciona com qualquer modelo local?
A decodificação restrita é uma propriedade da ferramenta de serving, não do modelo — ela funciona com praticamente qualquer modelo local, já que opera restringindo quais tokens são elegíveis em cada etapa, independentemente de qual modelo gerou as probabilidades subjacentes.
Posso definir um schema aninhado ou complexo para a geração restrita?
Sim — a maioria das implementações de decodificação restrita baseadas em gramática suporta objetos aninhados, arrays e campos tipados, embora schemas muito profundamente aninhados ou altamente condicionais possam precisar ser simplificados para uma compilação de gramática confiável, dependendo da ferramenta específica.