Skip to main content

🎯 Jev ภาษาไทยมาแล้ว! OpenThai-SystemOne

ประกาศเมื่อ 20 กันยายน 2569 (2026)

Jev ภาษาไทยมาแล้ว! โมเดล Opensource โดยทีม OpenThai ภายใต้ชื่อ OpenThai-SystemOne

0.8B พารามิเตอร์v0.374.3 public benchฟรี Apache-2.0ไทย + อังกฤษ

ส่งข้อความ + คำถาม → ได้คำตอบพร้อมค่าความมั่นใจ ในรอบเดียว

5 วันหลัง TypeSafe เปิดตัว Jev ("System One model" ที่ไม่สร้างข้อความ แต่ตอบเป็นการตัดสินใจพร้อมความน่าจะเป็นในรอบเดียว) ทีม OpenThai ทำเวอร์ชันโอเพนซอร์สสำหรับภาษาไทย+อังกฤษออกมาแล้ว ภายใต้ชื่อ OpenThai-SystemOne

  • โมเดล 0.8B พารามิเตอร์ รันบนโน้ตบุ๊กได้
  • ฐาน Qwen3.5-0.8B เทรนต่อด้วยข้อความไทย ~5 พันล้านโทเคน แล้วเปลี่ยนหัวโมเดลจาก 248k คำ เป็น "หัวตัดสินใจ 256 ช่อง"
  • ป้อน state (ข้อความ/JSON) + คำถามแบบ เลือกตัวเลือก / ให้คะแนน / ใช่-ไม่ใช่ → ได้คำตอบทุกข้อพร้อมความมั่นใจในการคำนวณรอบเดียว
  • ผลบน public benchmark 13 ชุดเดียวกับ Bespoke-Nimble-9B: เรา 74.3 (v0.3) / Nimble-9B 74.8 / Jev 76.0 (ห่างโมเดล 9B แค่ 0.5 จุด และนำใน 8 จาก 13 ชุด) และงานภาษาไทย: intent 90.0%, หัวข้อข่าว 98.1%, XNLI-th 77.1%
  • ใช้ทำ: จัดหมวดหมู่ (Text Classification), คัดกรองข้อความ (Sentiment Analysis), เลือก Action ให้ AI (Agentic Computer Use)
  • Apache-2.0 เปิดหมด ทั้งน้ำหนักโมเดล สคริปต์เทรน คอนฟิก และข้อมูลสังเคราะห์

รูปแบบ API เหมือน POST /v1/systemone ของ TypeSafe AI (Jev) จึงชี้โค้ดเดิมมาที่โมเดลนี้ได้ทันที

ลองเล่นในเบราว์เซอร์​

ลองเล่น OpenThai-SystemOne ในเบราว์เซอร์ + เอกสาร APIiapp.co.th/docs/llm/openthai-systemone

ดาวน์โหลดและติดตั้ง​

OpenThai-SystemOne — น้ำหนักโมเดลและ model card พร้อมตารางผลทดสอบhuggingface.co/iapp/OpenThai-SystemOne

โค้ด คอนฟิก และสคริปต์เทรนทั้งหมด — GitHubgithub.com/iapp-technology/openthai-systemone

pip install openthai-systemone # หรือ: pip install "git+https://github.com/iapp-technology/openthai-systemone"

ลองใช้งาน​

ตัวอย่างจริงจากโมเดล: ticket ลูกค้าหนึ่งข้อความ ถามสองคำถาม ได้คำตอบทั้งหมดในการคำนวณรอบเดียว (91 โทเคนขาเข้า, 0 โทเคนขาออก)

