Delen via


Zero-shot en few-shot leren

In dit artikel worden zero-shot learning en few-shot learning binnen .NET voor prompt engineering uitgelegd, inclusief hun primaire toepassingen.

GPT-modelprestaties profiteren van prompt engineering, de praktijk van het verstrekken van instructies en voorbeelden aan een model om de uitvoer te verfijnen. Zero-shot learning en few-shot learning zijn technieken die u kunt gebruiken wanneer u voorbeelden geeft.

Zero-shot learning (leren zonder voorbeelden)

Zero-shot learning is de praktijk van het doorgeven van prompts die niet zijn gekoppeld aan exacte voltooiingen, hoewel u voltooiingen kunt opnemen die bestaan uit aanwijzingen. Zero-shot learning is volledig afhankelijk van de bestaande kennis van het model voor het genereren van antwoorden, waardoor het aantal gemaakte tokens wordt verminderd en u de kosten kunt beheren. Zero-shot learning voegt echter niet toe aan de kennis of context van het model.

Hier volgt een voorbeeld van een zero-shot-prompt die aangeeft dat het model gebruikersinvoer moet evalueren om te bepalen welke van de vier mogelijke intenties de invoer vertegenwoordigt en vervolgens het antwoord vooraf te laten gaan door '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: 
""";

Er zijn twee primaire use cases voor zero-shot learning:

  • Werken met nauwkeurig afgestemde LLM's : omdat deze afhankelijk is van de bestaande kennis van het model, is zero-shot learning niet zo resource-intensieve als weinig-shot learning en werkt het goed met LLM's die al zijn afgestemd op instructiegegevenssets. U kunt mogelijk alleen afhankelijk zijn van nul-shot learning en kosten relatief laag houden.
  • Prestatiebasislijnen instellen : met Zero-shot learning kunt u simuleren hoe uw app presteert voor werkelijke gebruikers. Hiermee kunt u verschillende aspecten van de huidige prestaties van uw model evalueren, zoals nauwkeurigheid of precisie. In dit geval gebruikt u doorgaans zero-shot learning om een prestatiebasislijn vast te stellen en vervolgens te experimenteren met weinig-shot learning om de prestaties te verbeteren.

Few-shot leren

Few-shot learning is de praktijk waarbij prompts worden doorgegeven die gepaard gaan met letterlijke antwoorden (few-shot prompts) om je model te laten zien hoe te reageren. Vergeleken met zero-shot learning, betekent dit dat weinig-shot learning meer tokens produceert en zorgt ervoor dat het model de kennis bijwerkt, waardoor weinig-shot learning meer resource-intensieve kan worden. Met few-shot learning kan het model echter ook meer relevante antwoorden produceren.

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

Few-shot learning heeft twee primaire toepassingen:

  • Een LLM afstemmen - Omdat het kan bijdragen aan de kennis van het model, kan few-shot learning de prestaties van een model verbeteren. Het zorgt er ook voor dat het model meer tokens maakt dan zero-shot learning doet, wat uiteindelijk onbetaalbaar duur of zelfs onuitvoerbaar kan worden. Als uw LLM echter nog niet fijn-afgestemd is, krijgt u niet altijd goede prestaties met zero-shot prompts en is few-shot learning gerechtvaardigd.
  • Prestatieproblemen oplossen - u kunt few-shot learning gebruiken als vervolg op zero-shot learning. In dit geval gebruikt u zero-shot learning om een prestatiebasislijn vast te stellen en experimenteert u vervolgens met few-shot learning op basis van de zero-shot prompts die u hebt gebruikt. Hiermee kunt u aan de kennis van het model toevoegen nadat u hebt gezien hoe het op dit moment reageert, zodat u de prestaties kunt herhalen en verbeteren terwijl u het aantal tokens dat u introduceert minimaliseert.

Waarschuwingen

  • Op voorbeeld gebaseerd leren werkt niet goed voor complexe redeneringstaken. Het toevoegen van instructies kan dit echter helpen oplossen.
  • Few-shot learning vereist het maken van uitgebreide prompts. Prompts met een groot aantal tokens kunnen de berekening en latentie verhogen. Dit betekent doorgaans hogere kosten. Er is ook een limiet voor de lengte van de prompts.
  • Wanneer u verschillende voorbeelden gebruikt, kan het model valse patronen leren, zoals 'Sentimenten zijn twee keer zo waarschijnlijk positief dan negatief'.