Home Nieuws RoPE, duidelijk uitgelegd | Op weg naar datawetenschap

RoPE, duidelijk uitgelegd | Op weg naar datawetenschap

2
0
RoPE, duidelijk uitgelegd | Op weg naar datawetenschap

Er zijn tal van goede bronnen online die de transformatorarchitectuur uitleggen, maar Inbedding van roterende positie (RoPE) wordt vaak slecht uitgelegd of helemaal overgeslagen.

RoPE werd voor het eerst geïntroduceerd in het artikel RoFormer: Enhanced Transformer with Rotary Position Embedding, en hoewel de betrokken wiskundige bewerkingen relatief eenvoudig zijn – voornamelijk rotatiematrix en matrixvermenigvuldigingen – ligt de echte uitdaging in het begrijpen van de intuïtie achter hoe het werkt. Ik zal proberen een manier te bieden om te visualiseren wat het met vectoren doet en uit te leggen waarom deze aanpak zo effectief is.

Ik neem aan dat je in dit bericht een basiskennis hebt van transformatoren en het aandachtsmechanisme.

RoPE-intuïtie

Omdat transformatoren geen inherent begrip hebben van orde en afstanden, ontwikkelden onderzoekers positionele inbedding. Dit is wat positionele inbedding zou moeten bereiken:

  • Tokens die dichter bij elkaar liggen, moeten met hogere gewichten aanwezig zijn, terwijl tokens op afstand met lagere gewichten moeten aanwezig zijn.
  • De positie binnen een reeks zou er niet toe moeten doen, dat wil zeggen dat als twee woorden dicht bij elkaar staan, ze met een hoger gewicht op elkaar moeten letten, ongeacht of ze aan het begin of aan het einde van een lange reeks voorkomen.
  • Om deze doelen te bereiken, relatieve positionele inbedding zijn veel nuttiger dan absolute positionele inbedding.

Belangrijk inzicht: LLM’s moeten zich concentreren op de relatieve posities tussen twee tokens, wat echt belangrijk is voor de aandacht.

Als u deze concepten begrijpt, bent u al halverwege.

Vóór RoPE

De originele positionele inbedding uit het baanbrekende artikel Attention is All You Need werd gedefinieerd door een gesloten vormvergelijking en vervolgens toegevoegd aan de semantische inbedding. Het mixen van positie- en semantische signalen in de verborgen staat was geen goed idee. Later onderzoek bevestigde dat LLM’s posities memoriseerden (overfitting) in plaats van generaliseerden, wat een snelle verslechtering veroorzaakte wanneer de reekslengte de trainingsgegevens overschreed. Maar het gebruik van een formule in gesloten vorm is zinvol; het stelt ons in staat deze voor onbepaalde tijd uit te breiden, en RoPE doet iets soortgelijks.

Eén strategie die succesvol bleek bij het vroege deep learning was: als je niet zeker weet hoe je nuttige functies voor een neuraal netwerk moet berekenen, laat het netwerk deze dan zelf leren! Dat is wat modellen als GPT-3 deden: ze leerden hun eigen positie-inbedding. Het bieden van te veel vrijheid vergroot echter de risico’s van overfitting en creëert in dit geval harde limieten voor contextvensters (u kunt deze niet uitbreiden buiten uw getrainde contextvenster).

De beste benaderingen waren gericht op het aanpassen van het aandachtsmechanisme, zodat tokens in de buurt een hoger aandachtsgewicht krijgen, terwijl tokens op afstand een lager gewicht krijgen. Door de positie-informatie te isoleren in het aandachtsmechanisme, blijft de verborgen toestand behouden en blijft deze gefocust op de semantiek. Deze technieken probeerden vooral slim te modificeren Q En K dus hun puntproducten zouden de nabijheid weerspiegelen. Veel kranten probeerden verschillende methoden, maar RoPE was degene die het probleem het beste oploste.

Rotatie intuïtie

RoPE wijzigt Q En K door er rotaties op toe te passen. Een van de mooiste eigenschappen van rotatie is dat het vectormodules (grootte) behoudt, die mogelijk semantische informatie bevatten.

