เหตุใดคอนเท็กซ์ยาวจึงล้มเหลว
(dbreunig.com)- ในโมเดลภาษาขนาดใหญ่รุ่นล่าสุด มีการนำหน้าต่างคอนเท็กซ์แบบยาวที่รองรับได้ถึง 1 ล้านโทเค็นมาใช้ ทำให้เกิดความคาดหวังว่าประสิทธิภาพของเอเจนต์จะก้าวกระโดดอย่างมาก
- แต่ในความเป็นจริง คอนเท็กซ์ยาวไม่ได้ทำให้คำตอบดีขึ้น กลับเป็นสาเหตุให้ระบบล้มเหลวจาก การเสพติดคอนเท็กซ์, ความผิดพลาด, ความสับสน, ความขัดแย้ง
- ปัญหาตัวอย่างที่พบได้บ่อยคือ การปนเปื้อนของคอนเท็กซ์ (poisoning), การทำให้เสียสมาธิของคอนเท็กซ์ (distraction), ความสับสนของคอนเท็กซ์ (confusion), และ ความขัดแย้งของคอนเท็กซ์ (clash)
- ปัญหาเหล่านี้ส่งผลต่อเอเจนต์รุนแรงยิ่งขึ้น โดยเฉพาะในโฟลว์ที่ซับซ้อน เช่น แหล่งข้อมูลจำนวนมาก, การเชื่อมต่อเครื่องมือ, การให้เหตุผลหลายขั้นตอน
- ในบทความถัดไปจะพูดถึงวิธีแก้ที่ใช้งานได้จริงและกลยุทธ์ในการหลีกเลี่ยง
ความสำคัญของการจัดการคอนเท็กซ์
- โมเดล frontier ขนาดใหญ่ในช่วงหลังเริ่มให้บริการหน้าต่างคอนเท็กซ์ขนาดยาวที่รองรับได้ถึง 1 ล้านโทเค็น
- หลายคนคาดหวังว่าเพียงใส่เครื่องมือ เอกสาร และคำสั่งทั้งหมดลงในหน้าต่างขนาดใหญ่นี้ก็ไม่น่าจะมีปัญหา
- แต่ในทางปฏิบัติ ภาวะคอนเท็กซ์ล้นเกินก่อให้เกิดความล้มเหลวหลายรูปแบบ และเป็นปัญหาร้ายแรงอย่างยิ่งโดยเฉพาะในแอปพลิเคชันแบบเอเจนต์
การปนเปื้อนของคอนเท็กซ์ (Context Poisoning)
- การปนเปื้อนของคอนเท็กซ์คือปรากฏการณ์ที่ อาการหลอน (hallucination) หรือข้อผิดพลาดไหลเข้าไปอยู่ในคอนเท็กซ์และถูกอ้างอิงซ้ำ ๆ
- รายงานทางเทคนิคของ Gemini 2.5 จาก Deep Mind อธิบายกรณีที่สถานะเกมผิดพลาดยังคงค้างอยู่ในส่วนเป้าหมายหรือสรุประหว่างการเล่นเกม ทำให้เอเจนต์ทำพฤติกรรมผิดซ้ำโดยยึดตามกลยุทธ์ที่ไร้ความหมายและเป้าหมายที่เป็นไปไม่ได้
- คอนเท็กซ์ที่ปนเปื้อนเช่นนี้ทำให้การตัดสินใจของเอเจนต์ขุ่นมัวได้ทั้งแบบชั่วคราวและยาวนาน
การทำให้เสียสมาธิของคอนเท็กซ์ (Context Distraction)
- การทำให้เสียสมาธิของคอนเท็กซ์คือภาวะที่คอนเท็กซ์ยาวเกินไปจน โมเดลไปโฟกัสกับคอนเท็กซ์มากเกินกว่าสิ่งที่เรียนรู้ระหว่างการฝึก
- แม้แต่ในหน้าต่าง 1M+ โทเค็นของ Gemini 2.5 Pro เมื่อคอนเท็กซ์เกิน 100,000 โทเค็นไปแล้ว ในทางปฏิบัติโมเดลมักทำได้เพียงทวนประวัติที่ผ่านมา และวางแผนเชิงสร้างสรรค์ได้ยาก
- งานวิจัยของ Databricks ยืนยันว่าในกรณีของ Llama 3.1 405b ความแม่นยำลดลงอย่างฮวบฮาบตั้งแต่ที่ 32,000 โทเค็น
- สิ่งนี้ชี้ให้เห็นว่าในโลกความเป็นจริง หน้าต่างขนาดใหญ่มาก ๆ อาจมีประโยชน์หลักเพียงกับงานสรุป (summarization) และการดึงข้อเท็จจริง (retrieval)
ความสับสนของคอนเท็กซ์ (Context Confusion)
- หากใส่เครื่องมือหรือคำจำกัดความจำนวนมากเกินไปไว้ในคอนเท็กซ์ โมเดลจะสร้างคำตอบคุณภาพต่ำ เช่น เรียกใช้เครื่องมือที่ไม่จำเป็นหรือไม่เหมาะสม
- ตาม Function-Calling Leaderboard ของ Berkeley ยิ่งมีเครื่องมือให้มากเท่าไร ประสิทธิภาพของทุกโมเดลก็ยิ่งลดลง และมีการเรียกใช้ที่ไม่จำเป็นเกิดขึ้นบ่อยครั้ง
- ในงานวิจัย benchmark ของ GeoEngine โมเดล Llama 3.1 8b ล้มเหลวเมื่อมีเครื่องมือ 46 ตัวให้ใช้งาน แต่ประสบความสำเร็จเมื่อให้เพียง 19 ตัว
- ข้อมูลที่อยู่ในคอนเท็กซ์จะถูกโมเดลมองว่าเป็นข้อมูลที่ต้องพิจารณาเสมอ ทำให้ noise ที่ไม่จำเป็นกลายเป็นปัญหา
ความขัดแย้งของคอนเท็กซ์ (Context Clash)
- ความขัดแย้งของคอนเท็กซ์คือสถานะที่ข้อมูลที่ถูกรวบรวมมาแบบหลายขั้นตอนหรือคำอธิบายเครื่องมือมีเนื้อหาที่ขัดกันหรือขัดแย้งกันเอง
- งานวิจัยของ Microsoft และ Salesforce แสดงให้เห็นว่าในบทสนทนาแบบหลายเทิร์น ปรากฏการณ์นี้ทำให้ ประสิทธิภาพลดลงเฉลี่ย 39%
- สาเหตุคือมีการสร้างสมมติฐานที่ผิดตั้งแต่คำตอบช่วงต้น และหลังจากนั้นโครงสร้างของระบบก็ยังพึ่งพาคำตอบนั้นมากเกินไป
- ความเสี่ยงของความขัดแย้งจะเพิ่มขึ้นเมื่อเชื่อมต่อกับเครื่องมือภายนอกอย่าง MCP
บทสรุปและมุมมองต่อไป
- การมาถึงของคอนเท็กซ์ระดับล้านโทเค็นเคยถูกมองว่าเป็นนวัตกรรม แต่ในความเป็นจริงกลับทำให้ข้อผิดพลาดรูปแบบใหม่ เช่น การปนเปื้อน, การเสียสมาธิ, ความสับสน, ความขัดแย้ง เพิ่มขึ้น
- ปัญหาเหล่านี้ร้ายแรงอย่างยิ่งต่อระบบเอเจนต์ โดยเฉพาะเมื่อมี การรวบรวมข้อมูลหลายแหล่ง, การเชื่อมต่อเครื่องมือเป็นลำดับขั้น, ประวัติการสนทนายาวต่อเนื่อง สะสมเข้ามา
- แนวทางแก้อาจรวมถึงกลยุทธ์ต่าง ๆ เช่น การโหลดเครื่องมือแบบไดนามิก และ การแยกคอนเท็กซ์ออกจากกัน ซึ่งจะมีการอธิบายอย่างเป็นรูปธรรมในบทความถัดไป
บทความถัดไป: “วิธีแก้คอนเท็กซ์ของคุณ”
ยังไม่มีความคิดเห็น