สิ่งที่หายไปตรงกลาง
ผลของความสนใจตามตำแหน่ง
สิ่งที่หายไปตรงกลาง เป็นบทเรียน AI Prompt Engineering ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Prompt Engineering และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Prompt Engineering มีบทเรียนทั้งหมด 4 บทเรียน
ปรากฏการณ์ข้อมูลสูญหายตรงกลาง
ในโมเดลบริบทยาว ความแม่นยำของการค้นคืนตามตำแหน่งจะเป็น เส้นโค้งรูปตัว U: ข้อเท็จจริงที่อยู่ต้นและท้ายบริบทจะถูกเรียกคืนได้ดี ส่วนข้อเท็จจริงที่อยู่ตรงกลางจะถูกเรียกคืนได้แย่ที่สุด นี่คือปรากฏการณ์ "ข้อมูลสูญหายตรงกลาง"
- นี่เป็นคุณสมบัติของการให้ความสนใจและการฝึก ไม่ใช่สิ่งที่เกิดขึ้นแบบสุ่ม
- ปรากฏการณ์นี้ยังคงเกิดขึ้นแม้คำตอบจะปรากฏอยู่อย่างชัดเจนโดยไม่มีความกำกวม
ตำแหน่งไม่ใช่สิ่งที่เป็นกลาง แต่เป็นปัจจัยด้านความน่าเชื่อถือที่คุณต้องออกแบบโดยคำนึงถึง
เหตุใดบริเวณตรงกลางจึงมีปัญหา
แรงกดดันหลายอย่างสะสมกันบริเวณตรงกลาง: อคติตามตำแหน่งให้ความสำคัญกับโทเค็นล่าสุดและโทเค็นช่วงต้น ข้อมูลฝึกมีรูปแบบที่คำตอบอยู่ใกล้ต้นหรือท้ายมากเกินไป และจำนวนสิ่งรบกวนที่แข่งขันกันอยู่ภายในมีมากจนลดทอนความสนใจต่อข้อเท็จจริงแต่ละข้อ
คุณไม่สามารถลบอคตินี้ออกจากโมเดลได้ แต่คุณสามารถหยุดต่อต้านมันได้
วางเนื้อหาสำคัญไว้ที่ขอบ
วิธีบรรเทาผลกระทบข้อแรกและน่าเชื่อถือที่สุดคือ วางสิ่งที่โมเดล ต้องใช้ไว้ที่ขอบเขต เนื้อหาคำสั่งงานและหลักฐานที่มีค่าสูงสุดควรอยู่ใกล้ด้านบนและด้านล่าง ไม่ใช่ฝังอยู่ตรงกลาง
- เริ่มต้นด้วยงานและข้อเท็จจริงสำคัญ
- ย้ำคำสั่งหลักอีกครั้งที่ท้ายสุด ("ย้ำงานของคุณ: ...")
context = (
TASK_INSTRUCTION +
KEY_EVIDENCE +
bulk_supporting_material +
TASK_REMINDER # restate at the tail
)การจัดวางตามความเกี่ยวข้อง
เมื่อคุณควบคุมลำดับของส่วนข้อมูลที่ค้นคืนมาได้ อย่านำมาเรียงจากหน้าไปหลังตามคะแนนการค้นคืน ให้สลับลำดับเพื่อให้ส่วนที่เกี่ยวข้องที่สุดอยู่ที่ขอบทั้งสองด้าน และให้ส่วนที่เกี่ยวข้องน้อยที่สุดเติมพื้นที่ตรงกลาง โดยใช้ประโยชน์จากเส้นโค้งรูปตัว U อย่างตั้งใจ
การวางข้อมูลสำคัญไว้ที่ขอบเช่นนี้ช่วยกู้คืนความสูญเสียจากตำแหน่งตรงกลางได้เป็นสัดส่วนมาก
def edge_load(chunks):
# chunks sorted by relevance desc
head, tail = [], []
for i, c in enumerate(chunks):
(head if i % 2 == 0 else tail).append(c)
return head + list(reversed(tail))ลดกองข้อมูล
วิธีแก้ปัญหาการสูญเสียตรงกลางที่มีต้นทุนต่ำที่สุดคือทำให้พื้นที่ตรงกลางมีน้อยลง การกรองล่วงหน้าอย่างเข้มงวด โดยตัดส่วนที่ไม่เกี่ยวข้องออกก่อนประกอบพรอมป์ต จะลดพื้นที่ภายในที่ข้อเท็จจริงอาจสูญหาย และรวมความสนใจไว้ที่สิ่งสำคัญ
พรอมป์ตที่มุ่งเน้นขนาด 15,000 โทเค็นแทบไม่มีพื้นที่ตรงกลางที่เปราะบาง ส่วนพรอมป์ตขนาด 600,000 โทเค็นมีพื้นที่ส่วนใหญ่เป็นตรงกลาง
การทำเครื่องชี้นำและการจัดทำดัชนี
จัดทำแผนที่ให้โมเดล สารบัญที่ด้านบนพร้อมจุดยึดของส่วนที่ชัดเจนช่วยให้โมเดลนำทางไปยังบริเวณที่เกี่ยวข้อง แทนที่จะพึ่งพาการเรียกคืนตามตำแหน่งเพียงอย่างเดียว
- กำหนดหมายเลขให้ส่วนต่าง ๆ และอ้างอิงหมายเลขเหล่านั้นในคำถาม
- เพิ่มจุดยึดที่ชัดเจน เช่น SECTION 7: PRICING ซึ่งโมเดลสามารถค้นหาได้
โครงสร้างช่วยทดแทนความน่าเชื่อถือตามตำแหน่งได้บางส่วน
# Top of prompt
# INDEX: [S1 Overview] [S2 Risks] [S3 Pricing] [S4 Appendix]
# Question: 'Using S3 only, what is the renewal fee?'บังคับให้สแกนก่อนตอบ
สั่งให้โมเดลระบุเป็นรายการว่าเนื้อหาที่เกี่ยวข้องปรากฏอยู่ที่ใดก่อนตอบ การค้นหาหลักฐานก่อนจะช่วยต่อต้านแนวโน้มที่จะข้ามข้อมูลตรงกลาง
"ขั้นแรก ให้แสดงรายการทุกส่วนที่กล่าวถึงค่าธรรมเนียมต่ออายุพร้อมจุดยึด จากนั้นจึงตอบ" การสแกนอย่างชัดเจนนี้จะทำให้เนื้อหาตรงกลางที่คำถามโดยตรงอาจพลาดไปปรากฏขึ้น
ask = (
'Step 1: list all anchors mentioning the topic. '
'Step 2: quote the relevant line from each. '
'Step 3: answer using only those quotes.'
)ถามใหม่พร้อมย้ายตำแหน่ง
หากข้อเท็จจริงสำคัญไปอยู่ในเขตอับและการเรียกคืนไม่มั่นคง ให้ส่งคำขอใหม่โดยย้ายข้อเท็จจริงนั้นไปไว้ที่ขอบ สำหรับงานที่มีหลายข้อเท็จจริง คุณสามารถประมวลผลหลายรอบโดยสลับว่าข้อเท็จจริงใดอยู่ในตำแหน่งที่มีความแข็งแกร่ง แล้วตรวจสอบและรวมผลลัพธ์เข้าด้วยกัน
การสลับตำแหน่งเป็นเทคนิคเพิ่มความทนทานที่ใช้ได้จริงเมื่อผังเดียวไม่น่าเชื่อถือ
แบ่งส่วนแล้วรวมเพื่อความครอบคลุม
สำหรับงานที่ต้องค้นหาให้ครบถ้วน ("ค้นหาการละเมิดทั้งหมด") การประมวลผลขนาดใหญ่เพียงรอบเดียวจะพลาดรายการตรงกลาง แบ่งข้อมูลเป็นหน้าต่างที่ทับซ้อนกันและมีขนาดเล็กพอที่จะไม่มีพื้นที่ตรงกลางที่อ่อนแอ ประมวลผลแต่ละหน้าต่าง แล้วรวมและตัดผลลัพธ์ที่ซ้ำกัน
- การซ้อนทับช่วยป้องกันการพลาดข้อมูลที่อยู่ตรงขอบเขต
- ขั้นตอนการรวมจะตรวจสอบรายการซ้ำและความขัดแย้งให้สอดคล้องกัน
งานที่ต้องครอบคลุมให้ผลดีกว่าเมื่อใช้การประมวลผลรอบเล็กหลายรอบแทนการประมวลผลรอบใหญ่เพียงรอบเดียว
def coverage(doc, win, overlap):
out = []
for w in windows(doc, win, overlap):
out += extract(w)
return dedupe(out)วัดเส้นโค้งรูปตัว U ของคุณเอง
ความรุนแรงของปรากฏการณ์นี้แตกต่างกันไปตามโมเดลและรูปแบบพรอมป์ต ให้ระบุลักษณะของมันโดยแทรกข้อมูลทดสอบที่ความลึกต่าง ๆ อย่างทั่วถึง แล้วพล็อตกราฟการเรียกคืน ใช้เส้นโค้งนี้ตัดสินความยาวบริบทที่ปลอดภัยและนโยบายการวางข้อมูลสำคัญไว้ที่ขอบสำหรับโมเดลนั้น
ออกแบบระบบโดยอิงพฤติกรรมที่วัดได้ ไม่ใช่ความเชื่อที่เล่าต่อกันมา
depths = [0.0, 0.25, 0.5, 0.75, 1.0]
recall = {d: probe_canary_at(d) for d in depths}
# Expect a dip around 0.5คู่มือความทนทานต่อตำแหน่ง
เพื่อเอาชนะปรากฏการณ์ข้อมูลสูญหายตรงกลาง ให้ลดกองข้อมูล วางเนื้อหาที่เกี่ยวข้องที่สุดไว้ที่ขอบ ย้ำงานที่ส่วนท้าย เพิ่มดัชนีและบังคับให้สแกนเพื่อค้นหาข้อมูลก่อนตอบ สลับตำแหน่งเมื่อถามใหม่ และใช้การแบ่งส่วนแล้วรวมสำหรับงานที่ต้องค้นหาให้ครบถ้วน เหนือสิ่งอื่นใด ให้วัดเส้นโค้งของโมเดลคุณและออกแบบระบบให้สอดคล้องกับเส้นโค้งนั้น
ตรวจสอบอย่างรวดเร็ว
คุณมีข้อเท็จจริงหนึ่งข้อที่ต้องใช้ และมีบริบทสนับสนุนจำนวนมาก โดยสังเกตว่าโมเดลมักไม่สนใจข้อเท็จจริงดังกล่าว
ทบทวน: ผลของการให้ความสนใจตามตำแหน่ง
การเรียกคืนจากบริบทยาวเป็นรูปตัว U: ขอบมีความน่าเชื่อถือ แต่ตรงกลางไม่เป็นเช่นนั้น ให้แก้ปัญหาด้วยการลดกองข้อมูล วางส่วนข้อมูลที่เกี่ยวข้องที่สุดไว้ที่ขอบ ย้ำงานที่ส่วนท้าย เพิ่มดัชนีและบังคับให้สแกนเพื่อค้นหาข้อมูลก่อนตอบ สลับตำแหน่งเมื่อถามใหม่ และใช้การแบ่งส่วนแล้วรวมสำหรับงานที่ต้องค้นหาให้ครบถ้วน วัดเส้นโค้งจริงของโมเดลคุณ และออกแบบการจัดวางให้สอดคล้องกับเส้นโค้งนั้นแทนที่จะเชื่อว่าการเรียกคืนมีความสม่ำเสมอ
เรียนรู้ AI Prompt Engineering ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 53
- บทเรียน
- 199
คำถามที่พบบ่อย
บทเรียน “สิ่งที่หายไปตรงกลาง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “สิ่งที่หายไปตรงกลาง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Prompt Engineering ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Prompt Engineering มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “สิ่งที่หายไปตรงกลาง”
ผลของความสนใจตามตำแหน่ง คุณปฏิบัติ AI Prompt Engineering ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Prompt Engineering หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Prompt Engineering บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “สิ่งที่หายไปตรงกลาง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Prompt Engineering นี้ได้ไหม
ได้ บทเรียน AI Prompt Engineering ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- หน้าต่างบริบทระดับล้านโทเค็น
- สิ่งที่หายไปตรงกลาง
- การจัดโครงสร้างพรอมต์ขนาดใหญ่
- การแคชคำนำหน้ายาว