curl -s https://api.iapp.co.th/v3/store/openthai/systemone -H "apikey: $IAPP_API_KEY" -H "content-type: application/json" -d '{
"state": {"ticket": "โดนหักเงินซ้ำสองครั้ง ขอเงินคืนด่วน"},
"questions": {
"department": {"type": "choice", "instructions": "ทีมใดควรรับผิดชอบ",
"criteria": {"billing": "การเงิน/คืนเงิน", "technical": "ระบบใช้งานไม่ได้", "sales": null}},
"refund": {"type": "noul", "instructions": "ลูกค้าขอเงินคืนหรือไม่"}
}}'
{"answers": {"department": {"choice": "billing", "probabilities": {"billing": 0.972, "technical": 0.009, "sales": 0.018}, "confidence": 0.87},
"refund": {"noul": 0.954}}, "usage": {"input_tokens": 91, "output_tokens": 0}}

🔑 API สาธารณะ (พรีวิวฟรี)

endpoint https://api.iapp.co.th/v3/store/openthai/systemone ใช้ iApp API key ใดก็ได้ (สมัครฟรี) ช่วงพรีวิวคิด 0 เครดิต จำกัด 1,000 การตัดสินใจต่อวันต่อ key และ 100 คำขอต่อนาที ราคาต่อการตัดสินใจจะประกาศในเดือนตุลาคม 2569 API ตอนนี้รัน v0.3 (checkpoint เดียวกับน้ำหนักบน Hugging Face) รายละเอียดและ playground อยู่ที่ iapp.co.th/docs/llm/openthai-systemone หรือรันโมเดลบนเครื่องของคุณเองตามตัวอย่างด้านล่าง

รันบนเครื่องคุณเอง (CUDA, Apple MPS หรือ CPU)

from openthai_systemone import SystemOneClient, Choice, Score, Noul

c = SystemOneClient("iapp/OpenThai-SystemOne")
r = c.system_one(
state={"ticket": "โดนหักเงินซ้ำสองครั้ง ขอเงินคืนด่วน โทรไปสามรอบแล้วไม่มีใครรับ"},
questions={
"department": Choice(instructions="ทีมใดควรรับผิดชอบ", criteria={"billing": "การเงิน/คืนเงิน", "technical": "ระบบใช้งานไม่ได้", "sales": None}),
"frustration": Score(instructions="ลูกค้าหงุดหงิดแค่ไหน", criteria=["ใจเย็น", "หงุดหงิดแต่สุภาพ", "โกรธมาก"]),
"refund": Noul(instructions="ลูกค้าขอเงินคืนอย่างชัดเจนหรือไม่"),
},
)
print(r.answers["department"].choice, r.answers["department"].probabilities)
print(r.answers["frustration"].score, r.answers["refund"].noul)

เปิดเป็น HTTP server ที่ใช้ contract เดียวกับ POST /v1/systemone

OPENTHAI_SYSTEMONE_MODEL=iapp/OpenThai-SystemOne uvicorn openthai_systemone.server:app --port 8000

หรือโหลดด้วย transformers ตรง ๆ (remote code อยู่ในรีโปโมเดล)

from transformers import AutoModel
model = AutoModel.from_pretrained("iapp/OpenThai-SystemOne", trust_remote_code=True)

🎮 เดโม: เล่น Doom โดยไม่เห็นภาพ ไม่สร้างข้อความ​

โมเดลควบคุมตัวละครใน Doom (ViZDoom) แบบเรียลไทม์ ทุก 4 tic ของเกม state เชิงสัญลักษณ์ของเอนจินถูกแปลงเป็นข้อความ เช่น

health 100/100 | ammo 50 | kills 1
crosshair: empty; nearest visible enemy 39deg to the RIGHT
enemies: Zombieman 5m right -39deg VISIBLE; ChaingunGuy 19m right -24deg; Zombieman 19m ahead -12deg
items: GreenArmor 41m right -18deg
depth ahead: 35/255 (obstacle near)
last actions: ATTACK ATTACK ATTACK ATTACK

