- โมเดลภาษาขนาดใหญ่ (LLM) แสดงให้เห็นถึง ประสิทธิภาพที่ลดลง และความน่าเชื่อถือที่ถดถอยในการสนทนาแบบหลายเทิร์น
- เมื่อเทียบกับแบบเทิร์นเดียว มีการยืนยันจากการทดลองว่าในสถานการณ์ หลายเทิร์น ประสิทธิภาพลดลงเฉลี่ย 39%
- ปัจจัยหลักคือ ความสามารถที่ลดลงเล็กน้อย และ ความน่าเชื่อถือที่ลดลงอย่างมาก หรือก็คือความสม่ำเสมอของผลลัพธ์ที่แย่ลง
- LLM มีแนวโน้มจะตั้ง สมมติฐานที่ผิด ตั้งแต่ช่วงต้น หรือพยายามหาคำตอบสุดท้าย เร็วเกินไป
- ผลคือเมื่อ LLM ทำพลาดในช่วงต้นของบทสนทนา จะเกิดอาการ กู้กลับไม่ได้และหลงทิศทางของการสนทนา
ABSTRACT
- โมเดลภาษาขนาดใหญ่ (LLM) ในฐานะอินเทอร์เฟซแบบสนทนา มีศักยภาพที่จะช่วยให้ผู้ใช้ค่อย ๆ นิยาม สำรวจ และปรับแก้ความต้องการผ่าน การสนทนาแบบหลายเทิร์น ได้ แม้ผู้ใช้จะยังไม่สามารถระบุความต้องการได้ครบถ้วนตั้งแต่ต้น
- อย่างไรก็ตาม แม้ว่าการประเมิน LLM ส่วนใหญ่จะมุ่งที่สภาพแวดล้อมแบบ คำสั่งสมบูรณ์ในเทิร์นเดียว แต่การวิเคราะห์บันทึกบทสนทนาจริงกลับพบปรากฏการณ์ คำสั่งที่ยังระบุไม่ครบถ้วน (underspecification) อยู่บ่อยครั้ง
- งานวิจัยนี้เปรียบเทียบประสิทธิภาพของ LLM ในสภาพแวดล้อมแบบ เทิร์นเดียว และ หลายเทิร์น (underspecified) ผ่านการจำลองในวงกว้าง
- ผลลัพธ์พบว่าใน LLM ชั้นนำ 15 รุ่น ทุกตัว ประสิทธิภาพในการสนทนาแบบหลายเทิร์นลดลงเฉลี่ย 39% ซึ่งวิเคราะห์ได้ว่าเกิดจาก ความสามารถที่ลดลงเล็กน้อย และ ความน่าเชื่อถือที่ลดลงอย่างรุนแรง
- เมื่อต้นทางของบทสนทนา LLM เลือกเส้นทางผิด ก็พบปรากฏการณ์ว่า ไม่สามารถกู้กลับและหลงทางอยู่ในบทสนทนา ในเวลาต่อมา
Introduction
- LLM รุ่นใหม่ ๆ (เช่น ChatGPT, Gemini, Claude เป็นต้น) เป็นอินเทอร์เฟซที่รองรับ การสนทนาแบบหลายเทิร์น
- แม้ผู้ใช้จะไม่ได้อธิบายทุกความต้องการอย่างชัดเจนตั้งแต่แรก ก็สามารถค่อย ๆ ทำให้ข้อกำหนดชัดเจนขึ้นได้ผ่านการถามตอบซ้ำ ๆ (underspecified → refined)
- ในความเป็นจริง ผู้ใช้จำนวนมากมักเริ่มบทสนทนาด้วยความต้องการที่ไม่ชัดเจน แต่ การประเมินส่วนใหญ่ยังดำเนินในสภาพแวดล้อมแบบคำสั่งสมบูรณ์เทิร์นเดียว เท่านั้น
- งานก่อนหน้าบางส่วนพยายามประเมินแบบหลายเทิร์น แต่ก็มักปฏิบัติต่อแต่ละเทิร์นของบทสนทนาเป็นตอนแยกกัน จึงประเมินผลกระทบของ ความไม่ชัดเจน ที่พบได้ทั่วไปในบทสนทนาจริงของมนุษย์ต่ำเกินไป
- เพื่อลดช่องว่างนี้ งานวิจัยจึงเสนอแนวทาง sharded simulation (แบ่งข้อมูลออกเป็นหลายชิ้นและเปิดเผยทีละชิ้นในแต่ละเทิร์น) เพื่อจำลองสถานการณ์คำสั่งไม่ชัดเจนแบบหลายเทิร์นอย่างละเอียด
สรุปผลการวิจัยสำคัญ
- ในแบบเทิร์นเดียว LLM ทำได้ 90% เมื่อได้รับคำสั่งครบทั้งหมดในครั้งเดียว แต่ในสถานการณ์ คำสั่งไม่ชัดเจนแบบหลายเทิร์น ลดลงเหลือ 65% (ลดลงเฉลี่ย 25 จุด)
- ปรากฏการณ์นี้เกิดขึ้นแม้ผ่านบทสนทนาเพียง สองเทิร์น และพบร่วมกันใน LLM ทุกประเภท ทั้งแบบเปิด แบบปิด ขนาดใหญ่ และขนาดเล็ก
- การวิเคราะห์สาเหตุของ ประสิทธิภาพที่ลดลง พบสองปัจจัยคือ (1) ความสามารถที่ลดลง (aptitude loss) และ (2) ความไม่น่าเชื่อถือ (unreliability) ที่เพิ่มขึ้นอย่างมาก
- ในแบบเทิร์นเดียว โมเดลที่มีความสามารถสูงมักมีความน่าเชื่อถือสูงด้วย แต่ในแบบหลายเทิร์น ความน่าเชื่อถือต่ำโดยแทบไม่ขึ้นกับระดับความสามารถ
- กล่าวคือ เมื่อ LLM เข้าสู่ทิศทางที่ผิดระหว่างการสนทนาแบบหลายเทิร์น ก็จะ ไม่สามารถกู้กลับได้ — งานนี้เรียกปรากฏการณ์นี้ว่า “lost in conversation”
- สาเหตุหลัก
- การตอบยืดยาว และ การรีบพยายามให้คำตอบสุดท้าย
- การตั้งสมมติฐานผิดจากข้อมูลที่ยังไม่ชัดเจน
- การยึดติดกับความพยายามที่ผิดก่อนหน้าเกินไป
- มี ช่องว่างขนาดใหญ่ ระหว่างการใช้งาน LLM จริงกับวิธีการประเมินโมเดล
- ยิ่งเป็นผู้ใช้มือใหม่ ก็ยิ่งมีแนวโน้มให้คำสั่งที่ไม่สมบูรณ์ในช่วงต้น ซึ่งทำให้ปรากฏการณ์นี้เป็นหนึ่งในสาเหตุสำคัญที่ขัดขวางการนำไปใช้จริง
- โครงสร้างของงานวิจัย: สรุปงานก่อนหน้า อธิบายสภาพแวดล้อมการจำลอง งานสร้าง 6 ประเภทและตัวชี้วัดการประเมิน การทดลองขนาดใหญ่กับ LLM 15 รุ่นและผลลัพธ์ ตลอดจนข้อคิดเชิงปฏิบัติ การประยุกต์ใช้กับผลิตภัณฑ์ และคำแนะนำที่เป็นรูปธรรม
Background and Related Work
- โมเดลภาษาในยุคก่อนหน้า (เช่น BART, GPT-2, T5) ไม่สามารถรองรับการสนทนาแบบหลายเทิร์นได้จริง จึงถูกประเมินโดยเน้น เทิร์นเดียว
- หลังการมาถึงของ ChatGPT ความสนใจต่อการประเมินแบบหลายเทิร์นเพิ่มสูงขึ้น และมีการประเมินแบบ crowdsourcing เช่น MT-bench
- แต่ระบบประเมินส่วนใหญ่ยังคงเป็น บทสนทนาแบบเป็นตอน (ประเมินแต่ละเทิร์นแยกกัน) ทำให้ไม่คำนึงถึงความต่อเนื่องของบทสนทนาที่ไม่ชัดเจนในโลกจริง
- ในความเป็นจริง มนุษย์มักสั่งงานอย่างไม่ชัดเจนตาม “หลักความพยายามต่ำสุด” (a.k.a. underspecification) และ LLM ก็มีประสิทธิภาพลดลงจากการ สรุปเร็วเกินไปเมื่อข้อมูลไม่พอ และ ปรับตัวได้ไม่ดี
- งานวิจัยนี้จึงออกแบบมาเพื่อมุ่งสู่การประเมินที่ใกล้เคียงกับสภาพแวดล้อมจริง ซึ่งความไม่ชัดเจนเป็นหัวใจสำคัญ
Simulating Underspecified, Multi-Turn Conversation
3.1 Sharding Process
- แบ่ง คำสั่งที่ระบุครบถ้วนเดิม ออกเป็นหลาย shard (ชิ้นส่วนข้อมูล)
- ตัวอย่าง: แทนที่จะใส่ทุกเงื่อนไขไว้ในประโยคเดียว ก็เปิดเผยข้อมูลทีละอย่างในแต่ละเทิร์น (ฉากบริบท ค่าตัวเลข เงื่อนไข ฯลฯ)
- shard แรกจะอธิบาย เป้าหมายระดับสูงของคำสั่ง เสมอ จากนั้น shard ถัดไปจะค่อย ๆ ให้ข้อมูลเพิ่มเติม (บริบท เงื่อนไข ฯลฯ) ในแต่ละเทิร์น
- กระบวนการ sharding นี้สร้างชุดข้อมูลคำสั่งแบบหลายเทิร์นคุณภาพสูงด้วยการให้ LLM (GPT-4o) เสนอ+ตรวจสอบ และมีการปรับแก้ด้วยมือเพิ่มเติม
- สำหรับแต่ละงาน มีการสร้าง sharded instruction 90–120 ชุด (พร้อมการตรวจทานด้วยมือหลายชั่วโมง)
3.2 Simulating Sharded Conversations
- การจำลองบทสนทนา ใช้บทบาท 3 ฝ่าย: LLM ที่เป็นเป้าประเมิน (assistant), user simulator ที่รู้ shard ทั้งหมด, และระบบจัดประเภท/ให้คะแนนคำตอบ
- เทิร์นแรก: user simulator ส่งเฉพาะ shard แรกให้ assistant → assistant ตอบ → มีการจัดประเภทกลยุทธ์ของคำตอบนั้น (ขอความชัดเจน ตั้งคำถาม พยายามตอบเลย ฯลฯ) และดึงคำตอบออกมา → ประเมินความถูกต้องของคำตอบ
- เทิร์นถัดไป: เปิดเผย shard ที่เหลือเพิ่มอีกเพียงหนึ่งชิ้นและทำซ้ำ / ในแต่ละเทิร์น assistant สามารถตอบได้อย่างอิสระ
- จบบทสนทนา เมื่อ (1) ผู้ประเมินตัดสินได้ว่าคำตอบถูกต้องแล้ว หรือ (2) ไม่มี shard ให้เปิดเผยเพิ่มเติม
- user simulator ถูกสร้างด้วย LLM (GPT-4o-mini) ทำให้สามารถให้ shard อย่างเป็นธรรมชาติและ rephrase อัตโนมัติได้
- ตลอดการทดลองทั้งหมด ความผิดพลาดจาก LLM ผู้ช่วยประเมิน เช่น การจัดประเภทผิดหรือการดึงคำตอบผิด มีน้อยกว่า 5% และกรณีที่เสียเปรียบต่อ assistant มีน้อยกว่า 2%
- assistant ถูกประเมินใน สถานะค่าเริ่มต้น โดยไม่ให้ข้อมูลพิเศษเกี่ยวกับสภาพแวดล้อมนี้ล่วงหน้า (ให้ใกล้เคียงการใช้งานจริง)
3.3 Simulation Types
- FULLY-SPECIFIED (FULL): ให้คำสั่งทั้งหมดในเทิร์นเดียว ใช้เป็น baseline สำหรับประเมินประสิทธิภาพ
- SHARDED: เปิดเผยข้อมูลเพียงหนึ่งชิ้นต่อเทิร์น เป็นการทดลองหลักของงานวิจัยเกี่ยวกับบทสนทนาแบบหลายเทิร์นที่คำสั่งไม่ชัดเจน
- CONCAT: ให้ sharded instruction ทั้งหมดพร้อมกันในรูปแบบ bullet-point เพื่อวัดผลเฉพาะการสูญเสียจากรูปแบบข้อมูลคำสั่ง
- RECAP: หลังบทสนทนาแบบ sharded จะสรุป/ให้ shard ทั้งหมดอีกครั้งในตอนท้าย เป็นรูปแบบหนึ่งของการแทรกแซงแบบ agent อย่างง่าย
- SNOWBALL: ในแต่ละเทิร์นจะเพิ่ม shard ใหม่พร้อมทวน shard ที่เปิดเผยไปก่อนหน้าทั้งหมด เพื่อไม่ให้ assistant พลาดข้อมูล เป็นการทดลองเสริมความจำ
Task and Metric Selection
4.1 Task Selection
- งานทั้งหมด 6 ประเภท: การเขียนโปรแกรม (Code), ฐานข้อมูล (สร้าง SQL), การเรียกใช้ฟังก์ชัน API (Actions), คณิตศาสตร์ (Math), ตาราง→ข้อความ (Data-to-Text), การสรุปแบบถามตอบ (Summary)
- ตัวอย่าง: เขียนฟังก์ชัน Python, แปลงภาษาธรรมชาติเป็นคำสั่ง SQL เป็นต้น
- สำหรับแต่ละงาน มีการคัดเลือกคำสั่ง 90–120 รายการจาก benchmark คุณภาพสูง แล้วทำ sharding และตรวจสอบด้วยมือ
- ทั้ง 6 งานเป็นตัวแทนที่ครอบคลุมทั้งงานเขียนโปรแกรมและไม่ใช่การเขียนโปรแกรม รวมถึงสถานการณ์ที่หลากหลาย เช่น Summary ที่ต้องใช้ long context
4.2 Metric Selection
- ตัวชี้วัดการประเมิน
- ประสิทธิภาพเฉลี่ย (P): คะแนนเฉลี่ย (0~100) ที่ได้จากหลายการจำลอง
- ความสามารถ (A90): ค่าผลลัพธ์ของการจำลองในกลุ่มบนสุด 10% (90th percentile, กรณีดีที่สุด)
- ความน่าเชื่อถือ (U90_10): ส่วนต่างระหว่างคะแนนบนสุด 90% กับล่างสุด 10% (ใช้วัดความสม่ำเสมอ/ความผันผวนของผลลัพธ์)
- ตัวอย่าง: ด้านบนสุดของ box-plot คือความสามารถ ส่วนช่วงบน-ล่างสะท้อนความน่าเชื่อถือ
- ทั้ง 6 งานถูกรวมคะแนนด้วยมาตรวัดที่สอดคล้องกัน (ความถูกต้อง/ความคล้ายคลึง/BLEU ฯลฯ)
- รายละเอียดวิธีการ โค้ด ตัวอย่าง และพารามิเตอร์การทดลองทั้งหมด รวมถึงการสุ่มตัวอย่าง ถูกใส่ไว้ในภาคผนวก/Appendix
Simulation Scale and Parameters
- สร้าง instruction ทั้งหมด 600 รายการ ครอบคลุม 6 งาน และทดลองในสถานการณ์ FULL/CONCAT/SHARDED
- สำหรับ LLM 15 รุ่น (GPT-4, Claude, Gemini เป็นต้น) ทำการจำลองแต่ละชุดผสม 10 ครั้ง สร้างข้อมูลการทดลอง มากกว่า 200,000 ครั้ง
- การทดลองทั้งหมดดำเนินด้วย temperature 1 (sampling) และในการทดลองเพิ่มเติม (7.2) ยังวิเคราะห์ผลของ temperature ด้วย
- ชุดข้อมูลการจำลองขนาดใหญ่นี้ช่วยให้สามารถระบุสาเหตุหลักและรูปแบบของ พฤติกรรมและประสิทธิภาพที่ลดลงของ LLM ในบทสนทนา underspecified แบบหลายเทิร์น ได้
Lost in Conversation Experiment
- จากนั้นในเนื้อหาหลักของบทความจะอธิบายอย่างละเอียดตามลำดับ ได้แก่ การตั้งค่าการทดลอง ผลลัพธ์ของแต่ละโมเดล การวิเคราะห์สาเหตุของประสิทธิภาพที่ลดลง การทดลองเทคนิคเสริม (RECAP/SNOWBALL) ตลอดจนข้อคิดเชิงปฏิบัติและคำแนะนำอย่างเป็นรูปธรรม
1 ความคิดเห็น
ความเห็นจาก Hacker News
ดีใจที่ได้เห็นงานวิจัยที่ยืนยันสิ่งที่ใครก็ตามที่เคยใช้เครื่องมือ LLM จริง ๆ น่าจะรู้จากประสบการณ์อยู่แล้ว แนวคิดเรื่อง “การสนทนา” เป็นสิ่งที่ถูกสร้างขึ้นโดยอินเทอร์เฟซของผลิตภัณฑ์ การรักษาคอนเท็กซ์ให้สะอาดเป็นเรื่องสำคัญ ถ้าคอนเท็กซ์ปนเปื้อนแล้วจะกู้คืนไม่ได้ จึงต้องเริ่มบทสนทนาใหม่
นี่เป็นผลจากแนวโน้มที่รู้กันดีของ LLM คือความมั่นใจเกินเหตุ การขาดความสามารถในการสะท้อนตนเอง และการไม่รู้ตัวว่าเมื่อใดควรขอข้อมูลเพิ่ม พอดูผลลัพธ์ของ reasoning model ก็จะเห็นว่าเวลาเจอความกำกวม LLM มักไม่ขอคำอธิบายเพิ่มเติม แต่จะเดาว่าผู้ใช้ต้องการสื่ออะไรซ้ำ ๆ สิ่งนี้ชี้ให้เห็นข้อจำกัดเชิงปฏิบัติของแนวคิดที่จะเอามาแทนโปรแกรมเมอร์มนุษย์ เพราะส่วนที่ยากจริง ๆ คือ “การโต้ตอบกับผู้มีส่วนได้ส่วนเสีย” เพื่อค่อย ๆ เปลี่ยนความต้องการที่กำกวมให้ชัดเจน
ผมชอบให้ LLM สรุปสิ่งที่คุยกันมาจนถึงตอนนั้นให้อยู่ในรูปพรอมป์ต์สั้น ๆ แล้วค่อยแก้ไขเองก่อนเริ่มบทสนทนาใหม่ วิธีนี้ค่อนข้างได้ผล และคิดว่าอีกไม่นานก็คงถูกทำให้เป็นอัตโนมัติ
/compactสำหรับสรุปบทสนทนาเพื่อลดการใช้โทเค็นผมคิดค้น TSCE (Two-Step Contextual Enrichment) ขึ้นมาเอง พอใช้กับงาน 300 ชุดบน GPT-35-turbo ประสิทธิภาพดีขึ้น +30pp และเปิดเป็นเฟรมเวิร์กให้ใช้ได้อย่างอิสระ ผมยังทดลองเพิ่มอีก 300 รอบกับ gpt-4.1 ด้วย baseline ล้มเหลวในการลบ em-dash 149/300 ครั้ง ส่วน TSCE ล้มเหลว 18/300 ครั้ง และผมก็เปิดข้อมูลทั้งหมดกับสคริปต์ไว้ด้วย
text.replace("—", "-")ไม่ได้เหรอผมเคยแก้ปัญหาด้วยสองระบบ (LMM + curator อัตโนมัติ) ระบบหนึ่งคือ LLM เอง อีกระบบเป็น “ภัณฑารักษ์ของความคิด” ที่คอยสลับจัดการบางส่วนของคอนเท็กซ์อย่างยืดหยุ่น อาศัยความสามารถของ LLM ในการเติมช่องว่างมากกว่าจะพึ่งกฎที่ชัดเจน มันช่วยให้จัดการปัญหาโดยแบ่งเป็นชิ้นเล็ก ๆ แล้วค่อยรวมผลเพื่อไปสู่เป้าหมายสุดท้าย
ผมแปลกใจที่การแตกกิ่ง/ฟอร์กยังไม่ใช่เรื่องพื้นฐานในเครื่องมือแชตหลัก ๆ แม้จะแก้ไขคำตอบได้ แต่ก็ทำให้คอนเท็กซ์อื่น ๆ หายไปเยอะ เวิร์กโฟลว์ของผมคือ 1. วางแผน 2. สร้าง 3. แตกกิ่ง 4. ทำซ้ำ ผมคิดว่าการตัดแต่ง/แตกกิ่งพรอมป์ต์ควรเป็นเครื่องมือหลักของการใช้ LLM
ปัญหาเกิดขึ้นเมื่ออินเทอร์เฟซของ LLM ถูกออกแบบโดยยึดการสนทนาแบบเทิร์นเดียวเป็นศูนย์กลาง ผู้ใช้ส่วนใหญ่คาดหวังบทสนทนาเชิงเส้น ผมเลยสร้าง Telegram bot ชื่อ experai_bot ให้เป็น universal UI สำหรับ LLM และใช้แนวคิด “ถ้าไม่ใช่ reply ก็เป็นบทสนทนาใหม่” ถ้าจะเก็บคอนเท็กซ์ไว้ จำเป็นต้องต่อกันเป็นโครงสร้างต้นไม้ของ reply ผู้ใช้ที่ไม่เชี่ยวชาญมักเข้าใจวิธีนี้ได้ยาก อีกอย่าง โมเดลของ OpenAI (อย่างน้อย 3.5 และ 4o) ยิ่งถามคำถามเดิมซ้ำหลายครั้ง ช่องว่างหรือทางเลือกที่ได้จะยิ่งสั้นลง และผลลัพธ์จะยิ่งไม่แม่นยำ ต้องทำ system message ให้น้อยที่สุดถึงจะคงคุณภาพได้พอสมควร ถ้าจำเป็นก็มีตัวเลือกให้เพิ่ม system message ได้
เหตุผลหลักที่ผมสร้าง promptdown ก็เพื่อให้แก้ไขประวัติแชตทั้งหมดได้เต็มรูปแบบในแต่ละเทิร์น โครงสร้างแบบ append-only ของอินเทอร์เฟซมาตรฐานทำให้เรื่องนี้ยากมาก
ตอนนี้วงการ LLM ให้ความรู้สึกเหมือนทุกคนกำลังแก้ปัญหาเดิมซ้ำไปซ้ำมา
LLM เหมือนยักษ์ในตะเกียงจริง ๆ มันจะตอบคำถามให้คุณได้สามครั้ง แต่หลังจากนั้นจะเริ่มพูดอะไรหลุดโลกไปหมด