Skip to main content

OpenThai 2.0

OpenThai 2.0 — AI โอเพนซอร์สด้านความรู้ เอกสาร และงานเอเจนต์ภาษาไทย

โมเดลเปิดหนึ่งเดียวที่อ่านเอกสารและลายมือไทยได้ รู้เรื่องเมืองไทย และทำงานเอเจนต์ได้ — สร้างโดยคนไทย เพื่อคนไทย

openthai2.0-qwen3.8-27b

AI ภาษาไทยแบบครบในตัวเดียว: อ่านเอกสารและลายมือภาษาไทยได้ในระดับโมเดลเฉพาะทาง ตอบคำถามความรู้ไทยเป็นภาษาไทยที่เป็นธรรมชาติและอธิบายเข้าใจง่าย นำทั้งโมเดลฐานและ Typhoon 2.5 ในการใช้เครื่องมือแบบเอเจนต์ (BFCL) — โดยยังคงความฉลาดทั่วไปของโมเดลฐานไว้ครบ

เปิดเผยน้ำหนักโมเดล 27 สิงหาคม 2569 · สัญญาอนุญาต Apache 2.0

พัฒนาโดย iApp Technology เปิดตัวร่วมกับสมาคมผู้ประกอบการปัญญาประดิษฐ์ประเทศไทย (AIEAT) การเทรนและการวัดผลใช้ GPU NVIDIA H100 จำนวน 8 ใบ ซึ่งได้รับการสนับสนุนจาก บริษัท สยาม เอไอ คอร์เปอเรชั่น จำกัด โมเดลฐาน: Qwen/Qwen3.8-27B (Apache 2.0)

API แบบโฮสต์ให้ฟรี — ใช้ฟรีถึง 30 กันยายน 2569 (ต้องมี iApp API key ฟรี)

ไม่อยากรัน GPU เอง? เราโฮสต์โมเดลให้ Endpoint เป็นแบบ OpenAI-compatible และใช้ฟรีถึง 30 กันยายน 2569 — เพียงมี iApp API key ฟรี: สมัครสมาชิกAPI KeysCreate New API Key จำกัดอัตรา 30 คำขอ/นาทีต่อคีย์ หลังหมดช่วงฟรียังใช้ต่อได้ที่อัตรา 0.01 / 0.02 IC ต่อ 1K โทเคนขาเข้า/ขาออก

Base URLhttps://api.iapp.co.th/v3/llm/openthai2p0
EndpointPOST /chat/completions (OpenAI-compatible)
โมเดลopenthai2.0 (เส้นทางนี้ให้บริการโมเดลนี้เสมอ)
ความยาวคอนเท็กซ์262,144 โทเคน (256K)
การยืนยันตัวตนiApp API key (เฮดเดอร์ apikey หรือ Authorization: Bearer)
อินพุตข้อความ หรือข้อความ + รูปภาพ (image_url — base64 data URI หรือ URL สาธารณะ สูงสุด 50 MB)
import base64
from openai import OpenAI

client = OpenAI(base_url="https://api.iapp.co.th/v3/llm/openthai2p0",
api_key="YOUR_IAPP_API_KEY")

# ข้อความ — ถามอะไรก็ได้เป็นภาษาไทย
r = client.chat.completions.create(
model="openthai2.0",
messages=[{"role": "user", "content": "อากรแสตมป์กับภาษีมูลค่าเพิ่มต่างกันอย่างไร"}],
)
print(r.choices[0].message.content)

# ภาพ — อ่านเอกสารภาษาไทย
img = base64.b64encode(open("thai_document.jpg", "rb").read()).decode()
r = client.chat.completions.create(
model="openthai2.0",
messages=[{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{img}"}},
{"type": "text", "text": "อ่านข้อความในเอกสารนี้ทั้งหมด"},
]}],
temperature=0.0,
extra_body={"chat_template_kwargs": {"enable_thinking": False}},
)
print(r.choices[0].message.content)
curl -s https://api.iapp.co.th/v3/llm/openthai2p0/chat/completions \
-H "Content-Type: application/json" -H "apikey: YOUR_IAPP_API_KEY" \
-d '{"model":"openthai2.0","messages":[{"role":"user","content":"สวัสดี"}]}'