แล้วโมเดลตอบสองคำถามในการคำนวณรอบเดียว: choice เลือก 1 ใน 7 การกระทำ (ปุ่มที่จะกด) และ noul "มีศัตรูอยู่ในเป้าเล็งหรือไม่" ใช้เวลาราว 41 มิลลิวินาทีต่อการตัดสินใจบน H100 หนึ่งใบ (ราว 24 การตัดสินใจต่อวินาที) 0 โทเคนขาออก และไม่มีข้อมูล Doom ในการเทรนเลย ทุกอย่างมาจากการอ่าน state และคำอธิบายตัวเลือก มันยิงพลาดและตายในด่านยาก ประเด็นคือความเร็วกับความน่าจะเป็นที่ calibrate แล้ว ซึ่งเป็นกลไกเดียวกับที่ใช้จัดเส้นทาง ticket หรือเลือกปุ่มให้ agent

รันบนเครื่องคุณเอง (ใช้ iApp API key หรือน้ำหนักโมเดลในเครื่อง มี HUD ภาษาไทย/อังกฤษ และบันทึกวิดีโอได้): github.com/iapp-technology/openthai-systemone-doom

🇹🇭 ตัวอย่างงานไทย (ผลจริงจาก v0.3 ผ่าน API, 22 ก.ย. 2569)​

เจ็ดงานไทยในชีวิตประจำวัน แต่ละข้อตอบในการคำนวณรอบเดียว ความน่าจะเป็นคือผลลัพธ์จริงของโมเดล

งานstate (ย่อ)คำถามคำตอบ
จัดเส้นทาง ticket"แอปโอนเงินไม่ได้ตั้งแต่เมื่อคืน ขึ้น error 502 ตลอด … ต้องโอนค่าเทอมลูกพรุ่งนี้"ทีมใดรับผิดชอบ (4 ทีม) · ความเร่งด่วน (score) · ใช้ถ้อยคำสุภาพหรือไม่technical 72% (billing 27%) · 2.13 = เร่งด่วน (85%) · สุภาพ 1% (ผิด ดูหมายเหตุ)
หัวข้อข่าว"ครม. เห็นชอบขึ้นค่าแรงขั้นต่ำเป็น 400 บาททั่วประเทศ … สภาอุตสาหกรรมกังวลกระทบ SME"หัวข้อ (8 หมวด) · เกี่ยวกับแรงงานหรือไม่เศรษฐกิจ 62% (แรงงาน 36%) · 98%
intent ผู้ช่วย"ช่วยตั้งปลุกตอนหกโมงครึ่งพรุ่งนี้ให้หน่อย แล้วก็เปิดเพลงเบาๆ ตอนตื่นด้วย"intent (10 แบบ)alarm set 99.5%
คัดกรองคอมเมนต์คอมเมนต์ด่าหยาบคายเป็นพิษหรือไม่ · ความรู้สึกเป็นพิษ 94% · เชิงลบ 97%
ตอบได้จากเอกสารหรือไม่ข้อความเรื่องสะพานพระราม 8 (เปิด 7 พ.ค. 2545 ยาว 475 ม.)"สะพานยาวเท่าไร" ตอบได้หรือไม่ · "ระบุงบประมาณหรือไม่"98.5% · 0.6%
เลือกเครื่องมือให้ agentงาน "จองโต๊ะร้านอาหาร 4 คน คืนนี้สองทุ่ม" ประวัติแสดงว่า search_restaurants เจอโต๊ะว่างแล้วเครื่องมือถัดไป (5 ตัว)make_reservation 96.5%
RAG relevance + ดึงค่าคำถามภาษีหัก ณ ที่จ่ายค่าเช่าอาคาร + ข้อความระบุ 5%ข้อความเกี่ยวข้องหรือไม่ · อัตรา98% · 5% (76%)

หมายเหตุข้อแรก: ticket ใช้ "รบกวน…นะครับ" คำตอบที่ถูกคือ สุภาพ แต่โมเดลตอบว่าไม่ที่ 99% การตัดสินความสุภาพของภาษาไทยทางการยังเป็นช่องว่างที่รู้แล้ว และจะได้ชุดข้อมูลเฉพาะใน v0.4 เราคงตัวอย่างที่พลาดไว้ เพราะ showcase ที่มีแต่ข้อที่ถูกไม่มีประโยชน์

