Mitä LoRA tarkoittaa AI:ssa?
LoRA on lyhenne termistä Low-Rank Adaptation. Se on parametritehokas hienosäätömenetelmä, joka pitää esikoulutetun mallin alkuperäiset painot jäädytettyinä ja oppii valituille kerroksille paljon pienempiä matalan asteen matriiseja. Opitut päivitykset voidaan tallentaa adapterina ja käyttää myöhemmin yhteensopivan perusmallin kanssa.

Tämä sivu käsittelee AI-mallien mukauttamista. LoRa, jossa ”a” on pienellä, on myös pitkän kantaman radiotekniikan nimi. Se ei liity kieli- tai kuvagenerointimallien LoRA-adaptereihin.
Perusajatus ilman algebran sumua
Tavanomainen täysi finetuning voi päivittää mallin monia tai kaikkia parametreja. LoRA olettaa, että tietyn tehtävän hyödyllinen muutos voidaan usein esittää paljon harvemmilla vapausasteilla. Täyden päivitysmatriisin oppimisen sijaan se ilmaisee päivityksen kahden ohuemman matriisin tulona rank-arvolla r.
Todellinen paino yhdistää jäädytetyn peruspainon skaalattuun matalan asteen päivitykseen:
W′ = W + (B × A) · scale
Jos valittu rank-arvo on paljon alkuperäisiä ulottuvuuksia pienempi, matriisit A ja B sisältävät huomattavasti vähemmän koulutettavia parametreja kuin täysi päivitys. Tämä vähentää koulutuksen muistintarvetta ja tuottaa kompaktin adapteriartefaktin. Perusmalli tekee silti suurimman osan työstä.
LoRA-malli, LoRA-adapteri ja LoRA-painot
Näitä ilmauksia käytetään väljästi, joten ne kannattaa erottaa toisistaan:
- LoRA-menetelmä: finetuning-vaiheessa käytetty matalan asteen mukautustekniikka.
- LoRA-adapteri: opittu päivitys sekä määritys, jonka avulla se voidaan ottaa käyttöön yhteensopivassa perusmallissa.
- LoRA-painot: adapterin koulutettavat tensorien arvot.
- ”LoRA-malli”: yleinen lyhenne joko adapterille tai perusmallin ja adapterin yhdistelmälle. Termi on moniselitteinen; kysy, mikä artefakti todella on käytettävissä.
Ladattu LoRA-tiedosto ei yleensä sisällä koko perusmallia. Siksi käyttöliittymä pyytää valitsemaan checkpointin ja ottamaan sitten käyttöön yhden tai useamman vaihtoehdon joukosta LoRAs.
Mitä LoRA voi oppia?
Kielimalleissa adapteri voi erikoistaa käyttäytymistä tietylle alalle, tehtävälle tai ohjetyylille. Diffuusiomalleissa LoRAs käytetään yleisesti visuaalisiin tyyleihin, hahmoihin, aiheisiin, tuotteisiin, käsitteisiin tai pienempiin käyttäytymismuutoksiin. Kohdemoduulit, rank-arvo, dataset ja koulutusmenettely ratkaisevat, mitä adapteri pystyy ilmaisemaan.
LoRA ei takaa laatua tai uskollisuutta. Kompakti adapteri voi ylisovittua, olla ristiriidassa perusmallinsa kanssa, reagoida arvaamattomasti eri voimakkuuksilla tai riippua trigger tokens -tunnisteista ja esikäsittelyvalinnoista. Käsittele mallikorttia ja koulutuskontekstia toiminnallisina metatietoina, älä koristeina.
Miten adapteria käytetään päättelyvaiheessa
Yhteensopiva kehys lataa perusmallin, lukee adapterin määrityksen ja käyttää sen tensoreita kohdemoduuleihin. Jotkin ajoympäristöt pitävät päivityksen erillään, jotta sen voi ottaa käyttöön, painottaa tai poistaa käytöstä. Toiset voivat yhdistää päivityksen käyttöönottoa varten johdettuun kopioon.
Yhdistäminen ei tee alkuperäisestä adapterista itsenäistä. Jos haluat säätää voimakkuutta, yhdistää adaptereita tai toisintaa tulostiedoston, säilytä yhdistämätön adapteri, täsmällinen perusmalli ja resepti. Checkpoint verrattuna LoRA-adapteriin -opas kartoittaa nämä palautuserot.
LoRA, QLoRA ja täysi finetuning
LoRA kuvaa matalan asteen päivitystä. QLoRA yhdistää LoRA-koulutuksen kvantisoituun jäädytettyyn perusmalliin ja muihin muistia säästäviin tekniikoihin. Lopullinen toimitus voi silti olla adapteri, joten tiedostonimi ei välttämättä paljasta, miten se koulutettiin. Menetelmätason vertailu on sivulla LoRA verrattuna QLoRA-menetelmään.
Täysi finetuning päivittää paljon suuremman osan mallista ja voi tarjota erilaisia kapasiteetti- ja käyttöönoton kompromisseja, mutta se tuottaa suuremman tilan ja vaatii enemmän resursseja. Oikea valinta riippuu tehtävästä, laitteistosta, arvioinnista ja käyttöönotosta — ei oletuksesta, että jokin menetelmä olisi aina ”ammattimaisempi”.
Miksi LoRA-kirjastot kasvavat silti suuriksi
Yksi adapteri on perusmalliinsa verrattuna kompakti, mutta kokoelmat kasvavat varianttien, rank-arvojen, epookkien, voimakkuuksien, kaksoislatausten ja useiden yhteensopivien perusmalliperheiden myötä. Perus-checkpointit, VAEs, enkooderit, esikatselut ja koulutustulokset ovat usein yksittäistä adapteria paljon suurempia. Pienten tiedostojen kansio voi siksi riippua huomattavasti laajemmasta mallikokonaisuudesta.
Järjestä yksi perusmalli ja monta adapteria oppaan avulla ja käytä käytännön työnkulkua LoRA-levytilan vapauttamiseen painoja muuttamatta. Tavoitteena on palautettava yhtenäinen perhe, ei hinnalla millä hyvänsä mahdollisimman pieni hakemisto.
Mitä LoRA-adapterin kanssa pitäisi arkistoida?
Säilytä vähintään adapteripainot, niiden määritys ja perusmallin täsmällinen tunniste. Jos perusmalli on yksityinen, paikallisesti muokattu tai vaarassa kadota, säilytä myös juuri kyseinen perusmalli. Säilytä toisinnettavuutta varten olennaiset trigger tokens -tunnisteet, koulutusmääritys, dataset-viite, lisenssi tai käyttöehdot ja tarkistussummat.
Tensor Archive säilyttää valitut paikalliset tensoriperheet ja varmentaa täsmällisen palautuksen. Se ei luo uudelleen puuttuvaa perusmallia, keksi adapterin metatietoja eikä todista kahden samankaltaisesti nimetyn arkkitehtuurin yhteensopivuutta.
Lähteet
- LoRA: Low-Rank Adaptation of Large Language Models — alkuperäinen tutkimusjulkaisu, joka määrittelee jäädytetyt esikoulutetut painot ja koulutettavan matalan asteen hajotelman.
- Hugging Face PEFT: LoRA — nykyiset määritys-, rank-, skaalaus- ja kohdemoduulikäsitteet.
- Hugging Face PEFT -checkpoint-muoto — mitä adapterien checkpointit tallentavat ja miten ne viittaavat perusmalliin.
- Diffusers: adapterien lataaminen — LoRA-adapterien käyttäminen, painottaminen, poistaminen käytöstä ja yhdistäminen.