CCA · Foundations

lost in the middle และการวางสรุปสำคัญไว้ต้นกับท้าย

แนวคิด

โมเดลภาษาไม่ได้ให้ความสนใจกับทุกตำแหน่งใน input เท่ากัน เมื่อ input ยาวมาก ๆ ข้อมูลที่อยู่ต้นและท้ายมักถูกประมวลผลได้แม่นยำ แต่ข้อมูลที่ฝังอยู่ตรงกลางมีโอกาสถูกมองข้ามหรือหลุดหายไป ปรากฏการณ์นี้เรียกว่า lost in the middle คือ "หายไปตรงกลาง"

ผลของตำแหน่งนี้สำคัญมากเวลาเรารวมผลลัพธ์จากหลายแหล่งเข้าเป็นก้อนเดียวยาว ๆ เช่น coordinator ที่นำผลจาก subagent หลายตัวมาต่อกัน ถ้า finding ที่สำคัญที่สุดบังเอิญไปตกอยู่กลางก้อน มันอาจไม่ถูกนำมาใช้ตอนสังเคราะห์ ทั้งที่ข้อมูลอยู่ใน context ครบถ้วน ปัญหาไม่ได้อยู่ที่ข้อมูลขาด แต่อยู่ที่ตำแหน่งของมัน

ทางแก้มีสองชั้น ชั้นแรกคือวางสรุปของ finding สำคัญไว้ที่ "ต้น" ของ input ที่รวมมา ให้สิ่งที่พลาดไม่ได้อยู่ในโซนที่โมเดลอ่านได้แม่นเสมอ ชั้นที่สองคือจัดระเบียบรายละเอียดด้วย section header ที่ชัดเจน ให้แต่ละส่วนมีหัวข้อกำกับ เพื่อให้โมเดลนำทางกลับไปหาข้อมูลตรงกลางได้ง่ายขึ้น แทนที่จะเป็นข้อความยาวไร้โครงสร้าง

ทำไมสำคัญ

เอกสาร context windows ของ Anthropic อธิบายว่ายิ่ง token มากขึ้น ความแม่นยำและการเรียกคืนข้อมูลยิ่งเสื่อม เรียกว่า context rot การเติมข้อมูลเข้าไปมาก ๆ จึงไม่ได้ช่วยเสมอไป การคัดว่าอะไรควรอยู่ตรงไหนสำคัญพอ ๆ กับปริมาณที่ใส่เข้าไป lost in the middle คือหน้าตาหนึ่งของ context rot ที่ผูกกับตำแหน่ง ไม่ใช่แค่ปริมาณ

แนวทางการเขียน prompt ที่ดีจึงแนะนำให้จัดโครงสร้าง input อย่างจงใจ วางเนื้อหายาว ๆ เช่นเอกสารอ้างอิงไว้ส่วนบน แล้ววางคำถามหรือคำสั่งที่ต้องการคำตอบไว้ท้ายสุด และคั่นแต่ละส่วนด้วยหัวข้อหรือแท็กให้ชัด โครงสร้างแบบนี้ช่วยให้โมเดลเห็นภาพรวมก่อน แล้วรู้ว่าต้องโฟกัสที่คำสั่งท้ายสุด ลดโอกาสที่ finding กลางเอกสารจะถูกลืม

สิ่งที่ต้องเข้าใจให้ลึกคือ การวางสรุปไว้ต้นไม่ได้หมายความว่าเราทิ้งรายละเอียดตรงกลาง แต่เราสร้าง "ทางเข้า" ให้โมเดล คือให้มันเห็นบทสรุปสำคัญก่อนในโซนที่แม่นยำ แล้วค่อยมี section header เป็นป้ายบอกทางให้มันย้อนไปหยิบรายละเอียดที่ต้องการตรงกลางได้ตรงจุด นี่คือเหตุผลที่ subagent ควรใส่ metadata อย่างวันที่และแหล่งที่มาในผลลัพธ์แบบมีโครงสร้าง เพื่อให้ขั้นสังเคราะห์ปลายทางเรียกใช้ได้แม่นยำ

ตัวอย่าง

[สรุปสำคัญ — วางไว้ต้น]
- ยอดขายไตรมาส 2 ลด 8% เทียบไตรมาสก่อน (แหล่ง: report_A)
- สาเหตุหลักคือกลุ่มสินค้า X (แหล่ง: report_C)

## รายละเอียดจาก report_A
...เนื้อหายาว...

## รายละเอียดจาก report_B
...เนื้อหายาว...

## รายละเอียดจาก report_C
...เนื้อหายาว...

[คำถาม — วางไว้ท้าย]
จากข้อมูลข้างต้น ให้สรุปสาเหตุการลดลงของยอดขาย

ลองกดปุ่มในซิมด้านล่างเพื่อดูว่า เมื่อตัด tool output ที่ไม่จำเป็นออก key fact จะขยับจากกลาง context เข้าใกล้ต้นมากขึ้น คะแนน retention จึงสูงขึ้น

แต่ละแท่งคือคะแนน retention ตามตำแหน่งใน context ยิ่งอยู่ใกล้ต้นหรือท้ายยิ่งจำได้ดี

key fact (แท่งสีส้ม) อยู่ตำแหน่งที่ 10 จาก 20 ตำแหน่ง คะแนน retention = 0.10 ฝังอยู่กลาง context ยาว ๆ ที่เต็มไปด้วย tool output ที่ไม่จำเป็น

แบบจำลองเพื่อเห็นภาพ ไม่ใช่กลไกภายในโมเดลจริงสาเหตุจริงของปรากฏการณ์ 'lost in the middle' คือรูปแบบ attention และการเทรนโมเดลกับ context ยาว ๆ ไม่ใช่สูตรตำแหน่งตรง ๆ แบบนี้

เช็คความเข้าใจ

ผลของตำแหน่งแบบ lost in the middle คืออะไร และเกิดกับข้อมูลส่วนไหน

สองชั้นของการแก้ lost in the middle คืออะไร

อ่านต่อ