คำถาม 3 แบบ​

ประเภทคุณให้คุณได้
choiceคำสั่ง + ตัวเลือกได้ถึง 255 ตัว (ชื่อ → คำอธิบาย หรือ null)choice, probabilities ของทุกตัวเลือก, confidence
scoreคำสั่ง + ระดับเรียงลำดับ 2–10 ระดับscore (ถ่วงน้ำหนักด้วยความน่าจะเป็น มีทศนิยมได้), probabilities, confidence
noulคำถามใช่/ไม่ใช่noul = ความน่าจะเป็นที่คำตอบคือ "ใช่"

ทุกคำถามในหนึ่งคำขอถูกตอบพร้อมกันในการคำนวณรอบเดียว confidence คือ 1 − เอนโทรปีที่ normalise แล้ว และมีค่า abstain = ความน่าจะเป็นที่ไม่มีตัวเลือกใดเหมาะเลย

📊 ตัวเลข (v0.3, 22 ก.ย. 2569)​

ทุกตัวเลขเป็น zero-shot โมเดลเห็นเพียง state คำสั่ง และชื่อ/คำอธิบายตัวเลือก และเป็นผลของ v0.3 ที่ผ่านขั้น calibration แล้ว (ตัวเลขของเวอร์ชันก่อนหน้าอยู่ในตารางเวอร์ชันด้านล่าง)

Public benchmark 13 ชุดของ Bespoke Labs (แหล่งข้อมูล split คำสั่ง และตัวสุ่มตัวอย่างชุดเดียวกับที่ใช้เทียบ Jev) choice/noul รายงานความแม่นยำ score รายงานการตรงระดับพอดี ตัวหนาคือชุดที่โมเดล 0.8B นำ Nimble-9B

ชุดทดสอบประเภทnOpenThai-SystemOne 0.8BNimble-9BJev 1.13.0ECE ของเรา
aegis2noul25083.281.280.40.065
boolqnoul30079.786.089.70.049
civil_commentsnoul30079.070.381.00.087
helpsteer2score25041.639.034.10.371
massive-de-DEchoice35088.383.486.90.057
massive-en-USchoice35088.386.987.40.070
multinlichoice29989.085.382.90.053
pawsnoul25094.082.889.20.035
pubmedqachoice25064.075.677.20.259
squad2noul29989.380.682.90.041
summeval-consistencyscore14475.075.781.20.076
summeval-relevancescore24021.749.235.00.356
vitaminc-devchoice59972.576.680.10.118
ค่าเฉลี่ย macro74.374.876.0

อ่านตรง ๆ: โมเดล 0.8B ทำค่าเฉลี่ย 74.3 ห่างจาก Nimble-9B (74.8) เพียง 0.5 จุด และนำใน 8 จาก 13 ชุด (aegis2, civil_comments, helpsteer2, massive-de, massive-en, multinli, paws, squad2) ที่ยังตามหลังชัดคือ pubmedqa (64.0) กับการให้คะแนนบทสรุปทั้งสองแบบ (relevance 21.7, consistency 75.0 ซึ่งถดถอยจาก 84.0 ใน v0.2) ECE ดีขึ้นใน 11 จาก 13 ชุด ตัวเลขของ Nimble-9B และ Jev ตามที่ Bespoke Labs เผยแพร่ (18 ก.ย. 2569) ส่วนของเราวัดด้วย scripts/06_eval.py บนชุดข้อมูลที่ scripts/06b_public_benchmarks.py สร้างขึ้นใหม่จากแหล่งเดียวกัน หมายเหตุ: ตั้งแต่ v0.3 ชุด train ของ SQuAD2, BoolQ, PAWS, Aegis2 และ MASSIVE-de อยู่ในข้อมูลเทรนแล้ว ส่วน benchmark ยังใช้เฉพาะ split validation/test เพื่อเทียบสเกล Bespoke รายงาน Qwen3.5-0.8B ดิบที่ 45.4 บนชุดทดสอบส่วนตัว 324 ข้อของพวกเขา (Nimble-9B 90.1, Jev 93.2) ไม่ใช่บน benchmark นี้

