Hoppa till innehållet

Transformator (maskininlärningsmodell)

Från Wikipedia
Version från den 18 januari 2024 kl. 13.19 av MartinL (Diskussion | Bidrag) (Arkitektur: Liten textputs (ett ord))

En transformator (från engelska: Transformer) är en maskininlärningsmodell som använder sig av en mekanism kallad självuppmärksamhet för att vikta olika delar av inmatningsdatan. Den används främst inom fälten datorlingvistik eller datorseende.

Bakgrund

Innan transformatorer utvecklades användes rekurrenta neurala nätverk av typen Long short-term memory (LSTM) eller Gated recurrent unit (GRU) för sekvens till sekvensmodelering, däribland maskinöversättning. Dessa har vanligtvis problem att bearbeta längre sekvenser på grund av det försvinnande gradientproblemet (vanishing gradient problem). I en transformator bearbetas hela inmatningssekvensen samtidigt, och det sker ingen sekventiell bearbetning.

Arkitektur

Modellen består av en kodare (encoder) som ansvarar för att bearbeta inmatningen, samt en avkodare (decoder) som ansvarar för att kombinera en representation av inmatningen samt tidigare utmatning för att prediktera nästa symbol i sekvensen. I originalutförandet för maskinöversättning är modellen autoregressiv, vilket innebär att en representation för hela inmatningen (texten på originalspråket) alltid matas in samtidigt vid varje steg i kodaren. Tidigare utmatning (texten som har översatts hittills) matas in i avkodaren. Modellen predikterar sedan nästa ord i den hittills översatta texten.

Inmatningen processas i flera steg i kodaren (encoder). Den består av en mekanism där de olika symbolerna i inmatningen viktas mot varandra med självuppmärksamhet vilken räknar fram hur de relaterar till varandra. Denna process görs i flera omgångar parallellt i en så kallad månghövdad uppmärksamhet. Resultaten från samtliga huvuden skalas sedan var och en för sig och kombineras med en linjärtransformation. En lagervis normalisering genomförs varpå representationen transformeras med ett framåtkopplat neuronnätverk med två lager. Denna procedur repeteras i flera omgångar i så kallade block.

Referenser