ช่วงบริบท
context length · context limit
กล่าวโดยย่อ
ช่วงบริบทคือจำนวนโทเคนสูงสุดที่โมเดลสามารถประมวลผลได้ในคำขอหนึ่งครั้ง มันประกอบด้วยคำสั่งระบบ ตัวอย่างเครื่องมือ ประวัติการสนทนา เอกสารที่แนบมา และผลลัพธ์ที่สร้างขึ้น สิ่งที่อยู่นอกเหนือจากช่วงนี้จะมองไม่เห็นโดยโมเดล
หน้าต่างบริบท (context window) เป็นขีดจำกัดที่ตายตัว และเป็น งบประมาณที่ใช้ร่วมกัน ทุกอย่างแข่งขันกันเพื่อพื้นที่เดียวกัน: คำแนะนำของระบบ, สคีมาของเครื่องมือ, การสนทนาที่ผ่านมา, ข้อความที่ดึงมา, ไฟล์ที่แนบมา, และการตอบสนองที่กำลังสร้างขึ้น
รายการสุดท้ายนี้ทำให้หลายคนประหลาดใจ อินพุตที่ยาวมากอาจเหลือพื้นที่ไม่เพียงพอสำหรับการตอบที่ยาว ทำให้ผลลัพธ์หยุดกลางประโยคโดยไม่มีเหตุผลที่ชัดเจน
บริบทที่ยาวก็เสื่อมถอยไม่สม่ำเสมอเช่นกัน การวิจัยเกี่ยวกับพฤติกรรมของบริบทที่ยาวพบว่าเส้นโค้งความแม่นยำเป็นรูปตัว U: ข้อเท็จจริงที่อยู่ต้นและท้ายของอินพุตที่ยาวจะถูกเรียกคืนได้น่าเชื่อถือมากกว่าข้อเท็จจริงที่อยู่ตรงกลาง กฎการปฏิบัติที่ตามมาโดยตรงคือ: คำแนะนำต้องมาก่อน คำถามปัจจุบันต้องอยู่ท้ายสุด และไม่มีการเว้นวรรค
ค่าใช้จ่ายก็ติดตามงบประมาณเดียวกัน API แชทส่วนใหญ่จะส่งการสนทนาทั้งหมดใหม่ทุกครั้ง ดังนั้นเธรดที่ยาวจะแพงขึ้นเร็วกว่าจำนวนข้อความที่แสดง การแคชพรอมต์ ช่วยลดราคาของส่วนนำหน้าที่ไม่เปลี่ยนแปลง แต่เฉพาะเมื่อส่วนนำหน้านั้นเหมือนกันทุกไบต์ระหว่างคำขอ
วิธีแก้ไขทั่วไปสำหรับการชนขีดจำกัดไม่ใช่หน้าต่างที่ใหญ่ขึ้น แต่เป็นการ ดึงข้อมูล: ดึงข้อความไม่กี่ข้อความที่เกี่ยวข้องกับคำถามและส่งข้อความเหล่านั้น
คำถามที่พบบ่อย
- การมีช่วงบริบทที่กว้างขึ้นทำให้คำตอบดีขึ้นหรือไม่?
- ไม่ใช่โดยอัตโนมัติ โมเดลจะดึงข้อมูลที่อยู่ใกล้เริ่มต้นและปลายของข้อมูลอินพุตยาวได้ดีกว่าข้อมูลในส่วนกลาง ดังนั้นความสำคัญจึงมีน้ำหนักมากกว่าปริมาณ
- เมื่อการสนทนาเกินขอบเขตจะเกิดอะไรขึ้น?
- แอปพลิเคชันต้องทิ้ง, สรุป, หรือส่งออกการสนทนาที่เก่า โมเดลไม่สามารถมองเห็นอะไรที่อยู่นอกหน้าต่าง และจะไม่แจ้งเตือนคุณว่าได้ลบสิ่งใดไป