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

ขั้นแรก: เปิดตาราง token → เวกเตอร์

ในบทที่ 1 ทุก โทเคน (token)ชิ้นข้อความที่ AI มองเห็นจริงๆ อาจเป็นทั้งคำ ส่วนของคำ หรือตัวอักษรเดียว แต่ละชิ้นมีเลขประจำตัวดูคำศัพท์ทั้งหมด มีเลขประจำตัว (ID) ส่วนในบทที่ 2 ทุก token มี เอ็มเบดดิง (embedding)การแปลงคำหรือข้อความเป็นชุดตัวเลข (เวกเตอร์) ข้อความที่ความหมายใกล้กันจะได้ตัวเลขใกล้กันดูคำศัพท์ทั้งหมด ของตัวเอง สองเรื่องนี้มาต่อกันตรงนี้

โมเดลเก็บ ตาราง embedding ไว้ 1 แถวต่อ 1 token ใน คลังคำของโมเดล (vocabulary)รายการ token ทั้งหมดที่โมเดลรู้จัก โมเดลจริงมีตั้งแต่หลายหมื่นถึงราวสองแสนกว่า tokenดูคำศัพท์ทั้งหมด เลข ID บอกว่าต้องอ่านแถวไหน ขั้นนี้ไม่มีการคำนวณ แค่เปิดตาราง

tokenID (สมมติ)เวกเตอร์ (2 มิติ)
แมว17(0.9, 0.8)
หมา42(0.8, 0.9)
รถ108(0.9, −0.2)

แล้วขนาดจริงล่ะ? ถ้าโมเดลในเอกสารของพี่มดมีคลังคำ 128,000 token และแต่ละแถวยาว 4,096 มิติ (dimension)จำนวนตัวเลขในเวกเตอร์ บทเรียนนี้ใช้ 2 มิติให้วาดได้ โมเดลจริงใช้หลายร้อยถึงหลายพันมิติดูคำศัพท์ทั้งหมด ตารางนี้จะมีตัวเลข

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

ข้อจำกัดคือ token เดิมได้แถวเดิมเสมอ "มัน" ได้เวกเตอร์เริ่มต้นเหมือนกันทุกประโยค และไม่รู้ว่าตัวเองอยู่ตรงไหนของประโยค

จึงเหลือสองปัญหา คือ ลำดับคำ (หน้าถัดไป) กับ บริบท (attention ที่คุณรู้จักแล้ว)

ขั้นแรกของโมเดลคือเปิดตาราง: token ID แต่ละตัวได้เวกเตอร์ประจำตัว 1 แถว และตัวเลขในตารางคือพารามิเตอร์ที่โมเดลเรียนรู้มา

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

มังคุด

ถ้าแต่ละคำได้แถวเดิมเสมอ "แมวกินปลา" กับ "ปลากินแมว" ก็ได้เวกเตอร์ชุดเดียวกันเป๊ะเลยสิ?