ชุดทดสอบภาษาไทยที่กันออกจากการเทรน (ชุด eval เต็ม ชุดที่มี * กันออกทั้งชุดข้อมูล ECE ยิ่งต่ำยิ่ง confidence เชื่อถือได้)

ชุดทดสอบงานความแม่นยำECEหมายเหตุ
Prachathai67kหัวข้อข่าว (choice)98.10.004v0.2: 97.6
Prachathai67kหัวข้อข่าว แบบใช่/ไม่ใช่ (noul)94.20.008
MASSIVE-thจับ intent 60 แบบ (choice)90.00.043v0.2: 88.6
XNLI-thอนุมานความหมาย NLI (choice)77.10.045
XNLI-thentailment แบบใช่/ไม่ใช่ (noul)84.30.049
SIB-200 Thai*หัวข้อ 7 แบบ (choice)77.90.084กลับมาจาก 74.0 ใน v0.2
คู่ประโยคไทยเปลี่ยนข้อเท็จจริงเดียวchoice / noul / score80.7 / 83.5 / 78.60.098 / 0.109 / 0.156
Wongnaiดาวรีวิว 1–5 (score)63.5 ตรงเป๊ะ (MAE 0.44)0.039
xLAM tool selection (อังกฤษ)เลือกเครื่องมือ (choice)99.40.006
Wisesight*ความรู้สึกโซเชียล 4 แบบ (choice)51.60.353ยังเป็นชุดไทยที่อ่อนที่สุด ใช้ order-invariant mode
banking77* (อังกฤษ)intent 77 แบบ (choice)45.40.236v0.2: 37.8 (61.7 ด้วย order-invariant mode บน v0.2)

ค่า confidence เชื่อถือได้บนชุดภาษาไทยและงาน NLI/หัวข้อ (ECE ไม่เกิน 0.05) ส่วนงานให้คะแนนหลายระดับภาษาอังกฤษ (helpsteer2, summeval-relevance) ECE ยังสูง ควรส่งเคสที่ confidence ต่ำไปโมเดลใหญ่หรือคน

โหมดไม่ขึ้นกับลำดับตัวเลือก — การคำนวณรอบเดียวไวต่อลำดับของตัวเลือกเช่นเดียวกับ Jev (วัดบน v0.2: คำตอบ argmax เปลี่ยน 5–12% เมื่อสุ่มสลับลำดับที่ ≤ 10 ตัวเลือก และ 72% บน banking77 ที่มี 77 ตัวเลือก) client และ API จึงมี order-invariant mode ที่เฉลี่ยคำตอบจากการหมุนลำดับตัวเลือกหลายแบบใน batch เดียว (order_invariant: true / permutations: n เปิดอัตโนมัติสำหรับ choice ที่มีมากกว่า 10 ตัวเลือก) บนคำถามภาษาไทยที่กันออก 360 ข้อ: คำตอบเปลี่ยน 18.9% → 3.3%, ความน่าจะเป็นเลื่อนเฉลี่ย 0.19 → 0.08, ความแม่นยำ 68.6 → 73.6, banking77 41.7 → 63.3 ต้นทุนคือ latency ราว 2 เท่า (batched) โดย usage.input_tokens ไม่เพิ่ม

ความเร็ว — คำขอ 3 คำถามใช้เวลาราว 40 มิลลิวินาทีบน H100 และ 154 มิลลิวินาทีบน MacBook M3 Max (Apple GPU ผ่าน MPS) ไป-กลับผ่าน API จากโน้ตบุ๊กราว 170–220 มิลลิวินาทีรวมเครือข่าย คำถามที่มี 255 ตัวเลือกใช้ 44 มิลลิวินาทีบน H100 และ 1.5 วินาทีบน MacBook ส่วน CPU ล้วนยังช้า (ราว 4.6 วินาที) แนะนำให้ใช้ GPU หรือ MPS

