Dictionary · พื้นฐาน AI · 10 / 291

Few-shot Learning

เทคนิคที่ทำให้ AI เรียนรู้งานใหม่จากตัวอย่างแค่ไม่กี่ชุด เช่น แปะตัวอย่าง 2-3 แบบใน prompt แล้วโมเดลทำตามแพตเทิร์นได้ทันทีโดยไม่ต้องเทรนใหม่

Few-shot Learning (มักเรียกสั้นๆ ว่า few-shot) คือแนวคิดใน machine-learning ที่ให้ model เรียนรู้การทำงานใหม่จากตัวอย่างจำนวนน้อยมาก: ไม่กี่ตัวอย่างต่อหนึ่งประเภท แทนที่จะต้องป้อนข้อมูลติด label มหาศาลแบบการ training ดั้งเดิม คำว่า "shot" หมายถึงจำนวนตัวอย่างที่โมเดลได้เห็น: ถ้าได้เห็นเพียงตัวอย่างเดียวเรียก one-shot และถ้าไม่ได้เห็นตัวอย่างของสิ่งนั้นเลย ต้องอาศัยความรู้จากประเภทอื่นมาเดาแทน เรียก zero-shot-learning แนวคิดนี้ถูกจัดอยู่ในกลุ่มเดียวกับ transfer-learning และ meta-learning ซึ่งล้วนพยายามตอบโจทย์เดียวกัน: ทำอย่างไรให้โมเดลปรับตัวเข้ากับงานใหม่ได้ทั้งที่ข้อมูลตัวอย่างมีน้อย

ในยุค llm คำนี้ถูกใช้บ่อยที่สุดในความหมาย "few-shot prompting": การแปะตัวอย่างคู่ input กับ output ที่ต้องการสัก 2-3 ชุดลงใน prompt ตรงๆ แล้วให้โมเดลจับแพตเทิร์นจากตัวอย่างเหล่านั้นทันทีในบทสนทนา (กลไกนี้เรียกว่า in-context learning) โดยไม่มีการเทรนหรือแก้ตัวโมเดลใดๆ ทั้งสิ้น ความสามารถนี้เริ่มปรากฏชัดเมื่อโมเดลภาษามีขนาดใหญ่ถึงระดับหนึ่ง: งานวิจัย gpt-3 ของ Brown และคณะปี 2020 สาธิตด้วยการสอนคำศัพท์ที่แต่งขึ้นเอง เช่นคำว่า "farduddle" ผ่านประโยคตัวอย่างเพียงไม่กี่ประโยค แล้วโมเดลก็นำคำนั้นไปแต่งประโยคใหม่ได้ถูกต้อง

สำหรับคนทำงานทั่วไป นี่คือเทคนิคที่คุ้มค่าที่สุดตัวหนึ่งเพราะใช้ได้ทันทีโดยไม่ต้องเขียนโค้ด: อยากให้ ai เขียนอีเมลตามโทนของทีม สรุปรายงานตามฟอร์แมตบริษัท หรือแท็กข้อมูลตามเกณฑ์เฉพาะของเรา แค่ใส่ตัวอย่างของจริง 2-3 ชุด ผลลัพธ์มักตรงใจกว่าการอธิบายด้วยคำสั่งยาวๆ อย่างเดียว งานวิจัยของ Min และคณะปี 2022 ยังพบว่าฟอร์แมตของตัวอย่างสำคัญมาก: แม้ label ในตัวอย่างจะสุ่มผิดไปบ้าง โมเดลก็ยังทำงานได้ดีถ้าโครงสร้างและรูปแบบของตัวอย่างสม่ำเสมอ แต่เทคนิคนี้มีข้อจำกัดเช่นกัน: งานที่ต้องใช้เหตุผลซับซ้อนหลายขั้น อย่างโจทย์คำนวณหลายชั้น แค่แปะตัวอย่างเพิ่มมักไม่พอ ต้องใช้เทคนิคอย่าง chain-of-thought เข้าช่วย

ตัวอย่างจากบทสนทนาจริง

ฝ่ายบุคคล: อยากให้ chatgpt ช่วยสรุป resume ผู้สมัครเป็นตารางแบบที่ฝ่ายเราใช้กันอยู่ แบบนี้ต้องจ้าง vendor มาเทรนโมเดลใหม่เลยไหมคะ งบปีนี้ไม่เหลือแล้วนะ

ทีม IT: ยังไม่ต้องครับ ลองใช้ few-shot ก่อน: ก๊อปตัวอย่างตารางสรุปที่พี่เคยทำไว้ดีๆ สัก 2-3 อัน แปะลงใน prompt แล้วสั่งว่า "ทำตามฟอร์แมตนี้" โมเดลจะเลียนแพตเทิร์นได้ทันทีในแชตนั้นเลย ไม่มีการเทรนอะไรใหม่ และไม่ต้องจ่ายเพิ่มสักบาท

ระวังสับสนกับ

  • zero-shot-learning : สั่งงานด้วยคำอธิบายล้วนๆ โดยไม่ให้ตัวอย่างเลย · few-shot คือการแถมตัวอย่างจริงไปด้วย ซึ่งมักได้ผลตรงฟอร์แมตกว่าในงานที่มีรูปแบบเฉพาะ
  • fine-tuning : การนำข้อมูลของเราไปเทรนต่อจนตัวโมเดลเปลี่ยนแบบถาวร · ส่วน few-shot prompting ไม่แตะตัวโมเดลเลย ตัวอย่างอยู่แค่ใน context ของบทสนทนานั้น จบ session ก็หายไป
  • หมายเหตุ: ในแวดวงวิจัย Wikipedia ระบุชัดว่า Few-shot Learning ความหมายดั้งเดิม (การเทรนโมเดลจากข้อมูล label จำนวนน้อย) เป็นคนละเรื่องกับ few-shot prompting หรือ in-context learning ใน LLM แม้ชื่อจะพ้องกัน แต่ในการพูดคุยทั่วไปคนมักใช้ปนกัน

ดูคำนี้ใน Knowledge Atlas →

■ ไม่อยากพลาดของใหม่

อ่านจบแล้วอยากตามเรื่อง AI แบบนี้ต่อทุกวัน เรามีสรุปข่าวภาษาไทยส่งทาง LINE ทุกเช้า กดเพิ่มเพื่อนไว้ได้เลย ไม่มีค่าใช้จ่าย

เพิ่มเพื่อนใน LINE →
QR เพิ่มเพื่อน LINE ของ TRAINIAC AIคอมพิวเตอร์สแกนด้วยมือถือได้เลย

Emergent AbilitiesFull-duplex