อย่าตั้ง max_tokens — โมเดลคิดก่อนตอบ การจำกัดค่าต่ำจะทำให้คำตอบว่าง ปิดโหมดคิดเฉพาะคำขอถอดความรูปภาพตามตัวอย่างด้านบน ฝั่งเซิร์ฟเวอร์ตั้ง repetition_penalty 1.05 ที่แนะนำไว้ให้แล้ว

จุดเด่น

1. อ่านเอกสารและลายมือไทยได้ระดับโมเดลเฉพาะทาง

อัตราความผิดพลาดระดับตัวอักษร (CER) ของลายมือไทยลดจาก 0.649 ของโมเดลฐานเหลือ 0.261 — ความผิดพลาดลดลง 60% หนังสือและราชกิจจานุเบกษา: 0.126 เทียบกับ 0.370 ของโมเดลฐาน (ลดลง 66%) เอกสารสิ่งพิมพ์: 0.077 เทียบกับ 0.103

2. รู้เรื่องเมืองไทย

0.842 บน OpenThaiEval (ข้อสอบระดับชาติของไทย) — สูงกว่าโมเดลฐาน (0.820), Typhoon 2.5 (0.742) และ Pathumma (0.660) การทำตามคำสั่งภาษาไทย (IFEval-TH): 0.795 นำโมเดลฐาน (0.772) และ Typhoon (0.749) เช่นกัน

3. ทำงานเอเจนต์ได้จริง

0.820 บน Berkeley Function-Calling Leaderboard — นำทั้งโมเดลฐาน (0.811) และ Typhoon 2.5 (0.792) โดยทิ้งห่างมากที่สุดในงานเอเจนต์แบบหลายรอบสนทนา (0.775 เทียบกับ 0.550 ของ Typhoon) การเขียนโค้ด (HumanEval): 0.957

4. โมเดลเดียว ไม่ใช่ไปป์ไลน์

เป็นโมเดลเปิดภาษาไทยเพียงตัวเดียวในตารางเหล่านี้ ที่ทั้งอ่านเอกสารได้ระดับโมเดลเฉพาะทาง และ ตอบคำถามเกี่ยวกับเอกสารนั้นได้ในโมเดลเดียวกัน — ไม่ต้องมีขั้น OCR แยก ไม่ต้องส่งต่อระหว่างระบบ ภาพและความรู้อยู่ในน้ำหนักชุดเดียว

5. รันได้ทุกที่ ถอดรหัสได้เร็ว

มีให้เลือก 5 ฟอร์แมต — bf16, GGUF, MLX 4-bit, INT8, NVFP4 — ตั้งแต่ MacBook จนถึงเซิร์ฟเวอร์ NVIDIA Blackwell พร้อมหัวถอดรหัสแบบ multi-token prediction ในตัว เพิ่มความเร็วการถอดรหัส 50% (75.2 เทียบกับ 50.1 โทเคน/วินาที วัดจริงบน H100) โดยผลลัพธ์เหมือนเดิมทุกโทเคน

ผลการวัดประสิทธิภาพ

ตารางสรุปผล: ความรู้ภาษาไทยและการอ่านเอกสารไทย OpenThai 2.0 เทียบกับโมเดลฐาน Qwen3.8-27B

โมเดลทั้งสี่ตัววัดโดยทีมงานเราบนชุดทดสอบเดียวกัน ภายใต้เงื่อนไขการให้บริการเหมือนกัน โดยแต่ละโมเดลใช้พรอมต์และพารามิเตอร์ที่ผู้พัฒนาแนะนำเอง จึงทำซ้ำการทดลองได้ด้วยเช็กพอยต์ที่ลิงก์ไว้