⚙️ ทำงานอย่างไร​

สถาปัตยกรรม: state และคำถาม → text tower ของ Qwen3.5-0.8B → hidden state ที่ตำแหน่ง ts_answer → หัวตัดสินใจ 256 ช่อง → masked softmax → choice / score / noul

  • แกนโมเดล — text tower ของ Qwen3.5-0.8B-Base (24 ชั้น ผสม Gated-DeltaNet กับ attention บริบท 262k) ตัด vision encoder ออก แล้ว เทรนต่อด้วยข้อความไทยราว 5 พันล้านโทเคน (เว็บ Wikipedia คู่แปลไทย-อังกฤษ และข้อความสถานะเครื่อง เช่น accessibility tree และ JSON)
  • หัวตัดสินใจ — หัว LM ขนาด 248k คำถูกแทนด้วยหัว 256 ช่อง ตัวเลือกแต่ละตัวถูกแนะนำด้วย control token <|ts_opt_0|> … <|ts_opt_254|> hidden state ที่ตำแหน่ง <|ts_answer|> ของแต่ละคำถามถูกฉายเป็น logit 256 ค่า ช่องที่เกินจำนวนตัวเลือกถูก mask ออก แล้ว softmax ให้การแจกแจง ช่อง 255 คือ abstain (ไม่มีตัวเลือกใดเหมาะ)
  • การอ่านผล — choice = ตัวเลือกที่ความน่าจะเป็นสูงสุด, score = Σ pᵢ·i บนระดับที่เรียงลำดับ, noul = p(ใช่)
  • ไม่มี position bias — ลำดับตัวเลือกถูกสลับระหว่างเทรน และมีตัวอย่าง abstain ปนอยู่ด้วย จึงไม่ใช่ trick อ่าน logprob ของตัวอักษร A/B/C

🔬 สูตรการเทรน​

ทุกขั้นตอนอยู่ใน รีโป GitHub หนึ่งสคริปต์ต่อหนึ่งขั้น ทำซ้ำได้บน H100 ใบเดียว

  1. scripts/00_prepare_base.py — ตัด vision encoder ของ Qwen3.5-0.8B ออก เหลือ text tower (752M พารามิเตอร์)
  2. scripts/01_cpt_data.py + scripts/02_cpt_train.py — CPT เน้นภาษาไทย (FineWeb-2 ไทยที่กรองแล้ว, Thai Wikipedia, ข้อความคำสั่ง/สรุปภาษาไทย, OPUS ไทย↔อังกฤษ, FineWeb-Edu replay, accessibility tree และ JSON สังเคราะห์) H100 1 ใบ ราว 40 ชั่วโมง perplexity บนชุดกันออก 31.4 → 5.38
  3. scripts/03_decision_data.py — 1.81 ล้านตัวอย่างการตัดสินใจ แปลงจากชุดข้อมูลสาธารณะ 21 ชุด (ไทย: wisesight*, wongnai, prachathai, XNLI-th, MASSIVE-th, SIB-200*, ThaiExam, iapp_wiki_qa, Thai toxicity; อังกฤษ: MNLI, MMLU, ARC, HelpSteer2, AG News, DBpedia, CLINC, banking77*, Mind2Web, xLAM tools) ชุดที่มี * กันออกทั้งชุดเพื่อใช้ทดสอบเท่านั้น
  4. scripts/03b_synth_generate.py — งานตัดสินใจไทย/อังกฤษสังเคราะห์ราว 100k ชุด สร้างด้วย Qwen3.6-35B-A3B ติดป้ายซ้ำแบบ blind และกรองการรั่วของคำตอบ (ชุดข้อมูล iapp/openthai2.0-systemone-synth)
  5. scripts/04_decision_train.py — เปลี่ยนหัวโมเดล + SFT 12k step แล้วต่อด้วยขั้น calibration (Brier loss + temperature แยกตามประเภทคำถาม) เพื่อให้ confidence สูง ⇒ ความแม่นยำสูงจริง v0.2 เทรนต่อจาก v0.1 อีก 3,000 step ด้วยชุดความรู้สึกโซเชียลไทยสังเคราะห์ 22k รายการ (4 คลาสรวม "คำถาม", แบบ 3/5 คลาส, ใช่/ไม่ใช่, score 5 ระดับ) แล้ว calibrate ใหม่ v0.3 เทรนต่อจาก v0.2 อีก 5,000 step ด้วยชุด train จริง 177k รายการ (SQuAD2, BoolQ, PubMedQA-artificial, PAWS, Aegis2, ToxicChat, XQuAD-th, MASSIVE-de) และชุดสังเคราะห์เฉพาะจุดอ่อน 78k รายการ (QA ใช่/ไม่ใช่แบบอิงเอกสาร, ให้คะแนนบทสรุป, intent ละเอียด 40–120 แบบ, safety, paraphrase) ลดน้ำหนักชุดความรู้สึกจาก 4× เป็น 2× แล้ว calibrate ใหม่
  6. scripts/06b_public_benchmarks.py — สร้าง public benchmark 13 ชุดของ Bespoke Nimble ขึ้นใหม่ เพื่อเทียบแบบ like-for-like

