跳到主要内容

🎯 泰语版 Jev 来了!OpenThai-SystemOne

发布于 2026 年 9 月 20 日

泰语版 Jev 来了:OpenThai 团队的开源模型 OpenThai-SystemOne

0.8B 参数公开基准 61.9免费 Apache-2.0泰语 + 英语

输入文本 + 问题 → 一次计算即得带置信度的答案。

TypeSafe 发布 Jev(一种不生成文本、而是一次计算即以概率给出决策的 "System One model")五天之后,OpenThai 团队推出了面向泰语 + 英语的开源版本,命名为 OpenThai-SystemOne

  • 0.8B 参数,可在笔记本上运行
  • 基座 Qwen3.5-0.8B,用约 50 亿泰语 token 继续预训练,并把 248k 词表的 LM 头替换为"256 槽位决策头"
  • 输入状态(文本/JSON)+ 单选 / 打分 / 是否问题 → 一次前向计算返回所有问题的答案及置信度
  • 在与 Bespoke-Nimble-9B 相同的 13 子集公开基准上:我们 61.9 / Nimble-9B 74.8 / Jev 76.0 / 原始 Qwen3.5-0.8B 45.4(13 个子集中 4 个领先 9B)。泰语任务:意图 86.4%、新闻主题 97.7%、XNLI-th 76.5%
  • 用途:文本分类(Text Classification)、情感分析(Sentiment Analysis)、为 AI 选择动作(Agentic Computer Use)
  • Apache-2.0 全部开放:权重、训练脚本、配置与合成数据

API 格式与 TypeSafe AI 的 POST /v1/systemone(Jev)一致,现有代码可直接指向本模型。

在浏览器中试玩

在浏览器中试玩 OpenThai-SystemOne + API 文档iapp.co.th/docs/llm/openthai-systemone

下载与安装

OpenThai-SystemOne — 权重与含基准表的模型卡huggingface.co/iapp/OpenThai-SystemOne

代码、配置与全部训练脚本 — GitHubgithub.com/iapp-technology/openthai-systemone

pip install "git+https://github.com/iapp-technology/openthai-systemone"

试一试

模型的真实输出:一条客服工单,两个问题,一次前向计算全部作答(输入 91 token,输出 0 token)。

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

iApp AI Marketplace 上的端点 https://api.iapp.co.th/v3/store/openthai/systemone 使用免费的 iApp API key 即可调用。详情与在线试玩见 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 服务方式运行,接口与 POST /v1/systemone 相同:

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

或直接用 transformers 加载(远程代码随模型仓库提供):

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

三种问题类型

类型你提供你得到
choice指令 + 最多 255 个选项(名称 → 描述或 null)choice、每个选项的 probabilitiesconfidence
score指令 + 2–10 个有序等级描述score(按概率加权,可为小数)、probabilitiesconfidence
noul一个是/否问题noul = p(是)

一次请求中的所有问题在同一次前向计算中一起作答。confidence 为 1 − 归一化熵,abstain 为"没有任何选项合适"的概率。

📊 数据

所有数字均为零样本:模型只看到状态、指令以及选项名称与描述,且均为经过校准的 v0.1 发布版本的结果。

Bespoke Labs 的 13 子集公开基准(与对比 Jev 时相同的数据源、切分、指令和采样器),宏平均:

模型规模平均分
OpenThai-SystemOne0.8B61.9
Bespoke-Nimble-9B9B74.8
Jev(TypeSafe AI,闭源)76.0
原始 Qwen3.5-0.8B0.8B45.4

如实解读:0.8B 模型在 13 个子集中的 4 个领先 9B 模型(MultiNLI 85.6、SummEval-consistency 84.0、HelpSteer2 42.8、Civil Comments 78.0),而在阅读理解型的是/否任务(squad2 接近随机、boolq、pubmedqa)以及摘要相关性打分上明显落后,后者是 score 头校准最差的唯一子集(ECE 0.79)。Nimble-9B 与 Jev 的数字来自 Bespoke Labs 的公开结果(2026 年 9 月 18 日);我们的数字用 scripts/06_eval.pyscripts/06b_public_benchmarks.py 重建的相同子集上测得。逐数据集的表格(含 ECE)见模型卡

泰语留出测试集(完整评测集;标 * 的数据集整体留出;ECE 越低,confidence 越可信):

测试集任务准确率ECE
Prachathai67k新闻主题(choice)97.70.005
Prachathai67k逐主题是/否(noul)94.10.008
MASSIVE-th60 类意图(choice)86.40.048
XNLI-th自然语言推理(choice)76.50.028
XNLI-th蕴含是/否(noul)84.30.042
SIB-200 Thai*7 类主题(choice)77.50.074
泰语对比句对(单一事实翻转)choice / noul / score78.7 / 82.3 / 73.20.105 / 0.088 / 0.133
Wongnai评论星级 1–5(score)63.3 完全匹配(MAE 0.44)0.010
xLAM 工具选择(英语)工具选择(choice)99.40.007
Wisesight*4 类社交媒体情感(choice)38.7(已知弱项,v0.2 修复)0.341
banking77*(英语)77 类意图(choice)32.7(弱项)0.165

校准在模型本已胜任的任务上有效(泰语主题与 NLI、Wongnai 打分、MultiNLI:ECE 不超过 0.05),但无法挽救准确率本身很低的任务,因为温度无法修正错误的排序。在英语公开基准上 ECE 中位数为 0.15,因此在泰语任务及 NLI/主题任务上可以信任 confidence,而低置信度的英语是/否决策应转给更大的模型。

