AI-mallit ja alustat

LoRA, QLoRA ja QA-LoRA: Suuret kielen mallit tehokkaasti mukautettaviksi pieniavainmuuntumisen kautta

mm
Lisää Unite.AI suosikkilähteisiisi Google-palvelussa

Suuret kielen mallit (LLM) ovat luoneet oman niukkansa tarjoamalla vertaansa vailla olevia kykyjä ymmärtää ja generoida ihmisen kaltaista tekstiä. LLMien voima juontuu niiden valtavasta koosta, joka usein käsittää miljardeja parametreja. Vaikka tämä valtava skaala ruokkii niiden suorituskykyä, se synnyttää myös haasteita, erityisesti kun on kyse mallin mukauttamisesta tiettyihin tehtäviin tai aloihin. Perinteiset LLMien hallitsemisen tavat, kuten kaikkien parametrejen hienosäätö, esittävät raskaita laskennallisia ja taloudellisia vaatimuksia, mikä asettaa merkittävän esteen niiden laajamittaiselle soveltamiselle todellisissa sovelluksissa.

Aiemmassa artikkelissa tutkimme suurten kielen mallien hienosäätöä niiden mukauttamiseksi tiettyihin vaatimuksiin. Selvitimme erilaisia hienosäätömenetelmiä, kuten ohjeistuksen perustuva hienosäätö, yksittäisen tehtävän hienosäätö ja parametrinen tehokas hienosäätö (PEFT), joilla kullakin on oma lähestymistapansa LLMien optimoimiseksi eri tehtäviin. Transformer-arkkitehtuuri, LLMien runko, ja haasteet, joita laskennalliset ja muistivaatimukset esittävät suuren määrän parametreja käsiteltäessä hienosäätössä, olivat keskeisiä aiheita keskustelussa.

Parametrit LLM:ssä

https://huggingface.co/blog/hf-bitsandbytes-integration

Yllä oleva kuva edustaa eri suurten kielen mallien mittakaavaa, järjestetty niiden parametriensa määrän mukaan. Huomionarvoista: PaLM, BLOOM jne.

Tänä vuonna on tapahtunut edistystä, joka on johtanut vielä suurempiin malleihin. Kuitenkin näiden valtavien, avoimen lähdekoodin mallien säätö perinteisillä järjestelmissä on mahdotonta ilman erikoistuneita optimointitekniikoita.

Tässä astuu kuvaan Pieniavainsopeutuminen (LoRA), jonka Microsoft (MSFT ) esitteli tässä artikkelissa, tavoitteena lieventää näitä haasteita ja tehdä LLM:istä helpommin saatavilla ja sopeutuvia.

LoRA:n ydin on sen lähestymistavassa mallin sopeuttamiseen ilman koko mallin uudelleen kouluttamista. Toisin kuin perinteisessä hienosäätössä, jossa jokainen parametri on muutettavissa, LoRA ottaa älykkään tien. Se jäädyttää esikoulutetut mallipainot ja esittää koulutettavia pieniavainhajotusmatriiseja Transformer-arkkitehtuuriin. Tämä lähestymistapa leikkaa merkittävästi koulutettavien parametreja, varmistaa tehokkaamman sopeutumisprosessin.

LLM:n säätöstrategioiden evoluutio

Tarkastelemalla LLM:n säätömatkan varrella, voidaan havaita useita strategioita, joita käytännön toteuttajat ovat vuosien varrella käyttäneet. Aluksi valokeila oli esikoulutettujen mallien hienosäätössä, jossa mallin parametreja muutetaan kattavasti soveltamaan tiettyä tehtävää. Kun mallit kasvoivat kooltaan ja monimutkaisuudessaan, kasvoivat myös laskennalliset vaatimukset tällaiselle lähestymistavalle.

Seuraava strategia, joka sai jalansijaa, oli osittainen hienosäätö, jossa vain osa mallin parametreja hienosäädettiin, mikä vähensi laskennallista taakkaa jossain määrin. Vaikka osittainen hienosäätöllä on ansioita, se ei pystynyt pitämään mukana LLMien kasvavan koon kanssa.

