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".