← คู่มือ Transformer — ลบทุกอย่าง เหลือแค่กราฟ
LEVEL 1 · พื้นฐานที่ใช้ทุกวัน
บังคับให้มันคิดออกมาดัง ๆ
บทนี้เป็นบทที่ให้ผลตอบแทนต่อเวลาอ่านสูงที่สุดในเล่ม เพราะมันเปลี่ยนวิธีเขียนคำสั่งของคุณได้ตั้งแต่วันนี้ และเหตุผลเบื้องหลังมันสวยกว่าที่คนส่วนใหญ่รู้
5.1 ทำไมมันตอบเลขผิด ทั้งที่เขียนโปรแกรมเป็น
โมเดลทำงานโดยผลิตโทเค็นออกมาทีละชิ้น และการคำนวณที่มันทำได้ต่อหนึ่งโทเค็นนั้น มีปริมาณจำกัดและตายตัว ไม่ว่าคำถามจะง่ายหรือยาก
ผลที่ตามมาแรงกว่าที่เห็น: ถ้าเราถามโจทย์ที่ต้องคิดหลายขั้น แล้วบังคับให้มันตอบเป็นตัวเลขตัวเดียวทันที เราไม่ได้ขอให้มันคิดเร็ว — เรากำลังขอให้มันคิดทั้งโจทย์ให้เสร็จภายในการคำนวณของโทเค็นเดียว ซึ่งมันไม่มีที่ให้คิดพอ มันจึงเดา
วิธีแก้จึงเป็นการให้ที่ให้มันคิด: สั่งให้แสดงขั้นตอน โทเค็นแต่ละตัวที่มันพิมพ์ออกมากลายเป็นพื้นที่คำนวณเพิ่ม และผลลัพธ์กลางที่พิมพ์ไว้แล้วยังถูกอ่านซ้ำได้ในขั้นถัดไป
ขั้นตอนที่โมเดลพิมพ์ออกมา ไม่ใช่คำอธิบายให้เราอ่าน — มันคือกระดาษทดที่โมเดลใช้คิด
5.2 ตัวเลขจริง และบทเรียนที่ซ่อนอยู่ในตัวเลขนั้น
เรื่องนี้มีตัวเลขที่วัดได้ และมันเป็น สองขั้น ไม่ใช่ขั้นเดียวอย่างที่มักถูกเล่าต่อ
| คำสั่งที่ใช้ | ความแม่นบนชุดโจทย์ MultiArith |
|---|---|
| ถามตรง ๆ ไม่ให้แสดงวิธี | 17.7% |
เติม Let's think step by step | 78.7% |
| เติมประโยคที่เครื่องค้นเจอเอง | 82.0% |
ขั้นแรกคือของงานวิจัยปี 2022 ที่พบว่าการเติมประโยคสั้น ๆ ประโยคเดียวว่า Let's think step by step ดันความแม่นจาก 17.7% เป็น 78.7% โดยไม่ต้องเทรนอะไรใหม่เลย
ขั้นที่สองน่าคิดกว่า มีงานวิจัยที่ให้เครื่องไปค้นหาประโยคสั่งงานที่ดีที่สุดเอง แทนที่จะให้มนุษย์คิด แล้วประโยคที่มันหาเจอ (Let's work this out in a step by step way to be sure we have the right answer) ทำได้ 82.0% — ชนะประโยคที่มนุษย์คิดขึ้นมา
สังเกตให้ดีว่าขั้นที่สองคือเรื่องเดียวกับทั้งเล่มนี้อีกครั้ง เราลบ "มนุษย์เป็นคนคิดถ้อยคำ" ออก แล้วปล่อยให้กระบวนการค้นหาเติมแทน ผลก็ดีขึ้นตามแบบแผนเดิม
💡 กระดาษทดที่มีขอบเขตจริง — ถ้าคิดว่าโทเค็นที่โมเดลพิมพ์คือกระดาษทด ก็มีคนทำให้เป็นกระดาษทดจริง ๆ ด้วยการฝึกให้มันเปิด-ปิดโน้ตด้วยโทเค็นกำกับ (ทำนอง <scratchpad> … </scratchpad>) แล้วเขียนขั้นตอนกลางไว้ในนั้น ประโยชน์ไม่ได้อยู่ที่ความสวย แต่อยู่ที่ของในกระดาษทดถูกทิ้งได้เมื่อใช้เสร็จ — ที่ว่างในบริบทมีจำกัด การมีขอบเขตชัดว่าตรงไหนคือรอยคิดชั่วคราวจึงทำให้จัดการมันได้ แทนที่จะปล่อยให้รกไปเรื่อย ๆ
5.3 สองท่าที่ใช้ได้ทันที
หนึ่ง — ให้ที่ให้มันคิดก่อนตอบ อย่าถามแล้วบังคับให้ตอบสั้น ถ้าอยากได้คำตอบสั้น ให้มันคิดยาวก่อนแล้วค่อยสั่งให้สรุปท้ายสุด
สอง — กำหนดบทบาทให้ชัด เพราะโมเดลเรียนจากข้อความของคนทั้งอินเทอร์เน็ตซึ่งมีทั้งคำตอบที่ดีเยี่ยมและคำตอบที่มั่ว ถ้าไม่ระบุอะไรเลย มันจะเดินไปทางค่าเฉลี่ยของข้อความแบบนั้น การระบุว่าให้ตอบในฐานะผู้เชี่ยวชาญเฉพาะทางไม่ได้ทำให้มันฉลาดขึ้น แต่มันเลือกย่านของข้อความที่จะเลียนแบบ ให้แคบลงและตรงกับที่เราต้องการ
💡 เคล็ดลับที่ใช้ได้กับทุกคำสั่ง — ถ้ายังตอบไม่ได้ว่า "คำตอบที่ถูกต้องหน้าตาเป็นยังไง" แปลว่าคำสั่งยังไม่ชัดพอ ปัญหาอยู่ที่คำสั่ง ไม่ใช่ที่โมเดล