ความรู้และภาษาไทย (ยิ่งสูงยิ่งดี)

ชุดทดสอบOpenThai 2.0 (27B)Qwen3.8-27B (ฐาน)Typhoon 2.5 (30B-A3B)Pathumma think 3.0 (8B)
OpenThaiEval (ข้อสอบระดับชาติ)0.8420.8200.7420.660
Code-switching (ไทย↔อังกฤษ)¹0.9850.8950.9400.990
HumanEval (เขียนโค้ด)0.9570.9390.9570.805
MMLU-Redux (5.7k, ความรู้รอบตัว)0.9160.9240.8840.762
IFEval-TH (ทำตามคำสั่งภาษาไทย)0.7950.7720.7490.498
IFEval (ทำตามคำสั่งภาษาอังกฤษ)0.9140.9020.8460.630

¹ 0.985 กับ 0.990 ต่างกันเพียงหนึ่งตัวอย่างจาก n=200 — ถือว่าเสมอกันทางสถิติ

การอ่านเอกสารและลายมือไทย (อัตราความผิดพลาดระดับตัวอักษร — ยิ่งต่ำยิ่งดี)

ชุดทดสอบOpenThai 2.0 (27B)Qwen3.8-27B (ฐาน)Typhoon-OCR 1.5 (2B)Pathumma-vision 2.0 (7B)
Wikisource TH — หนังสือและราชกิจจานุเบกษา (n=608)0.1260.3700.2710.931
DocBench — เอกสารราชการ (n=906)0.3270.5300.5510.691
SEA-DocBench-TH (n=1,499)0.4970.5590.5750.832
ThaiOCRBench (n=2,808)0.7430.7500.7930.894
MTVQA-TH — ตัวอักษรในภาพถ่าย (n=231)0.8190.7371.0000.905
ลายมือไทย — text-disjoint (n=916)0.2610.6490.0540.821
OCR-Eval-104 — สิ่งพิมพ์ (n=104)0.0770.1030.0140.352

อ่านผลอย่างตรงไปตรงมา: Typhoon-OCR 1.5 เป็นโมเดลถอดความเฉพาะทางที่ยอดเยี่ยม — บนบรรทัดสิ่งพิมพ์สะอาดและลายมือแยกส่วน มันชนะทุกโมเดลในตารางนี้รวมถึงโมเดลของเรา แต่มันก็ทำได้เพียงถอดความ: รับพรอมต์ OCR แบบตายตัวเพียงรูปแบบเดียว คำถามถาม-ตอบจากเอกสารและตัวอักษรในภาพถ่ายจึงผิดเกือบทั้งหมด และไม่มีความสามารถด้านความรู้หรือผู้ช่วย OpenThai 2.0 นำในการอ่านหนังสือและราชกิจจานุเบกษา ความรู้ไทย และการทำตามคำสั่ง ส่วนตัวอักษรในภาพถ่ายเป็นด้านที่อ่อนที่สุด — ภาพป้ายหรือหน้าร้าน แนะนำใช้โมเดลฐานหรือโมเดลเฉพาะทาง scene text

การใช้เครื่องมือแบบเอเจนต์ — BFCL (ยิ่งสูงยิ่งดี)

วัดด้วยชุดทดสอบทางการของ Berkeley Function-Calling Leaderboard (bfcl-eval 2026.3.23): 3,841 เคสใน 14 หมวด ใช้โปรโตคอล function calling แบบ OpenAI เหมือนกันทุกโมเดล

BFCL การใช้เครื่องมือแบบเอเจนต์: OpenThai 2.0 เทียบกับโมเดลฐาน Qwen3.8-27B และ Typhoon 2.5

ชุดทดสอบOpenThai 2.0 (27B)Qwen3.8-27B (ฐาน)Typhoon 2.5 (30B-A3B)
BFCL รวมถ่วงน้ำหนัก (n=3,841)0.8200.8110.792
งานเอเจนต์หลายรอบสนทนา (n=200)0.7750.7500.550
การตรวจจับคำถามที่ไม่ต้องใช้เครื่องมือ (n=1,124)0.7790.7630.726

