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. O aprendizado zero-shot e o aprendizado few-shot são técnicas que você pode usar ao fornecer exemplos.

Com o aprendizado zero-shot, você inclui prompts, mas não conclusões verbatim. Você pode incluir conclusões que consistem apenas em indicaçõ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 adiciona ao conhecimento do modelo.

Este é um exemplo de prompt zero-shot que informa ao modelo para avaliar a entrada do usuário para determinar quais das quatro intenções possíveis a entrada representa e, em seguida, para preceder a resposta com "Intent: ".

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: 
""";

Com o aprendizado few-shot, você inclui prompts emparelhados com conclusões verbatim. 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, pelos mesmos motivos, o aprendizado few-shot 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:
""";

Casos de uso de aprendizado zero-shot

O aprendizado zero-shot é a prática de passar prompts que não são emparelhados com conclusões verbatim, embora possam ser emparelhados com uma sugestão. Há dois casos de uso primários para aprendizado zero-shot:

  • Trabalhar com LLMs ajustados – Como depende do conhecimento existente do modelo, o aprendizado zero-shot não tem tantos recursos quanto o aprendizado few-shot e funciona bem com LLMs que já foram ajustados em 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 aprendizado zero-shot pode ajudar você a simular o desempenho do aplicativo para os 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.

Casos de uso de aprendizado few-shot

O aprendizado few-shot é a prática de passar prompts emparelhados com conclusões verbatim (prompts few-shot) para mostrar ao modelo como responder. Ao contrário do aprendizado zero-shot, o aprendizado few-shot pode adicionar ao conhecimento do modelo. Você pode até mesmo usar seus próprios conjuntos de dados para gerar prompts few-shot automaticamente, executando a geração aumentada por recuperação.

O aprendizado few-shot tem dois casos de uso primários:

  • 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 LLM ainda não estiver ajustado, você não terá um bom desempenho com prompts zero-shot e o aprendizado few-shot será garantido.
  • Correção de problemas de desempenho – Você pode usar o aprendizado few-shot como uma continuação do 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 um aumento de custos. Há também um limite para o tamanho 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".