Skip to content

Latest commit

 

History

History
110 lines (73 loc) · 13.1 KB

File metadata and controls

110 lines (73 loc) · 13.1 KB

Open Source Models

Finjustering av din LLM

Att använda stora språkmodeller för att bygga generativa AI-applikationer medför nya utmaningar. En viktig fråga är att säkerställa svarskvalitet (noggrannhet och relevans) i innehållet som genereras av modellen för en given användarförfrågan. I tidigare lektioner diskuterade vi tekniker som promptdesign och retrieval-augmented generation som försöker lösa problemet genom att modifiera promptinmatningen till den befintliga modellen.

I dagens lektion diskuterar vi en tredje teknik, finjustering, som försöker hantera utmaningen genom att träna om själva modellen med ytterligare data. Låt oss dyka in i detaljerna.

Lärandemål

Denna lektion introducerar konceptet finjustering för förtränade språkmodeller, utforskar fördelarna och utmaningarna med detta tillvägagångssätt, och ger vägledning om när och hur man kan använda finjustering för att förbättra prestandan hos dina generativa AI-modeller.

I slutet av denna lektion bör du kunna svara på följande frågor:

  • Vad är finjustering för språkmodeller?
  • När och varför är finjustering användbart?
  • Hur kan jag finjustera en förtränad modell?
  • Vilka är begränsningarna med finjustering?

Redo? Låt oss börja.

Illustrerad guide

Vill du få en överblick över vad vi kommer att täcka innan vi dyker in? Kolla in denna illustrerade guide som beskriver lärandets resa för denna lektion - från att lära sig kärnkoncepten och motivationen för finjustering, till att förstå processen och bästa praxis för att utföra finjusteringsuppgiften. Detta är ett fascinerande ämne att utforska, så glöm inte att kolla in Resurser för ytterligare länkar som stödjer din självstyrda läranderesa!

Illustrerad guide till finjustering av språkmodeller

Vad är finjustering för språkmodeller?

Per definition är stora språkmodeller förtränade på stora mängder text från olika källor, inklusive internet. Som vi har lärt oss i tidigare lektioner behöver vi tekniker som promptdesign och retrieval-augmented generation för att förbättra kvaliteten på modellens svar på användarens frågor ("prompter").

En populär teknik inom promptdesign innebär att ge modellen mer vägledning om vad som förväntas i svaret, antingen genom att ge instruktioner (explicit vägledning) eller ge den några exempel (implicit vägledning). Detta kallas few-shot learning, men det har två begränsningar:

  • Modellens tokenbegränsningar kan begränsa antalet exempel du kan ge och minska effektiviteten.
  • Modellens tokenkostnader kan göra det dyrt att lägga till exempel till varje prompt och begränsa flexibiliteten.

Finjustering är en vanlig praxis inom maskininlärningssystem där vi tar en förtränad modell och tränar om den med ny data för att förbättra dess prestanda för en specifik uppgift. När det gäller språkmodeller kan vi finjustera den förtränade modellen med en noggrant utvald uppsättning exempel för en given uppgift eller applikationsdomän för att skapa en anpassad modell som kan vara mer exakt och relevant för just den uppgiften eller domänen. En sidoeffekt av finjustering är att det också kan minska antalet exempel som behövs för few-shot learning - vilket minskar tokenanvändning och relaterade kostnader.

När och varför ska vi finjustera modeller?

I detta sammanhang, när vi pratar om finjustering, hänvisar vi till övervakad finjustering där omträningen görs genom att lägga till ny data som inte var en del av den ursprungliga träningsdatamängden. Detta skiljer sig från en oövervakad finjusteringsmetod där modellen tränas om på den ursprungliga datan, men med olika hyperparametrar.

Det viktiga att komma ihåg är att finjustering är en avancerad teknik som kräver en viss nivå av expertis för att uppnå önskade resultat. Om det görs felaktigt kan det hända att det inte ger de förväntade förbättringarna och till och med försämrar modellens prestanda för din målgrupp.

