งานวิจัย · arXiv 2104.09864
RoFormer: โมเดล Transformer ที่ได้รับการพัฒนาด้วย Rotary Position Embedding
RoFormer: Enhanced Transformer with Rotary Position Embedding
เผยแพร่ cs.CLcs.AIcs.LG arXivPDF
สรุปสามบรรทัด
- 🎯 Position embedding แบบมาตรฐานมักเป็นเวกเตอร์สัมบูรณ์แบบบวกเพิ่ม หรือเป็นการดัดแปลงเชิงสัมพัทธ์ที่ไม่รองรับการใช้งานร่วมกับ linear self-attention
- 🔧 RoPE คูณเวกเตอร์ query และ key ด้วยเมทริกซ์การหมุนแบบ block-diagonal ที่เป็นเชิงตั้งฉาก เพื่อให้ผลคูณภายใน (inner product) ขึ้นอยู่กับระยะห่างสัมพัทธ์ของโทเคนเพียงอย่างเดียว
- 📈 ทำคะแนน BLEU ได้ 27.5 บน WMT 2014 En-De มีการลู่เข้าที่เร็วกว่าในการ pre-training และทำความแม่นยำเหนือกว่า WoBERT บน CAIL2019-SCM อยู่ 1.5% ที่ความยาวลำดับ 1024
บทคัดย่อ
การเข้ารหัสตำแหน่ง (Position encoding) ได้แสดงให้เห็นถึงประสิทธิภาพที่ดีในสถาปัตยกรรม Transformer เมื่อไม่นานมานี้ โดยช่วยให้การจำลองการขึ้นต่อกันระหว่างองค์ประกอบที่ตำแหน่งต่าง ๆ ของลำดับข้อมูลมีประสิทธิภาพสูง ในบทความวิจัยนี้ เราได้สำรวจวิธีการต่าง ๆ ในการรวมข้อมูลตำแหน่งเข้าสู่กระบวนการเรียนรู้ของโมเดลภาษาที่ใช้ Transformer เป็นอันดับแรก จากนั้น เรานำเสนอวิธีการแบบใหม่ชื่อว่า Rotary Position Embedding (RoPE) เพื่อใช้ประโยชน์จากข้อมูลตำแหน่งอย่างมีประสิทธิภาพ โดยเฉพาะอย่างยิ่ง RoPE ที่นำเสนอนี้จะเข้ารหัสตำแหน่งสัมบูรณ์ด้วยเมทริกซ์การหมุน และในขณะเดียวกันก็นำการพึ่งพาตำแหน่งสัมพัทธ์ที่ชัดเจนมารวมเข้ากับสูตรคำนวณของ self-attention ทั้งนี้ RoPE มีคุณสมบัติที่เป็นประโยชน์หลายประการ ได้แก่ ความยืดหยุ่นของความยาวลำดับข้อมูล, การลดทอนการพึ่งพากันระหว่างโทเคนเมื่อระยะห่างสัมพัทธ์เพิ่มขึ้น และความสามารถในการติดตั้งการเข้ารหัสตำแหน่งสัมพัทธ์ให้กับ linear self-attention ในขั้นตอนสุดท้าย เราได้ประเมินโมเดล Transformer ที่เสริมด้วย rotary position embedding ซึ่งมีชื่อว่า RoFormer บนชุดข้อมูลมาตรฐานสำหรับการจำแนกข้อความขนาดยาวหลายชุด การทดลองของเราแสดงให้เห็นว่าโมเดลนี้เหนือกว่าทางเลือกอื่นอย่างสม่ำเสมอ นอกจากนี้ เรายังได้วิเคราะห์ทางทฤษฎีเพื่ออธิบายผลการทดลองบางส่วน ทั้งนี้ RoFormer ได้ถูกรวมเข้ากับไลบรารี Huggingface แล้ว: \url{https://huggingface.co/docs/transformers/model_doc/roformer}
บทคัดย่อต้นฉบับ (ภาษาอังกฤษ)
Position encoding recently has shown effective in the transformer architecture. It enables valuable supervision for dependency modeling between elements at different positions of the sequence. In this paper, we first investigate various methods to integrate positional information into the learning process of transformer-based language models. Then, we propose a novel method named Rotary Position Embedding(RoPE) to effectively leverage the positional information. Specifically, the proposed RoPE encodes the absolute position with a rotation matrix and meanwhile incorporates the explicit relative position dependency in self-attention formulation. Notably, RoPE enables valuable properties, including the flexibility of sequence length, decaying inter-token dependency with increasing relative distances, and the capability of equipping the linear self-attention with relative position encoding. Finally, we evaluate the enhanced transformer with rotary position embedding, also called RoFormer, on various long text classification benchmark datasets. Our experiments show that it consistently overcomes its alternatives. Furthermore, we provide a theoretical analysis to explain some experimental results. RoFormer is already integrated into Huggingface: \url{https://huggingface.co/docs/transformers/model_doc/roformer}.
คู่มือการอ่าน
ปัญหาและแรงจูงใจ
กลไก Self-attention ใน Transformers มีคุณสมบัติไม่แปรผันตามการเรียงสับเปลี่ยน (permutation-invariant) โดยเนื้อแท้ จึงจำเป็นต้องมีข้อมูลตำแหน่งที่ชัดเจน แนวทางก่อนหน้านี้แบ่งออกเป็นสองกลุ่มหลัก ได้แก่ absolute position embeddings ที่บวกเข้ากับ representation ของคำโดยตรง (เวกเตอร์ที่ได้จากการเรียนรู้หรือเวกเตอร์ sinusoidal คงที่) และ relative position embeddings ที่ผสานรวมเข้ากับเมทริกซ์ attention (เช่น Shaw et al., Transformer-XL, T5, DeBERTa) อย่างไรก็ตาม วิธีการเชิงสัมพัทธ์ส่วนใหญ่ต้องพึ่งพาการแยกส่วนแบบบวกเพื่อแก้ไขค่า attention logit ในขั้นตอนกลาง ทำให้ไม่สามารถทำงานร่วมกับกลไก linear self-attention แบบอิงเคอร์เนลที่ต้องการ representation ซึ่งแยกตัวประกอบได้ นอกจากนี้ โมเดลมักประสบปัญหาในการปรับขนาดตามความยาวลำดับที่เปลี่ยนแปลงไปได้อย่างราบรื่น
แนวคิดหลัก
- ระยะห่างสัมพัทธ์ผ่านการหมุนเวกเตอร์ (Relative Distance via Vector Rotation): แทนที่จะบวกเวกเตอร์ตำแหน่ง RoPE จะใช้เมทริกซ์การหมุนที่ขึ้นกับตำแหน่งกับเวกเตอร์ query และ key ที่ผ่านการแปลงแบบแอฟฟายน์แล้ว ผลคูณภายในระหว่าง query ที่หมุนที่ดัชนี และ key ที่หมุนที่ดัชนี จะขึ้นอยู่กับระยะห่างสัมพัทธ์ โดยธรรมชาติ
- ความเป็นเชิงตั้งฉากและการรักษานอร์ม (Orthogonality and Norm Preservation): เนื่องจากตัวดำเนินการหมุนเป็นเชิงตั้งฉาก (orthogonal) จึงสามารถรักษานอร์มแบบยุคลิด (Euclidean norm) ของ query และ key ไว้ได้ ซึ่งช่วยรักษาเสถียรภาพของ hidden states
- การลดทอนระยะยาว (Long-term Decay): การลดหลั่นตามความถี่แบบ sinusoidal ทำให้ปฏิสัมพันธ์ระหว่างโทเคนลดลงตามธรรมชาติเมื่อระยะห่างสัมพัทธ์เพิ่มขึ้น ซึ่งสอดคล้องกับสัญชาตญาณทางภาษาที่ว่าโทเคนที่อยู่ห่างกันจะมีความขึ้นต่อกันน้อยกว่า
- ความเข้ากันได้กับ Linear Attention: เนื่องจากข้อมูลตำแหน่งถูกนำไปใช้กับเวกเตอร์โทเคนโดยตรงก่อนการทำ dot product ทำให้ RoPE สามารถใช้ร่วมกับ linear attention ที่อิงเคอร์เนล (เช่น Performer) ได้
ระเบียบวิธี (พร้อมสมการสำคัญ)
เป้าหมายคือการหาฟังก์ชัน และ ที่มีผลคูณภายในขึ้นอยู่กับ embedding และระยะห่างสัมพัทธ์เท่านั้น:
ในปริภูมิย่อย 2 มิติ การปฏิบัติต่อเวกเตอร์จริงเป็นจำนวนเชิงซ้อนจะให้ผลลัพธ์ดังนี้:
สำหรับมิติ embedding ที่เป็นจำนวนคู่ ปริภูมิจะถูกแบ่งออกเป็น ปริภูมิย่อย 2 มิติด้วยความถี่ การแปลงทั่วไปจะใช้เมทริกซ์การหมุนแบบ block-diagonal :
คะแนน attention ที่ได้ระหว่างตำแหน่ง และ จะสอดคล้องกับ:
เพื่อคำนวณสิ่งนี้อย่างมีประสิทธิภาพโดยไม่ต้องคูณเมทริกซ์แบบเบาบาง (sparse matrix multiplication) RoPE จึงถูกประมวลผลผ่านการดำเนินการแบบทีละสมาชิก (element-wise):
ผลลัพธ์ (พร้อมตัวเลขที่สำคัญที่สุด)
- การแปลภาษาด้วยเครื่อง (Machine Translation): บนชุดข้อมูล WMT 2014 ภาษาอังกฤษ-เยอรมัน RoFormer ทำได้ 27.5 BLEU ซึ่งเหนือกว่าโมเดลพื้นฐาน Transformer-base (27.3 BLEU)
- การลู่เข้าในการ Pre-training: เมื่อฝึกฝน BERT-base ร่วมกับ RoPE บน BookCorpus และ Wikipedia พบว่า RoFormer ลู่เข้าได้เร็วกว่าและมีค่า loss ของ masked language modeling (MLM) ต่ำกว่า vanilla BERT
- การ Fine-Tuning บน GLUE: RoFormer ที่ผ่านการ pre-train ช่วยเพิ่มคะแนนปลายน้ำได้อย่างมีนัยสำคัญบน MRPC (F1 89.5 เทียบกับ 88.9), STS-B (Spearman 87.0 เทียบกับ 85.8) และ QQP (F1 86.4 เทียบกับ 71.2) แม้ว่าจะได้คะแนนต่ำกว่า BERT บน SST-2 (90.7 เทียบกับ 93.5), QNLI (88.0 เทียบกับ 90.5) และ MNLI-m/mm (80.2/79.8 เทียบกับ 84.6/83.4)
- Linear Attention (Performer): บนชุดข้อมูล Enwik8 การเพิ่ม RoPE ให้กับ Performer แบบ character-based จำนวน 12 เลเยอร์ ช่วยเร่งการลู่เข้าได้อย่างมีนัยสำคัญและลดค่า training loss ลงได้
- การจับคู่เชิงความหมายของข้อความขนาดยาว (Long Text Semantic Matching): บน CAIL2019-SCM ตัวแบบ RoFormer-512 มีความแม่นยำในการทดสอบ 68.29% (เทียบกับ 67.77% สำหรับ BERT-512 และ 68.10% สำหรับ WoBERT-512) และเมื่อขยายเป็น RoFormer-1024 ความแม่นยำในการทดสอบเพิ่มขึ้นเป็น 69.79% (เพิ่มขึ้นสัมบูรณ์ 1.5% เมื่อเทียบกับ WoBERT-512)
ข้อจำกัดและประเด็นที่ยังเปิดกว้าง
- งานวิจัยระบุว่ายังขาดคำอธิบายเชิงทฤษฎีว่าเหตุใดสูตรการหมุนแบบ 2 มิติจึงลู่เข้าได้เร็วกว่าในระหว่างการ pre-training เมื่อเทียบกับทางเลือกแบบบวก
- แม้ว่าคุณสมบัติการลดทอนระยะยาวจะได้รับการพิสูจน์ทางคณิตศาสตร์แล้ว แต่เหตุผลที่ RoFormer สรุปผลเชิงนามธรรมบนลำดับขนาดยาวได้ดีกว่าโมเดลในระดับเดียวกันอย่างชัดเจนยังคงเป็นประเด็นที่ต้องศึกษาต่อ
- การประเมิน RoFormer ผ่านการ pre-training ขนาดใหญ่ต้องใช้ทรัพยากรการประมวลผล GPU สูง จึงยังคงต้องศึกษาคุณสมบัติการขยายขนาด (scaling) ในภาพกว้างต่อไปในอนาคต
คำศัพท์สำคัญ
- Rotary Position Embedding (RoPE)
- กลไกการเข้ารหัสตำแหน่งที่แทรกข้อมูลตำแหน่งโดยการคูณ representation ของ query และ key ด้วยเมทริกซ์การหมุนแบบ block-diagonal ที่เป็นเชิงตั้งฉาก
- RoFormer
- สถาปัตยกรรม Transformer ที่ติดตั้ง Rotary Position Embedding แทนการเข้ารหัสตำแหน่งแบบสัมบูรณ์มาตรฐานหรือแบบสัมพัทธ์ที่ใช้การบวก
- Long-term Decay
- คุณสมบัติทางคณิตศาสตร์ที่ผลคูณภายในของ query และ key จะลดลงเมื่อระยะห่างตำแหน่งสัมพัทธ์ เพิ่มขึ้น
- Linear Attention
- กลไก attention ที่คำนวณเคอร์เนล feature map เพื่อเปลี่ยนลำดับการคูณเมทริกซ์และทำให้มีความซับซ้อนในการคำนวณแบบเชิงเส้นเป็น
- PerFormer
- สถาปัตยกรรม Transformer แบบ linear attention ที่ได้รับการทดสอบในบทความวิจัยนี้ เพื่อแสดงให้เห็นว่า RoPE สามารถเสริมข้อมูลตำแหน่งสัมพัทธ์ให้กับ linear attention ได้อย่างราบรื่น
- CAIL2019-SCM
- ชุดข้อมูลมาตรฐานการจับคู่คดีที่คล้ายคลึงกันของ Chinese AI and Law 2019 ซึ่งประกอบด้วยกลุ่มคดีความสามคดี ใช้เพื่อประเมินความสามารถในการสร้างแบบจำลองข้อความยาวที่เกินกว่า 512 โทเคน
- WoBERT
- โมเดล BERT ภาษาจีนระดับคำที่ใช้เป็น baseline สำหรับการเปรียบเทียบและเป็นรากฐานการ pre-train สำหรับ RoFormer บนคลังข้อมูลภาษาจีน
คำถามที่พบบ่อย
RoPE แตกต่างจาก sinusoidal position embeddings มาตรฐานอย่างไร?
Sinusoidal embeddings จะถูกบวกเข้ากับเวกเตอร์โทเคนนำเข้าก่อนการโปรเจกชันเชิงเส้น ในขณะที่ RoPE ถูกนำไปใช้ในเชิงการคูณในรูปของการหมุนลงบนเวกเตอร์ query และ key ที่ผ่านการโปรเจกชันแล้วโดยตรงภายในเลเยอร์ attention
เหตุใด RoPE จึงเข้ากันได้กับ linear self-attention ในขณะที่การเข้ารหัสเชิงสัมพัทธ์แบบอื่นเข้ากันไม่ได้?
การเข้ารหัสเชิงสัมพัทธ์ที่มีอยู่เดิมจะเข้าไปแก้ไขค่า attention logit ระหว่างคู่โทเคนภายในการดำเนินการ softmax ซึ่งทำลายการแยกตัวประกอบที่จำเป็นสำหรับ linear attention แต่ RoPE จะหมุนเวกเตอร์ query และ key แยกกันโดยไม่เปลี่ยนค่านอร์มของเวกเตอร์ จึงทำให้เคอร์เนลของ linear attention สามารถดำเนินการได้ตามปกติ
การใช้ RoPE จำเป็นต้องคูณเมทริกซ์แบบหนาแน่นด้วย $R^d_{\Theta, m}$ หรือไม่?
ไม่จำเป็น เนื่องจาก เป็นเมทริกซ์แบบ sparse block-diagonal ที่ประกอบด้วยบล็อกขนาด จึงสามารถประมวลผลในเชิงการคำนวณได้ด้วยการคูณแบบทีละสมาชิก (element-wise) และการจัดคู่สมาชิกใหม่โดยใช้เวกเตอร์โคไซน์และไซน์
ประสิทธิภาพของ RoFormer เป็นอย่างไรเมื่อขยายไปยัง context ที่ยาวขึ้น?
บนชุดข้อมูลทดสอบ CAIL2019-SCM การขยายความยาว context จาก 512 เป็น 1024 ช่วยเพิ่มความแม่นยำในการทดสอบของ RoFormer จาก 68.29% เป็น 69.79% ซึ่งแสดงให้เห็นถึงความสามารถในการวางนัยทั่วไปตามความยาวได้อย่างยอดเยี่ยม
คำอธิบายในหน้านี้เขียนโดย AI จากงานวิจัยและอาจมีข้อผิดพลาด โปรดอ่านต้นฉบับเพื่อดูรายละเอียด