SWE-Prime แสดงให้เห็นว่าการฝึกฝนด้วยข้อมูล "pass" ที่ผ่านการคัดสรรมาอย่างดีเพียง 10% ช่วยสร้าง AI agent ที่แข็งแกร่งกว่าการป้อนทุก trajectory ที่ประสบความสำเร็จเข้าไปในโมเดล ซึ่งเป็นการตั้งคำถามต่อความเชื่อเดิมๆ ที่ว่าการใช้ป้ายกำกับ "pass" เป็นตัวกรองคุณภาพที่เชื่อถือได้

ผลลัพธ์นี้มีความสำคัญต่อทุกคนที่กำลังสร้าง code-generation หรือ automated debugging agents: ข้อมูลที่มากขึ้นไม่ได้หมายถึงประสิทธิภาพที่ดีขึ้นเสมอไป และการพึ่งพาเพียงแค่สถานะ pass/fail แบบ binary อย่างไร้เดียงสา อาจทำให้โมเดลเรียนรู้ที่จะทำงานแบบสะเปะสะปะ เรียกใช้เครื่องมือที่ไม่มีประโยชน์ซ้ำๆ และพึ่งพาโชคชะตามากกว่าการใช้เหตุผล

ทำไมป้ายกำกับ “pass” ถึงได้รับความไว้วางใจ

ใน pipeline ของ reinforcement-learning-from-human-feedback ส่วนใหญ่ วิศวกรจะติดป้ายกำกับ trajectory ซึ่งก็คือลำดับเหตุการณ์ทั้งหมดของการสังเกต (observations), การกระทำ (actions) และการเรียกใช้เครื่องมือ (tool invocations) ว่าเป็น “pass” เมื่อผลลัพธ์สุดท้ายตรงตามเกณฑ์การทดสอบ สมมติฐานนั้นง่ายมาก: หาก agent ประสบความสำเร็จ แสดงว่าทั้ง episode นั้นต้องมีพฤติกรรมที่เป็นประโยชน์ ดังนั้นพวกเขาจึงเททุกการรันที่ผ่าน (passing run) ลงในชุดข้อมูลสำหรับฝึกฝน โดยหวังว่าโมเดลจะดูดซับรูปแบบที่นำไปสู่ความสำเร็จนั้นได้

สมมติฐานดังกล่าวได้ชี้นำการเก็บข้อมูลขนาดใหญ่สำหรับ software-engineering (SWE) agents มานานหลายเดือน ตรรกะนี้ดูเหมือนจะสมเหตุสมผล: การ "pass" บ่งบอกว่า agent แก้ปัญหาได้ ดังนั้น episode นั้นควรจะช่วยเสริมสร้างนโยบาย (policies) ที่ทำให้เกิดความสำเร็จนั้นขึ้นมา

สิ่งที่ SWE-Prime ทำแตกต่างออกไป

การศึกษาของ SWE-Prime ได้เปลี่ยนแนวทางใหม่ นักวิจัยนำ benchmark มาตรฐานของงานเขียนโค้ดมาใช้ และแบ่งการรันที่ประสบความสำเร็จออกเป็นสองกลุ่ม:

  1. All pass trajectories – ชุดข้อมูลฝึกฝนแบบดั้งเดิม ซึ่งประกอบด้วยทุก episode ที่ผ่านการทดสอบ
  2. A curated 10% subset – ชุดข้อมูลย่อย 10% ที่ผ่านการคัดสรรมาอย่างดีจากชุดข้อมูลทั้งหมด

ทั้งสองกลุ่มใช้สถาปัตยกรรมโมเดลที่เหมือนกันในการ fine-tune เมื่อทำการประเมินกับปัญหาที่แยกไว้ (held-out problems) พบว่าโมเดลที่ฝึกด้วยชุดข้อมูลย่อยที่คัดสรรมานั้นมีประสิทธิภาพเหนือกว่าโมเดลที่ฝึกด้วยชุดข้อมูล pass ทั้งหมด

รูปแบบที่ทำให้ป้ายกำกับ “pass” เสียหาย

การศึกษาได้รวบรวมรูปแบบความล้มเหลวที่เกิดขึ้นซ้ำๆ ซึ่งซ่อนอยู่ภายใต้ป้ายกำกับ pass:

  • Repeated tool spamming – agent อาจเรียกใช้ compiler หรือ linter ตัวเดิมซ้ำๆ หลายสิบครั้งก่อนที่จะได้ผลลัพธ์ที่ถูกต้องในที่สุด ความสำเร็จในตอนท้ายได้บดบังความไร้ประสิทธิภาพที่เกิดขึ้น
  • Long meandering phases – บางครั้ง agent จะลองผิดลองถูกในขั้นตอนที่ไม่เกี่ยวข้องถึงห้าขั้นตอนหรือมากกว่านั้น ก่อนจะบังเอิญเจอคำตอบที่ถูกต้อง แม้ว่า episode จะจบลงด้วยการ "pass" แต่ส่วนใหญ่ของ trajectory กลับไม่มีคุณค่าในการเรียนรู้เลย
  • Trivial tests – benchmark บางอย่างง่ายเกินไปจน agent สามารถประสบความสำเร็จได้ด้วยการเดาเพียงครั้งเดียวหรือการใช้ช่องโหว่ ป้ายกำกับ pass จึงไม่สามารถแยกแยะระหว่างการใช้เหตุผลที่แท้จริงกับการใช้โชคได้

