AI Prompt Engineering · บทเรียน

สิ่งที่หายไปตรงกลาง

ผลของความสนใจตามตำแหน่ง

บทเรียน 2 จาก 413 ขั้นตอน

สิ่งที่หายไปตรงกลาง เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. หน้าต่างบริบทระดับล้านโทเค็น
  2. สิ่งที่หายไปตรงกลาง
  3. การจัดโครงสร้างพรอมต์ขนาดใหญ่
  4. การแคชคำนำหน้ายาว
← กลับไปที่ AI Prompt Engineering