บทที่ 1 · AI เดาคำถัดไปยังไง หน้า 9/11 ~3 นาที

วงจร autoregressive และ log-probability

Advanced · ให้เห็นภาพรวม ข้ามได้ ไม่นับเป็นเงื่อนไขจบบท ข้ามไปหน้าถัดไป →

หน้านี้ให้เห็นภาพรวม ไม่ต้องลงมือทำ ข้ามได้

วงจรที่วนซ้ำ

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

วงจรเดาคำถัดไปข้อความตั้งต้น ไปเป็นคะแนน logit ไป softmax ได้ความน่าจะเป็น ไปสุ่มเลือกคำ แล้วต่อท้ายข้อความ วนกลับไปเริ่มใหม่ข้อความprompt + คำที่เขียนแล้วlogitsคะแนนทุก tokensoftmaxเป็น %สุ่มเลือกT, top-pต่อท้ายคำใหม่ 1 tokenวนซ้ำ
  1. เอาข้อความทั้งหมดที่มี (คำสั่งของคุณ + คำที่เขียนไปแล้ว) เข้าโมเดล
  2. ได้คะแนน logit ของทุก token
  3. แปลงเป็นเปอร์เซ็นต์ด้วย ซอฟต์แมกซ์ (softmax)สูตรที่เปลี่ยนคะแนนดิบเป็นความน่าจะเป็นที่รวมกันได้ 100% โดยยก e กำลังคะแนนแล้วหารด้วยผลรวมดูคำศัพท์ทั้งหมด (ปรับด้วย temperature / top-p)
  4. การสุ่มเลือกคำ (sampling)การจับฉลากเลือกคำถัดไปตามความน่าจะเป็น คำที่โอกาสสูงถูกเลือกบ่อยกว่า แต่ไม่ใช่ทุกครั้งดูคำศัพท์ทั้งหมด มา 1 token แล้วต่อท้ายข้อความ
  5. กลับไปข้อ 1 จนกว่าจะเจอ token "จบ"

การเขียนแบบที่ใช้ผลลัพธ์ของตัวเองเป็นบริบทของรอบถัดไปนี้เรียกว่า autoregressive

ประโยคยาวคือการเดาคำถัดไปซ้ำหลายรอบ แต่ละรอบใช้ทุกคำก่อนหน้าเป็นบริบท

ความน่าจะเป็นของทั้งประโยค

โอกาสของทั้งประโยค = ผลคูณของโอกาสในแต่ละรอบ:

ตัวอย่าง: โอกาสของ "ปลา" หลัง "แมวชอบกิน" คือ 0.6572 ถ้าสมมติว่าคำถัดไปมีโอกาส 0.5 ทั้งสองคำรวมกันจะได้

ยิ่งประโยคยาว ผลคูณยิ่งเล็กลงเรื่อยๆ จนเล็กเกินกว่าที่คอมพิวเตอร์เก็บได้แม่น ระบบจริงจึงใช้ log เปลี่ยน "คูณ" เป็น "บวก":

สรุป

  • โมเดลเขียนทีละ token และไม่ย้อนกลับไปแก้คำที่เขียนแล้ว
  • คำแรกที่ผิดจึงพาคำถัดๆ ไปผิดตาม (เหตุผลข้อ 4 ของหน้าที่แล้ว)
มังคุด มาสคอตมังคุด

มังคุด

แปลว่าตอนมันตอบยาวๆ มันวนแบบนี้เป็นร้อยรอบเลยเหรอ?