Nollskotts- och fåskottsinlärning
Den här artikeln förklarar nollskottsinlärning och få skottinlärning för snabbteknik i .NET, inklusive deras primära användningsfall.
GPT-modellens prestanda drar nytta av snabbteknik, praxis att tillhandahålla instruktioner och exempel till en modell för att förfina dess utdata. Nollskottsinlärning och få skottinlärning är tekniker som du kan använda när du tillhandahåller exempel.
Med nollskottsinlärning inkluderar du uppmaningar men inte ordagrant slutföranden. Du kan inkludera slutföranden som bara består av tips. Zero-shot-inlärning bygger helt på modellens befintliga kunskaper för att generera svar, vilket minskar antalet token som skapats och kan hjälpa dig att kontrollera kostnaderna. Nollskottsinlärning bidrar dock inte till modellens kunskaper.
Här är ett exempel på en nollskottsprompt som instruerar modellen att utvärdera användarindata för att avgöra vilken av fyra möjliga avsikter som indata representerar och sedan förorda svaret med "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:
""";
Med få skottinlärning inkluderar du uppmaningar i kombination med ordagranna slutföranden. Jämfört med nollskottsinlärning innebär det att få skottinlärning genererar fler tokens och gör att modellen uppdaterar sina kunskaper, vilket kan göra få skottinlärning mer resursintensiv. Men av samma skäl hjälper få skottinlärning också modellen att producera mer relevanta svar.
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:
""";
Användningsfall för nollskottsinlärning
Nollskottsinlärning är en metod för att skicka frågor som inte paras ihop med ordagrant slutföranden, även om de kan paras ihop med en referens. Det finns två primära användningsfall för nollskottsinlärning:
- Arbeta med finjusterade LLM:er – Eftersom den förlitar sig på modellens befintliga kunskap är nollskottsinlärning inte lika resursintensiv som få skottinlärning, och det fungerar bra med LLM:er som redan har finjusterats på instruktionsdatauppsättningar. Du kanske bara kan förlita dig på nollskottsinlärning och hålla kostnaderna relativt låga.
- Upprätta prestandabaslinjer – Zero-shot-inlärning kan hjälpa dig att simulera hur din app skulle fungera för faktiska användare. På så sätt kan du utvärdera olika aspekter av modellens aktuella prestanda, till exempel noggrannhet eller precision. I det här fallet använder du vanligtvis nollskottsinlärning för att upprätta en prestandabaslinje och sedan experimentera med få skottinlärning för att förbättra prestandan.
Användningsfall för inlärning med få skott
Få skottinlärning är metoden att skicka uppmaningar i kombination med ordagranna slutföranden (få skottprompter) för att visa din modell hur den ska svara. Till skillnad från nollskottsinlärning kan få skottinlärning lägga till modellens kunskaper. Du kan till och med använda dina egna datauppsättningar för att automatiskt generera några skott-prompter genom att utföra hämtningsförhöjd generering.
Få skottinlärning har två primära användningsfall:
- Justera en LLM – Eftersom den kan lägga till modellens kunskaper kan få skottinlärning förbättra en modells prestanda. Det gör också att modellen skapar fler token än nollskottsinlärning gör, vilket så småningom kan bli oöverkomligt dyrt eller till och med omöjligt. Men om din LLM inte är finjusterad ännu får du inte bra prestanda med nollskottsprompter, och få skottinlärning är berättigad.
- Åtgärda prestandaproblem – Du kan använda få skottinlärning som en uppföljning till nollskottsinlärning. I det här fallet använder du nollskottsinlärning för att upprätta en prestandabaslinje och experimenterar sedan med få skottinlärning baserat på de nollskottsanvisningarna som du använde. På så sätt kan du lägga till i modellens kunskaper när du har sett hur den svarar för närvarande, så att du kan iterera och förbättra prestanda samtidigt som du minimerar antalet token som du introducerar.
Varningar
- Exempelbaserad inlärning fungerar inte bra för komplexa resonemangsuppgifter. Att lägga till instruktioner kan dock hjälpa dig att åtgärda detta.
- Få skottinlärning kräver att du skapar långa frågor. Frågor med ett stort antal token kan öka beräkningen och svarstiden. Detta innebär vanligtvis ökade kostnader. Det finns också en gräns för längden på prompterna.
- När du använder flera exempel kan modellen lära sig falska mönster, till exempel "Sentiment är dubbelt så benägna att vara positiva än negativa".