Af Charles Foster
Hos Finetune bygger vi AI-løsninger for at tackle nogle af de mest udfordrende problemer inden for uddannelsesteknologi, herunder automatiseret indholdsproduktion og AI-drevet klassificering og anbefaling af læringsressourcer. Fordi emnet for vores værktøjer spænder fra K-12 til arbejdsmarkedets udvikling, investerer vi kraftigt i metoder, der gør det muligt for os at udvide bredden og dybden af, hvad vores modeller dækker. Nøglekomponenter i denne tilgang er fleksible metoder til at træne specialiserede neurale netværk inden for domæner, hvor generelle modeller er utilstrækkelige. I dette blogindlæg vil jeg gerne dele lidt af vores rejse med at udforske disse metoder.
Finjustering
Typisk finjustering af neurale sprogmodeller involverer samtidig optimering af alle deres trænbare parametre, hvilket kan løbe op i mange milliarder for netværk som GPT-J. På sådanne skalaer er både finjusterings- og inferensprocesserne ikke trivielle, hvilket gør udbredt implementering af disse vanskelig. I vores egne undersøgelser syntes et par nøglespørgsmål at være de største:
- At køre disse transformer-modeller presser allerede mod grænserne for GPU-hukommelse (VRAM), og under finjustering er der et direkte forhold mellem antallet af parametre, der optimeres, og mængden af yderligere hukommelse, der forbruges.
- Ved at ændre alle parametrene i netværket kan informationsstrømmen, der er lært under fortræning, blive forstyrret, hvilket resulterer i glemsel og tab af få-shot kapaciteter.
- At betjene en tilpasset multi-gigabyte model for hver brugssituation ville skabe uacceptable forsinkelser og omkostningsbyrder.
Disse samlede bekymringer motiverede os til at udforske andre metoder fra den seneste litteratur for at finjustere vores neurale sprogmodeller. Heldigvis har forskningsområdet inden for naturlig sprogbehandling inden for det sidste år udviklet en række metoder til at reducere omkostningerne ved at tilpasse adfærden af prætrænede sprogmodeller.
Prompt Tuning
Den oprindelige tilgang, vi forfulgte, kaldes Prompt Tuning eller Soft Prompting (Lester et al. 2021). I denne metode holdes parametrene fra prætræningen frosne. I stedet tilføjer vi et lille antal lærbare indlejringsvektorer (typisk 10 til 20) foran input-prompt-tokenene og finjusterer disse indlejringer med det sædvanlige sprogmodelmål på et finjusteringsdatasæt. Disse indlejringer repræsenterer ikke tokens af sprog; vi kan i stedet tænke på dem som et tæt lager af kontekst, som netværket kan betinge sig på—via opmærksomhedsmechanismen—når det laver forudsigelser om tokenene i sekvensen.
Prompt tuning tilføjer kun en lille runtime-omkostning til modellen, da de bløde prompts ligger i kilobyteområdet og kan køres gennem netværket parallelt. Disse funktioner gør dem attraktive til at betjene mange samtidige brugere, som nylige implementeringer af teknikken i AI-historiefortælling har indikeret. Dog er det komplekst at integrere bløde prompts i populære rammer som HuggingFaces transformers, da grænsefladerne primært er designet til at operere på sekvenser af tokenindekser snarere end tætte vektorer. Derudover, når mere kontekst tilføjes mellem den bløde prompt og generationen, begynder vi at se ubalancer mellem styrken af betingningen på den bløde prompt og på tokenkonteksten. At bevare muligheden for fleksibelt at tilføje hundredevis af tokens af kontekst under runtime var vigtigt for os, da det giver yderligere fine grained kontrolmuligheder i itemforfatterprocessen. Hvis vi ønsker at guide modellen til at fokusere på indhold fra en bestemt side i en lærebog, eller til at forfatte et læseforståelsesitem, eller til at give få-shot eksempler, er langvarig kontekstualisering vigtig.
Low Rank Adapters (LoRA)
Vi overgik senere til en metode kaldet LoRA eller Low Rank Adapters (Hu et al. 2021). Denne teknik blev udviklet af forskere hos Microsoft, der arbejdede med GPT-3-størrelse modeller, og bygger på tidligere adaptertilgange. Hvis vi tænker på en transformer som gradvist at forfine dens token-latenstilstande med hver residuallag, er konceptet med en adapter at tilføje en lille, inputafhængig delta (initieret til en no-op) til disse latents på et givet lag. Denne blide skub er derefter i stand til at modulere dens adfærd downstream ved for eksempel at fremhæve de dele af input, der er relevante for opgaven.
Low rank adapters er en slags adapter, der målretter mod et lavt rangsubrum, hvilket reducerer antallet af nye parametre, vi skal træne (fra D2 til 2 × D × r, hvor D er i tusinder). Som med blød prompting holder vi de originale parametre i netværket frosne for at bevare den viden, de indeholder fra prætræningen, og justerer kun disse nye adapterparametre. I vores interne tests har vi set gode indikatorer fra LoRA. Udover at muliggøre, at vi kan tune store modeller med små hardwarebudgetter, bevarer modeller med adapterlag indbyrdes også meget af deres originale få-shot evne, mens de stadig tilpasser sig målområdet. Bemærkelsesværdigt er det, at integration af lavrangadaptere i andre rammer er ligetil, da vi blot kan udskifte eksisterende lineære lag med lineære + adapterlag efter behov.
Fremadskuende
For at give en smag af den slags forbedringer, vi har set i vores udforskninger, deler vi nedenfor et lille udvalg af generationer fra modeller trænet med forskellige tuningmetoder. Disse items blev alle genereret ved hjælp af de samme tre inputprompts vedrørende levering af sygepleje: den første fokuserede på at prioritere behovene hos flere klienter, og den anden på at handle i en teamindstilling.
Item #1: En sygeplejerske vurderer en klient, der er planlagt til ambulant kirurgi. Hvilken af de følgende patienter ville sygeplejersken evaluere næste? (A) En patient med type 1 diabetes (B) En patient med akut pancreatitis (C) En patient, der kræver intravenøs antibiotikabehandling (D) En patient med Crohns sygdom Item #2: En klient bliver indlagt på hospitalet med diagnosen kongestiv hjertesvigt. Klientens mor nægter behandling. Hvilken af de følgende handlinger skal sygeplejersken tage? (A) Informere leverandøren om situationen. (B) Tjekke patientens medicinliste. (C) Tjekke klientens medicinske journal. (D) Informere klientens læge om klientens tilstand.
Item #3: En sygeplejerske evaluerer en patient på pædiatrisk afdeling. Klienten er planlagt til en diagnostisk undersøgelse, herunder en bryst-røntgen. Hvilken af de følgende patienter skal sygeplejersken planlægge at evaluere næste? (A) Et barn, der har lungebetændelse og har feber (B) Et barn, der har et udslæt og ikke reagerer på en medicin (C) Et barn, der har feber og har en temperatur >100.4 (D) Et barn, der har feber og et udslæt Item #4: En klient med nyresvigt er på hospitalet og er planlagt til at gennemgå en nyretransplantation. Klienten har en stærk tro på, at transplantationskirurgen er inkompetent. Klienten nægter at lade en læge fra et andet hospital udføre transplantationen. Hvilken af de følgende handlinger skal den ansvarlige sygeplejerske tage? (A) Tage en erklæring fra klienten om, at transplantationskirurgen er kompetent og give den til transplantationskirurgen. (B) Spørge klienten om en underskreven erklæring til at understøtte hendes påstand. (C) Kontakte transplantationskirurgen og finde ud af, hvorfor klienten nægter at lade kirurgen fra et andet hospital udføre transplantationen. (D) Informere transplantationskirurgen om, at klienten nægter transplantationen.
Item #5: En sygeplejerske planlægger at tildele klienter til forskellige sengeposter. Hvilken af de følgende klienter skal sygeplejersken tildele til sengeposten tættest på sygeplejerskernes station? (A) En klient, der har en mistænkt diagnose af en lungeemboli og kræver en computer-tomografi (CT) scan (B) En klient, der har brug for hjælp til en afføring (C) En klient, der har en nødsituation indikation for en røntgen af brystet (D) En klient, der kræver en røntgen af brystet, fordi hun har en hoste Item #6: En LPN passer en klient med et indlagt urinrørskateter og beder sygeplejersken om at hjælpe hende med at rense kateteret. Hvilken af de følgende handlinger skal sygeplejersken tage? (A) Forklare klienten, at hun skal give rengøringsløsningen og skal have klientens samtykke til proceduren. (B) Spørge LPN om hjælp. (C) Tilbyde at hjælpe klienten med at rense kateteret. (D) Forsikre LPN om, at sygeplejersken vil hjælpe hende.
Vi kan observere, at mens de bedste items fra baseline-modellen stort set er flydende og logisk sammenhængende, har de tendens til at være underbegrænsede (som i #1) eller kræve meget lidt viden om sygeplejeområdet (som i #3). Sammenlignet med baseline-items indeholder items fra prompt tuning- og lavrangadaptermodellerne større detaljer i deres stimuli, stammer og muligheder. Emnet er relevant for området og kræver specifik viden i håndteringen af sygepleje i stedet for kun at være afhængig af baggrundsviden. Desuden har items fra lavrangadaptermodellen en mere konsekvent form. For eksempel refererer items konsekvent til "klienten" i stedet for "patienten", i overensstemmelse med det sprog, der sandsynligvis ville fremgå af vurderinger (sammenlign #5 med #1 og #3). Det sporer også med succes referencer til flere individer inden for et scenarie (sammenlign #6 med #4).
Forbedringer i domæne dækning, stilistisk konsistens og logisk sammenhæng kan oversættes til betydelige forbedringer i nytten af neurale sprogmodeller. Dette er kun begyndelsen: efterhånden som teknologien modnes, vil endnu flere metoder blive opdaget for at skabe tilpassede, kontrollerbare naturlige sprogmodeller i stor skala. Og efterhånden som disse metoder opdages, vil vi fortsætte med at inkorporere det bedste fra akademia, industri og uafhængig forskning i Finetune-produkter.
Ægte tak til Nick Koprowicz, Jesse Hamer, Saad Khan og Ogden Morse for at give venlig, nyttig feedback i udviklingen af dette blogindlæg.
Referencer
Hu, E. J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … & Chen, W. (2021). Lora: Low-rank adaptation of large language models. arXiv preprint arXiv:2106.09685.
Lester, B., Al-Rfou, R., & Constant, N. (2021). The power of scale for parameter-efficient prompt tuning. arXiv preprint arXiv:2104.08691.