บทที่ 4 · AI เรียนรู้ยังไง หน้า 4/13 ~2 นาที

Perplexity: ลังเลเหมือนเลือกจากกี่ทาง

loss 0.4197 นึกภาพยาก วิธีแปลงให้เข้าใจง่ายคือเอา e ยกกำลังด้วย loss ได้ค่าที่เรียกว่า ความลังเล (perplexity)e ยกกำลัง loss เฉลี่ยต่อ token อ่านได้ว่าโมเดลลังเลเหมือนต้องเลือกจากกี่ทาง ยิ่งต่ำยิ่งดี และเทียบกันได้เฉพาะเมื่อใช้ tokenizer กับข้อความทดสอบเดียวกันดูคำศัพท์ทั้งหมด

ถ้าเฉลยคือ ปลา: อ่านว่าโมเดล "ลังเลราว 1.5 ทาง" สำหรับคำเดียว ค่านี้เท่ากับ 1/p พอดี: 1/0.6572 ≈ 1.52

เทียบกับการเดาสุ่มจาก 4 ทาง: p = 0.25 ได้ loss = ln 4 = 1.3863 และ perplexity = 4 พอดี แปลว่า "ลังเลเท่าเดาสุ่มจาก 4 ทาง"

ทั้งประโยคก็ได้ ลองใช้ 3 ข้อของ "แมวชอบกินปลา" ที่เห็นมาแล้ว (สองข้อแรกสมมติโอกาสให้):

ข้อโอกาสที่ให้เฉลยloss
ชอบ หลัง แมว25.0%1.3863
กิน หลัง แมวชอบ50.0%0.6931
ปลา หลัง แมวชอบกิน65.7%0.4197

loss เฉลี่ย ≈ 0.833 → perplexity = ≈ 2.30 หรือลังเลราว 2.3 ทางต่อคำ

ก่อนฝึก โมเดลเดาเกือบสุ่มจาก คลังคำของโมเดล (vocabulary)รายการ token ทั้งหมดที่โมเดลรู้จัก โมเดลจริงมีตั้งแต่หลายหมื่นถึงราวสองแสนกว่า tokenดูคำศัพท์ทั้งหมด สมมติมี 100,000 token จะได้ loss ≈ ln 100,000 = 11.5129 และ perplexity ≈ 100,000

การฝึกดัน perplexity จากหลักแสนลงมาเหลือหลักหน่วยถึงหลักสิบ (loss จาก ~11.5 เหลือราว 2–3 และต่ำกว่า 2 ได้ในโมเดลใหญ่)

ค่าต่ำสุดที่เป็นไปได้คือ 1 หมายถึงเดาถูกทุกคำแบบมั่นใจเต็มร้อย

ข้อควรระวัง: perplexity เทียบกันได้เฉพาะโมเดลที่ใช้ tokenizer เดียวกัน และวัดบนข้อความทดสอบชุดเดียวกัน

perplexity = e ยกกำลัง loss เฉลี่ย บอกว่าโมเดลลังเลเหมือนต้องเลือกจากกี่ทาง ยิ่งต่ำยิ่งเดาแม่น

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

มังคุด

ถ้าฝึกไปเรื่อยๆ perplexity จะลงไปถึง 1 ได้มั้ย?