พื้นที่เก็บข้อมูลนี้มีการใช้งานโมเดล LLaMA 2 (Large Language Model Meta AI) ซึ่งเป็นตัวแปร Generative Pretrained Transformer (GPT) การดำเนินการมุ่งเน้นไปที่สถาปัตยกรรมแบบจำลองและกระบวนการอนุมาน โค้ดได้รับการปรับโครงสร้างใหม่และมีการแสดงความคิดเห็นอย่างหนักเพื่อช่วยให้เข้าใจส่วนสำคัญของสถาปัตยกรรมได้ง่าย
RMS-Normalization: RMSNorm คือการลดความซับซ้อนของการทำให้เลเยอร์เดิมเป็นมาตรฐาน (LayerNorm) LayerNorm เป็นเทคนิคการทำให้เป็นมาตรฐานที่อาจจัดการกับปัญหาการเปลี่ยนแปลงโควาเรียตภายใน เพื่อทำให้การเปิดใช้งานเลเยอร์มีความเสถียร และปรับปรุงการบรรจบกันของโมเดล ได้รับการพิสูจน์แล้วว่าประสบความสำเร็จใน LLaMA 2
ฟังก์ชันการเปิดใช้งาน: LLaMA 2 ใช้ฟังก์ชันการเปิดใช้งาน SwiGLU แทน ReLU ซึ่งนำไปสู่ประสิทธิภาพการฝึกอบรมที่ดีขึ้น
การฝังตำแหน่งแบบหมุน (RoPE): ได้รับแรงบันดาลใจจากโครงการ GPT-Neo-X LLaMA 2 ได้รวมเอาการฝังตำแหน่งแบบหมุนในแต่ละชั้น ช่วยเพิ่มความเข้าใจตำแหน่งของโมเดล
เพิ่มความยาวบริบทและความสนใจแบบสอบถามแบบกลุ่ม (GQA): โมเดล LLaMA 2 มีหน้าต่างบริบทสองเท่า (จากโทเค็น 2048 ถึง 4096) และใช้ความสนใจแบบสอบถามแบบกลุ่ม ซึ่งช่วยให้สามารถประมวลผลเอกสารขนาดยาว ประวัติการสนทนา และงานสรุปได้ดียิ่งขึ้น
KV-caching เป็นเทคนิคการปรับให้เหมาะสมที่สำคัญซึ่งใช้ในการนำไปใช้งานนี้ เพื่อเร่งกระบวนการอนุมานสำหรับการถอดรหัส Language Model (LM) ในระหว่างการถอดรหัสแบบ autoregressive ซึ่งแต่ละโทเค็นจะถูกทำนายตามโทเค็นก่อนหน้า การเอาใจใส่ตนเองภายในแบบจำลองนั้นเป็นเหตุ นี่หมายความว่าการเป็นตัวแทนของโทเค็นนั้นถูกคำนวณโดยอิงจากตัวมันเองและโทเค็นก่อนหน้าเท่านั้น ไม่ใช่โทเค็นในอนาคต
ในการเอาใจใส่ตนเอง ลำดับอินพุตจะถูกฉายโดยใช้การฉายคีย์ ค่า และการสืบค้น KV-cache จะจัดเก็บผลลัพธ์ของการประมาณการคีย์และค่าอย่างมีประสิทธิภาพ โดยขจัดความจำเป็นในการคำนวณซ้ำซ้อนในการถอดรหัสซ้ำในอนาคต เป็นผลให้การแสดงโทเค็นที่ยังคงคงที่ในระหว่างการถอดรหัสแบบ autoregressive สามารถดึงข้อมูลจากแคชได้ ซึ่งช่วยเพิ่มความเร็วในการอนุมานได้อย่างมาก
เทคนิคการแคช KV นี้เป็นคุณลักษณะทางสถาปัตยกรรมที่สำคัญที่ช่วยเพิ่มประสิทธิภาพและความเร็วของโมเดล LLaMA ระหว่างการถอดรหัส
โมเดล LLaMA 2 รวมเอาการเปลี่ยนแปลงของแนวคิด Multi-Query Attention (MQA) ที่เสนอโดย Shazeer (2019) ซึ่งเป็นการปรับปรุงอัลกอริทึม Multi-Head Attention (MHA) MQA เพิ่มประสิทธิภาพของกลไกความสนใจในขณะที่ยังคงลดความแม่นยำลงให้เหลือน้อยที่สุด
ในความสนใจแบบหลายหัวแบบดั้งเดิม การคำนวณความสนใจทั้งหมดจะถูกจำลองแบบ h ครั้ง โดยที่ h คือจำนวนหัวความสนใจ อย่างไรก็ตาม GQA จะลดความซ้ำซ้อนในการคำนวณโดยการลบหรือลดขนาดส่วนหัว (h) ออกจากค่า K และ V อย่างมีนัยสำคัญ ใน MQA แต่ละ "หัว" ของค่าการสืบค้น (Q) จะผ่านการแปลง K และ V เดียวกัน ซึ่งช่วยเพิ่มประสิทธิภาพการคำนวณความสนใจ
การปรับแต่งนี้ส่งผลให้ประสิทธิภาพการคำนวณใกล้เคียงกับ MHA แต่ลดปริมาณการอ่าน/เขียนข้อมูลจากหน่วยความจำลงอย่างมาก ด้วยเหตุนี้ GQA จึงปรับปรุงทั้งประสิทธิภาพ (ผ่านการเพิ่มความเข้มทางคณิตศาสตร์) และประสิทธิภาพพื้นที่หน่วยความจำ (ผ่านการลดจำนวนข้อมูลแคช KV ที่เก็บไว้) ทำให้เป็นส่วนเสริมที่มีคุณค่าสำหรับสถาปัตยกรรม LLaMA
ในโมเดล LLaMA 2 การฝังตำแหน่งแบบหมุน (RoPE) มีบทบาทสำคัญในการเพิ่มกลไกความสนใจโดยการรวมข้อมูลตำแหน่งไว้ในการแสดงโทเค็น แนวคิดของ "ความสนใจ" นั้นทรงพลัง แต่เพื่อให้แน่ใจว่าความสนใจที่คำนวณนั้นมีความหมาย โทเค็นจำเป็นต้องมีแนวคิดเกี่ยวกับตำแหน่ง
การฝังตำแหน่งมีสองประเภทหลัก: แบบสัมบูรณ์และแบบสัมพัทธ์ การฝังตำแหน่งสัมบูรณ์จะเข้ารหัสตำแหน่งสัมพัทธ์ของคำในวลีที่ป้อนเข้า ในขณะที่การฝังตำแหน่งสัมพัทธ์จะเข้ารหัสตำแหน่งสัมพัทธ์ระหว่างคำสองคำ การฝังเหล่านี้ให้ข้อมูลตำแหน่งที่สำคัญซึ่งช่วยให้โทเค็นเข้าใจบริบทตามลำดับ
การฝังตำแหน่งแบบหมุนใช้แนวทางที่ไม่เหมือนใครโดยใช้ประโยชน์จากเมทริกซ์การหมุนเพื่อฝังข้อมูลตำแหน่ง เป้าหมายคือเพื่อให้แน่ใจว่าผลคูณภายในของเวกเตอร์ q และ k ที่ตำแหน่ง m และ n ขึ้นอยู่กับ q, k และระยะห่างสัมพัทธ์เท่านั้น (m — n) เมทริกซ์การหมุน โดยที่มุมคือตำแหน่งของเวกเตอร์ จะถูกฝังลงในเวกเตอร์ดั้งเดิมผ่านการคูณเมทริกซ์ ซึ่งสอดคล้องกับเกณฑ์นี้
แนวทางใหม่ในการรวมข้อมูลตำแหน่งช่วยเพิ่มความสามารถของโมเดลในการทำความเข้าใจความสัมพันธ์และบริบทของโทเค็น ซึ่งมีส่วนช่วยปรับปรุงกลไกความสนใจ
model.py
: ประกอบด้วยการใช้งานโมเดลหม้อแปลง LLaMA พร้อมความคิดเห็นโดยละเอียดที่อธิบายส่วนประกอบและฟังก์ชันการทำงานแต่ละรายการ
inference.py
: สาธิตวิธีใช้โมเดล LLaMA ที่ได้รับการฝึกอบรมเพื่อการอนุมาน โดยให้ข้อมูลเชิงลึกเกี่ยวกับการประมวลผลอินพุตและเอาต์พุต
อย่าลังเลที่จะสำรวจโค้ด แก้ไขหากมีข้อผิดพลาด และทดลองใช้โมเดล LLaMA 2!