När du ska använda Finjustering av Azure OpenAI
När du bestämmer om finjustering är rätt lösning att utforska för ett visst användningsfall, finns det några viktiga termer som det är bra att känna till:
- Prompt Engineering är en teknik som innebär att utforma frågor för bearbetningsmodeller för naturligt språk. Den här processen förbättrar noggrannheten och relevansen i svar, vilket optimerar modellens prestanda.
- Hämtning av utökad generation (RAG) förbättrar prestanda för stor språkmodell (LLM) genom att hämta data från externa källor och införliva dem i en prompt. RAG gör det möjligt för företag att uppnå anpassade lösningar samtidigt som de bibehåller datarelevans och optimerar kostnaderna.
- Finjustering tränar om en befintlig stor språkmodell med hjälp av exempeldata, vilket resulterar i en ny "anpassad" stor språkmodell som har optimerats med hjälp av de angivna exemplen.
Vad är finjustering med Azure OpenAI?
När vi pratar om finjustering menar vi verkligen övervakad finjustering , inte kontinuerlig förträning eller förstärkningsinlärning via mänsklig feedback (RLHF). Övervakad finjustering avser processen att träna om förtränade modeller på specifika datauppsättningar, vanligtvis för att förbättra modellprestanda för specifika uppgifter eller införa information som inte var väl representerad när basmodellen ursprungligen tränades.
Finjustering är en avancerad teknik som kräver expertis för att kunna användas på rätt sätt. Frågorna nedan hjälper dig att utvärdera om du är redo för finjustering och hur väl du har tänkt igenom processen. Du kan använda dessa för att vägleda dina nästa steg eller identifiera andra metoder som kan vara lämpligare.
Varför vill du finjustera en modell?
- Du bör tydligt kunna formulera ett specifikt användningsfall för finjustering och identifiera den modell som du hoppas finjustera.
- Bra användningsfall för finjustering är att styra modellen för att mata ut innehåll i en specifik och anpassad stil, ton eller format, eller scenarier där den information som behövs för att styra modellen är för lång eller komplex för att passa in i promptfönstret.
Vanliga tecken som du kanske inte är redo för finjustering ännu:
- Inget tydligt användningsfall för finjustering, eller en oförmåga att artikulera mycket mer än "Jag vill göra en modell bättre".
- Om du identifierar kostnaden som din primära motivator fortsätter du med försiktighet. Finjustering kan minska kostnaderna för vissa användningsfall genom att förkorta uppmaningar eller tillåta att du använder en mindre modell, men det finns en högre startkostnad för träning och du måste betala för att vara värd för din egen anpassade modell. Mer information om finjusteringskostnader för Azure OpenAI finns på prissidan .
- Om du vill lägga till kunskap från domänen till modellen bör du börja med hämtning av utökad generering (RAG) med funktioner som Azure OpenAI på dina data eller inbäddningar. Detta är ofta ett billigare, mer anpassningsbart och potentiellt effektivare alternativ beroende på användningsfall och data.
Vad har du provat hittills?
Finjustering är en avancerad funktion, inte startpunkten för din generativa AI-resa. Du bör redan känna till grunderna för att använda stora språkmodeller (LLM). Du bör börja med att utvärdera prestandan för en basmodell med prompt engineering och/eller Retrieval Augmented Generation (RAG) för att få en baslinje för prestanda.
Att ha en baslinje för prestanda utan finjustering är viktigt för att veta om finjustering har bättre modellprestanda eller inte. Finjustering med felaktiga data gör basmodellen sämre, men utan baslinje är det svårt att identifiera regressioner.
Om du är redo för finjustering:
- Ska kunna demonstrera bevis och kunskaper om Prompt Engineering och RAG-baserade metoder.
- Kunna dela specifika upplevelser och utmaningar med andra tekniker än finjustering som redan har provats för ditt användningsfall.
- Måste ha kvantitativa utvärderingar av baslinjeprestanda när det är möjligt.
Vanliga tecken som du kanske inte är redo för finjustering ännu:
- Börjar med finjustering utan att ha testat några andra tekniker.
- Otillräcklig kunskap eller förståelse för hur finjustering specifikt gäller för stora språkmodeller (LLM).
- Inga benchmark-mätningar att bedöma finjustering mot.
Vad fungerar inte med alternativa metoder?
Att förstå var snabbtekniken misslyckas bör ge vägledning om hur du finjusterar. Misslyckas basmodellen i gränsfall eller undantag? Ger basmodellen inte konsekvent utdata i rätt format och du får inte tillräckligt med exempel i kontextfönstret för att åtgärda det?
Exempel på fel med basmodellen och promptteknik hjälper dig att identifiera de data som de behöver samla in för finjustering och hur du bör utvärdera din finjusterade modell.
Här är ett exempel: En kund ville använda GPT-3.5-Turbo för att omvandla frågor på naturligt språk till frågor på ett specifikt frågespråk som inte är standard. De gav vägledning i prompten ("Returnera alltid GQL") och använde RAG för att hämta databasschemat. Syntaxen var dock inte alltid korrekt och misslyckades ofta för gränsfall. De samlade in tusentals exempel på frågor om naturligt språk och motsvarande frågor för databasen, inklusive fall där modellen hade misslyckats tidigare – och använde dessa data för att finjustera modellen. Genom att kombinera den nya finjusterade modellen med deras konstruerade prompt och hämtning fick modellens utdata att uppfylla acceptabla standarder för användning.
Om du är redo för finjustering:
- Ha tydliga exempel på hur du har hanterat utmaningarna i alternativa metoder och vad som har testats som möjliga lösningar för att förbättra prestanda.
- Du har identifierat brister med hjälp av en basmodell, till exempel inkonsekventa prestanda i gränsfall, oförmåga att passa tillräckligt många skottprompter i kontextfönstret för att styra modellen, långa svarstider osv.
Vanliga tecken som du kanske inte är redo för finjustering ännu:
- Otillräcklig kunskap från modellen eller datakällan.
- Det går inte att hitta rätt data för att hantera modellen.
Vilka data ska du använda för finjustering?
Även med ett bra användningsfall är finjustering bara lika bra som kvaliteten på de data som du kan tillhandahålla. Du måste vara villig att investera tid och ansträngning för att få finjustering att fungera. Olika modeller kräver olika datavolymer, men du måste ofta kunna tillhandahålla ganska stora mängder data av hög kvalitet.
En annan viktig punkt är att även med data av hög kvalitet om dina data inte är i det format som krävs för finjustering måste du checka in tekniska resurser för att formatera data korrekt.
Data | Babbage-002 Davinci-002 |
GPT-3.5-Turbo GPT-4o & GPT-4o mini GPT-4 |
---|---|---|
Volume | Tusentals exempel | Tusentals exempel |
Format | Fråga/slutföra | Konversationschatt |
Om du är redo för finjustering:
- Har identifierat en datauppsättning för finjustering.
- Datamängden är i lämpligt format för träning.
- Viss nivå av kuration har använts för att säkerställa datamängdens kvalitet.
Vanliga tecken som du kanske inte är redo för finjustering ännu:
- Datauppsättningen har inte identifierats än.
- Datamängdsformatet matchar inte den modell som du vill finjustera.
Hur mäter du kvaliteten på din finjusterade modell?
Det finns inte ett enda rätt svar på den här frågan, men du bör ha tydligt definierade mål för hur framgång med finjustering ser ut. Helst bör detta inte bara vara kvalitativt, utan bör innehålla kvantitativa mått på framgång som att använda en holdout-uppsättning data för validering, samt testning av användargodkännande eller A/B-testning av den finjusterade modellen mot en basmodell.
Nästa steg
- Titta på avsnittet Azure AI Show: "Om du vill finjustera eller inte finjustera är det frågan"
- Läs mer om finjustering av Azure OpenAI
- Utforska vår självstudie om finjustering