Door Charles Foster
Bij Finetune bouwen we AI-oplossingen om enkele van de meest uitdagende problemen in onderwijstechnologie aan te pakken, waaronder geautomatiseerde contentgeneratie en AI-gestuurde classificatie en aanbevelingen voor leermiddelen. Omdat de onderwerpen die onze tools moeten behandelen variëren van K-12 tot ontwikkeling van de beroepsbevolking, investeren we fors in methoden waarmee we de breedte en diepte van wat onze modellen bestrijken, kunnen opschalen. Belangrijke onderdelen van deze aanpak zijn flexibele methoden om gespecialiseerde neurale netwerken te trainen in domeinen waar algemene modellen niet toereikend zijn. In deze blogpost wil ik graag een beetje vertellen over onze reis waarin we deze methoden verkennen.
Fijnafstemming
Typische fine-tuning van neurale taalmodellen omvat het gelijktijdig optimaliseren van al hun trainbare parameters, wat kan oplopen tot vele miljarden voor netwerken zoals GPT-J. Op schaalgroottes als deze zijn zowel de fine-tuning als de inferentieprocessen niet triviaal, wat de wijdverbreide implementatie hiervan moeilijk maakt. In onze eigen onderzoeken leken een paar belangrijke kwesties het grootst op te duiken:
- Alleen al het uitvoeren van deze transformermodellen brengt de grenzen van het GPU-geheugen (VRAM) in gevaar. Tijdens het finetunen is er een direct verband tussen het aantal parameters dat wordt geoptimaliseerd en de hoeveelheid extra geheugen dat wordt verbruikt.
- Door alle parameters in het netwerk te wijzigen, kan de informatiestroom die tijdens de pre-training is geleerd, worden verstoord. Dit kan leiden tot vergeten en verlies van mogelijkheden voor weinige schoten.
- Het aanbieden van een aangepast multi-gigabyte-model voor elk gebruiksscenario zou onaanvaardbare latentie en kosten met zich meebrengen.
Deze gecombineerde zorgen motiveerden ons om andere methoden uit de recente literatuur te verkennen om onze neurale taalmodellen af te stemmen. Gelukkig heeft de onderzoekssfeer van natuurlijke taalverwerking het afgelopen jaar een heleboel methoden ontwikkeld om de kosten van het aanpassen van het gedrag van vooraf getrainde taalmodellen te verlagen.
Snelle afstemming
De oorspronkelijke aanpak die we nastreefden, heet Prompt Tuning of Soft Prompting (Lester et al. 2021). Bij deze methode worden de parameters van het netwerk van de pre-training bevroren gehouden. In plaats daarvan voegen we een klein aantal leerbare embeddingvectoren (meestal 10 tot 20) toe vóór de invoerprompttokens en stemmen we deze embeddings af met het gebruikelijke taalmodelleringsdoel op een fine-tuning-dataset. Deze embeddings vertegenwoordigen geen taaltokens; we kunnen ze in plaats daarvan zien als een dichte opslag van context waarop het netwerk kan conditioneren - via het aandachtsmechanisme - terwijl het voorspellingen doet over de tokens in de sequentie.
Prompt tuning voegt slechts een kleine runtimekost toe aan het model, aangezien de soft prompts in het kilobytebereik liggen en parallel via het netwerk kunnen worden uitgevoerd. Deze functies maken ze aantrekkelijk voor het bedienen van veel gelijktijdige gebruikers, zoals recente implementaties van de techniek in AI storytelling hebben aangetoond. Het integreren van soft prompts in populaire frameworks zoals HuggingFace's transformers is echter complex, aangezien de interfaces grotendeels zijn ontworpen om te werken op sequenties van tokenindices in plaats van dichte vectoren. Bovendien, naarmate er meer context wordt toegevoegd tussen de soft prompt en de generatie, beginnen we onevenwichtigheden te zien tussen de sterkte van de conditionering op de soft prompt en op de tokencontext. Het behouden van de mogelijkheid om flexibel honderden tokens van context toe te voegen tijdens runtime was belangrijk voor ons, omdat het extra fijnmazige hefbomen van controleerbaarheid biedt in het item-authoringproces. Als we het model willen begeleiden om zich te concentreren op inhoud van een bepaalde pagina van een leerboek, of om een leesbegripitem te schrijven, of om enkele voorbeelden te geven, is lange contextualisatie van belang.
Laag rang adapters (LoRA)
Later stapten we over op een methode genaamd LoRA of Low Rank Adapters (Hu et al. 2021). Deze techniek werd ontwikkeld door onderzoekers bij Microsoft die werkten aan GPT-3-modellen en bouwt voort op eerdere adapterbenaderingen. Als we een transformator zien als een transformator die zijn token latente toestanden progressief verfijnt met elke resterende laag, is het concept van een adapter om een kleine, input-afhankelijke delta (geïnitialiseerd tot een no-op) toe te voegen aan die latenten op een bepaalde laag. Deze zachte duw is vervolgens in staat om zijn gedrag stroomafwaarts te moduleren door bijvoorbeeld de nadruk te leggen op de delen van de input die relevant zijn voor de taak.
Low rank adapters zijn een soort adapter die gericht is op een low rank subspace, wat het aantal nieuwe parameters dat we moeten trainen vermindert (van D 2 naar 2 × D × r, waarbij D in de duizenden staat). Net als bij soft prompting houden we de originele parameters van het netwerk bevroren om alle kennis die ze bevatten van pre-training te behouden, en passen we alleen deze nieuwe adapterparameters aan. In onze interne tests hebben we goede indicatoren van LoRA gezien. Naast het feit dat we grote modellen op kleine hardwarebudgetten kunnen afstemmen, behouden modellen met adapterlagen ertussen ook veel van hun oorspronkelijke few-shot-vermogen terwijl ze zich nog steeds aanpassen aan het doeldomein. Het integreren van low-rank adapters in andere frameworks is met name eenvoudig, omdat we bestaande lineaire lagen eenvoudig kunnen verwisselen met lineaire + adapterlagen indien nodig.
Vooruitgaan
Om een idee te geven van het soort verbeteringen dat we hebben gezien in onze verkenningen, delen we hieronder een kleine selectie van generaties van modellen die zijn getraind met verschillende afstemmingsbenaderingen. Deze items zijn allemaal gegenereerd met behulp van dezelfde drie invoerprompts met betrekking tot de levering van verpleegkundige zorg: de eerste was gericht op het prioriteren van de behoeften van meerdere cliënten en de tweede op het ondernemen van actie in een teamomgeving.
Item #1: A nurse is assessing a client who is scheduled for outpatient surgery. Which of the following patients would the nurse evaluate next? (A) A patient with type 1 diabetes (B) A patient with acute pancreatitis (C) A patient who requires intravenous antibiotic therapy (D) A patient with Crohn's disease Item #2: A client is admitted to the hospital with the diagnosis of congestive heart failure. The client's mother is refusing treatment. Which of the following actions should the nurse take? (A) Notify the provider of the situation. (B) Check the patient's medication list. (C) Check the client's medical chart. (D) Notify the client's doctor of the client's condition.
Item #3: A nurse is evaluating a patient on the pediatric unit. The client is scheduled for a diagnostic workup, including a chest radiograph. Which of the following patients should the nurse be planning to evaluate next? (A) A child who has pneumonia and is experiencing fever (B) A child who has a rash and is not responding to a medication (C) A child who has a fever and has a temperature >100.4 (D) A child who has a fever and a rash Item #4: A client with renal failure is in the hospital and is scheduled to undergo a renal transplant. The client has a strong belief that the transplant surgeon is incompetent. The client refuses to allow a doctor from another hospital to perform the transplant. Which of the following actions should the charge nurse take? (A) Take a statement from the client that the transplant surgeon is competent and give it to the transplant surgeon. (B) Ask the client for a signed statement to back up her assertion. (C) Contact the transplant surgeon and find out why the client refuses to allow the surgeon from another hospital to perform the transplant. (D) Inform the transplant surgeon that the client is refusing the transplant.
Item #5: A nurse is planning to assign clients to various bedside stations. Which of the following clients should the nurse assign to the bedside station closest to the nurses' station? (A) A client who has a suspected diagnosis of a pulmonary embolism and requires a computed tomography (CT) scan (B) A client who needs assistance with a bowel movement (C) A client who has an emergency indication for a chest X-ray (D) A client who requires a chest X-ray because she has a cough Item #6: An LPN is caring for a client with an indwelling urinary catheter and is asking the nurse to help her clean the catheter. Which of the following actions should the nurse take? (A) Explain to the client that she will need to provide the cleaning solution and will need to obtain the client's consent for the procedure. (B) Ask the LPN for assistance. (C) Offer to help the client clean the catheter. (D) Assure the LPN that the nurse will assist her.
We kunnen zien dat, hoewel de beste items uit het basismodel grotendeels vloeiend en logisch coherent zijn, ze de neiging hebben om onderbeperkt te zijn (zoals in #1) of om heel weinig kennis van het verpleegkundig domein te vragen (zoals in #3). In vergelijking met de basisitems bevatten items uit de prompt tuning en low-rank adapter modellen meer details in hun stimuli, stammen en opties. Het onderwerp is relevant voor het domein en vraagt om specifieke kennis in het management van verpleegkundige zorg in plaats van alleen te vertrouwen op achtergrondkennis. Bovendien hebben de items uit het low-rank adapter model een consistentere vorm. De items verwijzen bijvoorbeeld consistent naar de "cliënt" in tegenstelling tot de "patiënt", in overeenstemming met de taal die waarschijnlijk in beoordelingen zou voorkomen (vergelijk #5 met #1 en #3). Het volgt ook succesvol verwijzingen naar meerdere personen binnen een scenario (vergelijk #6 met #4).
Verbeteringen in domeindekking, stilistische consistentie en logische coherentie kunnen leiden tot aanzienlijke verbeteringen in het nut van neurale taalmodellen. Dit is nog maar het begin: naarmate de technologie rijper wordt, zullen er nog meer methoden worden ontdekt om op maat gemaakte, controleerbare natuurlijke taalmodellen op schaal te creëren. En naarmate die methoden worden ontdekt, zullen we het beste uit de academische wereld, de industrie en onafhankelijk onderzoek blijven integreren in Finetune-producten.
Hartelijk dank aan Nick Koprowicz, Jesse Hamer, Saad Khan en Ogden Morse voor hun vriendelijke en nuttige feedback bij het schrijven van dit blogbericht.
Referenties
Hu, EJ, Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … & Chen, W. (2021). Lora: Low-rank aanpassing van grote taalmodellen. arXiv preprint arXiv:2106.09685.
Lester, B., Al-Rfou, R., & Constant, N. (2021). De kracht van schaal voor parameter-efficiënte prompt tuning. arXiv preprint arXiv:2104.08691.