คู่มือภาพของ Gemma 4
(newsletter.maartengrootendorst.com)- Gemma 4 ที่เปิดตัวโดย Google DeepMind เป็นตระกูล LLM แบบมัลติโหมดที่ประกอบด้วย 4 โมเดล ได้แก่ E2B, E4B, 31B และ 26B A4B โดยทุกรุ่นรองรับอินพุตภาพ
- ทุกโมเดลใช้สถาปัตยกรรมร่วมกันที่ วางเลเยอร์ local attention (sliding window) สลับกับ global attention และเลเยอร์สุดท้ายจะถูกกำหนดให้เป็น global attention เสมอ
- ในเลเยอร์ global attention มีการใช้เทคนิคเพิ่มประสิทธิภาพ 3 อย่างพร้อมกัน ได้แก่ GQA (grouped query attention), เทคนิค K=V และ p-RoPE เพื่อลดการใช้หน่วยความจำและภาระการคำนวณ
- โมเดลขนาดเล็ก (E2B, E4B) ใช้ Per-Layer Embeddings (PLE) เพื่อเก็บตาราง embedding ขนาดใหญ่ไว้ในแฟลชเมมโมรี ลดการใช้ VRAM ให้ต่ำที่สุด และยังเพิ่ม audio encoder มาอีกด้วย
- Gemma 4 รองรับการใช้งานได้กว้างตั้งแต่ออนดีไวซ์ไปจนถึงงานอนุมานขนาดใหญ่ ด้วย vision encoder (อิง ViT) ที่รองรับอัตราส่วนภาพและความละเอียดแบบแปรผัน รวมถึงสถาปัตยกรรม MoE (26B A4B)
องค์ประกอบของตระกูล Gemma 4
- ประกอบด้วย 4 โมเดล และใช้ทั้งสถาปัตยกรรมแบบ dense และ MoE
- Gemma 4 - E2B: ใช้ Per-Layer Embeddings, effective parameters 2 พันล้าน
- Gemma 4 - E4B: ใช้ Per-Layer Embeddings, effective parameters 4 พันล้าน
- Gemma 4 - 31B: โมเดล dense ขนาด 31 พันล้านพารามิเตอร์
- Gemma 4 - 26B A4B: โมเดล MoE ที่มีพารามิเตอร์รวม 26 พันล้าน โดยระหว่างอนุมานจะเปิดใช้งานเพียง 4 พันล้านพารามิเตอร์
- ทุกโมเดลเป็นแบบ มัลติโหมด และรองรับอินพุตภาพได้หลายขนาดและหลายความละเอียด
- โมเดลขนาดเล็ก (E2B, E4B) รองรับ อินพุตเสียง เพิ่มเติมนอกเหนือจากภาพและข้อความ
สถาปัตยกรรมร่วมของ Gemma 4
การวางสลับของเลเยอร์ attention (Interleaving Layers)
- เช่นเดียวกับ Gemma 3 มีการวางเลเยอร์ local attention (sliding window) และ global attention สลับกัน
- Sliding window attention: อ้างอิงเฉพาะโทเค็นในช่วงที่กำหนด → ลดปริมาณการคำนวณ
- Global attention: อ้างอิงทั้งลำดับ → มองเห็นโครงสร้างของบริบททั้งหมดได้
- ขนาดของ sliding window
- โมเดลขนาดเล็ก (E2B, E4B): 512 โทเค็น
- โมเดลขนาดใหญ่ (26B A4B, 31B): 1024 โทเค็น
- ใน Gemma 3 มีกรณีที่เลเยอร์สุดท้ายเป็น local attention แต่ใน Gemma 4 เลเยอร์สุดท้ายถูกกำหนดให้เป็น global attention เสมอ
- อัตราการสลับ
- E2B: รูปแบบ 4:1 ของ local attention 4 เลเยอร์ + global attention 1 เลเยอร์
- โมเดลที่เหลือ: รูปแบบ 5:1 (local 5 เลเยอร์ + global 1 เลเยอร์)
การเพิ่มประสิทธิภาพของ global attention
GQA (Grouped Query Attention)
- ในเลเยอร์ global attention มี query head 8 ตัวแชร์ KV head 1 ตัว ช่วยลดพื้นที่จัดเก็บ KV cache อย่างมาก
- เพื่อชดเชยประสิทธิภาพที่อาจลดลงจากการลดจำนวน KV head จึง ขยายขนาดมิติของ Key เป็น 2 เท่า
เทคนิค K=V
- ในเลเยอร์ global attention มีการ กำหนดให้ Keys และ Values เหมือนกัน เพื่อลดความต้องการหน่วยความจำของ KV cache เพิ่มเติม
- เป็นเทคนิคที่เพิ่มประสิทธิภาพด้านหน่วยความจำโดยแทบไม่กระทบต่อประสิทธิภาพมากนัก
p-RoPE
- ใช้ RoPE (rotary positional encoding) กับ เพียงบางส่วนของมิติ แทนที่จะใช้กับทุกมิติ (เช่น p=0.25 หมายถึงใช้กับคู่มิติบนสุด 25%)
- คู่ความถี่ต่ำจะถูกใช้เพื่อ รักษาข้อมูลเชิงความหมาย (semantic) แทนข้อมูลตำแหน่ง
- มีประสิทธิภาพเป็นพิเศษในการบรรเทา ปัญหาความบิดเบือนของระยะห่างระหว่างโทเค็น เมื่อใช้บริบทยาวใน global attention
- สรุปการปรับปรุงทั้งหมดที่ใช้กับเลเยอร์ global attention:
- เลเยอร์สุดท้ายเป็น global attention เสมอ
- แชร์ Key 1 ตัวต่อ query 8 ตัว
- ขยายมิติของ Key เป็น 2 เท่า
- Keys = Values
- ใช้ p-RoPE ที่ p=0.25
Vision Encoder
- อิงกับ Vision Transformer (ViT) แปลงภาพเป็นลำดับของแพตช์เพื่อสร้าง embedding
- แต่ละแพตช์มีขนาด 16×16 พิกเซล
- โมเดลขนาดเล็ก (E2B, E4B) ใช้ vision encoder ขนาด 150 ล้านพารามิเตอร์ ส่วนโมเดลอื่นใช้ vision encoder ขนาด 550 ล้านพารามิเตอร์
รองรับอัตราส่วนภาพแบบแปรผัน
- ViT แบบเดิมยึดอินพุตสี่เหลี่ยมจัตุรัสตายตัว → ทำให้ positional encoding เปลี่ยนไปตามอัตราส่วนภาพ
- Gemma 4 นำ 2D RoPE มาใช้: แบ่ง patch embedding ออกเป็นสองส่วน และเข้ารหัสข้อมูลตำแหน่งแนวนอน (w) กับแนวตั้ง (h) แยกจากกัน
- ปรับขนาดภาพอินพุตแบบ adaptive resizing ให้สอดคล้องกับแพตช์ 16×16 พิกเซล และใช้ padding กับส่วนที่ลงตัวไม่พอดี
- แพตช์ขนาดแปรผันจะถูก pooling ตามตำแหน่งเชิงพื้นที่ เพื่อลดเหลือจำนวน patch embedding คงที่
รองรับความละเอียดแบบแปรผัน (soft token budget)
- เพิ่มแนวคิด soft token budget: จำกัดจำนวน patch embedding สูงสุดที่ส่งเข้า LLM
- บัดเจ็ตที่ผู้ใช้เลือกได้: 70, 140, 280, 560, 1120 โทเค็น
- บัดเจ็ตยิ่งสูง (เช่น 1120) ก็ยิ่งคงความละเอียดสูงไว้ได้มาก ส่วนบัดเจ็ตต่ำ (เช่น 70) จะลดขนาดภาพลง
- ตัวอย่าง: ถ้าบัดเจ็ตเป็น 280 จำนวนแพตช์สูงสุด = 9 × 280 = 2,520 ชิ้น (ใช้ average pooling ในหน่วยบล็อก 3×3)
การฉายเชิงเส้น (Linear Projection)
- embedding ที่ออกจาก vision encoder มีมิติและการกระจายต่างจาก token embedding ของ LLM จึงต้อง ฉายผ่านโครงข่ายประสาทขนาดเล็ก
- หลังการฉายจะใช้ RMSNorm เพื่อให้ตรงกับสเกลที่ Transformer block ถัดไปคาดหวัง
- เลเยอร์ linear projection ถูกฝึกร่วมกับ Gemma 4 เพื่อปรับให้ patch embedding สอดคล้องกับค่าที่ LLM คาดหวัง
Gemma 4 - 31B (Dense)
- โมเดลสถาปัตยกรรม dense ขนาด 31 พันล้านพารามิเตอร์ เป็นโครงสร้างที่ใกล้เคียงกับรูปแบบพื้นฐานที่สุดในบรรดา Gemma 4
- มีความคล้ายทางโครงสร้างกับโมเดล 27B ของ Gemma 3 แต่ใช้การปรับปรุงร่วมของ Gemma 4 เช่น K=V และ p-RoPE
- จำนวนเลเยอร์ลดจาก 62 เหลือ 60 เลเยอร์ แต่เปลี่ยนเป็นโครงสร้างที่กว้างขึ้นในแต่ละเลเยอร์
Gemma 4 - 26B A4B (Mixture of Experts)
- แม้จะมีพารามิเตอร์รวม 26 พันล้าน แต่ระหว่างอนุมานจะใช้เพียง 4 พันล้านพารามิเตอร์ (active parameters) จึงทำงานได้ด้วยความเร็วระดับโมเดล 4B
- โครงสร้าง MoE (Mixture of Experts): แทนที่จะใช้ FFNN ขนาดใหญ่แบบทั่วไป จะมี FFNN ขนาดเล็กหลายตัว (Expert) และเปิดใช้เพียงบางส่วนตามอินพุต
- จาก Expert ทั้งหมด 128 ตัว จะ เลือกเปิดใช้ 8 ตัว ระหว่างอนุมาน
- มี Shared Expert 1 ตัว ที่เปิดใช้งานเสมอ ทำหน้าที่ประมวลผลความรู้ทั่วไป และมีขนาดใหญ่กว่า Expert อื่น 3 เท่า
- Router จะสร้างความน่าจะเป็นในการเลือก Expert สำหรับแต่ละโทเค็นเพื่อทำการ routing และนำผลลัพธ์ของ Expert ที่ถูกเลือกมาถ่วงน้ำหนักตามความน่าจะเป็น
- พารามิเตอร์ทั้งหมดถูกโหลดไว้ในหน่วยความจำ แต่ในการคำนวณจริงใช้เพียง Expert 8 ตัว + Shared Expert 1 ตัว → อีก 119 ตัวยังคงรออยู่
Gemma 4 - E2B & E4B (Dense + Per-Layer Embeddings)
Per-Layer Embeddings (PLE)
- เพิ่ม ตาราง embedding lookup แยกสำหรับแต่ละเลเยอร์ นอกตัวโมเดล เพื่อลดการใช้ VRAM บนอุปกรณ์ขนาดเล็กให้ต่ำที่สุด
- อ้างอิง E2B: ตาราง PLE ขนาด 262,144 โทเค็น × 35 เลเยอร์ × 256 มิติ → เก็บไว้ในแฟลชเมมโมรี
- ตอนเริ่มอนุมานจะดึง embedding รายเลเยอร์ของโทเค็นอินพุตเพียงครั้งเดียว → หลังจากนั้นแต่ละเลเยอร์ไม่ต้องดึงซ้ำอีก
- ระหว่าง decoder block แต่ละชั้น จะใช้ ฟังก์ชัน gating เพื่อกำหนดน้ำหนักของ embedding แล้วฉายกลับไปยังขนาด embedding เดิม (E2B: 256→1536, E4B: 256→2560)
- embedding ที่ฉายแล้วจะถูกทำ normalization และบวกกับเอาต์พุตของ decoder block ก่อนหน้า → ทำให้โมเดลอ้างอิงความหมายของโทเค็นได้อย่างต่อเนื่อง
- ตัวอักษร "E" หมายถึง effective parameters ที่ไม่รวม PLE
Audio Encoder
- มีเฉพาะในโมเดลขนาดเล็ก (E2B, E4B) และใช้กับงานอย่าง การรู้จำเสียงพูดอัตโนมัติและการแปล
- การประมวลผลเสียงมี 3 ขั้นตอน:
- การสกัดคุณลักษณะ: เสียงดิบ → mel-spectrogram (การแทนแบบ 2 มิติของเวลา × ความถี่)
- การจัดกลุ่มเป็นชังก์: รวมคุณลักษณะ mel เป็นหน่วยชังก์เพื่อกำหนดจุดเริ่มต้นของลำดับโทเค็น
- การลดตัวอย่าง (downsampling): ใช้เลเยอร์คอนโวลูชัน 2D 2 ชั้นเพื่อลดความยาวลำดับและสร้าง soft token
- Audio encoder ใช้ Conformer: โครงสร้างที่เพิ่มโมดูลคอนโวลูชันเข้าไปใน Transformer encoder มาตรฐาน
- embedding ที่ออกจาก Conformer ก็จะถูก ฉายเชิงเส้น เช่นเดียวกับ vision encoder เพื่อแปลงให้เข้ากับ embedding space ของ Gemma 4
ยังไม่มีความคิดเห็น