ข้ามไปยังเนื้อหา
Tayakorn

คู่มือ Transformer — ลบทุกอย่าง เหลือแค่กราฟ

LEVEL 1 · พื้นฐานที่ใช้ทุกวัน

บังคับให้มันคิดออกมาดัง ๆ

บทนี้เป็นบทที่ให้ผลตอบแทนต่อเวลาอ่านสูงที่สุดในเล่ม เพราะมันเปลี่ยนวิธีเขียนคำสั่งของคุณได้ตั้งแต่วันนี้ และเหตุผลเบื้องหลังมันสวยกว่าที่คนส่วนใหญ่รู้

5.1 ทำไมมันตอบเลขผิด ทั้งที่เขียนโปรแกรมเป็น

โมเดลทำงานโดยผลิตโทเค็นออกมาทีละชิ้น และการคำนวณที่มันทำได้ต่อหนึ่งโทเค็นนั้น มีปริมาณจำกัดและตายตัว ไม่ว่าคำถามจะง่ายหรือยาก

ผลที่ตามมาแรงกว่าที่เห็น: ถ้าเราถามโจทย์ที่ต้องคิดหลายขั้น แล้วบังคับให้มันตอบเป็นตัวเลขตัวเดียวทันที เราไม่ได้ขอให้มันคิดเร็ว — เรากำลังขอให้มันคิดทั้งโจทย์ให้เสร็จภายในการคำนวณของโทเค็นเดียว ซึ่งมันไม่มีที่ให้คิดพอ มันจึงเดา

วิธีแก้จึงเป็นการให้ที่ให้มันคิด: สั่งให้แสดงขั้นตอน โทเค็นแต่ละตัวที่มันพิมพ์ออกมากลายเป็นพื้นที่คำนวณเพิ่ม และผลลัพธ์กลางที่พิมพ์ไว้แล้วยังถูกอ่านซ้ำได้ในขั้นถัดไป

ขั้นตอนที่โมเดลพิมพ์ออกมา ไม่ใช่คำอธิบายให้เราอ่าน — มันคือกระดาษทดที่โมเดลใช้คิด

5.2 ตัวเลขจริง และบทเรียนที่ซ่อนอยู่ในตัวเลขนั้น

เรื่องนี้มีตัวเลขที่วัดได้ และมันเป็น สองขั้น ไม่ใช่ขั้นเดียวอย่างที่มักถูกเล่าต่อ

คำสั่งที่ใช้ความแม่นบนชุดโจทย์ MultiArith
ถามตรง ๆ ไม่ให้แสดงวิธี17.7%
เติม Let's think step by step78.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 สองท่าที่ใช้ได้ทันที

หนึ่ง — ให้ที่ให้มันคิดก่อนตอบ อย่าถามแล้วบังคับให้ตอบสั้น ถ้าอยากได้คำตอบสั้น ให้มันคิดยาวก่อนแล้วค่อยสั่งให้สรุปท้ายสุด

สอง — กำหนดบทบาทให้ชัด เพราะโมเดลเรียนจากข้อความของคนทั้งอินเทอร์เน็ตซึ่งมีทั้งคำตอบที่ดีเยี่ยมและคำตอบที่มั่ว ถ้าไม่ระบุอะไรเลย มันจะเดินไปทางค่าเฉลี่ยของข้อความแบบนั้น การระบุว่าให้ตอบในฐานะผู้เชี่ยวชาญเฉพาะทางไม่ได้ทำให้มันฉลาดขึ้น แต่มันเลือกย่านของข้อความที่จะเลียนแบบ ให้แคบลงและตรงกับที่เราต้องการ

💡 เคล็ดลับที่ใช้ได้กับทุกคำสั่ง — ถ้ายังตอบไม่ได้ว่า "คำตอบที่ถูกต้องหน้าตาเป็นยังไง" แปลว่าคำสั่งยังไม่ชัดพอ ปัญหาอยู่ที่คำสั่ง ไม่ใช่ที่โมเดล

อ่านแบบเต็มเล่ม