👨‍👩‍👧 ตระกูล OpenThai 2.0​

โมเดลทำอะไรขนาดสถานะ
OpenThai 2.0LLM สนทนา/ให้เหตุผลภาษาไทย อ่านภาพได้27Bเปิดตัวแล้ว
OpenThai 2.0 Legalโมเดลกฎหมายไทยสำหรับ RAG30B-A3Bเปิดตัวแล้ว
OpenThai-SystemOneโมเดลตัดสินใจไทย+อังกฤษ (ไม่สร้างข้อความ)0.8Bเปิดตัวแล้ว
OpenThai-SystemOne CPTโมเดลฐานที่เทรนต่อด้วยภาษาไทย (สำหรับงานวิจัย)0.8Bยังไม่เปิด

⚠️ ข้อจำกัด​

  • เวอร์ชัน 0.3 — โมเดล 0.8B ไม่ใช่โมเดลคิดวิเคราะห์ ไม่ทำการตรวจสอบหลายขั้นหรือคำนวณเลข
  • ตอบได้เฉพาะตัวเลือกที่ให้ แต่ยังผิดได้ — โมเดลปล่อยตัวเลือกที่ไม่มีอยู่ไม่ได้ แต่เลือกผิดได้ ใช้ค่า confidence แล้วส่งเคสที่ไม่มั่นใจไปโมเดลใหญ่หรือคน
  • ข้อความอย่างเดียว — ไม่รับรูปภาพ สูงสุด 255 ตัวเลือกต่อคำถาม (มากกว่านั้นให้แบ่งเป็นกลุ่ม) และ 64k โทเคนต่อคำขอ
  • CPU ล้วนยังช้า — ใช้ GPU หรือ Apple MPS
  • จุดอ่อนของ v0.3 ที่รู้แล้ว — งานให้คะแนน 5 ระดับทั้งสองแบบ (relevance ของบทสรุป 22, helpfulness 42), intent ภาษาอังกฤษแบบละเอียด 77 แบบ (banking77 45 แบบลำดับเดียว), ความรู้สึกในโซเชียลไทย (Wisesight 52), PubMedQA 3 ทาง (64) และการตัดสินความสุภาพของภาษาไทยทางการ (ชุดข้อมูลเฉพาะใน v0.4)
  • ไวต่อลำดับตัวเลือก — เช่นเดียวกับ Jev คำตอบจากรอบเดียวอาจเปลี่ยนเมื่อสลับลำดับตัวเลือก ใช้ order_invariant: true (เปิดอัตโนมัติเมื่อมีมากกว่า 10 ตัวเลือก) แลกกับ latency ราว 2 เท่า
  • calibration ภาษาอังกฤษอ่อนกว่าไทย — ECE มัธยฐาน 0.15 เทียบกับไม่เกิน 0.05 เพราะชุดเทรนเน้นภาษาไทยโดยตั้งใจ