Kun käytännön toteuttajat etsivät tehokkaampia keinoja, kokonainen hienosäätö nousi esiin vaativana mutta palkitsevana lähestymistapana.

LoRA:n esittely

Matriisin arvo antaa meille vihjeen siitä, mitä ulottuvuuksia sen sarakkeet luovat, määräytyen sen yksilöllisten rivien tai sarakkeiden määrän mukaan.

  • Täysirankainen matriisi: Sen arvo vastaa pienempää lukua sen rivien ja sarakkeiden määrästä.
  • Pienirankainen matriisi: Sen arvo on merkittävästi pienempi kuin sekä sen rivien että sarakkeiden määrä, ja se sieppaa vähemmän piirteitä.

Suuret mallit käsittävät laajan ymmärryksen omasta alastaan, kuten kieli kielen malleissa. Mutta niiden hienosäätö tiettyihin tehtäviin usein vaatii vain pienen osan tästä ymmärryksestä. Tässä LoRA loistaa. Se ehdottaa, että matriisi, joka esittää nämä painojen säätöjä, voi olla pienirankainen, sieppaen siten vähemmän piirteitä.

LoRA rajoittaa älykkäästi päivitysmatriisin arvoa jakamalla sen kahteen pienempään arvorankaiseen matriisiin. Sen sijaan, että koko painomatriisia muutettaisiin, LoRA muuttaa vain osaa siitä, tehdessään hienosäätötehtävästä tehokkaamman.

LoRA:n soveltaminen Transformer-malleihin

LoRA auttaa vähentämään koulutuksen taakkaa neuroverkoissa keskittyessään tiettyihin painomatriiseihin. Transformer-arkkitehtuurissa tiettyjä painomatriiseja liittyy itseasiaan mekanismiin, nimittäin Wq, Wk, Wv ja Wo, sekä kaksi muuta monikerrosmallin (MLP) moduulissa.

Transformer-arkkitehtuuri

Transformer-arkkitehtuuri

 

Transformerin huomioasemat

Transformerin huomioasemat

LoRA:n taustalla oleva matemaattinen selitys

Tutustumme nyt LoRA:n taustalla olevaan matematiikkaan:

  1. Esikoulutettu painomatriisi :
    • Se alkaa esikoulutetusta painomatriisista ulottuvuuksilla . Tämä tarkoittaa, että matriisilla on riviä ja sarakkeita.
  2. Pienirankainen hajotus:
    • Sen sijaan, että suoraan päivitettäisiin koko matriisia , joka voi olla laskennallisesti kallista, menetelmä ehdottaa pienirankaisen hajotuksen lähestymistapaa.
    • Päivitys voidaan esittää kahden matriisin ja tulona.
    • Avainasia tässä on, että arvo on paljon pienempi kuin sekä että , mikä mahdollistaa laskennallisesti tehokkaamman edustamistavan.
  3. Koulutus:
    • Kun pysyy muuttumattomana. Tätä kutsutaan “jäädyttämiseksi” painoja.
    • Toisaalta ja ovat koulutettavat parametri. Tämä tarkoittaa, että koulutuksen aikana säätöjä tehdään matriiseihin ja parantamaan mallin suorituskykyä.
  4. Kertolasku ja yhteenlasku:
    • Molemmat ja päivitys (joka on ja tulonä) kerrotaan samalla syötellä (merkittynä ).
    • Näiden kertolaskujen tulokset yhdistetään.
    • Tämä prosessi on yhteenvedettynä yhtälössä: Tässä edustaa lopullista tulostetta syötteen soveltamisen jälkeen.

Lyhyesti sanottuna, tämä menetelmä mahdollistaa tehokkaamman tavan päivittää suurta painomatriisia edustamalla päivityksiä pienirankaisen hajotuksen avulla, mikä on hyödyllistä laskennallisen tehokkuuden ja muistin käytön kannalta.

LoRA-animaatio

LoRA

Alkuarvot ja skaalaus:

