โอเพนเวท
OpenThai 2.0
โมเดลเปิดตัวเดียวที่อ่านเอกสารและลายมือไทย รู้เรื่องเมืองไทย และเรียกใช้ tool ได้
- พารามิเตอร์27พันล้าน
- สัญญาอนุญาตApache 2.0
- OpenThaiEval0.842
- Context256Ktokens
ดาวน์โหลดโมเดลเรียกใช้ API ที่โฮสต์ให้
เปิดน้ำหนักโมเดลเมื่อ 27 สิงหาคม 2569 ส่วน API ที่โฮสต์ให้คิด 0.01 / 0.02 IC ต่อ 1K tokens ของ Input / Output
ทำอะไรได้บ้าง
- อ่านเอกสารไทยลายมือมีอัตราอ่านผิดระดับตัวอักษร (CER) 0.261 เทียบกับ 0.649 ของโมเดลฐาน หนังสือและร าชกิจจานุเบกษา 0.126
- ตอบคำถามจากเอกสารอ่านเอกสารและตอบคำถามจากเอกสารนั้นได้ในโมเดลเดียว ไม่ต้องมีขั้น OCR แยก
- เรียกใช้ tool0.820 บน Berkeley Function-Calling Leaderboard นำทั้งโมเดลฐานและ Typhoon 2.5
- สร้างข้อความเร็วขึ้นหัว draft ในตัวให้ 75.2 เทียบกับ 50.1 tokens/s บน H100 หนึ่งสตรีม ผลลัพธ์เหมือนเดิมทุก token
ผลการทดสอบ
ทุกโมเดลวัดโดย iApp บนชุดทดสอบและการตั้งค่าให้บริการเดียวกัน แต่ละโมเดลใช้ prompt และพารามิเตอร์ที่ผู้พัฒนาแนะนำ ชุดทดสอบถูกกันออกจากข้อมูลเทรนด้วยการตรวจการรั่วไหลแบบ n-gram และชุดลายมือไม่มีข้อความซ้ำกับข้อมูลเทรน ผลแยกรายหมวดอยู่ในรีโพซิทอรีบน Hugging Face
- ความรู้ภาษาไทย
- การอ่านเอกสาร
- การเรียกใช้ tool

Typhoon 2.5 (30B-A3B) วัดด้วยวิธีเดียวกัน ได้ 0.742 บน OpenThaiEval และ 0.749 บน IFEval-TH ส่ วน OpenThai 2.0 ได้ 0.842 และ 0.795


วิธีรัน
- API ที่โฮสต์ให้
- curl
- Ollama
- vLLM
เรียกใช้ด้วย iApp API key: สมัครสมาชิก แล้วเลือก API Keys และ Create New API Key คิด 0.01 / 0.02 IC ต่อ 1K tokens ของ Input / Output จำกัด 30 requests ต่อนาทีต่อ key เอกสารฉบับเต็ม: OpenThai 2.0 API
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":"สวัสดี"}]}'
คำสั่งเดียว รันบนแล็ปท็อปได้ ผ่าน Ollama
ollama run openthai/openthai2.0-qwen3.8-27b
ใช้ GPU 80 GB หนึ่งใบ (ราว 56 GB ที่ bf16) บน vLLM 0.19 ขึ้นไป ต้องใส่ --max-num-seqs 128 เพราะค่าเริ่มต้น 1,024 ของ vLLM ทำให้เอนจินสตาร์ตไม่ขึ้น
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
เซิร์ฟเวอร์เป็นแบบ OpenAI-compatible ที่ http://localhost:8000/v1 ใช้โมเดล iapp/openthai2.0-qwen3.8-27b เพิ่ม --speculative-config '{"method":"qwen3_5_mtp","num_speculative_tokens":2}' เพื่อใช้หัว draft
ฟอร์แมตอื่นบน Hugging Face
| ฟอร์แมต | ใช้กับ |
|---|---|
| GGUF Q4_K_M / Q8_0 | llama.cpp บน CPU หรือ GPU ทั่วไป 17 / 29 GB พร้อม vision mmproj |
| MLX 4-bit | Apple silicon ที่มีหน่วยความจำรวม 24 GB ขึ้นไป |
| INT8 W8A8 | vLLM บน GPU ระดับ ~40 GB |
| NVFP4 | vLLM บน NVIDIA Blackwell |
ค่าที่ต้องตั้งให้ถูก
| ค่า | เหตุผล |
|---|---|
ไม่ตั้ง max_tokens หรือตั้ง 8,192 ขึ้นไป | โมเดลคิดก่อนตอบ ถ้าจำกัดที่ 1,024 คำตอบราวหนึ่งในสามจะกลับมาว่าง |
enable_thinking: false เฉพาะงานอ่านรูป | งานข้อความให้เปิดโหมดคิดไว้ ถ้าบังคับปิด คำตอบที่ใช้ได้ ลดจาก 94% เหลือ 42% |
repetition_penalty: 1.05 | สำหรับคำตอบภาษาไทยยาว ๆ API ที่โฮสต์ให้ตั้งค่านี้ไว้แล้ว |
ข้อจำกัด
- การสกัดข้อมูลแบบมีโครงสร้างได้เท่าโมเดลฐาน: 0.568 เทียบกับ 0.570 บน ThaiOCRBench แบบ judged และยังตามโมเดลเฉพาะทางในการอ่านตารางและข้อมูลสำคัญในฟอร์ม งานฟอร์มควรทดสอบกับเอกสารของคุณเองก่อน
- ตัวอักษรในภาพถ่ายเป็นด้านที่อ่านได้อ่อนที่สุด: CER 0.819 เทียบกับ 0.737 ของโมเดลฐาน
- โมเดลที่ทำได้แค่ถอดข้อความอ่านสิ่งพิมพ์สะอาดและลายมือแยกบรรทัดได้ดีกว่า: Typhoon-OCR 1.5 ได้ 0.014 และ 0.054 แต่รับได้เพียง prompt OCR แบบตายตัวและตอบคำถามไม่ได้
- โดยปกติตอบแบบอธิบาย เมื่อขอให้ตอบสั้นทำตามได้ราว 40% ถ้าผลลัพธ์ต้องให้โปรแกรมอ่าน ให้ระบุรูปแบบชัดเจน เช่น "ตอบเป็น JSON เท่านั้น"
- ลายมือที่อ่านยากยังผิดราวหนึ่งในสี่ตัวอักษร และต้นฉบับที่อ่านไม่ออกอาจได้ข้อความที่โมเดลแต่งขึ้นเอง ยังไม่ได้ทดสอบกับภาษาถิ่น หรือข้อความแนวตั้งหรือเอียง
งานภาษี กฎหมาย หรือการแพทย์ ควรใช้ร่วมกับการค้นข้อมูลจากแหล่งทางการและให้คนตรวจทาน งานกฎหมายใช้ OpenThai 2.0 Legal
สัญญาอนุญาต
Apache 2.0 จูนจาก Qwen/Qwen3.8-27B ด้วย LoRA (rank 64) บนข้อมูลที่ตรวจสอบแล้วราว 143,000 แถว รีโพซิทอรีมี adapter แยก (7 GB) สำหรับให้บริการบนโมเดลฐาน
พัฒนาโดย iApp Technology ร่วมกับสมาคมผู้ประกอบการปัญญาประดิษฐ์ประเทศไทย เทรนและวัดผลบน NVIDIA H100 จำนวน 8 ใบ ที่ได้รับการสนับสนุนจากบริษัท สยาม เอไอ คอร์เปอเรชั่น จำกัด
การอ้างอิง
@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}
}