Griffin
Griffin : การผสมการเกิดซ้ำเชิงเส้นแบบมีรั้วรอบขอบชิดกับความสนใจในท้องถิ่นเพื่อโมเดลภาษาที่มีประสิทธิภาพ
อาร์เอ็กซ์
สถาปัตยกรรมแบบจำลอง
โมเดลทั้งหมดของเรามีส่วนประกอบดังต่อไปนี้: (i) บล็อกที่เหลือ (ii) บล็อก MLP และ (iii) บล็อกผสมชั่วคราว แม้ว่า (i) และ (ii) จะเหมือนกันในทุกโมเดล แต่เราพิจารณาบล็อกผสมชั่วคราวสามบล็อก: Multi-Query Attention (MQA) ทั่วโลก MQA ภายใน (หน้าต่างเลื่อน) และบล็อกที่เกิดซ้ำที่เราเสนอ ในส่วนหนึ่งของบล็อกที่เกิดซ้ำ เราใช้ Real-Gated Linear Recurrent Unit (RG-LRU) ซึ่งเป็นเลเยอร์ที่เกิดซ้ำแบบใหม่ที่ได้รับแรงบันดาลใจจาก Linear Recurrent Unit Orvieto et al., 2023b
บล็อกที่เหลือ ดังแสดงในรูปที่ 2 (a) กำหนดโครงสร้างส่วนกลางของแบบจำลองของเรา และได้รับแรงบันดาลใจจาก Transformers รุ่นก่อนบรรทัดฐาน (Xiong et al., 2020) หลังจากฝังลำดับอินพุตแล้ว เราก็ส่งผ่านมันไป $เอ็น$ บล็อกดังกล่าว ( $เอ็น$ ซึ่งแสดงถึงความลึกของโมเดล) จากนั้นเราใช้ RMSNorm Zhang และ Sennrich, 2019 เพื่อสร้างการเปิดใช้งานขั้นสุดท้าย ในการคำนวณความน่าจะเป็นของโทเค็น เราใช้เลเยอร์เชิงเส้นสุดท้ายตามด้วย softmax น้ำหนักของเลเยอร์นี้จะถูกแชร์กับเลเยอร์การฝังอินพุต
บล็อกที่เหลือ
รูปที่ 2: ก) กระดูกสันหลังหลักของสถาปัตยกรรมโหมดของเราคือบล็อกที่เหลือซึ่งซ้อนกันอยู่ $เอ็น$ ครั้ง b) บล็อก MLP ที่มีรั้วรอบขอบชิดที่เราใช้ c) บล็อกที่เกิดซ้ำที่เราเสนอเป็นทางเลือกแทน Multi Query Attention (MQA) ใช้เลเยอร์ RG-LRU ที่เราเสนอตามที่กำหนดไว้ในส่วนที่ 2.4
บล็อกที่เหลือประกอบด้วยสององค์ประกอบ ใช้งานตามลำดับ องค์ประกอบแรกใช้สถานะที่ซ่อนอยู่ $ชี$ และใช้ RMSNorm Zhang และ Sennrich, 2019 ตามด้วยบล็อกผสมชั่วคราว จากนั้นเราจะรวมเอาต์พุตเข้ากับการเชื่อมต่อแบบข้ามจาก $ชี$ ผ่านการบวก ในทำนองเดียวกัน ส่วนประกอบที่สองใช้ RMSNorm ตามด้วยบล็อก MLP จากนั้นรวมเอาต์พุตเข้ากับการเชื่อมต่อข้ามจากอินพุตของ RMSNorm บล็อกนี้แสดงไว้ในรูปที่ 2 (a)
บล็อกเอ็มแอลพี
เราใช้บล็อก MLP ที่มีรั้วรอบขอบชิด Dauphin et al., 2017 (ดังภาพประกอบในรูปที่ 2(b)) ซึ่งสร้างสองสาขาจากการป้อนข้อมูลของมิติ $ดี$ - เราใช้เลเยอร์เชิงเส้นกับมิติเอาต์พุต $MD$ ในแต่ละสาขาที่ไหน $M$ หมายถึงปัจจัยการขยายตัว เพื่อความเรียบง่ายเราใช้ $ม=3$ ตลอดงานนี้ เราใช้ GeLU Hendrycks และ Gimpel แบบไม่เชิงเส้น 2016 กับสาขาใดสาขาหนึ่งก่อนที่จะรวมเข้าด้วยกันด้วยการคูณตามองค์ประกอบ ซึ่งคล้ายกับ GeGeLU Shazeer 2020 อย่างไรก็ตาม ในบล็อก MLP ของเรา เราใช้เลเยอร์เชิงเส้นสุดท้ายกับมิติเอาต์พุต $ดี$ บนเอาต์พุตของเลเยอร์ GeGeLU
บล็อกผสมชั่วคราว
บล็อกการผสมชั่วคราวเป็นส่วนประกอบของแบบจำลองของเราที่รวมการเปิดใช้งานเลเยอร์ที่ซ่อนอยู่ในตำแหน่งชั่วคราวที่แตกต่างกันตามลำดับ เราพิจารณาบล็อกการผสมชั่วคราวสามบล็อก: MQA Shazeer ทั่วโลก, 2019, MQA Beltagy และคณะในท้องถิ่น, 2020 และบล็อก Recurrent ที่เราเสนอ
ความสนใจจากแบบสอบถามหลายรายการทั่วโลก
เว้นแต่จะระบุไว้เป็นอย่างอื่น เราใช้ MQA แทน MHA เพื่อปรับปรุงความเร็วในการอนุมานของเส้นฐาน Transformer Shazeer ปี 2019 เราใช้มิติส่วนหัวคงที่ $D_{หัว}=128$ และเราจะแก้ไขจำนวนหัวของความสนใจ $H$ เช่นนั้น $HD_{หัว}=D$ - สิ่งนี้ต้องการมิติโมเดล $ดี$ ให้เป็นผลคูณของ 128 เราไม่ได้ใช้การฝังตำแหน่งแบบสัมบูรณ์ใดๆ แต่เราใช้การฝังตำแหน่งแบบหมุน (RoPE) Su et al., 2021 เป็นการฝังตำแหน่งแบบสัมพัทธ์
ความสนใจของหน้าต่างบานเลื่อนในท้องถิ่น
ข้อเสียเปรียบที่สำคัญประการหนึ่งของการใช้ความสนใจทั่วโลกก็คือความซับซ้อนในการคำนวณของมันจะเพิ่มขึ้นเป็นกำลังสองตามความยาวของลำดับ เพื่อแก้ไขปัญหานี้ งานหลายชิ้นได้เริ่มนำความสนใจในท้องถิ่น Beltagy และคณะ 2020 หรือที่เรียกว่าความสนใจหน้าต่างบานเลื่อนมาใช้ อนุญาตให้แต่ละตำแหน่งเข้าร่วมด้วยโทเค็นจำนวนคงที่ในอดีตเท่านั้น ซึ่งไม่เพียงแต่ลด FLOP ในการคำนวณเท่านั้น แต่ยังจำกัดขนาดของแคช KV เข้ากับขนาดของหน้าต่าง ทำให้ไม่เป็นกำลังสองในความยาวของลำดับอีกต่อไป รายละเอียดอื่นๆ ทั้งหมดเหมือนกับ MQA ทั่วโลก
บล็อกที่เกิดซ้ำ
บล็อกเกิดซ้ำของเรา (รูปที่ 2(c)) คล้ายกับบล็อก GSS Mehta et al., 2022 และบล็อกที่ใช้โดย Mamba Gu และ Dao, 2023 เรารับอินพุตของมิติ $ดี$ และใช้เลเยอร์เชิงเส้นสองชั้นพร้อมมิติเอาต์พุต $D_{RNN}$ ขนานกันทำให้เกิดเป็นสองสาขา ในสาขาแรก เราใช้เลเยอร์ Conv1D ขนาดเล็กที่แยกได้ ซึ่งได้รับแรงบันดาลใจจาก Shift-SSM ใน H3 Dao et al., 2022b โดยมีมิติตัวกรองชั่วคราวเป็น 4 โปรดทราบว่าเลเยอร์ Conv1D นี้มีขนาดเล็กมาก โดยมีเพียง $4D$ พารามิเตอร์ เราติดตามเลเยอร์ Conv1D ด้วยเลเยอร์ RG-LRU ที่เราเสนอ (ตามคำจำกัดความด้านล่าง) ในสาขาที่สอง เราใช้ความไม่เชิงเส้นของ GeLU จากนั้นจึงรวมสาขาด้วยการคูณตามองค์ประกอบ จากนั้นเราจะใช้เลเยอร์เชิงเส้นสุดท้ายกับมิติเอาต์พุต $ดี$ -
หน่วยเกิดซ้ำเชิงเส้นแบบ Real-Gated (RG-LRU)
เลเยอร์ RG-LRU ที่เรานำเสนอนั้นมีการเกิดซ้ำอย่างง่าย ๆ ที่ได้รับแรงบันดาลใจจาก Linear Recurrent Unit (LRU) Orvieto et al., 2023b แต่รวมเอากลไก gating ที่ได้รับแรงบันดาลใจจากวรรณกรรมเกี่ยวกับ RNN ที่ไม่ใช่เชิงเส้น โดยเฉพาะ LSTMs Hochreiter และ Schmidhuber, 1997 และ GRUs Chung et al., 2014. สมการที่อธิบายเลเยอร์มีดังนี้:
$$begin{align} r_t &= sigma(W_{a} x_t + b_a), & text{ประตูการเกิดซ้ำ} \ i_t &= sigma(W_{x} x_t + b_x), & text{ ประตูอินพุต} \ a_t &= a^{cr_t}, & text{} \ h_t &= a_t odot h_{t-1} + sqrt{1 - a_t^2} odot (i_t odot x_t) & text{} end{align}$$
ผลลัพธ์ของเลเยอร์คือ $y_t=h_t$ และความไม่เป็นเชิงเส้น $ซิกม่า$ ในสมการคือฟังก์ชันซิกมอยด์ น้ำหนักกำเริบ $a$ ในสมการ (4) เป็นเส้นทแยงมุม ดังนั้นการดำเนินการทั้งหมดจึงเป็นไปตามองค์ประกอบ เรากำหนดพารามิเตอร์ $a$ ในสมการ (3) เช่น $a=sigma(แลมบ์ดา)$ , ที่ไหน $แลมบ์ดา$ เป็นพารามิเตอร์ที่สามารถเรียนรู้ได้ สิ่งนี้รับประกันได้ว่า $0 <= ก <= 1$ เพื่อให้แน่ใจว่าการเกิดซ้ำจะมีเสถียรภาพ ตัวแปร $c$ คือค่าคงที่ค่าสเกลาร์ที่ตั้งไว้ที่ 8 เพื่อความเสถียรของตัวเลข ในทางปฏิบัติเราจะคำนวณ $a^{cr_t}$ ในพื้นที่บันทึก (ดูภาคผนวก A) เลเยอร์มีประตูทั้งสองอินพุต $x$ และน้ำหนักที่เกิดซ้ำ $a$ - อย่างไรก็ตาม ไม่มีประตูใดขึ้นอยู่กับสถานะที่เกิดซ้ำ $h_{t-1}$ ซึ่งช่วยให้มั่นใจว่าสามารถดำเนินการคำนวณบนอุปกรณ์ได้อย่างมีประสิทธิภาพ เราเริ่มต้นทั้งสองอย่าง $W_{a}$ และ $W_{b}$ โดยใช้ LeCun เริ่มต้น LeCun et al., 2002 เราเริ่มต้น $แลมบ์ดา$ เช่นนั้น $a^c$ มีการกระจายอย่างสม่ำเสมอระหว่าง $0.9$ และ $0.999$ เมื่อเริ่มต้นการฝึกอบรม คล้ายกับ (Orvieto et al., 2023b.) แตกต่างจากผลงานล่าสุดหลายชิ้นในวรรณกรรม SSM RG-LRU ไม่ได้ใช้การเริ่มต้นที่ได้รับแรงบันดาลใจจากทฤษฎีพหุนามมุมฉาก Gu et al., 2020 และไม่ได้ถูกกำหนดให้เป็นการแยกส่วนของระบบต่อเนื่องพื้นฐาน Gu et al., 2021ก. ต่างจากเลเยอร์ LRU ดั้งเดิม เราไม่ได้ใช้พีชคณิตที่ซับซ้อนในการเกิดขึ้นซ้ำ ในขณะที่การใช้การเกิดซ้ำที่ซับซ้อนจะนำไปสู่เลเยอร์ที่แสดงออกมากขึ้น Orvieto และคณะ, 2023a เราพบว่าการเกิดซ้ำที่ซับซ้อนไม่เป็นประโยชน์สำหรับการสร้างแบบจำลองภาษาในทางปฏิบัติ ดังที่ Gu และ Dao สังเกตไว้ในปี 2023 (ดูภาคผนวก B)
พฤติกรรมของประตู
ประตูทางเข้า $i_t$ คล้ายกับที่อยู่ใน LSTM ซึ่งสามารถกรอง (หรือลดขนาด) อินพุตได้ $x_t$ - อย่างไรก็ตาม ตามความรู้ของเรา ประตูการเกิดซ้ำของเรา $r_t$ แตกต่างจากกลไกการเกตอื่นๆ ในวรรณคดี ตัวอย่างเช่น กลไกการคัดเลือกที่เสนอใน Mamba Gu และ Dao ปี 2023 เทียบได้กับประตูอัปเดตของ GRU ที่สอดแทรก $x_t$ - ผลกระทบต่อสถานะที่ซ่อนอยู่ทำให้สามารถรีเซ็ตสถานะและลืมข้อมูลใด ๆ ที่เก็บไว้จากอดีตได้ คล้ายกับประตูลืมใน LSTM ในทางตรงกันข้าม ประตูการเกิดซ้ำของเราสามารถประมาณประมาณระหว่างการอัปเดต LRU มาตรฐานจาก Orvieto และคณะ 2023a และสถานะที่ซ่อนอยู่ก่อนหน้านี้ ซึ่งช่วยให้สามารถละทิ้งอินพุตได้อย่างมีประสิทธิภาพและรักษาข้อมูลทั้งหมดจากประวัติก่อนหน้า (ดูภาคผนวก A สำหรับรายละเอียดเพิ่มเติม ). เราเชื่อว่าบทบาทสำคัญของเกตนี้คือการเปิดใช้งานโมเดลเพื่อให้ได้หน่วยความจำแบบเอ็กซ์โพเนนเชียลขั้นสูงโดยการลดอิทธิพลของอินพุตที่ไม่ให้ข้อมูล