Compartilhar via


Aprendizado zero-shot e few-shot

Este artigo explica o aprendizado zero-shot e o aprendizado few-shot para engenharia de prompt no .NET, incluindo os principais casos de uso.

O desempenho do modelo GPT aproveita a engenharia de prompts, a prática de fornecer instruções e os exemplos de um modelo para refinar a saída. Aprendizado zero-shot e aprendizado few-shot são técnicas que você pode usar ao fornecer exemplos.

Aprendizado Zero-shot

O aprendizado zero-shot é a prática de passar prompts que não são emparelhados com conclusões literais, embora você possa incluir conclusões que consistam em sugestões. O aprendizado zero-shot depende inteiramente do conhecimento existente do modelo para gerar respostas, o que reduz o número de tokens criados e pode ajudar você a controlar os custos. No entanto, o aprendizado zero-shot não contribui para o conhecimento ou contexto do modelo.

Veja um exemplo de prompt zero-shot que informa ao modelo para avaliar a entrada do usuário para determinar qual das quatro intenções possíveis a entrada representa e então preceder a resposta com "Intenção: ".

prompt = $"""
Instructions: What is the intent of this request?
If you don't know the intent, don't guess; instead respond with "Unknown".
Choices: SendEmail, SendMessage, CompleteTask, CreateDocument, Unknown.
User Input: {request}
Intent: 
""";

Há dois casos de uso primários para aprendizado zero-shot:

  • Trabalhar com LLMs bem ajustadas – Como depende do conhecimento existente do modelo, o aprendizado zero-shot não é tão intensivo em recursos quanto o aprendizado few-shot, e funciona bem com LLMs que já foram bem ajustadas nos conjuntos de dados de instrução. Você pode contar apenas com o aprendizado zero-shot e manter os custos relativamente baixos.
  • Estabelecer linhas de base de desempenho – o zero-shot learning pode ajudá-lo a simular como seu aplicativo se comportaria para usuários reais. Isso permite avaliar vários aspectos do desempenho atual do modelo, como exatidão ou precisão. Nesse caso, você normalmente usa o aprendizado zero-shot para estabelecer uma linha de base de desempenho e, em seguida, experimenta o aprendizado few-shot para melhorar o desempenho.

Few-shot learning

O aprendizado few-shot é a prática de passar prompts emparelhados com conclusões verbatim (prompts few-shot) para mostrar ao modelo como responder. Em comparação com o aprendizado zero-shot, isso significa que o aprendizado few-shot produz mais tokens e faz com que o modelo atualize o conhecimento, o que pode fazer com que o aprendizado few-shot tenha mais recursos. No entanto, o aprendizado de poucas imagens também ajuda o modelo a produzir respostas mais relevantes.

prompt = $"""
Instructions: What is the intent of this request?
If you don't know the intent, don't guess; instead respond with "Unknown".
Choices: SendEmail, SendMessage, CompleteTask, CreateDocument, Unknown.

User Input: Can you send a very quick approval to the marketing team?
Intent: SendMessage

User Input: Can you send the full update to the marketing team?
Intent: SendEmail

User Input: {request}
Intent:
""";

O aprendizado com poucos exemplos tem dois casos de uso principais:

  • Ajustar um LLM – Como pode adicionar ao conhecimento do modelo, o aprendizado few-shot pode melhorar o desempenho de um modelo. Isso também faz com que o modelo crie mais tokens do que o aprendizado zero-shot, o que pode eventualmente se tornar proibitivamente caro ou até mesmo inviável. No entanto, se o seu LLM ainda não estiver bem ajustado, você nem sempre terá um bom desempenho com prompts zero-shot, e o aprendizado few-shot é necessário.
  • Corrigir problemas de desempenho – Você pode usar o aprendizado few-shot como um acompanhamento para o aprendizado zero-shot. Nesse caso, você usa o aprendizado zero-shot para estabelecer uma linha de base de desempenho e, em seguida, experimenta o aprendizado few-shot com base nos prompts zero-shot usados. Isso permite que você adicione ao conhecimento do modelo depois de ver como ele responde no momento, para que você possa iterar e melhorar o desempenho, minimizando o número de tokens apresentados.

Advertências

  • O aprendizado baseado em exemplo não funciona bem para tarefas de raciocínio complexas. No entanto, adicionar instruções pode ajudar a resolver isso.
  • O aprendizado few-shot requer a criação de prompts longos. Prompts com grande número de tokens podem aumentar a computação e a latência. Isso normalmente significa aumento de custos. Há também um limite para o comprimento dos prompts.
  • Quando você usa vários exemplos, o modelo pode aprender padrões falsos, como "Sentimentos têm duas vezes mais chances de serem positivos do que negativos".