Fastino เปิดตัว GLiNER2.5-Decide โมเดลตัดสินใจขนาดเล็กที่รันบน CPU ได้

Fastino Labs ได้เปิดตัว GLiNER2.5-Decide โมเดลการตัดสินใจแบบ open-weight ขนาด 340 ล้านพารามิเตอร์ โดยตัวโมเดลจะรับข้อความและ schema ของคำถามแบบกำหนดประเภท (typed questions) จากนั้นจะส่งคืนคำตอบที่มีโครงสร้างชัดเจน
แต่ละคำตอบมาพร้อมกับการกระจายความน่าจะเป็น (probability distribution), คะแนนความเชื่อมั่น (confidence score) และ metadata ความเป็นไปได้ตามข้อจำกัด (constraint-feasibility metadata) ซึ่งมุ่งเป้าไปที่การตัดสินใจที่เกิดขึ้นบ่อยครั้งภายใน agent pipelines ได้แก่ การกำหนดเส้นทาง (routing), การคัดกรอง (triage), การเลือกเครื่องมือ (tool selection) และระบบป้องกัน (guardrails)
โมเดลนี้สามารถนำไปใช้งานได้จริงทันที โดยชุดน้ำหนักของโมเดล (weights) ถูกปล่อยภายใต้ Apache 2.0 และติดตั้งได้ง่ายด้วยคำสั่ง pip install gliner2 รองรับการทำงานทั้งบน CPU, GPU หรือในสภาพแวดล้อมแบบ air-gapped นอกจากนี้ทีม Fastino ยังให้บริการ hosted inference และการทำ fine-tuning ผ่าน GLiNER API ของพวกเขาด้วย
GLiNER2.5-Decide ทำหน้าที่อะไรกันแน่
GLiNER2.5-Decide เป็นตัวจำแนกประเภทแบบ non-generative หรือไม่มีการสร้างข้อความใหม่ โดยใช้ encoder แบบ DeBERTa-v3-large และถูก fine-tuned มาจาก gliner2-large-v1 ซึ่งจะไม่มีการผลิต token ใหม่และไม่จำเป็นต้องใช้ prompt template ในการทำงาน
ชุดของป้ายกำกับ (Label sets) จะถูกส่งไปพร้อมกับการเรียกใช้งาน โดยแต่ละคำถามใน schema จะประกาศคำตอบที่อนุญาต รวมถึงระบุเงื่อนไขว่าต้องการคำตอบเดียว หลายคำตอบ หรือค่าที่มีลำดับ (ordered value) โดย schemas สามารถบรรจุคำสั่ง ตัวอย่าง คำอธิบายป้ายกำกับ และกฎเกณฑ์ที่เชื่อมโยงคำตอบระหว่างคำถามเข้าด้วยกันได้
กระบวนการทำงานแบ่งเป็น 2 ขั้นตอน คือ encoder จะอ่านข้อความและ schema พร้อมกันเพื่อส่งคะแนนให้กับทุกคำตอบที่ได้รับอนุญาต จากนั้น constrained decoder จะทำการค้นหาการกำหนดค่าร่วมกันที่ให้คะแนนสูงสุดตามกฎที่ประกาศไว้ โดย Fastino ระบุชัดเจนว่าโมเดลนี้ไม่ได้มีไว้เพื่อการให้เหตุผลหรือตอบคำถามปลายเปิด แต่เป็นผู้เชี่ยวชาญด้านการตัดสินใจระดับปฏิบัติการ (operational decisions)
ทำไม Joint Decoding ถึงสำคัญ
ทีม Fastino ได้แสดงให้เห็นถึงความสำคัญผ่านตัวอย่างระบบ guardrail หากทำการถอดรหัสแยกกัน โมเดลอาจตรวจพบ prompt injection ที่ระดับความน่าจะเป็น 0.82 แต่กลับระบุว่า prompt เดียวกันนั้นปลอดภัยที่ระดับ 0.52 ซึ่งเป็นผลลัพธ์ที่ขัดแย้งกัน
การใช้ Joint decoding จะช่วยบังคับใช้กฎว่าหากตรวจพบอันตรายใดๆ จะต้องตัดสินว่าไม่ปลอดภัยทันที โดยโมเดลจะส่งคืน safety=unsafe และ harm_type=prompt_injection ออกมาพร้อมกัน เพื่อให้โค้ดในส่วนถัดไปสามารถใช้คะแนนเหล่านี้ในการบล็อกหรือกำหนดเส้นทางข้อมูลได้อย่างแม่นยำ
Schemas ยังสามารถระบุนัยยะ (implications) การยกเว้น (exclusions) และขีดจำกัดต่างๆ ได้ นอกจากนี้ encoder ตัวเดียวกันยังสามารถดึงข้อมูล entity และ relation ได้ในการประมวลผลครั้งเดียว (1 forward pass) แม้ว่าคำตอบที่เป็นการจำแนกประเภทจะไม่ส่งคืนช่วงของหลักฐาน (evidence spans) ก็ตาม
ผลการทดสอบ Benchmark ด้านการตัดสินใจที่รวดเร็ว
ทีม Fastino ได้ประเมินโมเดลบน Fast Decisions ซึ่งเป็นชุดทดสอบภายในประกอบด้วยตัวอย่าง 5,100 รายการจาก 17 ชุดข้อมูล ครอบคลุมงานด้านบริการลูกค้าและการกำหนดเส้นทางตามโดเมนต่างๆ โดยวัดจากความแม่นยำแบบตรงทั้งหมด (exact-match accuracy)
| Model | Type | Average |
|---|---|---|
| GLiNER2.5-Decide | 340M encoder | 60.1% |
| JevK5 | 4B-class Qwen3.5 decoder | 57.5% |
| SemIf | Qwen3.5-4B decoder | 56.4% |
| GLiFormer large-v1 | Single-pass encoder | 49.0% |
| Laya | 421M ModernBERT encoder | 46.6% |
GLiNER2.5-Decide ทำคะแนนนำใน 9 จาก 17 ชุดข้อมูล โดยเฉพาะด้านการกำหนดเส้นทางตามความประสงค์ (Intent routing) ที่ทำคะแนนได้สูงถึง 75.3% ในส่วนของ support intent และ 64.3% ใน banking intent ซึ่งสูงกว่าโมเดลคู่แข่งอย่างมีนัยสำคัญ
Latency: ใช้งานได้จริงบน CPU
ทีม Fastino ได้ทดสอบประสิทธิภาพการทำงานแบบ end to end ที่ batch 1 ด้วย schema ขนาด 2-head และ 15-label สำหรับ input ขนาด 64 tokens โดยมีค่าความหน่วง (p50 latency) ดังนี้:
- 167.3 ms บน 48-vCPU Intel Xeon Platinum 8581C
- 43.6 ms บน NVIDIA T4
- 43.4 ms บน NVIDIA L4
- 38.3 ms บน NVIDIA V100
- 47.3 ms บน NVIDIA A100
สำหรับการประมวลผลที่ 1,024 tokens โมเดล A100 จะทำความเร็วได้ดีที่สุดที่ 52.6 ms ในขณะที่ V100 อยู่ที่ 75.6 ms และ L4 อยู่ที่ 131.4 ms ตามลำดับ
การใช้งานในโค้ด
การเรียกใช้งานแบบ multi-head สามารถเขียนได้ดังตัวอย่างนี้:
from gliner2 import AutoExtractor
model = AutoExtractor.from_pretrained("fastino/GLiNER2.5-Decide")
model.classify_text(
"Please confirm the new retention rule is applied before Friday's audit.",
{
"intent": ["fyi", "request", "approval", "complaint"],
"urgency": ["low", "normal", "high", "critical"],
"route": ["support", "billing", "legal", "security"],
},
)ในส่วนของผลลัพธ์ ส่วนหัวแบบ Single-label จะคืนค่าเป็นสตริงเดียว ส่วนแบบ Multi-label จะคืนค่าทุกป้ายกำกับที่อยู่เหนือค่า threshold ที่กำหนด โดยสามารถระบุคำอธิบายป้ายกำกับหรือใช้มาตรวัดแบบลำดับได้ตามต้องการ
กรณีการใช้งานและตระกูลโมเดล
Fastino มุ่งเป้าให้โมเดลนี้ถูกใช้ในงานกำหนดเส้นทางโมเดล (model routing), การเรียกใช้เครื่องมือ (tool calling), งานอัตโนมัติบนเบราว์เซอร์, และระบบ guardrails ผู้ใช้สามารถทำ fine-tuning ได้เองผ่าน GLiNER2 trainer และยังมีไฟล์ SKILL.md เพื่อเป็นแนวทางสำหรับ coding agents
นอกจากรุ่น 340M แล้ว ยังมีรุ่น GLiNER2.5-Decide-1B ที่สร้างบน Ettin 1B และ GLiNER2.5-multi-Decide ขนาด 287M สำหรับการรองรับหลายภาษา โดยสามารถศึกษารายละเอียดสถาปัตยกรรมได้จาก GLiNER2 paper
ประเด็นสำคัญ
- เป็นตัวเข้ารหัส (encoder) แบบ open-weight ขนาด 340M ภายใต้ไลเซนส์ Apache 2.0 ที่รันบน CPU ได้
- ให้ข้อมูลครบถ้วนทั้งคำตอบ ความน่าจะเป็น และความเชื่อมั่น
- Joint decoding ช่วยจัดการกฎเกณฑ์ของคำตอบที่สัมพันธ์กันได้อย่างมีประสิทธิภาพ
- มีความแม่นยำเฉลี่ย 60.1% จากชุดทดสอบภายใน 17 ชุดข้อมูล
- มีความหน่วงต่ำเพียง 167.3 ms บน CPU สำหรับการประมวลผลข้อความขนาดสั้น
ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
