สูตรเต็มของ Transformer หนึ่งชั้น
Advanced · ให้เห็นภาพรวม ข้ามได้ ไม่นับเป็นเงื่อนไขจบบท ข้ามไปหน้าถัดไป →
หน้าเสริม ข้ามได้
ขั้น 1 — q, k, v มาจากการคูณตาราง: q = xW_Q, k = xW_K, v = xW_V
x ของ "มัน" = (0, 0.5) และ W_Q มีแถว (1, 0) กับ (2, 1) ได้ q = 0 × (1, 0) + 0.5 × (2, 1) = (1, 0.5) (ข้าม layer norm และ RoPE ให้เลขง่าย)
นี่คือ q ของ "มัน" ในหน้า "Scaled dot-product attention ด้วยตัวเลขจริง" บทที่ 2 (แมว 67.3%)
ขั้น 2 — attention แบบบังคำอนาคต (การบังคำอนาคต (causal mask)กฎใน attention ที่ให้แต่ละ token ฟังได้แค่ตัวเองและคำก่อนหน้า โดยตั้งคะแนนของคำในอนาคตเป็น −∞ ก่อน softmaxดูคำศัพท์ทั้งหมด): Attn = softmax(QKᵀ / √dₖ + M) V โดย M = −∞ เมื่อ j > i นอกนั้น 0
ขั้น 3 — หลายหัว (attention หลายหัว (multi-head attention)การรัน attention หลายชุดขนานกัน แต่ละหัวย่อเวกเตอร์เป็น q, k, v ขนาดเล็กด้วยตารางของตัวเองจึงสนใจเรื่องต่างกัน แล้วรวมผลของทุกหัวกลับเป็นเวกเตอร์เดียวดูคำศัพท์ทั้งหมด): MHA(x) = [head₁; …; headₕ] W_O แต่ละหัวยาว dₖ = d / h
ขั้น 4 — ตำแหน่ง (ข้อมูลตำแหน่ง (positional encoding, RoPE)วิธีบอกโมเดลว่าแต่ละ token อยู่ลำดับที่เท่าไร เพราะ attention ล้วนๆ ไม่รู้ลำดับคำ วิธีที่นิยมในโมเดลรุ่นใหม่คือ RoPE ซึ่งหมุน query และ key ตามตำแหน่ง คะแนนจึงขึ้นกับระยะห่างระหว่างคำด้วยดูคำศัพท์ทั้งหมด) (เกิดก่อนขั้น 2) RoPE หมุนมิติคู่ที่ i ของ q, k ที่ตำแหน่ง m ไป m × θᵢ โดย
ฐาน b ต้นฉบับ (Su et al., 2021) = 10,000 รุ่นใหม่หลายตัวใช้หลักแสนขึ้นไปเพื่อข้อความยาว ส่วน Transformer ปี 2017 บวกเวกเตอร์ตำแหน่งที่ embedding แทน
ขั้น 5 — การปรับขนาดเวกเตอร์ (layer normalization, RMSNorm)ขั้นที่ปรับขนาดสำเนาของเวกเตอร์ก่อนส่งเข้า attention หรือ MLP และอีกครั้งก่อนแปลงเป็น logit ตัวเลขที่แต่ละส่วนเห็นจึงอยู่ในช่วงพอดี ไม่ใหญ่หรือเล็กเกินไปดูคำศัพท์ทั้งหมด: LN(x) = γ ⊙ (x − μ) / σ + β
ตัวอย่าง (ให้ γ = 1, β = 0): (2, 4, 6, 8) มี μ = 5 ผลรวมของ (x − 5)² = 20 ได้ σ² = 20 / 4 = 5 และ σ = 2.2361 ผลคือ (−1.3416, −0.4472, 0.4472, 1.3416) เท่ากับของ (20, 40, 60, 80)
ขั้น 6 — หนึ่งชั้นแบบ pre-norm
เครือข่ายป้อนไปข้างหน้า (MLP, feed-forward network)ส่วนในแต่ละชั้นที่ประมวลผลเวกเตอร์ของ token ทีละตัว โดยขยาย ผ่านฟังก์ชันโค้งอย่าง ReLU แล้วย่อกลับ เป็นที่อยู่ของพารามิเตอร์ส่วนใหญ่ในแต่ละชั้น (ราว 2 ใน 3 ในดีไซน์มาตรฐาน และมากกว่านั้นในหลายโมเดลใหม่)ดูคำศัพท์ทั้งหมด = φ(uW₁)W₂ (φ คือ ReLU หรือ GELU) แบบมีประตู (SwiGLU) = (SiLU(uW₁) ⊙ uW₃)W₂
ขั้น 7 — ทางออก (ตารางแปลงกลับเป็นคำ (unembedding, output layer, LM head)ตารางเวกเตอร์ประจำคำที่ใช้ตอนท้าย logit ของแต่ละคำคือ dot product ระหว่างเวกเตอร์สุดท้ายของโมเดลกับเวกเตอร์ของคำนั้นดูคำศัพท์ทั้งหมด): logits = LN(x_L) W_U แล้วเข้า softmax
นับรวม: 4d² (attention) + 8d² (MLP) = 12d² ของหน้า 10
หนึ่งชั้น = attention (บังคำอนาคต หลายหัว) → บวกกลับ → MLP → บวกกลับ เกือบทั้งหมดคือ dot product, softmax และการบวก

มังคุด
แล้วตัวเลขใน W_Q ใครเป็นคนตั้งล่ะ?