延迟 — 3 个问题的请求在 H100 上约 40 毫秒,在 MacBook M3 Max(Apple GPU,MPS)上 154 毫秒。255 个选项的问题在 H100 上 44 毫秒,在 MacBook 上 1.5 秒。纯 CPU 仍较慢(约 4.6 秒),请使用 GPU 或 MPS。

⚙️ 工作原理

架构:状态与问题 → Qwen3.5-0.8B 文本塔 → 每个 ts_answer 位置的隐状态 → 256 槽位决策头 → 掩码 softmax → choice / score / noul

  • 骨干Qwen3.5-0.8B-Base 的文本塔(24 层,Gated-DeltaNet 与注意力混合,262k 上下文),去掉视觉编码器,再用约 50 亿泰语 token 继续预训练(网页、维基百科、泰英平行语料,以及无障碍树、JSON 等机器状态文本)。
  • 决策头 — 248k 词表的 LM 头被替换为 256 路槽位头。每个选项由控制 token <|ts_opt_0|> … <|ts_opt_254|> 引入;每个问题 <|ts_answer|> 位置的隐状态被投影为 256 个 logit,超出选项数的槽位被掩码,softmax 给出分布。槽位 255 为 abstain(没有选项合适)。
  • 读取答案choice = argmax,score = 在有序等级上的 Σ pᵢ·i,noul = p(是)。
  • 无位置偏差 — 训练时打乱选项顺序并混入 abstain 样本,因此这是架构层面的设计,而不是读取 A/B/C 字母 logprob 的技巧。

🔬 训练流程

每个阶段都在 GitHub 仓库中,一个阶段一个脚本,单张 H100 即可复现。

  1. scripts/00_prepare_base.py — 去掉 Qwen3.5-0.8B 的视觉编码器,保留文本塔(752M 参数)。
  2. scripts/01_cpt_data.py + scripts/02_cpt_train.py — 以泰语为主的继续预训练(过滤后的 FineWeb-2 泰语、泰语维基百科、泰语指令与摘要文本、OPUS 泰英平行语料、FineWeb-Edu 回放、合成无障碍树与 JSON)。单张 H100 约 40 小时,留出集困惑度 31.4 → 5.38。
  3. scripts/03_decision_data.py — 从 21 个公开数据集转换出 181 万条决策记录(泰语: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 — 用 Qwen3.6-35B-A3B 生成约 10 万条合成泰/英决策任务,逐条盲标复核并过滤答案泄漏(数据集 iapp/openthai2.0-systemone-synth)。
  5. scripts/04_decision_train.py — 换头 + 12k 步 SFT,随后进行校准阶段(Brier 损失 + 按问题类型的温度),使更高的 confidence 确实对应更高的准确率。
  6. scripts/06b_public_benchmarks.py — 重建 Bespoke Nimble 的 13 子集公开基准,以便同口径比较。

👨‍👩‍👧 OpenThai 2.0 家族

模型用途规模状态
OpenThai 2.0泰语对话/推理 LLM,支持图像27B已发布
OpenThai 2.0 Legal面向 RAG 的泰国法律模型30B-A3B已发布
OpenThai-SystemOne泰英决策模型(不生成文本)0.8B已发布
OpenThai-SystemOne CPT其底层的泰语继续预训练基座(研究用途)0.8B暂未公开

⚠️ 局限

  • 版本 0.1 — 0.8B 模型不是推理模型,不会做多步验证或算术。
  • 只能在给定选项中作答,但仍可能出错 — 它无法输出不存在的选项,但可能选错。请使用 confidence 字段,把低置信度的案例转给更大的模型或人工。
  • 仅支持文本 — 不接受图像。每个问题最多 255 个选项(更多请分组),每次请求最多 64k token。
  • 纯 CPU 仍较慢 — 请使用 GPU 或 Apple MPS。
  • v0.1 已知弱项 — 泰语社交媒体情感(Wisesight 38.7)、细粒度 77 类英语意图(banking77 32.7)、抽取式问答型是/否(squad2 接近随机)以及摘要相关性打分。v0.2 将加入合成泰语情感数据集和第二轮 SFT;预计第一项会改善,其余不会。
  • 英语校准弱于泰语 — ECE 中位数 0.15,泰语不超过 0.05,因为训练数据有意以泰语为主。

🤝 一起完善它

  • 更多泰语测试集 — 尤其是选项很多的任务和 UI/智能体任务。欢迎在 GitHub 提 issue。
  • GGUF / ONNX / MLX — 决策头只是普通的 Linear 层,熟悉工具链的朋友可以帮忙转换。
  • 领域 LoRA 适配器 — 欢迎分享,计划是"一个基座,N 个适配器"。
  • 欢迎到 OpenThaiGPT DiscordFacebook 群组交流。

📄 许可与致谢

Apache-2.0。由 iApp Technology / OpenThaiGPT 基于 Qwen3.5-0.8B-Base(Apache-2.0)构建。灵感来自 TypeSafe AI 的 System One 模型(Jev);本模型是独立的开放复现,与 TypeSafe AI 无关。

🙏 感谢 Siam AI

Siam AI Corporation

泰语继续预训练、SFT 与全部评测均在 Siam AI Corporation 慷慨提供的 NVIDIA H100 GPU 上完成。感谢其对开放泰语 AI 的持续支持。