การจูนด้านเอกสารไทยไม่ได้ทำให้ความสามารถใช้เครื่องมือถดถอย: OpenThai 2.0 นำทุกแถวสรุป โดยนำ Typhoon 2.5 ถึง 22.5 จุดในงานเอเจนต์แบบหลายรอบสนทนา

วิธีให้คะแนน

งานถอดความรายงาน CER ดิบเทียบกับข้อมูลจริงที่มนุษย์ตรวจสอบแล้ว ปิดโหมดคิด อุณหภูมิ 0 · งานความรู้วัดผ่าน EvalScope ที่อุณหภูมิ 0 · BFCL ใช้ harness ทางการ ชุดทดสอบถูกกันออกจากข้อมูลเทรนด้วยตัวตรวจการรั่วไหลแบบ n-gram และชุดลายมือเป็นแบบ text-disjoint: ไม่มีข้อความถอดความใดในข้อมูลเทรนปรากฏในชุดทดสอบ ผลละเอียดรายหมวดอยู่ในรีโพซิทอรีบน Hugging Face

เลือกฟอร์แมตที่เหมาะกับคุณ

ฟอร์แมตรีโพซิทอรีรันบน
bf16openthai2.0-qwen3.8-27bvLLM / transformers · GPU 80 GB 1 ใบ
GGUF Q4_K_M / Q8_0 + vision mmprojopenthai2.0-qwen3.8-27b-GGUFllama.cpp · CPU หรือ GPU ทั่วไป (17 / 29 GB)
Ollamaollama.com/openthai/openthai2.0-qwen3.8-27bollama run openthai/openthai2.0-qwen3.8-27b — คำสั่งเดียว ใช้บนแล็ปท็อปได้
MLX 4-bitopenthai2.0-qwen3.8-27b-MLX-4bitApple silicon หน่วยความจำรวม 24 GB ขึ้นไป (~16 GB)
INT8 W8A8openthai2.0-qwen3.8-27b-INT8-W8A8vLLM · GPU ระดับ ~40 GB
NVFP4openthai2.0-qwen3.8-27b-NVFP4vLLM · NVIDIA Blackwell

รีโพซิทอรียังมี LoRA adapter แยกให้ (7 GB, rank 64) สำหรับให้บริการบน Qwen/Qwen3.8-27B ด้วย dynamic LoRA

รันในเครื่องของคุณเอง

วิธีเริ่มในเครื่องที่เร็วที่สุดคือ Ollama:

ollama run openthai/openthai2.0-qwen3.8-27b

สำหรับให้บริการระดับโปรดักชัน ใช้ vLLM — GPU 80 GB หนึ่งใบ (~56 GB ที่ bf16):

vllm serve iapp/openthai2.0-qwen3.8-27b \
--max-model-len 32768 --gpu-memory-utilization 0.85 \
--max-num-seqs 128 --reasoning-parser qwen3 --trust-remote-code

โมเดลเปิด API แบบ OpenAI-compatible:

import base64
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="none")
img = base64.b64encode(open("thai_document.jpg", "rb").read()).decode()

r = client.chat.completions.create(
model="iapp/openthai2.0-qwen3.8-27b",
messages=[{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{img}"}},
{"type": "text", "text": "อ่านข้อความในเอกสารนี้ทั้งหมด"},
]}],
temperature=0.0,
extra_body={"repetition_penalty": 1.05,
"chat_template_kwargs": {"enable_thinking": False}},
)
print(r.choices[0].message.content)

ถามเป็นภาษาไทยธรรมดาแล้วโมเดลจะอธิบายให้ ถ้าต้องการคำตอบสั้นหรือมีโครงสร้าง เติม "ตอบสั้น ๆ" หรือ "ตอบเป็น JSON เท่านั้น"

