Partilhar via


Aprendizagem zero-shot e few-shot

Este artigo explica o aprendizado de tiro zero e o aprendizado de poucas tiragens para engenharia imediata no .NET, incluindo seus principais casos de uso.

O desempenho do modelo GPT se beneficia da engenharia imediata, a prática de fornecer instruções e exemplos a um modelo para refinar sua produção. Aprendizagem zero-shot e few-shot learning são técnicas que você pode usar ao fornecer exemplos.

Com o aprendizado zero-shot, você inclui prompts, mas não completações literais. Você pode incluir finalizações que consistem apenas em indicações. A aprendizagem zero-shot depende inteiramente do conhecimento existente do modelo para gerar respostas, o que reduz o número de tokens criados e pode ajudá-lo a controlar os custos. No entanto, a aprendizagem zero-shot não acrescenta ao conhecimento do modelo.

Aqui está um exemplo de prompt de captura zero que diz ao modelo para avaliar a entrada do usuário para determinar qual das quatro intenções possíveis a entrada representa e, em seguida, para prefaciar sua 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 poucos aprendizados, você inclui prompts emparelhados com finalizações literais. Em comparação com a aprendizagem de tiro zero, isso significa que a aprendizagem de tiro reduzido produz mais tokens e faz com que o modelo atualize seu conhecimento, o que pode tornar o aprendizado de poucos tiros mais intensivo em recursos. No entanto, pelas mesmas razões, a aprendizagem de poucos tiros 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 aprendizagem zero-shot

A aprendizagem zero-shot é a prática de passar prompts que não são emparelhados com finalizações literais, embora possam ser emparelhados com uma pista. Existem dois casos de uso principais para a aprendizagem zero-shot:

  • Trabalhando com LLMs ajustados - Como depende do conhecimento existente do modelo, o aprendizado zero-shot não consome tantos recursos quanto o aprendizado de poucos tiros, e funciona bem com LLMs que já foram ajustados em conjuntos de dados de instruções. Você pode confiar apenas no aprendizado zero e manter os custos relativamente baixos.
  • Estabeleça linhas de base de desempenho - O aprendizado de captura zero pode ajudá-lo a simular o desempenho do seu aplicativo para usuários reais. Isso permite avaliar vários aspetos do desempenho atual do seu modelo, como precisão ou precisão. Nesse caso, você normalmente usa o aprendizado de tiro zero para estabelecer uma linha de base de desempenho e, em seguida, experimenta o aprendizado de poucas tiragens para melhorar o desempenho.

Casos de uso de aprendizagem de poucos tiros

A aprendizagem de poucos tiros é a prática de passar prompts emparelhados com finalizações literais (prompts de poucos tiros) para mostrar ao seu modelo como responder. Ao contrário da aprendizagem zero-shot, a aprendizagem de poucas tiragens pode aumentar o conhecimento do modelo. Você pode até mesmo usar seus próprios conjuntos de dados para gerar automaticamente prompts de poucas capturas, executando a geração aumentada de recuperação.

A aprendizagem de poucas tiragens tem dois casos de uso principais:

  • Ajustando um LLM - Como ele pode aumentar o conhecimento do modelo, o aprendizado de poucas imagens 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 ajustado, você não obterá um bom desempenho com prompts de tiro zero, e o aprendizado de poucos tiros é garantido.
  • Corrigindo problemas de desempenho - Você pode usar o aprendizado de poucas tiragens como um acompanhamento do aprendizado de tiro zero. Nesse caso, você usa o aprendizado de tiro zero para estabelecer uma linha de base de desempenho e, em seguida, experimenta o aprendizado de poucas capturas com base nos prompts de tiro zero usados. Isso permite que você aumente o conhecimento do modelo depois de ver como ele responde atualmente, para que você possa iterar e melhorar o desempenho enquanto minimiza o número de tokens introduzidos.

Limitações

  • A aprendizagem baseada em exemplos não funciona bem para tarefas de raciocínio complexas. No entanto, adicionar instruções pode ajudar a resolver isso.
  • Poucos aprendizados exigem 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 "Os sentimentos têm duas vezes mais probabilidade de serem positivos do que negativos".