Så innan du lär dig "hur" man finjusterar språkmodeller, behöver du veta "varför" du bör ta denna väg och "när" du ska börja processen med finjustering. Börja med att ställa dig själv dessa frågor:

  • Användningsfall: Vad är ditt användningsfall för finjustering? Vilken aspekt av den nuvarande förtränade modellen vill du förbättra?
  • Alternativ: Har du provat andra tekniker för att uppnå önskade resultat? Använd dem för att skapa en baslinje för jämförelse.
    • Promptdesign: Prova tekniker som few-shot prompting med exempel på relevanta promptresponser. Utvärdera svarens kvalitet.
    • Retrieval Augmented Generation: Prova att förstärka prompts med sökresultat från din data. Utvärdera svarens kvalitet.
  • Kostnader: Har du identifierat kostnaderna för finjustering?
    • Anpassningsbarhet - är den förtränade modellen tillgänglig för finjustering?
    • Arbete - för att förbereda träningsdata, utvärdera och förbättra modellen.
    • Beräkningskraft - för att köra finjusteringsjobb och distribuera den finjusterade modellen.
    • Data - tillgång till tillräckligt många kvalitativa exempel för att påverka finjusteringen.
  • Fördelar: Har du bekräftat fördelarna med finjustering?
    • Kvalitet - överträffade den finjusterade modellen baslinjen?
    • Kostnad - minskar det tokenanvändningen genom att förenkla prompts?
    • Utbyggbarhet - kan du återanvända basmodellen för nya domäner?

Genom att besvara dessa frågor bör du kunna avgöra om finjustering är rätt tillvägagångssätt för ditt användningsfall. Idealiskt sett är tillvägagångssättet giltigt endast om fördelarna överväger kostnaderna. När du har bestämt dig för att gå vidare är det dags att tänka på hur du kan finjustera den förtränade modellen.

Vill du få fler insikter om beslutsprocessen? Titta på Att finjustera eller inte finjustera

Hur kan vi finjustera en förtränad modell?

För att finjustera en förtränad modell behöver du ha:

  • en förtränad modell att finjustera
  • en datamängd att använda för finjustering
  • en träningsmiljö för att köra finjusteringsjobbet
  • en hostingmiljö för att distribuera den finjusterade modellen

Finjustering i praktiken

Följande resurser erbjuder steg-för-steg handledningar för att guida dig genom ett verkligt exempel med en utvald modell och en noggrant utvald datamängd. För att arbeta igenom dessa handledningar behöver du ett konto hos den specifika leverantören, tillsammans med tillgång till relevant modell och datamängder.

Leverantör Handledning Beskrivning
OpenAI Hur man finjusterar chattmodeller Lär dig att finjustera en gpt-35-turbo för en specifik domän ("receptassistent") genom att förbereda träningsdata, köra finjusteringsjobbet och använda den finjusterade modellen för inferens.
Azure OpenAI GPT 3.5 Turbo finjusteringshandledning Lär dig att finjustera en gpt-35-turbo-0613 modell på Azure genom att ta steg för att skapa och ladda upp träningsdata, köra finjusteringsjobbet. Distribuera och använd den nya modellen.
Hugging Face Finjustering av LLMs med Hugging Face Denna bloggpost guidar dig genom finjustering av en öppen LLM (ex: CodeLlama 7B) med hjälp av transformers biblioteket & Transformer Reinforcement Learning (TRL) med öppna datamängder på Hugging Face.
🤗 AutoTrain Finjustering av LLMs med AutoTrain AutoTrain (eller AutoTrain Advanced) är ett Python-bibliotek utvecklat av Hugging Face som möjliggör finjustering för många olika uppgifter inklusive finjustering av LLM. AutoTrain är en kodfri lösning och finjustering kan göras i din egen molnmiljö, på Hugging Face Spaces eller lokalt. Det stöder både ett webbaserat GUI, CLI och träning via yaml-konfigurationsfiler.

Uppgift

Välj en av handledningarna ovan och gå igenom den. Vi kan replikera en version av dessa handledningar i Jupyter Notebooks i detta repo endast som referens. Använd de ursprungliga källorna direkt för att få de senaste versionerna.

Bra jobbat! Fortsätt ditt lärande.

Efter att ha avslutat denna lektion, kolla in vår Generative AI Learning-samling för att fortsätta utveckla din kunskap om generativ AI!

Grattis!! Du har avslutat den sista lektionen från v2-serien för denna kurs! Sluta inte lära dig och bygga. **Kolla in RESURSER för en lista över ytterligare förslag för just detta ämne.

Vår v1-serie av lektioner har också uppdaterats med fler uppgifter och koncept. Så ta en minut för att fräscha upp din kunskap - och vänligen dela dina frågor och feedback för att hjälpa oss att förbättra dessa lektioner för gemenskapen.


Ansvarsfriskrivning:
Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Även om vi strävar efter noggrannhet, bör du vara medveten om att automatiserade översättningar kan innehålla fel eller felaktigheter. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.