🗓 เวอร์ชัน​

เวอร์ชันวันที่สิ่งที่เปลี่ยนpublic macroWisesight
v0.322 ก.ย. 2569เทรนต่อจาก v0.2 อีก 5,000 SFT step ด้วยชุด train จริง 177k + ชุดสังเคราะห์เฉพาะจุดอ่อน 78k รายการ (QA อิงเอกสาร, ให้คะแนนบทสรุป, intent ละเอียด, safety, paraphrase) แล้ว calibrate ใหม่74.351.6
v0.221 ก.ย. 2569เทรนต่อจาก v0.1 อีก 3,000 SFT step ด้วยชุดความรู้สึกโซเชียลไทยสังเคราะห์ 22k รายการ แล้ว calibrate ใหม่ เพิ่ม order-invariant mode ใน client และ API63.251.5
v0.120 ก.ย. 2569เปิดตัวครั้งแรก: Thai CPT 4.47B โทเคน, SFT 12k step, calibration61.938.7

v0.3 ขยับ SQuAD2 50.2 → 89.3, PAWS 68.0 → 94.0, Aegis2 61.6 → 83.2, MASSIVE-de 67.4 → 88.3, BoolQ 64.7 → 79.7, MASSIVE-en 79.1 → 88.3, PubMedQA 56.4 → 64.0, SummEval-relevance 14.2 → 21.7, VitaminC 68.6 → 72.5, MultiNLI 87.3 → 89.0 และ ECE ดีขึ้นใน 11 จาก 13 ชุด ที่ถดถอยคือ SummEval-consistency 84.0 → 75.0 (ชุดสังเคราะห์ครอบคลุมเฉพาะระดับ 1/3/5 จะเพิ่มระดับ 2/4) ชุดไทยที่กันออกทั้งหมดเท่าเดิมหรือดีขึ้น (SIB-200 74.0 → 77.9, banking77 37.8 → 45.4) รายละเอียดเต็มอยู่ใน changelog ของ model card

🤝 ร่วมพัฒนา​

  • ชุดทดสอบภาษาไทยเพิ่ม — โดยเฉพาะงานที่มีตัวเลือกเยอะ ๆ และงาน UI/agent ส่งมาเป็น issue ใน GitHub ได้เลย
  • GGUF / ONNX / MLX — หัวโมเดลเป็น Linear ธรรมดา ใครถนัดช่วยแปลงได้
  • LoRA adapter เฉพาะ domain — ส่งมาแชร์กันตามแผน "1 base, N adapters"
  • พูดคุยกันได้ที่ Discord OpenThaiGPT และ กลุ่ม Facebook

📄 สัญญาอนุญาตและเครดิต​

Apache-2.0 พัฒนาโดย iApp Technology / OpenThaiGPT บน Qwen3.5-0.8B-Base (Apache-2.0) ได้แรงบันดาลใจจากโมเดล System One ของ TypeSafe AI (Jev) โดยเป็นการสร้างขึ้นใหม่แบบเปิดอย่างอิสระ ไม่มีส่วนเกี่ยวข้องกับ TypeSafe AI

🙏 ขอบคุณ Siam AI​

Siam AI Corporation

การเทรนต่อด้วยข้อความไทย การ SFT และการประเมินผลทั้งหมดรันบน GPU NVIDIA H100 ที่ได้รับการสนับสนุนจาก บริษัท สยาม เอไอ คอร์เปอเรชั่น จำกัด ขอขอบคุณเป็นอย่างยิ่งที่ร่วมสนับสนุน AI ไทยแบบเปิดมาอย่างต่อเนื่อง