𝗪𝗵𝘆 𝗔𝗜 𝗖𝗵𝗮𝗿𝗮𝗰𝘁𝗲𝗿𝘀 𝗙𝗼𝗿𝗴𝗲𝘁 𝗧𝗵𝗲𝗶𝗿 𝗜𝗱𝗲𝗻𝘁𝗶𝘁𝘆
คุณใช้เวลาสองชั่วโมงในการสร้างตัวละคร แต่หลังจากผ่านไปเพียงสามสิบประโยคสนทนา ตัวละครนั้นกลับลืมชื่อตัวเอง และเริ่มทำตัวเหมือนผู้ช่วยทั่วไป
คนส่วนใหญ่คิดว่า AI มีความจำไม่ดี แต่ความคิดนี้ไม่ถูกต้อง
ปัญหาคือ context window
โมเดลแชทเป็นแบบ stateless ทุกครั้งที่คุณส่งข้อความ แอปจะส่ง system prompt, รายละเอียดตัวละคร และประวัติการแชทล่าสุดกลับไปยังโมเดล
สิ่งที่คุณเรียกว่าความจำ แท้จริงแล้วเป็นเพียงประวัติการสนทนาที่ยังคงอยู่ในหน้าต่างอินพุตนั้น
เมื่อการแชทยาวเกินไป ข้อความเก่าๆ จะหลุดออกจากหน้าต่างนี้ รายละเอียดจากรอบที่ 12 จะหายไปเพื่อเปิดทางให้รอบที่ 41 โมเดลไม่ได้ลืม แตแอปเพียงแค่หยุดส่งข้อมูลนั้นให้โมเดลเห็นเท่านั้น
การใช้ context window ที่ใหญ่ขึ้นไม่ใช่ทางแก้ปัญหา
หน้าต่างขนาดใหญ่ก่อให้เกิดปัญหา 2 ประการ:
- ต้นทุนและความเร็ว: การเพิ่มขนาดหน้าต่างเป็นสองเท่าจะเพิ่มความต้องการในการประมวลผล (compute) อย่างมาก แอปต่างๆ จึงมักจำกัดขนาดหน้าต่างเพื่อให้ตอบโต้ได้รวดเร็วและราคาถูก
- Middle degradation: งานวิจัยแสดงให้เห็นว่าโมเดลสามารถค้นหาข้อเท็จจริงได้ดีในช่วงต้นหรือช่วงท้ายของข้อความยาวๆ แต่จะพลาดข้อเท็จจริงที่ถูกฝังอยู่ตรงกลาง
แอปที่ดีที่สุดไม่ได้พึ่งพาแค่ขนาดของหน้าต่างเพียงอย่างเดียว แต่ใช้สองวิธีเฉพาะทางดังนี้:
- Recursive summarization: แอปจะเปลี่ยนข้อความเก่าๆ ให้กลายเป็นบทสรุปสั้นๆ วิธีนี้ช่วยรักษาข้อเท็จจริงหลักเอาไว้โดยไม่เปลืองพื้นที่มากนัก
- Retrieval: แอปจะเก็บข้อความเก่าไว้ในฐานข้อมูล และจะดึงเฉพาะข้อเท็จจริงที่เกี่ยวข้องออกมาเมื่อคุณต้องการ นี่คือหลักการทำงานของ lorebooks
ความแตกต่างระหว่างแอปที่ดีและแอปที่ไม่ดีคือสถาปัตยกรรม (architecture) แอปที่ดีจะใช้เลเยอร์ความจำ (memory layer) ในขณะที่อีกแอปเป็นเพียงแค่ wrapper บางๆ ที่ครอบหน้าต่างอินพุตดิบๆ ไว้เท่านั้น
หากตัวละครของคุณสูญเสียบุคลิกภาพ อย่าเพิ่งเปลี่ยนไปใช้โมเดลที่ใหญ่ขึ้น แต่ให้เปลี่ยนโครงสร้างแทน สรุปประโยคสนทนาเก่าๆ และดึงข้อมูลที่สำคัญออกมา
ให้ปฏิบัติกับ context window เหมือนเป็น cache ไม่ใช่ฮาร์ดไดรฟ์
Optional learning community: https://t.me/GyaanSetuAi