Kun koulutetaan malleja, se, miten parametrit alkuarvoistetaan, vaikuttaa merkittävästi koulutusprosessin tehokkuuteen ja tehokkuuteen. LoRA:n kontekstissa painomatriisin päivityksen ja :

  1. Matriisien ja alkuarvot:
    • Matriisi : Tämä matriisi alkuarvoistetaan satunnaisilla Gaussin arvoilla, eli normaalijakautumalla. Syy tähän on rikkoa symmetria: eri neuronit samassa kerroksessa oppivat eri piirteitä, kun niillä on eri alkupainot.
    • Matriisi : Tämä matriisi alkuarvoistetaan nollilla. Tämä varmistaa, että päivitys on nolla koulutuksen alussa. Se varmistaa, ettei mallin käyttäytyminen muutu äkkiä koulutuksen alussa, sallien mallille asteittaisen sopeutumisen, kun oppii soveltuvia arvoja koulutuksen aikana.
  2. Päivityksen tuloksen skaalaus :
    • Päivityksen jälkeen sen tulosta skaalataan kerroimella missä on vakio. Skaalauksella säädellään päivitysten suuruutta.
    • Skaalaus on erityisen tärkeää, kun arvo muuttuu. Esimerkiksi, jos päättää lisätä arvoa tarkkuuden vuoksi (kustannuksella laskennallisesta suorituskyvystä), skaalaus varmistaa, ettei tarvitse säätää monia muita hyperparametreja prosessin aikana. Se tarjoaa tietyn vakauden mallille.

LoRA:n käytännön vaikutus

LoRA on osoittanut potentiaalinsa sopeuttaa LLM:t tiettyihin taiteellisiin tyyliin tehokkaasti. Tämä on näkynyt esimerkiksi mallin sopeuttamisessa jäljittelemään taiteilija Greg Rutkowskin tyyliä.

Kuten korostettiin artikkelissa, jossa GPT-3 175B oli esimerkkinä. Omilla hienosäädetyillä malleilla, joilla on 175 miljardia parametria kussakin, on hyvin kallista. Mutta LoRA:n avulla koulutettavat parametrit pienenivät 10 000-kertaisesti, ja GPU-muistin käyttö leikattiin kolmannekseen.

LoRA:n vaikutus GPT-3:n hienosäätöön

LoRA:n vaikutus GPT-3:n hienosäätöön

LoRA:n menetelmä ei ainoastaan edusta merkittävää askelta LLMien saatavuuden parantamiseksi, vaan myös korostaa potentiaalia siltaa rakentaa teoreettisten edistysten ja käytännön sovellusten välille AI-alalla. Vähentämällä laskennallisia esteitä ja edistämällä tehokkaampaa mallin sopeutumisprosessia, LoRA on valmis pelaamaan ratkaisevaa roolia LLMien laajemmassa soveltamisessa ja käytössä todellisissa tilanteissa.

QLoRA (Kvantisoitu)

Vaikka LoRA on pelinmuuttaja vähentäessään tallennustarpeita, se edellyttää silti voimakasta GPU:ta mallin lataamiseen koulutusta varten. Tässä astuu kuvaan QLoRA eli Kvantisoitu LoRA, joka yhdistää LoRA:n ja kvantisaation älykkäämmin.

Kvantisaatio

Kvantisaatio

Normaalisti painoparametrit tallennetaan 32-bittisessä muodossa (FP32), mikä tarkoittaa, että jokainen alkio matriisissa vie 32 bittiä tilaa. Kuvitellaan, jos voimme pakata saman tiedon vain 8 tai jopa 4 bittiin. Tämä on Kvantisoitu LoRA:n (QLoRA) ydinidea. Kvantisaatio viittaa jatkuvien, äärettömien arvojen kartoittamiseen pienempään joukkoon diskreettejä, äärellisiä arvoja. LLMien kontekstissa se tarkoittaa mallin painojen muuntamista korkeampi- tarkkuuden data-tyypeistä matalampiin tarkkuuden tyyppeihin.

Kvantisaatio LLM:ssä

Kvantisaatio LLM:ssä