Laten q wees de vraagprojectie van een token en k wees de belangrijkste projectie van een ander. Voor tokens die zich dichtbij in de tekst bevinden, wordt minimale rotatie toegepast, terwijl tokens op afstand grotere rotatietransformaties ondergaan.

Stel je twee identieke projectievectoren voor: elke rotatie zou ze verder van elkaar verwijderd maken. Dat is precies wat wij willen.

Afbeelding door auteur: RoPE Rotatie-animatie

Hier is sprake van een potentieel verwarrende situatie: als twee projectievectoren al ver uit elkaar liggen, kan rotatie ze dichter bij elkaar brengen. Dat is niet wat wij willen! Ze worden geroteerd omdat ze ver weg staan ​​in de tekst en dus geen hoge aandachtswaarde mogen krijgen. Waarom werkt dit nog steeds?

  • In 2D is er slechts één rotatievlak (xy). Je kunt alleen met de klok mee of tegen de klok in draaien.
  • In 3D zijn er oneindig veel rotatievlakken, waardoor het hoogst onwaarschijnlijk is dat rotatie twee vectoren dichter bij elkaar zal brengen.
  • Moderne modellen werken in zeer hoogdimensionale ruimtes (10k+ afmetingen), waardoor dit nog onwaarschijnlijker wordt.

Onthoud: bij diepgaand leren zijn kansen het belangrijkst! Het is acceptabel om af en toe ongelijk te hebben, zolang de kansen maar klein zijn.

Hoek van rotatie

De rotatiehoek is afhankelijk van twee factoren: m En i. Laten we ze allemaal onderzoeken.

Token absolute positie m

De rotatie neemt toe naarmate de absolute positie van het token toeneemt m neemt toe.

Ik weet wat je denkt: “m is een absolute positie, maar zei je niet dat relatieve posities er het meest toe doen?”

Hier is de magie: beschouw een 2D-vlak waarin je de ene vector roteert met 𝛼 en de andere met β. Het hoekverschil daartussen wordt 𝛼-β. De absolute waarden van 𝛼 en β doen er niet toe, alleen hun verschil doet er toe. Dus voor twee tokens op posities m En nde rotatie wijzigt de hoek ertussen proportioneel m-n.

Afbeelding door auteur: Relatieve afstand na rotatie

Voor de eenvoud kunnen we denken dat we alleen maar roteren q (dit is wiskundig nauwkeurig omdat het ons om de uiteindelijke afstanden gaat, niet om de coördinaten).

Verborgen staatsindex i

In plaats van uniforme rotatie toe te passen over alle dimensies van verborgen toestanden, verwerkt RoPE twee dimensies tegelijk, waarbij op elk paar verschillende rotatiehoeken worden toegepast. Met andere woorden, het verdeelt de lange vector in meerdere paren die in 2D onder verschillende hoeken kunnen worden geroteerd.

We roteren de dimensies van verborgen toestanden anders – de rotatie is hoger wanneer i is laag (vectorbegin) en lager wanneer i is hoog (vectoreinde).

Het begrijpen van deze operatie is eenvoudig, maar begrijpen waarom we deze nodig hebben, vereist meer uitleg:

  • Het stelt het model in staat om te kiezen wat zou moeten hebben kortere of langere invloedsgebieden.
  • Stel je vectoren voor in 3D (xyz).
  • De x En y assen vertegenwoordigen vroege dimensies (laag i) die een hogere rotatie ondergaan. Tokens worden voornamelijk geprojecteerd op x En y moet heel dichtbij zijn om met hoge intensiteit bij te wonen.
  • De z as, waar i is hoger, draait minder. Tokens worden voornamelijk geprojecteerd op z kan aanwezig zijn, zelfs als het ver weg is.
Afbeelding door auteur: We passen rotatie toe op de xy vliegtuig. Twee vectoren die informatie coderen, voornamelijk in z blijf dichtbij ondanks rotatie (tokens die ondanks langere afstanden aanwezig moeten zijn!)
Afbeelding door auteur: Twee vectoren coderen informatie in x En y erg ver uit elkaar liggen (fiches in de buurt waar de een niet op de ander moet letten).

Deze structuur legt ingewikkelde nuances in de menselijke taal vast – best gaaf, toch?

Nogmaals, ik weet wat je denkt: “na te veel rotatie komen ze weer dichtbij”.