ถอดรหัสเร็วขึ้นด้วยหัว draft ในตัว

เช็กพอยต์มาพร้อมหัวถอดรหัสแบบ multi-token prediction ให้ vLLM รัน self-speculative decoding ได้ ผลลัพธ์ถูกตรวจสอบทีละโทเคนโดยโมเดลหลัก จึงเหมือนเดิมทุกประการไม่ว่าจะเปิดหรือปิด — วัดจริงได้ 75.2 โทเคน/วินาที เทียบกับ 50.1 เมื่อไม่ใช้ (+50%, single stream, H100):

vllm serve iapp/openthai2.0-qwen3.8-27b \
--max-model-len 32768 --max-num-seqs 128 --reasoning-parser qwen3 \
--speculative-config '{"method":"qwen3_5_mtp","num_speculative_tokens":2}' \
--trust-remote-code

ข้อควรรู้ก่อนให้บริการ

  • --max-num-seqs 128 เป็นข้อบังคับ: สถาปัตยกรรมไฮบริดจะจองบล็อกแคชสถานะหนึ่งบล็อกต่อหนึ่งลำดับถอดรหัส ค่าเริ่มต้นของ vLLM (1,024) จะทำให้เอนจินสตาร์ตไม่สำเร็จ
  • เปิดโหมดคิดไว้เสมอสำหรับคำขอที่เป็นข้อความล้วน (ให้บริการด้วย --reasoning-parser qwen3) วัดจริง: เปิดโหมดคิดโดยไม่จำกัด max_tokens ได้คำตอบใช้งานได้ 94% โดยไม่มีข้อความการคิดรั่วเลย ส่วนการบังคับปิดโหมดคิดกับข้อความล้วนทำให้เหลือ 42%
  • enable_thinking: false ใช้กับคำขอ OCR/ถอดความที่แนบรูปเท่านั้น — เพื่อกันข้อความการคิดปนในผลถอดความ (วัดแล้วรั่ว 0% จาก 84 คำขอแนบรูป)
  • อย่าตั้ง max_tokens หรือถ้าตั้งให้ไม่ต่ำกว่า 8,192 โมเดลคิดก่อนตอบ ถ้าจำกัดที่ 1,024 คำตอบจะกลับมาว่างราวหนึ่งในสาม ไม่จำกัดจะเหลือราว 6%
  • ส่ง repetition_penalty: 1.05 สำหรับการเขียนภาษาไทยยาว ๆ และตัดบรรทัดว่างนำหน้าที่บางคำตอบมีออก

เทรนอย่างไร

LoRA fine-tuning สามขั้น (rank 64, all-linear) บนข้อมูลที่ผ่านการตรวจสอบราว 143,000 แถว:

  1. Scale SFT สอนการอ่าน: การถอดความที่ตรวจสอบแล้วและถาม-ตอบเชิงอธิบาย บนลายมือไทย หนังสือ ราชกิจจานุเบกษา และเอกสารราชการ (92,893 แถว)
  2. ชั้นความรู้ สอนการคิดแบบไทย: chain-of-thought แบบปรนัยที่อ้างอิงจากคลังกฎหมายและเอกสารราชการไทย ตรวจการรั่วไหลเทียบกับคำถามในชุดวัดผลแล้ว
  3. ชั้นการทำตามคำสั่ง สอนการควบคุม: เก็บเฉพาะแถวคำสั่งที่คำตอบผ่านการตรวจเงื่อนไขด้วยโปรแกรม (จำนวนหัวข้อ คำที่ต้องมี JSON เท่านั้น ความยาว)

ทุกขั้นใช้ไปป์ไลน์ตรวจสอบทุกอย่าง: เทียบคำตอบกับข้อมูลจริงที่มนุษย์ยืนยัน คัดรูปที่โมเดลอ่านไม่ออกออกจากข้อมูลเทรนเชิงอธิบาย กรองภาษาไทยผิดรูปและข้อความหลุดจากระบบทุกแถว และมีตัวกันการรั่วไหลของชุดทดสอบทั้งคลังข้อมูล

