Tool calling: AI กดปุ่มเองได้ยังไง
โมเดลไม่เคยแตะระบบวันลาเลย ที่เกิดขึ้นจริงมี 4 ขั้น
- แอปแนะนำเครื่องมือ ชื่อ หน้าที่ และค่าที่ต้องใส่ของแต่ละเครื่องมือ ถูกเขียนใน context มักอยู่ใกล้ คำสั่งระบบ (system prompt)ข้อความต้นบทสนทนาที่กำหนดบทบาทและกติกาของผู้ช่วย มักตั้งโดยผู้ทำแอปและผู้ใช้อาจมองไม่เห็น โมเดลถูกฝึกให้ให้น้ำหนักกับมันมาก แต่มันก็ยังเป็นแค่ข้อความดูคำศัพท์ทั้งหมด (บทที่ 5) ในรูปแบบตาม แม่แบบบทสนทนา (chat template, special token)รูปแบบที่แปลงบทสนทนาเป็นข้อความยาวชิ้นเดียว โดยมีโทเคนพิเศษ (special token) เป็นป้ายบอกว่าใครพูดและคำตอบจบตรงไหน แต่ละตระกูลโมเดลใช้แม่แบบไม่เหมือนกันดูคำศัพท์ทั้งหมด ที่โมเดลคุ้น
- โมเดลเขียนคำขอ เมื่อ "ต้องการ" ข้อมูล มันเขียน token ในรูปแบบตายตัว มักเป็น JSON เช่น
{"tool": "get_leave_balance", "arguments": {"team": "HR"}}ความสามารถนี้มาจาก การฝึกรอบหลัง (post-training)ขั้นฝึกเพิ่มหลัง pre-training ที่เปลี่ยนเครื่องต่อข้อความให้เป็นผู้ช่วย เช่น SFT และ RLHF ใช้ข้อมูลน้อยกว่ามากแต่เปลี่ยนพฤติกรรมได้เยอะดูคำศัพท์ทั้งหมด (บทที่ 5) แต่มันยังเขียนผิดรูปหรือใส่ค่าผิดได้ หลายแอปจึงบังคับรูปแบบตอนสุ่ม token และตรวจคำขอก่อนทำจริง - โปรแกรมทำงานจริง แอปเห็นคำขอ หยุดการเขียน เรียกระบบจริง แล้วต่อผลท้าย หน้าต่างบริบท (context window)จำนวน token สูงสุดที่โมเดลมองเห็นได้ในครั้งเดียว นับรวมทั้งคำสั่งและคำตอบดูคำศัพท์ทั้งหมด
- โมเดลเดาต่อ จากผลที่ได้ ไม่ใช่จากความจำ คล้าย แร็ก (Retrieval-Augmented Generation, RAG)เทคนิคค้นเอกสารที่เกี่ยวข้องด้วย embedding แล้วแนบให้ AI อ่านก่อนตอบ เหมือนสอบแบบเปิดหนังสือดูคำศัพท์ทั้งหมด (บทที่ 2) แต่คราวนี้โมเดลเลือกเองว่าจะค้นเมื่อไหร่
กด "ขั้นถัดไป" แล้วดูว่าแต่ละกล่องใครเขียน
ยอดรวม 15.5 วัน และ "ปุ้ย 0 วัน" มาจากระบบจริง ไม่ได้มาจากการเดา จึงลดอาการมั่ว (hallucination)เมื่อ AI ตอบข้อมูลที่ไม่จริงอย่างมั่นใจ เพราะมันถูกฝึกให้เขียนสิ่งที่ฟังดูน่าจะใช่ ไม่ใช่สิ่งที่จริงดูคำศัพท์ทั้งหมด (บทที่ 1)
งานคำนวณสำคัญก็ควรให้เครื่องมือทำ เพราะโมเดลบวกเลขเองยังพลาดได้
Tool calling = โมเดลเขียนใบสั่งงาน (มักเป็น JSON) แล้วโปรแกรมของแอปทำจริง ผลถูกต่อท้าย context ให้โมเดลตอบจากข้อมูลจริง

มังคุด
แปลว่าถ้าแอปไม่เอา JSON นั้นไปทำ มันก็เป็นแค่ข้อความเฉยๆ เลยเหรอ!