Yksinkertainen QLoRA:n hahmottelu:

  1. Alkuvaiheen kvantisaatio: Ensinnäkin suuri kielen malli kvantisoidaan 4 bittiin, mikä vähentää merkittävästi muistin käyttöä.
  2. LoRA-koulutus: Sitten suoritetaan LoRA-koulutus, mutta standardissa 32-bittisessä tarkkuudessa (FP32).

Nyt ihmettelet ehkä, miksi palata takaisin 32 bittiin koulutuksessa kvantisoitua 4 bittiin. Vastaus on, että voidakseen kouluttaa LoRA-sovittimia tehokkaasti FP32:ssa, mallin painot on palautettava takaisin FP32:een. Tämä edestakainen siirtely tehdään älykkäästi ja askel kohtaisesti välttämättä ylikuormittamasta GPU-muistia.

LoRA löytää käytännön soveltamisensa Hugging Facen Parametrinen tehokas hienosäätö (PEFT) -kirjastossa, jolloin sen käyttäminen yksinkertaistuu. Niille, jotka haluavat käyttää QLoRA:aa, se on saatavilla yhdistämällä bitsandbytes ja PEFT -kirjastot. Lisäksi HuggingFacen Transformer vahvistusoppimisen (TRL) kirjasto helpottaa valvottua hienosäätöä sisäänrakennetulla LoRA-tuella. Nämä kolme kirjastoa muodostavat olennaisen työkalupakin valitun esikoulutetun mallin hienosäätöön, mahdollistaen vakuuttavien ja yhtenäisten tuotekuvauksien luomisen, kun niille annetaan tiettyjä ominaisuusohjeita.

Koulutuksen jälkeen QLoRA:sta, painojen on palattava takaisin korkean tarkkuuden muotoon, mikä voi johtaa tarkkuuden menetykseen ja puutteeseen nopeuttamisprosessissa.

Ehdotettu ratkaisu on ryhmitellä painomatriisi pienempiin osiin ja soveltaa kvantisaatiota ja pienirankaisen sopeutumista kullekin osalle erikseen. Uusi menetelmä, nimeltään QA-LoRA, yrittää yhdistää kvantisaation ja pienirankaisen sopeutumisen hyödyt pitäen prosessin tehokkaana ja mallin tehokkaana halutuille tehtäville.

Johtopäätös

Tässä artikkelissa käsiteltiin haasteita, jotka suuret kielen mallit asettavat niiden valtavan parametrikoonsa vuoksi. Tutkimme perinteisiä hienosäätötapoja ja niiden laskennallisia ja taloudellisia vaatimuksia. LoRA:n ydin on kykynsä muuttaa esikoulutettuja malleja ilman niiden uudelleen kouluttamista, vähentäen koulutettavia parametreja ja tehdessään sopeutumisprosessista kustannustehokkaamman.

Käsiteltiin myös Kvantisoitua LoRA:aa (QLoRA:aa), joka yhdistää LoRA:n ja kvantisaation älykkäämmin. Nämä edistyneet tekniikat varustavat käytännön toteuttajia vahvalla kirjastolla, helpottaen LLMien helppoa soveltamista ja käyttöä laajalla skaalalla todellisissa tilanteissa.

Matriisi

Matriisi

Nämä strategiat on suunniteltu tasapainottamaan LLMien sopeuttamista tiettyihin tehtäviin ja varmistamaan, että hienosäätö- ja käyttöprosessit eivät ole liian vaativia laskennallisesti tai tallennuksessa.

Olen viettänyt viimeiset viisi vuotta uppoutumalla kiinnostavaan koneoppimisen ja syvän oppimisen maailmaan. Minun intohimoni ja asiantuntemukseni ovat johtaneet minun osallistumiseen yli 50:een monipuoliseen ohjelmistosuunnitteluhankkeeseen, joissa on erityisesti painottunut AI/ML. Minun jatkuva uteliaisuuteni on myös ohjannut minun luontaisen kielen prosessoinnin pariin, jota haluan tutkia tarkemmin.