Aprendizagem pessoal com IA
e orientação prática

Resolver o problema de exceção/quebra de texto de saída do formato JSON de contexto longo do LLM

I. Prefácio

Embora a maioria dos LLMs agora possa suportar a saída de dezenas de milhares de tokens. No entanto, ainda encontramos com frequência situações em que os LLMs não geram resultados de acordo com o formato que especificamos quando estamos no negócio real.

Em particular, precisamos que o resultado seja estruturado para que possamos continuar com as tarefas posteriores.


Como o formato json é inerentemente pró-texto simples, quando você deseja que o LLM estruture a saída, ela geralmente é produzida como json e, em seguida, o json é extraído, convertido em um dicionário e continua a realizar tarefas posteriores.

Mas há muitos motivos que podem fazer com que não obtenhamos a saída json completa.

 

Em segundo lugar, a metade da saída dos vários casos Json

2.1 A saída excede o suporte do LLM para Token on line

  1. O contexto de entrada é muito longo, resultando em poucas posições restantes para a saída para que o LLM dê uma resposta completa; portanto, o json termina após apenas metade da saída.
  2. A tarefa era muito complexa para usar a técnica de CoT, deixando a saída do LLM com muitos processos de pensamento intermediários, fazendo com que o LLM não tivesse muito espaço para produzir o resultado final. Ou você não obtém o resultado final ou o resultado é interrompido após apenas metade da saída

2.2 Saída do LLM de interceptação de palavras sensíveis

Para evitar que o LLM seja usado de forma abusiva e produza conteúdo inadequado. Diferentes regiões têm diferentes conteúdos sensíveis, portanto, ao gerar resultados para o mundo exterior, as palavras sensíveis são geralmente filtradas ou bloqueadas, dependendo do local. Assim como há alguns anos, a Meta criou uma IA com tendências criminosas, o que não é permitido em todo o mundo.

Portanto, isso também é o que acontece quando o seu LILM é truncado, quando ele emite conteúdo sensível de maneira descontrolada e produz um resultado incompleto.

2.3 Não cumprimento estrito das instruções

Isso é muito mais comum. Até mesmo os melhores LLMs têm tempos de soneca e não há garantia de que o resultado estará no formato que você deseja.

Muitas vezes encontramos, no json de saída, uma situação:

  1. Falta de pontuação importante; por exemplo:{"question": How are you!} É impossível analisar esse resultado em sua totalidade sem aspas duplas.
  2. Pontuação, que não aparece no lugar correto; por exemplo:{"question": "How are you!" {"answer": "I'm fine"} A pontuação no meio é de largura total, não de metade, o que também faz com que a saída json falhe.
  3. Há muitos outros cenários, por isso não vou listá-los todos, mas veja como resolver esses tipos de problemas.

 

III. uma solução de código aberto

Normalmente, há três maneiras de resolver os três problemas mencionados acima:

  1. Conclusão do json: principalmente para a saída da resposta do json, metade do caso, ou seja, metade do json, nem todos em um formato json completo, para que ele tenha as condições de análise do json.
  2. Corrigir json: principalmente para a resposta json na situação em que a pontuação está faltando ou está incorreta
  3. Descartar parte do conteúdo do json: principalmente para o json, em alguns casos não é possível levar em conta as circunstâncias especiais, manter o conteúdo normal, descartar o conteúdo das irregularidades.

3.1 Solução streaming-json-py

Essa é uma solução de código aberto e fornece

  • streaming-json-go`
  • streaming-json-py
  • streaming-json-js

Três linguagens de programação estão disponíveis para atender às necessidades de diferentes ambientes.

Veja a seguir os resultados em ação

pip install streamingjson

lexer = streamingjson.Lexer()

# anexa seu segmento JSON
lexer.append_string('{"a":')

# complete o JSON
print(lexer.complete_json()) # imprimirá `{"a":null}`

# anexa mais um segmento JSON
lexer.append_string('[tr')

# completa o JSON novamente
print(lexer.complete_json()) # imprimirá `{"a":[true]}`

Essa solução de código aberto se concentra em complementar o json

Alternativas:Corrige cadeias de caracteres JSON inválidas e resolve possíveis erros de formatação em dados JSON gerados por LLMs.

 

IV. um programa de aprimoramento

Nosso próprio esquema aprimorado, principalmente por meio da detecção da falta de pontuação no json e da incorreção do json, para corrigir o formato do json e, em seguida, para ajudar a completar o json e, finalmente, por meio da extração da parte json do conteúdo, para obter os resultados estruturados

Dois exemplos.

 

output = '''A resposta que você precisa é ```jsonn{"question": "Where will the 2024 Olympics be held?"'' n, n "answer": "Paris n''''

Há três erros aqui:

  • (matemática) gêneroÉ chinês, não é possível analisá-lo corretamente
  • Paris, capital da França Há um erro de citação, há uma citação faltando.
  • Faltam aspas triplas e}

Por fim, o erro acima foi perfeitamente corrigido e a saída correta

{'question': 'Where will the 2024 Olympics be held?' (Onde serão realizadas as Olimpíadas de 2024?) , 'answer': 'Paris'}
Aprendizagem fácil com IA

O guia do leigo para começar a usar a IA

Ajuda você a aprender a utilizar as ferramentas de IA com baixo custo e a partir de uma base zero.A IA, assim como o software de escritório, é uma habilidade essencial para todos. Dominar a IA lhe dará uma vantagem em sua busca de emprego e metade do esforço em seu trabalho e estudos futuros.

Ver detalhes>
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Resolver o problema de exceção/quebra de texto de saída do formato JSON de contexto longo do LLM

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil