- Dataindsamling: Min træning begyndte med en bred vifte af internettekster. Jeg skal dog bemærke, at mens jeg blev uddannet i et bredt datasæt, ved jeg ikke detaljer om, hvilke dokumenter der var en del af det træningssæt eller har adgang til specifikke dokumenter eller kilder.
- Indledende træning (førtræning): Det var her, jeg lærte at forudsige det næste ord i en sætning. Jeg begyndte ikke at kunne engelsk eller noget andet sprog. I stedet for, ved at forudsige det næste ord i millioner af sætninger, lærte jeg gradvist om grammatik, fakta om verden og nogle ræsonnementer. Dette betyder dog også, at jeg måske har lært af partisk eller forkert information, da dataene ikke var grundigt filtreret.
- Finjustering: Efter den indledende træning gav mine skabere hos OpenAI yderligere vejledning med et mere specifikt datasæt, genereret med hjælp fra menneskelige anmeldere. Disse anmeldere følger retningslinjer for at gennemgå og vurdere mulige modeloutput for en række eksempler på input. Finjusteringsprocessen er en slags dialog mellem modellen og anmelderne, der hjælper mig til bedre at tilpasse mig menneskelige værdier.
- Kontinuerlig læring: Selvom jeg ikke lærer af individuelle interaktioner på grund af privatlivets fred, arbejder OpenAI konstant med et team af menneskelige anmeldere for at give feedback og foretage iterative forbedringer baseret på bredere mønstre og indsigt.
- Eksempel før træning: Antag, at vi har sætningen, "Katten sad på __". I fortræningsfasen ville modellen som mig lære at forudsige det næste ord i sætningen, som kunne være "måtte", "tag" eller "træ". Dette læres ved at behandle milliarder af sætninger fra forskelligartet internettekst, der indirekte involverer menneskelig interaktion, da mennesker skabte det originale indhold.
- Finjusteringseksempel: Efter fortræningsfasen går modellen ind i finjusteringsfasen. Sådan kan det fungere:
Den menneskelige anmelder får til opgave at gennemgå mulige modeloutput for input som "Oversæt følgende engelske tekst til fransk: 'Hej, hvordan har du det?". Modellen kan generere flere svar som "Bonjour, comment ça va?" eller "Salut, kommenter vas-tu?" etc.
Anmelderen bedømmer disse svar baseret på faktorer som nøjagtighed, flydende og passende. Disse vurderinger hjælper modellen med at generalisere og reagere på lignende input i fremtiden.
Husk, at eksemplerne her er forenklede for at illustrere processen. Selve træningen involverer komplekse algoritmer og enorme mængder data.
- Forskellige data: Det handler ikke kun om mængden af data, men også variationen. Dataene skal være forskelligartede for at dække en bred vifte af emner, stilarter og toner, der findes i menneskeligt sprog.
- Datakvalitet: Kvaliteten af de data, der bruges til træning, kan også påvirke, hvor effektivt modellen lærer. Data af bedre kvalitet kan potentielt reducere den mængde, der kræves for effektiv træning.
- Modelarkitektur: Modellens arkitektur (som antallet af lag eller parametre i det neurale netværk) kan også påvirke, hvor meget data der er behov for. Større modeller, som GPT-3 eller GPT-4, kræver typisk flere data end mindre modeller.
- Træningsmål: Den type opgaver, som modellen er beregnet til at udføre, kan påvirke mængden af nødvendige data. En model, der er designet til en specifik opgave, kan kræve færre data, hvis den er målrettet, mens en generel model som GPT-3 eller GPT-4, designet til at håndtere en bred vifte af opgaver, vil kræve flere data for en bredere forståelse.
I tilfældet med GPT-3, for eksempel, har modellen 175 milliarder parametre og blev trænet på hundredvis af gigabyte tekst. Men disse tal fanger ikke helt kompleksiteten af processen. De nærmere specifikationer for træningsprocessen, herunder den nøjagtige mængde af anvendte data, er proprietære detaljer, som opbevares af OpenAI og lignende organisationer.
- Start lille: Især for simple problemer eller indledende modelprototyper kan et mindre datasæt være tilstrækkeligt. For eksempel, hvis du bygger en grundlæggende billedklassificering, kan du starte med et par hundrede eller tusinde billeder pr. kategori.
- Overvej kompleksiteten: Mere komplekse problemer kræver typisk mere data. Hvis du udvikler en dyb læringsmodel eller arbejder med et komplekst problem som naturlig sprogbehandling, har du muligvis brug for millioner af datapunkter.
- Kvalitet frem for kvantitet: Kvalitet, relevante data kan ofte være mere gavnlige end en massiv mængde data af dårlig kvalitet. Det er afgørende at sikre, at dine data er korrekt renset, kommenteret og repræsentative for det problem, du forsøger at løse.
- Balancer dine klasser: For overvågede læringsopgaver skal du sørge for at have en god balance mellem eksempler for hver klasse. Et ubalanceret datasæt kan føre til en model, der klarer sig dårligt på underrepræsenterede klasser.
- Brug validerings- og testsæt: En del af dit datasæt bør afsættes til validering (justering af modelparametre) og test (evaluering af modelydelse). Almindelige opdelinger kan være 70 % af dataene til træning, 15 % til validering og 15 % til test, selvom disse andele kan variere.
- Eksperimenter og gentag: Start med en indledende mængde data, træne din model, evaluer dens ydeevne, og tilføj flere data iterativt, juster din model, eller forbedr din datakvalitet baseret på resultaterne.
Husk, at flere data typisk forbedrer ydeevnen af maskinlæringsmodeller, men kun op til et vist punkt. Efter et vist tidspunkt kan det være mere tidskrævende og omkostningskrævende at indsamle flere data, end det er værd, og det kan være mere fordelagtigt at fokusere på at forbedre kvaliteten af dine data eller forfine din modelarkitektur.
- Før træning: I denne fase udsættes modellen for en stor mængde internettekstdata. Disse data er ikke eksplicit kommenteret, men modellen er trænet til at forudsige det næste ord i en sætning. Dette giver modellen en generel forståelse af grammatik, fakta om verden og nogle ræsonnementer.
- Finjustering: Efter fortræning forfines modellen yderligere på et smallere datasæt genereret ved hjælp af menneskelige anmeldere. Disse anmeldere følger retningslinjer fra OpenAI for at gennemgå og vurdere mulige modeloutput for en række input. I denne forstand kan finjusteringsprocessen ses som en form for annotering, hvor menneskelige anmeldere guider modellens svar, hjælper den til bedre at tilpasse sig menneskelige værdier og sikrer, at den undgår upassende eller usikkert indhold.
Så selvom det indledende datasæt, der bruges til fortræning, ikke er kommenteret i traditionel forstand, involverer finjusteringsprocessen en form for annotering, hvor menneskelige anmeldere guider modellens adfærd ved at vurdere forskellige output.
Rigtighed: Anmeldere vurderer, om modellens output er faktuelt korrekt.
Eksempel:
Egnethed: Modellens output vurderes for dets hensigtsmæssighed i forhold til det givne input.
Eksempel:
Sikkerhed: Output gennemgås for at sikre, at de ikke indeholder skadelige instruktioner eller stødende sprogbrug.
Eksempel:
Fuldstændighed: Dette vurderer, om modellens svar fuldt ud besvarer brugerens forespørgsel.
Eksempel:
Udtryksevne: Anmeldere tjekker, om modellens output er sprogligt flydende og sammenhængende.
Eksempel:
Disse kategorier er blot eksempler. Selve finjusteringsprocessen involverer et mere komplekst evalueringssystem og løbende feedback mellem anmelderne og AI-udviklingsteamet. Målet med disse annoteringer er at gøre modellens svar mere nyttige, sikre og i overensstemmelse med menneskelige værdier.
OpenAI, organisationen bag ChatGPT, oplyser ikke offentligt det nøjagtige antal anmeldere, der er involveret i finjusteringsprocessen. Men i betragtning af omfanget og kompleksiteten af at træne en så stor sprogmodel, er det sikkert at sige, at processen sandsynligvis involverer et betydeligt team af anmeldere.
Disse menneskelige anmeldere følger retningslinjer fra OpenAI for at gennemgå og vurdere mulige modeloutput. Det er en kontinuerlig, iterativ proces, hvor anmeldernes feedback bruges til at forbedre og forfine modellen over tid. OpenAI opretholder en stærk feedback-loop med anmelderne, herunder ugentlige møder for at besvare spørgsmål og give afklaringer.
- Opgavens kompleksitet: Enkle opgaver som at mærke billeder eller kategorisere tekst ville tage mindre tid pr. PDF, hvilket giver en enkelt annotator mulighed for at håndtere flere filer. På den anden side ville komplekse opgaver som detaljeret enhedsudtrækning eller semantisk analyse kræve mere tid pr. dokument og derfor flere annotatorer for den samme mængde PDF'er.
- PDF'ernes længde og kompleksitet: En længere eller mere kompleks PDF vil tage længere tid at kommentere end en kortere eller enklere.
- Kvalitetskrav: Hvis der kræves høj præcision, kan det være nødvendigt at have flere annotatorer pr. PDF for at krydsbekræfte annoteringer.
- Tidsbegrænsninger: Hvis annoteringerne skal udfyldes hurtigt, vil der være brug for flere annotatorer.
Som et hypotetisk eksempel, lad os sige, at en annotator kan kommentere 5 PDF-filer om dagen for en bestemt opgave og arbejder 5 dage om ugen. I dette tilfælde vil en enkelt annotator bruge 10,000 dage eller omkring 2000 år for at kommentere 8 PDF'er.
Men hvis du havde et team på 20 annotatorer, kunne de fuldføre opgaven på omkring 5 måneder (forudsat 20 arbejdsdage om måneden). Med 100 annotatorer kunne den samme opgave udføres på omkring en måned.
Husk, at disse tal udelukkende er illustrative, og den faktiske annoteringshastighed vil afhænge af ovennævnte faktorer. Derudover er korrekt træning af annotatorer og ensartet kvalitetskontrol afgørende for succesen af ethvert stort annoteringsprojekt.