บทที่ 3 · ข้างใน Transformer หน้า 10/13 ~3 นาที

นับพารามิเตอร์เอง: "8B" มาจากไหน

ลองนับ พารามิเตอร์ (parameter, weight)ตัวเลขในตารางต่างๆ ของโมเดลที่ถูกปรับระหว่างการฝึก ขนาดอย่าง "8B" หมายถึงมีพารามิเตอร์ราว 8 พันล้านตัวดูคำศัพท์ทั้งหมด เอง เครื่องคิดเลขในมือถือก็พอ

ให้ d = ความยาวเวกเตอร์ หนึ่ง ชั้น (layer, Transformer block)หนึ่งรอบการประมวลผลที่มีทั้ง attention และ MLP โมเดลจริงซ้อนกันหลายสิบชั้น โดยแต่ละชั้นแก้เวกเตอร์ของทุก token ทีละนิดดูคำศัพท์ทั้งหมด ของดีไซน์มาตรฐานมี

  • กลไกความสนใจ (attention)วิธีที่แต่ละคำเลือกว่าจะ "ฟัง" คำอื่นในประโยคมากน้อยแค่ไหน โดยใช้ softmax แบ่งน้ำหนักให้รวมได้ 100%ดูคำศัพท์ทั้งหมด: 4 ตาราง d × d () → 4d²
  • เครือข่ายป้อนไปข้างหน้า (MLP, feed-forward network)ส่วนในแต่ละชั้นที่ประมวลผลเวกเตอร์ของ token ทีละตัว โดยขยาย ผ่านฟังก์ชันโค้งอย่าง ReLU แล้วย่อกลับ เป็นที่อยู่ของพารามิเตอร์ส่วนใหญ่ในแต่ละชั้น (ราว 2 ใน 3 ในดีไซน์มาตรฐาน และมากกว่านั้นในหลายโมเดลใหม่)ดูคำศัพท์ทั้งหมด: ตารางขยาย d × 4d กับตารางย่อ 4d × d → 8d²
  • รวมราว 12d² ต่อชั้น (ไม่นับส่วนน้อยอย่าง bias และค่าของ layer norm)

ถ้ามี L ชั้น:

ลองคำนวณเอง

ตอบเป็นตัวเลข (หน่วย ล้าน) · คลาดเคลื่อนได้ ±0.5 ล้าน

GPT-2 รุ่นเล็กที่เปิดเผยข้อมูลไว้ มี d = 768 และ L = 12 ชั้น

ใช้สูตร 12 · d² · L ประมาณพารามิเตอร์ใน ชั้นทั้งหมด ได้กี่ ล้าน ตัว? (ทศนิยม 1 ตำแหน่ง เช่น 12.3 ไม่ต้องใส่จุลภาค)

คำใบ้ (2)
  1. d² = 768 × 768 = 589,824
  2. หนึ่งชั้น = 12 × 589,824 = 7,077,888 (ราว 7.1 ล้าน) แล้วคูณจำนวนชั้น
ดูเฉลย

คำตอบ: 84.9 ล้าน

12 × 768² × 12 = 84,934,656 ≈ 84.9 ล้าน

บวกตาราง token 50,257 × 768 และตารางตำแหน่ง 1,024 × 768 ได้ราว 124.3 ล้าน ใกล้ "124M" ที่เปิดเผยไว้ (ตารางขาเข้าและขาออกเป็นตารางเดียวกัน)

เวกเตอร์ยาวขึ้น 2 เท่า พารามิเตอร์ต่อชั้นเพิ่ม 4 เท่า

สเปกของพี่มด: d = 4,096 (32 หัว × หัวละ 128) และ L = 32 ได้ 12 × 4,096² × 32 = 6,442,450,944 ≈ 6.4B

บวกตารางขาเข้าและขาออก (2 × 524.3M จากหน้า 2) อีก 1,048,576,000 ≈ 1B รวม ≈ 7.5B ใกล้ "8B" ในเอกสารแล้ว

พารามิเตอร์ส่วนใหญ่อยู่ในชั้นต่างๆ ราว 12 × (ความยาวเวกเตอร์)² × จำนวนชั้น โดย 2 ใน 3 ของส่วนนี้อยู่ใน MLP

มังคุด มาสคอตมังคุด

มังคุด

คำนวณได้ 7.5B แต่สเปกบอก 8B แปลว่าผู้ขายปัดเลขเหรอ?