Transformator (maskininlärningsmodell)

maskininlärningsmodell från Google Brain

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 redigera

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 redigera

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.

Tillämpningar redigera

Bidirectional Encoder Representations from Transformers (BERT) är en språkmodell baserad på transformatorstrukturen. Modellen lanserades i oktober 2018 av forskare på Google. Anmärkningsvärt var att BERT, vid tiden för lansering, uppnådde mycket högre prestanda jämfört med existerande språkmodeller som tidigare ansågs vara state of the art.[1]

BERT implementerades först i det engelska språket och i två modellstorlekar: (1) BERTBASE: 12 kodare med 12 dubbelriktade "huvuden" för självuppmärksamhet med totalt 110 miljoner parametrar för träning, och (2) BERTLARGE: 24 kodare med 16 dubbelriktade "huvuden" för självuppmärksamhet med totalt 340 miljoner träningsbara parametrar.[1] Båda modeller tränades på datasetet Toronto BookCorpus[2] (800 miljoner ord) och det engelska Wikipedia (2500 miljoner ord).

Referenser redigera

Noter redigera

  1. ^ [a b] Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova (24 maj 2019). ”BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”. arXiv. doi:https://doi.org/10.48550/arXiv.1810.04805. https://arxiv.org/abs/1810.04805v2. Läst 12 februari 2024. 
  2. ^ Zhu, Yukun; Kiros, Ryan; Zemel, Rich; Salakhutdinov, Ruslan; Urtasun, Raquel; Torralba, Antonio (2015-12). ”Aligning Books and Movies: Towards Story-Like Visual Explanations by Watching Movies and Reading Books”. 2015 IEEE International Conference on Computer Vision (ICCV) (IEEE). doi:10.1109/iccv.2015.11. http://dx.doi.org/10.1109/iccv.2015.11. Läst 12 februari 2024.