เมื่อ episode เหล่านี้ถูกนำกลับเข้าสู่ลูปการฝึกฝน โมเดลจะเรียนรู้ที่จะเชื่อมโยงการทำงานแบบสะเปะสะปะและการใช้เครื่องมือเกินความจำเป็นเข้ากับความสำเร็จ ซึ่งในความเป็นจริงแล้ว agent จะรับเอาหลักการ (heuristic) แบบ "ลองไปเรื่อยๆ จนกว่าจะสำเร็จ" เข้ามา ซึ่งเป็นสิ่งที่ไม่พึงประสงค์สำหรับระบบระดับ production ที่ต้องการประสิทธิภาพและความสามารถในการอธิบายได้ (interpretability)

คุณภาพระดับ segment เทียบกับผลลัพธ์ระดับ trajectory

ข้อมูลเชิงลึกที่สำคัญจาก SWE-Prime คือความแตกต่างระหว่างผลลัพธ์โดยรวมของ trajectory กับคุณภาพของ segment ต่างๆ ที่ประกอบกันขึ้นมา Trajectory เป็นป้ายกำกับแบบหยาบๆ ซึ่งบอกเพียงว่าคำตอบสุดท้ายถูกต้องหรือไม่ แต่กลับซ่อนกระบวนการตัดสินใจภายในเอาไว้ การศึกษาพบว่า:

  • Good trajectories can contain bad segments – วิธีการแก้ปัญหาที่มีประสิทธิภาพอาจประกอบด้วยขั้นตอนที่เสียเปล่าบางส่วนซึ่งไม่ได้ช่วยให้ได้คำตอบสุดท้าย
  • Failed trajectories can hide brilliant segments – agent อาจสร้างแผนการที่มีเหตุผลสมบูรณ์แบบ แต่กลับเกิดข้อผิดพลาดที่ไม่เกี่ยวข้องทำให้การทดสอบล้มเหลว

ด้วยการให้คะแนนในระดับ segment แทนที่จะเป็นทั้งการรัน นักวิจัยจึงสามารถเก็บเฉพาะ episode ที่ agent ทำงานอย่างมีจุดมุ่งหมายตั้งแต่ขั้นตอนแรก และตัดส่วนที่เหลือทิ้งไป วิธีนี้ช่วยให้สัญญาณการฝึกฝน (training signal) สอดคล้องกับรูปแบบการใช้เหตุผลที่เราต้องการให้โมเดลเลียนแบบจริงๆ

ข้อได้เปรียบด้านต้นทุนและความเร็ว

การฝึกฝนด้วยข้อมูลเพียงหนึ่งในสิบยังช่วยลดค่าใช้จ่ายในการประมวลผล (compute expenses) ลงอย่างมหาศาล ทีมงานใช้ชั่วโมง GPU น้อยลงมาก และ pipeline ก็เสร็จสิ้นในเวลาเพียงเสี้ยวเดียวของเวลาที่ต้องใช้สำหรับชุดข้อมูล pass ทั้งหมด ความย้อนแย้งนี้เป็นเรื่องที่น่าทึ่ง: พวกเขาจ่ายค่าประมวลผลน้อยลงแต่กลับได้ประสิทธิภาพที่สูงขึ้น สำหรับองค์กรที่มีงบประมาณจำกัดหรือมีเป้าหมายในการปรับใช้ในระดับขนาดใหญ่ การประหยัดนี้ถือว่ามีนัยสำคัญมาก

ความท้าทายในการคัดสรร

อุปสรรคที่ใหญ่ที่สุดในการนำแนวทางนี้มาใช้คือการนิยามว่าอะไรคือ “good segment” ทีม SWE-Prime ตั้งข้อสังเกตว่าการให้คะแนน segment โดยไม่มี reward model ที่มีราคาแพงนั้นเป็นเรื่องยาก และจำเป็นต้องมีตัวชี้วัด (metric) ที่ชาญฉลาดและมีน้ำหนักเบา

บทสรุป

SWE-Prime แสดงให้เห็นว่าสถานะ "ผ่านการทดสอบ" แบบไบนารีเป็นตัวกรองที่ไม่น่าเชื่อถือสำหรับข้อมูลที่ใช้ในการฝึกฝน การคัดเอาเหตุการณ์ที่ออกนอกลู่นอกทาง การเรียกใช้เครื่องมือที่ซ้ำซ้อน และการทำงานที่ง่ายจนเกินไปออกไป จะช่วยให้นักพัฒนาสามารถฝึกฝนเอเจนต์ที่มีความสามารถและมีประสิทธิภาพสูงขึ้นได้ ในขณะที่ช่วยลดต้นทุนในการประมวลผลลง บทเรียนนี้ชัดเจนว่า คุณภาพมีความสำคัญมากกว่าปริมาณ และเส้นทางสู่การสร้างเอเจนต์ AI ที่ชาญฉลาดขึ้นนั้น อยู่ที่การประเมินอย่างละเอียดถี่ถ้วนว่าในแต่ละขั้นตอนมีส่วนช่วยอย่างไรอย่างแท้จริง