Delen via


Zero-shot en weinig-shot learning

In dit artikel worden zero-shot learning en weinig-shot learning voor prompt engineering in .NET uitgelegd, met inbegrip van hun primaire use cases.

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 weinig-shot learning zijn technieken die u kunt gebruiken bij het verstrekken van voorbeelden.

Met zero-shot learning neemt u prompts op, maar geen exacte voltooiingen. U kunt voltooiingen opnemen die alleen 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 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 om het antwoord vooraf te laten gaan met '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: 
""";

Bij weinig-shot learning neemt u prompts op die zijn gekoppeld aan exacte voltooiingen. 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. Om dezelfde redenen helpt weinig-shot learning het model echter ook om relevantere reacties te 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:
""";

Gebruiksvoorbeelden voor zero-shot learning

Zero-shot learning is de praktijk van het doorgeven van prompts die niet zijn gekoppeld aan exacte voltooiingen, hoewel ze kunnen worden gekoppeld aan een aanwijzing. Er zijn twee primaire use cases voor zero-shot learning:

  • Werken met nauwkeurig afgestemde LLM's : omdat het 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.

Gebruiksvoorbeelden voor weinig-shot learning

Weinig-shot learning is de praktijk van het doorgeven van prompts die zijn gekoppeld aan exacte voltooiingen (weinig-shot prompts) om uw model te laten zien hoe u reageert. In tegenstelling tot zero-shot learning kan weinig-shot learning worden toegevoegd aan de kennis van het model. U kunt zelfs uw eigen gegevenssets gebruiken om automatisch enkele prompts te genereren door het ophalen van uitgebreide generatie uit te voeren.

Weinig-shot learning heeft twee primaire use cases:

  • Een LLM afstemmen: omdat deze kan worden toegevoegd aan de kennis van het model, kan weinig-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 verboden duur of zelfs onfeilbaar kan worden. Als uw LLM echter nog niet is afgestemd, krijgt u geen goede prestaties met zero-shot prompts en is weinig-shot learning gerechtvaardigd.
  • Prestatieproblemen oplossen: u kunt weinig-shot learning gebruiken als follow-on voor zero-shot learning. In dit geval gebruikt u zero-shot learning om een prestatiebasislijn vast te stellen en experimenteert u vervolgens met enkele shot learning op basis van de prompts die u hebt gebruikt met nulopnamen. 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.
  • Weinig-shot learning vereist het maken van langdurige 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'.