CoolFace
Modelpublic

zyang94/tacet-2b-decision

sourceHugging Faceapache-2.0updated 22h agoView on Hugging Face
0likes3downloads
Model Card

tacet-2b-decision(双语 README / Bilingual README)

License / 许可:apache-2.0(代码与模型卡)· 数据:见「训练数据 / Training data」

tacet(拉丁语乐谱记号:该声部此处静默)——一个 2B 的 System One 决策模型。给它一个 state(工单 / 邮件 / 票据 / 检索文档 / 游戏局面)和一组带类型的 typed questions(choice / noul / score),它在单次前向内输出每个候选上的概率分布。它不生成文本——没有可解析、可幻觉的内容。

tacet (Latin musical notation: "this voice is silent here") — a 2B System One decision model. Given a state (a ticket, an email, an invoice, retrieval documents, a game position) and a set of typed questions (choice / noul / score), it outputs a probability distribution over the candidates in a single forward pass. It does not generate text — there is nothing parseable to hallucinate.

English

What this model is

  • —Output is a distribution, not text: one forward pass answers all questions at once (~150 ms level on a consumer GPU);
  • —The answer space is defined at request time: candidate sets, K, and criteria all live in the request — changing the schema requires no retraining;
  • —Calibrated and abstaining: per-candidate calibrated probabilities (with temperature calibration) and an "no candidate satisfies the requirement / insufficient information" abstention signal.

Usage

The model runs with a specific prompt template (typed questions with 26 letter slots A–Z, one slot per candidate). Readout = in-question softmax over the logits of all 26 letter tokens. Server-side example (llama.cpp):

bash
llama-server -m tacet-2b-decision-Q4_K_M.gguf -c 65536 -ngl 99 --host 0.0.0.0 --port 8080

Prompt construction (block_instr layout):

[STATE]
{state text}

[QUESTIONS]
[Q1] [TASK] Which department should handle this?
[CRITERIA]
[A] billing: invoices, payments, refunds
[B] technical: bugs, outages, system errors
[C] other: everything else
[OUTPUT] Give a probability for every option; the probabilities must sum to 1.
...
[OPTIONS] A B C <pad to 26>

Readout: take the logits of the 26 letter tokens (A–Z) at the first generated position, then softmax over that question's K candidates. A complete server-side adaptation example ships with this repository.

Evaluation

On a public typed-decision evaluation set of 231 questions (fully independent of the training distribution):

MetricValue
Top-1 accuracy (argmax)0.7273
Per question type: choice / noul / score—
ECE (10 bins, pre-calibration)0.14

Abstention (sentinel-candidate mechanism): on a 261-question test set containing "no correct answer" labels, no-correct-answer recall / false-alarm-on-solvable curves are reported under a threshold sweep (this release does not include an abstention slot; abstention ships in later versions of the model family).