รายละเอียดโมเดล

โมเดลฐานQwen/Qwen3.8-27B (dense vision-language, hybrid Mamba-attention)
พารามิเตอร์27B
ความยาวคอนเท็กซ์262,144 โทเคน ตรวจสอบการให้บริการแล้วที่ 32k
โมดัลลิตีรูปภาพ + ข้อความ → ข้อความ
ภาษาไทย (หลัก), อังกฤษ
ความละเอียดbfloat16 safetensors (~52 GB) + LoRA adapter (7 GB)
หัว draftมีในตัว (1 ชั้น) — self-speculative decoding ผ่าน qwen3_5_mtp
การให้บริการvLLM ≥ 0.19 (ตรวจสอบแล้ว), OpenAI-compatible
สัญญาอนุญาตApache 2.0

ข้อจำกัด (โปรดอ่าน)

  • การสกัดข้อมูลแบบมีโครงสร้างเทียบเท่าโมเดลฐาน ไม่ได้ดีกว่า บน ThaiOCRBench แบบ judged ได้ 0.568 เทียบกับ 0.570 ของโมเดลฐาน (เสมอกันทางสถิติ) ช่องว่างเทียบกับโมเดลเฉพาะทางอยู่ที่การอ่านตารางและการสกัดข้อมูลสำคัญ งานฟอร์มและตารางหนัก ๆ ควรวัดผลกับเอกสารของคุณเองก่อน
  • ตัวอักษรในภาพถ่ายเป็นด้านการอ่านที่อ่อนที่สุด — ภาพป้ายหรือหน้าร้าน แนะนำโมเดลฐานหรือโมเดลเฉพาะทาง scene text
  • การตอบสั้นตามคำขอทำได้ราว 40% โมเดลตอบเชิงอธิบายโดยปริยาย งานที่ต้องให้เครื่องอ่านผลลัพธ์ควรสั่งรูปแบบชัดเจน ("ตอบเป็น JSON เท่านั้น")
  • ยังไม่ได้วัดผลกับภาษาถิ่น ข้อความแนวตั้งหรือเอียง และคำแนะนำทางการแพทย์หรือกฎหมาย ลายมือยังเป็นงานยากจริง: CER 0.261 หมายถึงตัวอักษรราวหนึ่งในสี่ยังผิดบนตัวอย่างยาก และโมเดลยังอาจสร้างข้อความขึ้นเองเมื่ออ่านต้นฉบับไม่ออก
ใช้คู่กับ RAG สำหรับงานข้อเท็จจริงและงานที่มีกฎกำกับ

โมเดลนี้เก่งที่สุดในการอ่าน อธิบาย และตอบจากเอกสารที่คุณให้ งานภาษี กฎหมาย การแพทย์ หรืองานที่ต้องปฏิบัติตามกฎเกณฑ์ ควรใช้ร่วมกับการค้นคืนจากแหล่งข้อมูลทางการและการตรวจทานโดยมนุษย์ สำหรับงานกฎหมายโดยเฉพาะ ใช้โมเดลเฉพาะทางของเรา OpenThai 2.0 Legal

ผู้สนับสนุน

Siam AI Corporation

การเทรนและการวัดผลโมเดลนี้ใช้ GPU NVIDIA H100 จำนวน 8 ใบ ซึ่งได้รับการสนับสนุนจากบริษัท สยาม เอไอ คอร์เปอเรชั่น จำกัด — ขอขอบคุณเป็นอย่างยิ่งที่สนับสนุน AI ไทยแบบเปิด

การอ้างอิง

@misc{openthai2_2026,
title = {OpenThai 2.0: An Open Thai Knowledge and Document AI},
author = {iApp Technology and Artificial Intelligence Entrepreneur Association of Thailand},
year = {2026},
url = {https://openthai.aieat.or.th}
}