Início Tecnologia Para obter melhores resultados com o LLMS, use saídas de immediate JSON

Para obter melhores resultados com o LLMS, use saídas de immediate JSON

5
0

Esta é a quarta parte de uma série em andamento. Veja partes 1Assim, 2e 3.

Princípio da IA ​​IV: Use saídas rápidas estruturadas

Houve um tempo, há muito, muito tempo, quando o LLM APIs acabou de sair e ninguém ainda sabia ao certo como interagir adequadamente com eles. Um dos principais problemas foi extrair várias saídas de uma única resposta rápida. Quando o LLMS não retornou consistentemente o JSON (e eles falharam com frequência), você tentou convencer o LLM a cooperar usando seu melhor oratório de engenharia imediato.

Esses eram tempos antigos. Naquela época, viajamos a cavalo e escrevemos instruções da luz de velas, pois a eletricidade ainda não havia sido inventada. Os avisos de depuração significavam longas noites que passavam os olhos nos pergaminhos, esperando que o modelo retornasse uma lista em vez de um haiku. E se falhar, você não teve escolha a não ser suspirar profundamente, mergulhar sua pena na tinta e tentar novamente.

Okay, eu inventei essa última parte. Mas as APIs LLM que não poderiam retornar consistentemente uma resposta JSON foram uma coisa actual e causaram muitos problemas. Tudo começou a mudar com Saídas estruturadas Em novembro de 2023 – agora você pode usar a API Openai para fornecer um JSON formatado. Em 2024, o OpenAI também adicionou suporte para saídas estruturadas rigorosas, o que garante um retorno do JSON. Aprimoramentos de API semelhantes também foram adicionados por Antrópico e Google. O tempo para saídas prompts não estruturadas passou e nunca mais vamos voltar.

Benefícios

Por que é melhor usar saídas rápidas de estrutura JSON em oposição a outros formatos ou inventar um formato personalizado?

Taxa de erro reduzida

Os LLMs modernos são ajustados para produzir JSON válido quando solicitado-é raro que eles falhem, mesmo com respostas muito complexas. Além disso, muitas plataformas têm proteções no nível de software program contra saídas formatadas incorretamente. Por exemplo, a API do OpenAI joga uma exceção quando um não-json é retornado quando no modo rigoroso de saída estruturada.

Se você usar um formato personalizado para retornar várias variáveis ​​de saída, não se beneficiará com esse ajuste fino e a taxa de erro será muito maior. O tempo será gasto na reengenharia do immediate e a adição de tentativas.

Prompts desacoplados e código

Com uma saída JSON, é trivial adicionar outro campo de saída e isso não deve quebrar o código existente. Isso decouples adicionando campos ao immediate das alterações na lógica de processamento de código. A desacoplamento pode economizar tempo e esforço, principalmente nos casos em que os avisos são carregados do Git externo; ver Princípio II: O Load LLM solicita com segurança (se você realmente precisar).

Sistema simplificado

Existe um motivo prático para usar um formato de saída sem suporte à plataforma embutido? Seria mais fácil para você e os contribuintes de código subsequentes para formatar respostas usando o JSON. Não reinvente a roda, a menos que você exact.

Quando não usar a saída estruturada

Saída de campo único

Se o seu immediate gerar um único campo em resposta, não há benefícios na saída de um JSON. Ou aí está?

As respostas de variável única hoje podem se tornar respostas complexas amanhã. Depois de gastar horas transformando um immediate de saída de um campo em muitos prompts de saída de campo, agora uso o JSON por padrão, mesmo quando apenas um único campo é retornado. Isso economiza tempo depois, adicionando uma complexidade additional mínima antecipada.

Mesmo quando a lógica do programa não precisa de várias saídas, existem benefícios rápidos de engenharia e depuração para adicionar campos adicionais. Adicionar um campo que fornece uma explicação para uma resposta (ou cita uma fonte na documentação) pode geralmente melhorar significativamente o desempenho imediato (1). Também pode ser registrado como uma explicação para as decisões do modelo. Ter a resposta é JSON desde o início facilita a adição desse campo.

Portanto, mesmo que seu immediate tenha uma única variável de saída, considere o formato JSON como uma opção.

Resposta de streaming

Para aplicações nas quais a latência é crítica, os terminais de streaming LLM são frequentemente usados. Eles permitem que partes da resposta sejam atuadas antes que toda a resposta seja recebida. Esse padrão não funciona bem com o JSON, então você deve usar um formato simples e amigável para fluxos.

Por exemplo, se o seu immediate decidir sobre a ação tomada por um personagem de videogame e as palavras que o personagem diz, você pode codificá -lo como “ação | discurso_to_read” e depois transmitir a resposta com uma API de streaming, como API de streaming do OpenAI. Isso lhe dará uma latência muito melhor.

Exemplo de saída:

WAVE_AT_HERO | Olá, aventureiro! Bem -vindo à minha loja.

Assim que a ação é recebida, o personagem começa a acenar e o texto é produzido à medida que entra.

Linhas JSON e outros formatos favoráveis ​​ao fluxo também podem ser usados ​​de maneira eficaz.

Conclusão

Não rejeite os benefícios da civilização – use saídas de immediate estruturadas JSON. Quase não há desvantagens e facilitará sua vida, pois os LLMs são fortemente otimizados para retornar respostas válidas do JSON. Considere o uso de uma saída JSON, mesmo que os dados extraídos sejam atualmente um único campo. Para pontos de extremidade de streaming, use linhas JSON ou um formato personalizado simples.

Se você gostou deste publish, assine a série para mais.

fonte

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui