รู้จัก Decision Models ปฏิวัติการตัดสินใจใน Hugging Face

· By: TanasakP

Large Language Models (LLMs) โดดเด่นอย่างมากในการสร้างข้อความ ไม่ว่าจะเป็นการตอบคำถาม เขียนโค้ด หรือการให้เหตุผล แต่ในโลกของความเป็นจริง ไม่ใช่ทุกปัญหาที่จำเป็นต้องแก้ไขด้วยการสร้างข้อความเสมอไป

ลองพิจารณาระบบบริการลูกค้าที่ได้รับข้อความว่า "ฉันถูกเรียกเก็บเงินสองครั้งสำหรับค่าสมัครสมาชิก ฉันต้องการเงินคืนวันนี้" ระบบจำเป็นต้องระบุว่าทีมใดควรจัดการ มีความเร่งด่วนเพียงใด และลูกค้าต้องการเงินคืนหรือไม่ แม้เราจะสั่งให้ LLM ส่งคำตอบกลับมาเป็น JSON ได้ แต่มันอาจไม่ใช่ทางเลือกที่มีประสิทธิภาพที่สุด

llama cli -hf ggml-org/gemma-4-e4b-it-GGUF:Q4_0
 
> We have the following customer support ticket, "I was charged twice for my subscription. I need a refund today.", which team should handle the request, how urgent it is, and whether the customer is requesting a refund. Give the answers in JSON.
 
[Start thinking]
...
[end thinking]
{
  "team_to_handle": "Billing",
  "urgency": "High",
  "request_refund": true
}

จะเป็นอย่างไรถ้าโมเดลสามารถประเมินตัวเลือกและส่งคืนค่าความน่าจะเป็น (probability distribution) ของตัวเลือกเหล่านั้นได้โดยตรง โดยไม่ต้องเสียเวลาสร้างข้อความแม้แต่โทเคนเดียว?

from transformers import pipeline
 
decide = pipeline("decision", model="autotrust/GEV-26B-Decide")
decision = decide(
    {
        "state": "I was charged twice for my order and want a refund.",
        "questions": {
            "department": {
                "type": "choice",
                "instructions": "Which team should handle this?",
                "criteria": {
                    "billing": "Payments and refunds",
                    "technical": "Bugs and technical issues",
                    "sales": "Pricing and subscriptions"
                }
            },
        }
    }
)

นี่คือแนวคิดสำคัญเบื้องหลัง decision models

decision models คืออะไร?

decision model จะรับบริบทอินพุต (state) และประเมินคำถามด้วยชุดคำตอบที่กำหนดไว้ล่วงหน้า (primitives) จากนั้นจะส่งคืนผลการตัดสินใจที่มีโครงสร้างพร้อมค่าความน่าจะเป็น แทนที่จะรอให้โมเดลสร้างคำตอบทีละโทเคน เราให้มันกำหนดค่าความน่าจะเป็นให้กับสิ่งที่ระบบของเราเข้าใจอยู่แล้ว

TypeSafe AI ได้แนะนำ Jev โดยอธิบายว่าเป็น System One model ซึ่งได้แรงบันดาลใจจากแนวคิดการคิดที่รวดเร็วและใช้สัญชาตญาณ (System 1) ต่างจากการคิดที่ช้าและไตร่ตรอง (System 2)

อย่างไรก็ตาม ชุมชนตัดสินใจใช้คำว่า decision model เพื่ออธิบายบทบาทเชิงคำนวณที่ชัดเจนกว่า (ผลการสำรวจบน twitter เพื่อตัดสินใจชื่อเรียก) โดยมีอินเทอร์เฟซพื้นฐานคือ:

State + Questions + Allowed Answers → Decisions + Probabilities

ทำไมไม่ใช้ LLMs สำหรับทุกอย่าง?

แม้เราจะบังคับให้ LLM ส่งผลลัพธ์เป็น JSON ได้ แต่แนวทางนี้มีข้อเสียหลายประการ เช่น ไม่มีการรับประกันว่าโมเดลจะทำตาม schema ที่สั่งได้ 100%, การใช้เทคนิค Constrained decoding แม้จะช่วยคุมโครงสร้างได้แต่ก็เพิ่มภาระการประมวลผล และที่สำคัญที่สุดคือ เมื่อเราต้องการเพียงการเลือกจากตัวเลือกที่กำหนด การทำ autoregressive decoding หรือการสร้างข้อความทีละโทเคนนั้นถือเป็นขั้นตอนที่เกินความจำเป็น

ความต่างจากโมเดล Classification ทั่วไป

ในระบบ Traditional classification เอาต์พุตถูกฝังอยู่ใน classification head หากต้องการเพิ่มแผนกใหม่ เช่น "Legal" เราจำเป็นต้องรื้อถอนและ retrain โมเดลใหม่ทั้งหมด

ส่วน Zero-shot classification ช่วยแก้ปัญหานี้โดยให้เรากำหนดเลเบลได้ขณะทำ inference แต่ decision models ก้าวไปไกลกว่านั้นด้วยการรองรับคำถามหลากหลายประเภทในอินพุตเดียว ไม่ว่าจะเป็นการเลือก (choice), การให้คะแนน (score) หรือการตัดสินใจใช่/ไม่ใช่ (noul) พร้อมระบบจัดการความน่าจะเป็นที่เป็นมาตรฐาน

คุณสมบัติClassificationZero-shot classificationDecision model
ความน่าจะเป็นเหนือตัวเลือกใช่ใช่ใช่
เลเบลถูกกำหนดขณะ inferenceไม่ใช่ใช่
คำถามที่มีประเภทหลากหลายไม่ไม่ใช่
การให้คะแนนแบบเรียงลำดับเฉพาะเจาะจงต่องานต้องปรับเปลี่ยนมี Primitives พื้นฐาน

Primitives พื้นฐานของ Decision Model

ในการส่งคำขอไปยังโมเดล จะประกอบด้วย 2 ส่วนคือ State (ข้อมูลที่ให้ประเมิน) และ Questions (สิ่งที่เราอยากรู้) โดยมีรูปแบบคำตอบพื้นฐาน 3 ประเภท:

  1. Choice: การเลือกหนึ่งจากหลายตัวเลือก โดยโมเดลจะใช้ softmax เพื่อกระจายค่าความน่าจะเป็นให้กับแต่ละตัวเลือก
  2. Score: การประเมินบนมาตราส่วนที่เรียงลำดับไว้ (เช่น 0-2) โดยผลลัพธ์จะคำนวณจากค่าคาดหมาย (Expected Value) ของความน่าจะเป็นในแต่ละระดับ
  3. Noul: (มาจาก Bernoulli) เป็นการตอบคำถามแบบไบนารี (ใช่/ไม่ใช่) โดยโมเดลจะส่งคืนค่าพารามิเตอร์ความน่าจะเป็นโดยตรง

นอกจากนี้ยังมีฟิลด์ confidence เพื่อบอกว่าโมเดลมีความมั่นใจในคำตอบนั้นมากน้อยเพียงใดเมื่อเทียบกับตัวเลือกอื่นๆ

Decision models ในระบบนิเวศของ Hugging Face

Hugging Face ตั้งเป้าสร้างอินเทอร์เฟซมาตรฐานเพื่อให้เครื่องมือต่างๆ ทำงานร่วมกันได้ ไม่ว่าจะเป็น:

  • Transformers: รองรับคลาส DecisionPipeline และ AutoModelForDecision แล้ว รวมถึงรองรับ endpoint /v1/systemone สำหรับการให้บริการ
  • llama.cpp: รองรับการรัน decision model ผ่าน API รูปแบบเดียวกัน
  • Hugging Face Hub: เพิ่มแท็ก decision-model เพื่อให้ค้นหาโมเดลที่เข้ากันได้ง่ายขึ้น
  • การฝึกฝน: สามารถทำ fine-tune ได้ผ่าน Trainer API หรือใช้เครื่องมืออย่าง Unsloth เพื่อเปลี่ยน LLM ทั่วไปให้กลายเป็น decision model

สรุปแล้ว decision models คือการยกระดับให้การตัดสินใจและค่าความน่าจะเป็นกลายเป็นผลลัพธ์หลัก (First-class output) ของซอฟต์แวร์ ช่วยให้การพัฒนาแอปพลิเคชัน AI มีความน่าเชื่อถือ รวดเร็ว และประหยัดทรัพยากรมากขึ้น

Source: Hugging Face Blog
ดูแลงานแปลและเรียบเรียงโดย TanasakP
state and primitives for the decision models

ความคิดเห็น (0)

เข้าสู่ระบบเพื่อร่วมแสดงความเห็น

สมัครสมาชิก

มาเป็นคนแรกที่แสดงความเห็นกันเลยโบร