Mapika/decider

A family of System One-style models fine-tuned from Qwen3.5, designed for one-pass typed decisions with calibrated probabilities.

decider – 单次传递的类型化决策,带有校准概率

它是什么 – decider 是一系列语言模型检查点,不生成自由形式的文本。相反,它们接受一个状态(纯文本或 JSON)和一个类型化问题列表,并在单次前向传播中为每个问题输出概率分布。支持的问题类型有:

  • 选择 – 从 2-255 个候选项中选择一个。
  • 评分 – 为一个小的有序等级集(2-10)分配概率。
  • 是否 – 给出答案为“是”的概率。

由于模型永远不需要解码超出固定标签 token 集的 token,推理速度快,且概率是校准的(在一个小的基于 RL 的微调阶段后,模型的置信度与观察到的准确率匹配)。


主要能力

功能 重要性
单次传递推理 所有问题一起回答;无需迭代提示或思维链。
类型化输出 保证答案始终是预定义选项之一 – 无需后处理。
校准感知 RL (v10) 改善置信度分数与真实正确性之间的匹配,特别是在决策任务上。
多种模型大小 0.8 B、2 B、4 B(密集)和 35 B 混合专家,加上 2 B 视觉语言变体。
硬件灵活性 可在 CUDA(bf16,可选 FP8)、Apple Silicon(通过 MPS/MLX)和 CPU(eager 模式)上运行。
HTTP 服务器 简单的 POST /v1/systemone(TypeSafe 线格式)或 POST /decide 端点;对重复的 schema 进行 schema 缓存以加速重复调用。
开源训练流程 下载约 95 个公共决策数据集、建立混合数据集并微调 Qwen 基础模型的脚本。

典型使用案例

  • 客户服务路由 – 输入工单和政策文本,询问“哪个部门应该处理这个?”并获得带有置信度的校准选择。
  • 风险评分 – 询问“用户有多沮丧?”或“欺诈的可能性是多少?”并获得每个评分等级的概率。
  • 游戏代理 – 存储库包含示范,模型在文本游戏、Atari Pong(从 RAM 衍生的文本)和 Super Mario Bros 中决定动作,每个动作只需单次前向传播。
  • 视觉问答 – decider-2b-vision 检查点可以回答基于图像的查询,返回每个选项的概率。
  • 批次分类流程 – HTTP 服务器的 schema 缓存使得对多条记录运行相同的问题集成本低廉。

快速开始(Python)

pip install decider-ai            # 或:pip install -e .[serve,train]
from decider.infer import Decider
# 加载检查点(首次使用时从 Hugging Face 下载)
model = Decider("Mapika/decider-2b")

state = {
    "ticket": {"messages": [{"from": "customer", "text": "I was charged twice for order A‑104."}]},
    "refund_policy": "Duplicate charges are eligible for a refund."
}
questions = {
    "department": {"type": "choice", "instructions": "Which team should handle this?",
                    "criteria": {"returns": "Exchanges, refunds, wrong or damaged items",
                                 "billing": {"what": "Charges, invoices", "not_for": "delivery"},
                                 "other": None}},
    "refund_requested": {"type": "noul", "instructions": "Does the ticket request a refund?"},
    "frustration": {"type": "score", "instructions": "How frustrated is the customer?",
                    "criteria": ["calm", "frustrated", "very frustrated"]}
}

result = model.system_one(state, questions)
print(result)

输出包含每个类型化问题的概率分布,例如一个 choice 带有置信度和完整的选项概率向量。


通过 HTTP 提供服务

scripts/serve.sh Mapika/decider-2b 8000
  • POST /v1/systemone – 与 TypeSafe AI SDK 兼容。
  • POST /decide – README 示例中使用的纯 JSON 格式。
  • 服务器自动选择最佳设备(CUDA → MPS → CPU),在 CUDA 上,为每个(批次,长度)形状捕获 CUDA 图,以实现零运行时编译开销。

训练自己的模型

存储库包含完整的数据构建和微调代码:

  1. scripts/train.sh full 构建公共混合数据集(约 1.5 M 示例,455 M tokens)并在 Qwen-3.5 基础上运行一个 epoch。
  2. scripts/train.sh delta <existing-ckpt> 从检查点继续训练,适用于添加决策数据集。
  3. 可选的 RL 阶段(v8 → v10)使用实时 MiniWoB++ 浏览器任务进一步校准概率;RL 循环位于单独的研究存储库中,但 README 链接到所需环境。

已知限制(如存储库所述)

  • 无多步骤推理 – 模型无法执行链式算术或多跳推理;将此类问题拆分为单独的问题。
  • 困难项目标定下降 – 特别是在知识密集型多选题(例如 GPQA、GSM8K)上。2 B 模型在最困难的基准项目上表现出明显的过度自信。
  • 仅英文 – 所有训练数据和评估均为英文;其他语言的性能未记录。
  • Schema 缓存以准确性换取速度 – 启用缓存可能会降低某些 schema 的答案质量。
  • 视觉变体仍在开发中 – decider-2b-vision 使用较旧的文本权重,正在重新训练。
  • 教师偏差 – 自定义问题数据由 27 B 教师模型标记,这引入了某种偏差(与其自身标签的约 72% 一致性)。

更多信息

  • Hugging Face 上的模型卡:Mapika/decider-2b、decider-4b、decider-35b-a3b 等。
  • 详细基准表:docs/RESULTS.md。
  • 变更日志和 RL 详细信息:docs/CHANGELOG.md、docs/RL.md。
  • 演示笔记本和示例程序:examples/。

底线 – decider 提供了一个实用、开源的替代方案,取代传统的文本生成 LLM,当您需要在固定选项集上进行快速、校准的决策时。它特别适用于路由、评分和简单的游戏任务,并且可以在 GPU、Apple Silicon 甚至 CPU 上运行。

相关

  • 项目
  • 项目
  • 项目
  • 项目