Door Charles Foster
Bij Finetune bouwen we AI-oplossingen om enkele van de meest uitdagende problemen in de technologie voor onderwijs aan te pakken, waaronder geautomatiseerde inhouds generatie en AI-gestuurde classificatie en aanbevelingen van leermiddelen. Omdat de onderwerpen die onze tools moeten behandelen zich uitstrekken van K-12 tot aan de ontwikkeling van de beroepsbevolking, investeren we zwaar in methoden die ons in staat stellen om de breedte en diepte van wat onze modellen dekken op te schalen. Belangrijke componenten van deze aanpak zijn flexibele methoden om gespecialiseerde neurale netwerken te trainen in domeinen waar algemene modellen onvoldoende zijn. In deze blogpost wil ik een beetje van onze reis delen bij het verkennen van deze methoden.
Fijn afstemmen
Typisch fijn afstemmen van neurale taalmodellen houdt in dat alle trainbare parameters tegelijkertijd worden geoptimaliseerd, wat kan oplopen tot vele miljarden voor netwerken zoals GPT-J. Bij dergelijke schalen zijn zowel het fijn afstemmen als de inferentieprocessen niet triviaal, waardoor wijdverspreide implementatie hiervan moeilijk is. In onze eigen onderzoeken leken een paar belangrijke kwesties het grootst te zijn:
- Het simpelweg draaien van deze transformer modellen drukt al tegen de grenzen van GPU-geheugen (VRAM), en tijdens het fijn afstemmen is er een directe relatie tussen het aantal geoptimaliseerde parameters en de hoeveelheid extra geheugen die wordt verbruikt.
- Door alle parameters in het netwerk te wijzigen, kan de informatiestroom die tijdens de pre-training is geleerd worden verstoord, wat resulteert in vergeten en verlies van few-shot mogelijkheden.
- Het serveren van een op maat gemaakt multi-gigabyte model voor elke gebruiksgeval zou onaanvaardbare vertragingen 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 het onderzoeksgebied van natuurlijke taalverwerking in het afgelopen jaar een reeks methoden ontwikkeld om de kosten van het aanpassen van het gedrag van voorgetrainde taalmodellen te verlagen.
Prompt Tuning
De oorspronkelijke benadering die we hebben gevolgd, wordt Prompt Tuning of Soft Prompting (Lester et al. 2021) genoemd. In deze methode worden de parameters van het netwerk van de pre-training bevroren gehouden. In plaats daarvan voegen we een klein aantal leerbare inbeddingsvectoren (typisch 10 tot 20) toe voor de invoerprompt-tokens, en stemmen we deze inbeddingen af met het gebruikelijke taalmodeldoel op een fijn afstemdataset. Deze inbeddingen vertegenwoordigen geen tokens van taal; we kunnen ze in plaats daarvan beschouwen als een dichte opslag van context waar het netwerk op kan voorconditioneren—via het aandachtsmechanisme—terwijl het voorspellingen doet over de tokens in de reeks.
Prompt tuning voegt slechts een kleine runtime-kost toe aan het model, aangezien de soft prompts in het kilobytebereik vallen en parallel door het netwerk kunnen worden uitgevoerd. Deze kenmerken 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, omdat de interfaces grotendeels zijn ontworpen om te werken met reeksen 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 kracht van conditionering op de soft prompt en op de tokencontext. Het behouden van de mogelijkheid om flexibel honderden tokens van context tijdens runtime toe te voegen, was belangrijk voor ons, omdat het extra fijnmazige hefboomwerking in het item authoringproces biedt. Als we het model willen leiden om zich te concentreren op inhoud van een bepaalde pagina van een leerboek, of om een item voor leesbegrip te maken, of om few-shot voorbeelden te geven, dan is lange contextualisatie van belang.
Low Rank Adapters (LoRA)
Later zijn we overgestapt op een methode genaamd LoRA of Low Rank Adapters (Hu et al. 2021). Deze techniek is ontwikkeld door onderzoekers van Microsoft die aan modellen van de omvang van GPT-3 werkten, en bouwt voort op eerdere adapterbenaderingen. Als we een transformer beschouwen als het geleidelijk verfijnen van zijn token latente toestanden met elke residuele laag, is het concept van een adapter om een kleine, invoerafhankelijke delta (geïnitieerd als een no-op) toe te voegen aan die latenten op een bepaalde laag. Deze zachte duw kan vervolgens zijn gedrag stroomafwaarts moduleren door bijvoorbeeld de delen van de invoer die relevant zijn voor de taak te benadrukken.
Low rank adapters zijn een soort adapter die zich richt op een laag-rang subruimte, wat het aantal nieuwe parameters dat we moeten trainen vermindert (van D2 tot 2 × D × r, waar D in de duizenden ligt). Net als bij soft prompting, houden we de oorspronkelijke parameters van het netwerk bevroren om de kennis die ze bevatten uit de pre-training te behouden, en passen we alleen deze nieuwe adapterparameters aan. In onze interne tests hebben we goede indicatoren gezien van LoRA. Buiten het mogelijk maken om grote modellen op kleine hardwarebudgetten af te stemmen, behouden modellen met adapterlagen die door elkaar zijn gemengd ook veel van hun oorspronkelijke few-shot capaciteiten terwijl ze zich nog steeds aanpassen aan het doelgebied. Opmerkelijk is dat het integreren van low-rank adapters in andere frameworks eenvoudig is, omdat we bestaande lineaire lagen eenvoudig kunnen vervangen door lineaire + adapterlagen indien nodig.
Vooruitkijken
Om een indruk 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 afstembenaderingen. Deze items zijn allemaal gegenereerd met behulp van dezelfde drie invoerprompts met betrekking tot de levering van verpleegkundige zorg: de eerste richtte zich op het prioriteren van de behoeften van meerdere cliënten en de tweede op het ondernemen van actie in een teamomgeving.
Item #1: Een verpleegkundige beoordeelt een cliënt die is ingepland voor een poliklinische operatie. Welke van de volgende patiënten zou de verpleegkundige als volgende evalueren? (A) Een patiënt met type 1 diabetes (B) Een patiënt met acute pancreatitis (C) Een patiënt die intraveneuze antibioticatherapie nodig heeft (D) Een patiënt met de ziekte van Crohn Item #2: Een cliënt wordt opgenomen in het ziekenhuis met de diagnose congestief hartfalen. De moeder van de cliënt weigert behandeling. Welke van de volgende acties moet de verpleegkundige ondernemen? (A) De zorgverlener informeren over de situatie. (B) De medicatielijst van de patiënt controleren. (C) De medische gegevens van de cliënt controleren. (D) De arts van de cliënt informeren over de toestand van de cliënt.
Item #3: Een verpleegkundige evalueert een patiënt op de pediatrische afdeling. De cliënt is ingepland voor een diagnostisch onderzoek, waaronder een thoraxfoto. Welke van de volgende patiënten moet de verpleegkundige als volgende plannen om te evalueren? (A) Een kind met longontsteking en koorts (B) Een kind met een uitslag dat niet reageert op een medicijn (C) Een kind met koorts en een temperatuur >100,4 (D) Een kind met koorts en een uitslag Item #4: Een cliënt met nierfalen is in het ziekenhuis en staat gepland voor een niertransplantatie. De cliënt heeft een sterk geloof dat de transplantatiechirurg incompetent is. De cliënt weigert een arts van een ander ziekenhuis toe te staan de transplantatie uit te voeren. Welke van de volgende acties moet de hoofdzuster ondernemen? (A) Een verklaring van de cliënt verkrijgen dat de transplantatiechirurg competent is en deze aan de transplantatiechirurg geven. (B) De cliënt vragen om een ondertekende verklaring ter ondersteuning van haar bewering. (C) De transplantatiechirurg contacteren en uitvinden waarom de cliënt weigert de chirurg van een ander ziekenhuis de transplantatie uit te laten voeren. (D) De transplantatiechirurg informeren dat de cliënt de transplantatie weigert.
Item #5: Een verpleegkundige is van plan cliënten toe te wijzen aan verschillende bedstations. Welke van de volgende cliënten moet de verpleegkundige toewijzen aan het bedstation dat het dichtst bij het verpleegkundige station ligt? (A) Een cliënt die een vermoedelijke diagnose van een longembolie heeft en een computertomografie (CT) scan nodig heeft (B) Een cliënt die hulp nodig heeft bij een ontlasting (C) Een cliënt die een noodindicatie voor een thoraxfoto heeft (D) Een cliënt die een thoraxfoto nodig heeft omdat ze hoest Item #6: Een LPN zorgt voor een cliënt met een inwendige urinekatheter en vraagt de verpleegkundige om haar te helpen de katheter schoon te maken. Welke van de volgende acties moet de verpleegkundige ondernemen? (A) De cliënt uitleggen dat ze de reinigingsoplossing moet leveren en de toestemming van de cliënt voor de procedure moet verkrijgen. (B) De LPN om hulp vragen. (C) Aanbieden om de cliënt te helpen de katheter schoon te maken. (D) De LPN verzekeren dat de verpleegkundige haar zal helpen.
We kunnen observeren dat, hoewel de beste items van het baseline-model grotendeels vloeiend en logisch samenhangend zijn, ze de neiging hebben om ondergeconstraint te zijn (zoals in #1) of zeer weinig kennis van het verpleegkundige domein vereisen (zoals in #3). In vergelijking met de baseline-items bevatten items van de prompt tuning en low-rank adaptermodellen meer detail in hun stimuli, stelen en opties. De onderwerpen zijn relevant voor het domein en vereisen specifieke kennis in het beheer van verpleegkundige zorg in plaats van alleen op achtergrondkennis te vertrouwen. Bovendien hebben de items van het low-rank adaptermodel een meer consistente vorm. Bijvoorbeeld, de items verwijzen consistent naar de “cliënt” in plaats van de “patiënt”, in overeenstemming met de taal die waarschijnlijk in beoordelingen zou verschijnen (vergelijk #5 met #1 en #3). Het volgt ook succesvol verwijzingen naar meerdere individuen binnen een scenario (vergelijk #6 met #4).
Verbeteringen in domein dekking, stilistische consistentie en logische samenhang kunnen zich vertalen in significante verbeteringen in de bruikbaarheid van neurale taalmodellen. Dit is pas het begin: naarmate de technologie volwassen 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 blijven de beste uit de academische wereld, de industrie en onafhankelijk onderzoek in Finetune-producten integreren.
Oprechte dank aan Nick Koprowicz, Jesse Hamer, Saad Khan en Ogden Morse voor het geven van vriendelijke, nuttige feedback in de ontwikkeling van deze blogpost.
Referenties
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.