Honest limits

  • —Single forward pass, no chain of thought: the model is trained to output a distribution in one forward pass — it is limited on questions requiring multi-step serial computation (long policy reasoning, multi-hop, date arithmetic). This is a form boundary, not undertraining.
  • —26-option cap: at most 26 candidates per choice question (+1 abstention sentinel). For larger option spaces, use a two-level / factorized decomposition.
  • —Context window 6144 tokens: states beyond this are truncated.
  • —Language: English (the base model's multilingual ability is not aligned in this version).
  • —Probability calibration: the shape of the letter-readout distribution is the model's own output; re-measure ECE on your own data before using it for threshold decisions.

Training data

Training data is 100% programmatically generated with verifiable ground truth — zero human annotation, zero LLM-teacher outputs: game domains (maze/snake BFS ground truth), retrieval domain (teacher scores over public upstream Apache-2.0 data), synthetic UI (deterministic behavior ground truth), judge/routing (option-count histogram mirroring), long text (long policies / tickets). No conversation-model outputs were used as training targets.

Hardware & authorship

  • —Training hardware: 2× NVIDIA GeForce RTX 2080 Ti 22GB (consumer GPUs) — the full pipeline (LoRA pretraining, weight averaging, quantization verification) ran on these two cards; inference is ~150 ms level per card (10 candidates).
  • —Authorship: GLM-5.3-flash (Zhipu AI) is a co-first author of this project, responsible for training-recipe iteration, experiment diagnosis and engineering implementation; Zhengxing Yang is the corresponding author, responsible for direction and experiment decisions. The work is human–AI collaborative with roughly equal effort; judgment and direction rest with the human.

Citation

bibtex
@misc{tacet2026,
  title  = {tacet-2b-decision: a 2B System One decision model with calibrated, abstaining outputs},
  author = {GLM-5.3-flash (co-first author, engineering and recipe iteration) and Zhengxing Yang (corresponding author, direction and decisions)},
  year   = {2026},
  url    = {https://huggingface.co/zyang94/tacet-2b-decision}
}

中文

这是什么

  • —输出是分布,不是文字:同一次前向回答所有问题(~150ms 级,消费级 GPU);
  • —答案空间在请求时定义:候选集 / K 值 / 判据全部写在请求里,换 schema 无需重新训练;
  • —可校准 + 可弃权:支持给每个候选输出校准后的概率(含温度校准),以及「没有候选满足要求 / 信息不足」的弃权信号。

使用

模型以特定 prompt 模板运行(typed questions 附加 26 个字母槽 A–Z,每个候选绑定一个槽位),读出 = 对全部 26 个字母 token 的 logits 做题内 softmax。服务器端示例(llama.cpp):

bash
llama-server -m tacet-2b-decision-Q4_K_M.gguf -c 65536 -ngl 99 --host 0.0.0.0 --port 8080

Prompt 构造(block_instr 布局):

[STATE]
{state text}

[QUESTIONS]
[Q1] [TASK] Which department should handle this?
[CRITERIA]
[A] billing: invoices, payments, refunds
[B] technical: bugs, outages, system errors
[C] other: everything else
[OUTPUT] Give a probability for every option; the probabilities must sum to 1.
...
[OPTIONS] A B C <pad to 26>

读出:取生成首位上 A–Z 共 26 个 token 的 logits,对该题的候选数 K 做题内 softmax 归一化。完整的服务端适配说明见 TRAINING_GUIDE.md §5.1/§7。

评测

在 231 题的公开 typed-decision 评测集上(与训练分布完全独立):

指标数值
top-1 准确率(argmax 口径)0.7273
按题型:choice / noul / score—
ECE(10 bin,校准前)0.14

弃权能力(哨兵候选机制):在一组含「无正解」标注的 261 题测试上,无正解召回 / 有正解误报两指标随阈值扫描报告(该发布版本未包含弃权槽,弃权见模型家族后续版本)。

诚实声明

  • —单次前向,无思考链:本模型被训练为单 forward 直接输出分布——它在需要多步串行计算的题目上(长政策推理、多跳、日期运算)能力有限,这是形态边界而非训练不足。
  • —选项上限 26:choice 题最多 26 个候选(+1 个弃权哨兵)。更大的选项空间建议两级/因子化分解。
  • —上下文 6144 token:超过的 state 会被截断。
  • —语言:英文(底座多语言能力未在本版本对齐)。
  • —概率校准:letter 读出的分布形状为模型输出;建议在自己的数据上重测 ECE 后再用于阈值决策。

训练数据

训练数据 100% 程序化生成,带可验证真值,零人工标注、零 LLM 教师输出:游戏域(迷宫/蛇 BFS 真值)、检索域(公开上游 Apache-2.0 数据的 teacher 分数)、合成 UI(确定性行为真值)、judge/routing(选项数直方图镜像)、长文本(长政策/工单)。未使用任何对话模型输出作为训练目标。

训练硬件与作者栏

  • —训练硬件:2× NVIDIA GeForce RTX 2080 Ti 22GB(消费级显卡)——全套训练(预训练 LoRA、权重平均、量化校验)在这两张卡上完成;推理单卡 ~150ms 级(10 候选)。
  • —作者与致谢:GLM-5.3-flash(智谱 AI)为本项目共同一作(co-first author),负责训练配方迭代、实验诊断与工程实现;Zhengxing Yang 为通讯作者,负责方向决策与实验取舍。本文由人机协作完成,工作量大致对半,判断与方向归人。

引用

bibtex
@misc{tacet2026,
  title  = {tacet-2b-decision: a 2B System One decision model with calibrated, abstaining outputs},
  author = {GLM-5.3-flash (co-first author, engineering and recipe iteration) and Zhengxing Yang (corresponding author, direction and decisions)},
  year   = {2026},
  url    = {https://huggingface.co/zyang94/tacet-2b-decision}
}

仓库内容 / What's in this repo

  • —model.safetensors — F16 权重 / F16 weights
  • —tacet-2b-decision-Q4_K_M.gguf — Q4KM 量化(llama.cpp)/ Q4KM quantization for llama.cpp
  • —README.md — 本模型卡 / this model card
  • —TRAINING_GUIDE.md / TRAINING_GUIDE_EN.md — 从零复现训练方法指引(中/英;只讲方法,不含代码)/ from-scratch training method guides (ZH/EN; method only, no code)
  • —本仓库不含训练代码、数据生成器与数据本体;复现路径见两份指南 §4–§7 / this repo ships no training code, generators, or data; see §4–§7 of the guides for the reproduction path

所有数字均为我们自己测得的绝对数字,本卡不包含任何第三方对比。 All numbers above are our own absolute measurements; this card contains no third-party comparisons.