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

· By: TanasakP

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)

ModelTypeAverage
GLiNER2.5-Decide340M encoder60.1%
JevK54B-class Qwen3.5 decoder57.5%
SemIfQwen3.5-4B decoder56.4%
GLiFormer large-v1Single-pass encoder49.0%
Laya421M ModernBERT encoder46.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 สำหรับการประมวลผลข้อความขนาดสั้น
Source: MarkTechPost
ดูแลงานแปลและเรียบเรียงโดย TanasakP

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

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

สมัครสมาชิก

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