Dat klopt, maar dit is waarom het nog steeds werkt:

  1. We visualiseren in 3D, maar dit gebeurt eigenlijk in veel hogere dimensies.
  2. Hoewel sommige dimensies dichter bij elkaar komen, blijven andere, die langzamer roteren, verder uit elkaar groeien. Vandaar het belang van het roteren van afmetingen onder verschillende hoeken.
  3. RoPE is niet perfect; vanwege het roterende karakter komen lokale maxima voor. Zie de theoretische grafiek van de oorspronkelijke auteurs:
Bron: Su et al., 2021. Theoretische curve verstrekt door de auteurs van het RoFormer-artikel.

De theoretische curve heeft een aantal gekke hobbels, maar in de praktijk vond ik dat deze zich veel beter gedroeg:

Afbeelding door auteur: Afstanden van nul tot 500.

Een idee dat bij me opkwam, was het afsnijden van de rotatiehoek, zodat de gelijkenis strikt afneemt naarmate de afstand groter wordt. Ik heb gezien dat clipping wordt toegepast op andere technieken, maar niet op RoPE.

Houd er rekening mee dat de cosinus-overeenkomst de neiging heeft te groeien (hoewel langzaam) naarmate de afstand veel groter wordt dan onze basiswaarde (later zul je precies zien wat deze basis van de formule is). Een eenvoudige oplossing hier is om de basis te vergroten, of dit zelfs door technieken als lokale aandacht of raamaandacht te laten doen.

Afbeelding door auteur: Uitbreiden tot een afstand van 50 km.

Kort gezegd: de LLM leert betekenisinvloeden op lange en korte afstand te projecteren in verschillende dimensies van q En k.

Hier volgen enkele concrete voorbeelden van afhankelijkheden op lange en korte termijn:

  • De LLM verwerkt Python-code waarbij een initiële transformatie wordt toegepast op een dataframe df. Deze relevante informatie zou potentieel over een groot bereik moeten reiken en de contextuele inbedding van downstream moeten beïnvloeden df tokens.
  • Bijvoeglijke naamwoorden karakteriseren doorgaans dichtbij zelfstandige naamwoorden. In “Een prachtige berg strekt zich uit voorbij de vallei”, het bijvoeglijk naamwoord mooi beschrijft specifiek de bergniet de valleidus het zou vooral van invloed moeten zijn op de berg inbedden.

De hoekformule

Nu je de concepten begrijpt en een sterke intuïtie hebt, zijn hier de vergelijkingen. De rotatiehoek wordt gedefinieerd door:

(text{hoek} = m times theta)
(theta = 10.000^{-2(i-1)/d_{model}})

  • m is de absolute positie van het token
  • i ∈ {1, 2, …, d/2} vertegenwoordigt dimensies van verborgen toestanden, aangezien we twee dimensies tegelijk verwerken, hoeven we alleen maar te herhalen d/2 in plaats van d.
  • dmodel is de dimensie van de verborgen toestand (bijvoorbeeld 4.096)

Merk op dat wanneer:

(i=1 Pijl naar rechts theta=1 quad text{(hoge rotatie)} )
(i=d/2 Pijl naar rechts theta circa 1/10.000 quad text{(lage rotatie)})

Conclusie

  • We moeten slimme manieren vinden om kennis in LLM’s te injecteren in plaats van ze alles zelfstandig te laten leren.
  • We doen dit door de juiste bewerkingen te bieden die een neuraal netwerk nodig heeft om gegevens te verwerken – aandacht en convoluties zijn geweldige voorbeelden.
  • Vergelijkingen in gesloten vorm kunnen voor onbepaalde tijd worden uitgebreid, omdat u niet elke positie-inbedding hoeft te leren.
  • Dit is de reden waarom RoPE een uitstekende flexibiliteit in de sequentielengte biedt.
  • De belangrijkste eigenschap: het aandachtsgewicht neemt af naarmate de relatieve afstanden groter worden.
  • Dit volgt dezelfde intuïtie als lokale aandacht in afwisselende aandachtsarchitecturen.

Nieuwsbron

LAAT EEN REACTIE ACHTER

Vul alstublieft uw commentaar in!
Vul hier uw naam in