Förträning
Förträning av stora språkmodeller (LLM) — detta är ett grundläggande steg i skapandet av moderna stora språkmodeller, vilket innebär att de tränas på enorma och heterogena mängder omärkt text. Denna process gör det möjligt för modeller att tillägna sig allmänna språkliga mönster, världskunskap och semantiska samband, och formar därigenom en så kallad grundmodell (foundation model), som sedan kan anpassas för att lösa specifika uppgifter.
Vad är förträning?
Förträning (pre-training) utgör den inledande träningsfasen där en LLM tränas på storskaliga textdatamängder med hjälp av metoder för självövervakat lärande (self-supervised learning). Detta innebär att träningssignalerna (etiketterna) genereras från själva datan, utan att manuell märkning av människor krävs.
Huvudmålet med detta steg är att förutsäga dolda eller framtida delar av text. Beroende på arkitektur används två huvudsakliga uppgifter:
- Kausal språkmodellering (Causal Language Modeling, CLM): Modellen lär sig att förutsäga nästa ord (token) i en sekvens baserat på alla föregående. Detta tillvägagångssätt ligger till grund för generativa modeller som GPT.
- Maskerad språkmodellering (Masked Language Modeling, MLM): Modellen lär sig att återställa slumpmässigt "maskerade" (dolda) ord i en text genom att använda det omgivande dubbelriktade kontextet (ord till vänster och höger). Denna metod används i modeller som BERT.
Tack vare dessa uppgifter tvingas modellen att lära sig syntax, semantik och faktakunskaper om världen för att lyckas göra förutsägelser.
Data för förträning
Effektiviteten hos förträning beror i hög grad på kvaliteten och mångfalden hos träningsdatan. Följande huvudsakliga källor används:
- Webbsidor: Datamängder som Common Crawl och C4 tillhandahåller ett brett spektrum av ämnen, stilar och språk och utgör ett "avtryck" av internet.
- Böcker: Korpusar som BookCorpus och The Pile tillhandahåller strukturerad och sammanhängande text, vilket är användbart för att förstå långsiktiga beroenden och narrativ.
- Konversationsdata: Data från forum (t.ex. Reddit) och sociala medier, som hjälper modeller att tillägna sig informellt språk och dialogmönster.
- Specialiserad data: Vetenskapliga artiklar (från arXiv), programkod (från GitHub och The Stack) eller flerspråkiga texter för att förbättra modellens specifika förmågor.
Exempel på datafördelning
Olika modeller använder olika proportioner av källor, vilket påverkar deras slutliga förmågor:
- GPT-3 (175 miljarder parametrar):** 16% böcker, 84% webbsidor.
- PaLM (540 miljarder parametrar):** 5% böcker, 14% webbsidor, 50% konversationsdata, 31% övrigt.
- LLaMA (65 miljarder parametrar):** 5% böcker, 2% webbsidor, 87% konversationsdata.
Dessa fördelningar visar att valet av data är ett strategiskt beslut som varierar beroende på modellens mål.
Vanligt använda korpusar
| Korpus | Storlek | Källa | Senast uppdaterad |
|---|---|---|---|
| BookCorpus | 5GB | Böcker | Dec-2015 |
| Gutenberg | - | Böcker | Dec-2021 |
| C4 | 800GB | Common Crawl | Apr-2019 |
| CC-Stories-R | 31GB | Common Crawl | Sep-2019 |
| CC-NEWS | 78GB | Common Crawl | Feb-2019 |
| REALNEWS | 120GB | Common Crawl | Apr-2019 |
| OpenWebText | 38GB | Reddit-länkar | Mar-2023 |
| Pushshift.io | 2TB | Reddit-länkar | Mar-2023 |
| Wikipedia | 21GB | Wikipedia | Mar-2023 |
| The Pile | 800GB | Övrigt | Dec-2020 |
| ROOTS | 1.6TB | Övrigt | Jun-2022 |
Träningstekniker
Förträning av LLM kräver betydande beräkningsresurser. För att hantera denna process används följande tekniker:
- Distribuerad träning: Användning av flera GPU:er eller TPU:er för parallell bearbetning.
- Blandad precision (Mixed Precision): Användning av numeriska format med lägre precision (t.ex. 16-bitars istället för 32-bitars) för att snabba upp beräkningar och minska minnesanvändningen.
- Gradientkontrollpunkter (Gradient Checkpointing): En teknik för att spara minne genom att omberäkna, snarare än lagra, vissa mellanliggande aktiveringar.
- Modellparallellism (Model Parallelism): Distribution av själva modellen över flera enheter.
Att träna en modell som GPT-3 kan ta flera månader på tusentals GPU:er.
Skalningslagar
Forskning som OpenAI:s arbete (Kaplan et al., 2020) har visat att språkmodellers prestanda förbättras förutsägbart när tre faktorer ökar:
- Modellens storlek (antal parametrar).
- Datamängdens volym.
- Beräkningsresurser.
Dessa empiriska samband, kända som skalningslagar, fungerar som vägledning för utvecklare vid design och träning av större och kraftfullare modeller, vilket möjliggör optimal fördelning av beräkningsbudgeten.
Utmaningar och framsteg
- Skalning: Det främsta framsteget med förträning är möjligheten att balansera modellens storlek, data och beräkning för att uppnå optimal prestanda.
- Datakvalitet: Att säkerställa renhet, mångfald och frånvaro av snedvridning i träningsdatan är en central utmaning.
- Effektivitet: Utveckling av metoder för att minska beräkningskostnader, såsom kontinuerlig förträning eller mer effektiva arkitekturer.
- Flerspråkighet: Att skapa modeller som effektivt kan hantera flera språk kräver noggrann urvals- och balanseringsprocess för data.
Se även
- Stora språkmodeller
- BERT
- GPT