Skip to page content
SAVRN
Search Plan a project

Open-weight model

shunshou-zhizi-30m

by Dabblecove DabbleCove/shunshou-zhizi-30m

shunshou-zhizi-30m is an open-weight model from Dabblecove, released under Creative Commons Attribution-ShareAlike 4.0. Its published files total 191.6 MB. It draws 3 downloads a month.

镜像 / Mirrors: HuggingFace · ModelScope 魔搭(内容相同 / identical files) English summary.

Parameters—
Context—
Weights191.5 MB
Licensecc-by-sa-4.0
AccessOpen weights
Monthly Downloads3

Model Card

By Dabblecove, published under cc-by-sa-4.0, revision b74f57068819.

镜像 / Mirrors: HuggingFace · ModelScope 魔搭(内容相同 / identical files) English summary. A 29M-parameter character-level causal language model (8 layers, 512 dims, vocabulary of 7,745 Han characters) that re-ranks candidates of a Chinese pinyin input method: given the text before the caret and one candidate, it returns the candidate's per-character log-probabilities. It does not take pinyin as input and does not generate text for users. About 3 ms per ranking on the Apple Neural Engine (Core ML, fp16) and an ONNX build for Windows and other platforms. Trained on Chinese Wikipedia (CC BY-SA 4.0), the UN parallel corpus (Chinese side), asap (Apache-2.0), Tatoeba (CC BY 2.0 FR), 19.8M characters of…

Read Dabblecove's full model card

对应发布版「S」(A、B 两个权重取平均),训练数据只用许可明确的来源;与知字输入法 0.1.1 起内置的模型是同一个。

镜像 / Mirrors: HuggingFace · ModelScope 魔搭(内容相同 / identical files)

English summary. A 29M-parameter character-level causal language model (8 layers, 512 dims, vocabulary of 7,745 Han characters) that re-ranks candidates of a Chinese pinyin input method: given the text before the caret and one candidate, it returns the candidate's per-character log-probabilities. It does not take pinyin as input and does not generate text for users. About 3 ms per ranking on the Apple Neural Engine (Core ML, fp16) and an ONNX build for Windows and other platforms. Trained on Chinese Wikipedia (CC BY-SA 4.0), the UN parallel corpus (Chinese side), asap (Apache-2.0), Tatoeba (CC BY 2.0 FR), 19.8M characters of synthetic colloquial text generated only with the DeepSeek API, and about 8,100 cleaned homophone choices of the model's author (see "Training data and privacy"). Weights are released under CC BY-SA 4.0.

用途与不适用

3000 万参数的字符级因果语言模型,给中文拼音输入法的候选排序用:输入「光标前的文字 + 一个候选」,输出这个候选每个字的对数概率;输入法把整句概率加到词频与规则上,挑出更像人话的那一个。 - 它做的事:你用输入法打字时,在输入法给出的候选里,判断哪个放在你刚打的那段话后面更通顺,据此调整候选的先后顺序(包括把整句拼出来的候选放到最前)。它是输入法里的一个「评分器」。 - 它不做的事:它不是聊天或写作模型,不会回答问题、续写、翻译,也不会替你生成任何文字(自由采样出来的文字不通顺,见下);它也不接收拼音,拼音转汉字是输入法的词库和解码器做的,模型只在候选已经产生之后给它们打分。 - 不适合直接拿去做通用对话、写作、翻译或任何需要理解拼音本身的任务;繁体、生僻字场景(字表 7,745 字,覆盖训练语料 99.98%)也不适用。

怎么用

  • 输入:tokens Int32[8,40](最多 8 个候选并行;每行 = <bos> + 至多 32 字前文 + 候选,右侧补 0);pad=0, bos=1, unk=2,字表见 itos.json。
  • 输出:logprobs Float16[8,39],每个位置预测下一个字的对数概率;候选得分 = 候选各字对数概率之和。
  • 排的是哪些候选:输入法每一页(5 个)候选,在那一页里对「能覆盖你全部输入的候选」和「同音同长度的候选组」重新打分排序;翻到下一页,新的一页也会各自排一次。所以它管的是整页候选的先后,不只是第一个;另外,当整句拼出来的候选明显更好时,它会被放到第一位,次好的放到页尾。
  • 我们在产品里的用法:在同长度、同读音的候选组内,取 得分 − 2 × 该候选在输入法原顺序里的名次(blend β=2)最高者;不跨读音、不跨长度,所以它不会把你打的字母换成别的读音。
  • 速度(Apple M4 Pro,Core ML fp16,CPU + 神经网络引擎):一次排序约 3.0 ms(p95 3.2 ms);与 PyTorch 首选一致率 99.88%(该测量用同架构的早期模型做的,本版导出时另做了自检:Core ML 与参考一致 360/360、真实记录 99.98%)。

训练数据与隐私

架构:8 层、8 头、512 维、GPT-2 式块,学习位置、权重共享,上下文 128。

数据 字数 许可 / 来源
中文维基百科 2.11 亿 CC BY-SA 4.0
联合国平行语料(中文侧) 5,738 万 联合国:使用须注明来源(见下);条款未写其他限制
asap(口语) 1,479 万 Apache-2.0
Tatoeba(日常句) 61 万 CC BY 2.0 FR
合成口语 / 工作聊天 / 中英混排 1,976 万 只用 DeepSeek API 生成(其用户协议 4.2(3) 明确允许用输出训练其他模型);含 AI 生成文本
  • 预训练 28,000 步(batch 256、lr 1.5e-3),语料混合比 维基 0.3 / 联合国 0.1 / asap 0.2 / Tatoeba 0.05 / 合成 0.35。
  • 同音微调 8,000 步,约 185 万道题,题目取自输入法自带词库的同音组,只比较同读音同长度的候选。训练在租用的 RTX 4090(48G)上:预训练约 33 分钟,两个微调各约 23 分钟。
  • 两个微调版本取平均:A 的题库里加入了作者本人的输入选择,B 不含;发布的 S = (A + B) / 2。
  • 作者本人的数据:作者自己的约 8,140 条同音选择(每条是光标前最多 32 个字加最终上屏的字,其中作者特意选了非首选的 696 条重复训练更多遍)。入选前做了:只取上屏后没有重打、没有删除、没有放弃的记录;含邮箱、网址、手机号、8 位以上数字串、20 位以上 token 样字符串、文件路径、密钥前缀的行整条丢弃;与评测集相同的事件丢弃;最后几天的记录完全不用于训练。不含任何其他人的输入记录(朋友的测试日志没有使用,也不会在未征得他们同意前使用),不含 LCCC 等仅限科研的语料。
  • 记忆抽取检查(2026-10-17):S / A 与 B(同样微调但没有作者数据)、预训练模型对比。
  • 抽取:拿训练上下文的前 8 个字让模型续写,续写里复现 ≥6 个连续原文字符的次数:S、A、B、预训练模型均为 0 / 1,080(训练上下文)与 0 / 118(留出上下文)。
  • 自由采样:不给任何提示,从 S 采样 20,000 条文本(温度 1.0 与 0.7),其中「出现在作者上下文里、却不在任何公开训练文本里」的 8 字串只有 1 个(「现在到底什么情况」,一句很普通的话);B 与预训练模型为 0。采样里的「疑似邮箱、网址、电话」命中只是乱码数字和 www 片段,没有真实联系方式。
  • 成员推断(有一点痕迹,如实写明):S 对训练过的行给正确候选的对数概率比 B 平均高 0.73,对从未训练过的最后几天的行只高 0.17;用这个差值区分「训练过 / 没训练过」的 AUC 为 0.62(0.5 = 无法区分)。就是说,有人拿着作者的原话,可以略高于随机地猜出它大概率在训练里;但无法从模型里把这些话抽出来。S 的痕迹比 A(AUC 0.63)略小,因为与没见过作者数据的 B 取了平均。

评测

  1. 同音选择准确率(作者最后三天的留出记录,3,976 条,从未参与训练,blend β=2):S 91.32%。
  2. 接进输入法整体:开关模型对比(输入法 0.1.3 自带的词库与核心,同一份作者词库快照,只开关模型;首选命中 / 前五命中。「无模型」同时关掉模型参与的整句拼接,所以差距包含候选排序和整句拼接两部分):
评测集 条数 无模型 有模型(S)
作者本人真实输入(含重打的 213 条) 2,972 82.1% / 89.5% 87.2% / 93.4%
外部集(全简拼、混拼、错拼、短句等,合成) 1,520 44.7% / 57.6% 64.0% / 72.1%
日常口语标尺 A(12 个话题,合成,留出) 1,592 78.2% / 83.9% 78.5% / 88.6%

标尺 A 里的短语多半词库里本来就有,所以模型在首选上只多 0.3 个点,但前五命中多 4.7 个点(把对的候选从后面提到前面);作者集与外部集里有大量同音取舍、简拼和整句,模型的作用大得多。

  1. 没有的:没有公开基准、没有多用户真实数据;作者集只有一个人;外部集与标尺 A 是我们自己生成的,可能偏向我们自己的词库与写法。请把数字当作「这个模型在这个输入法里是否有用」的证据,而不是通用基准。

已知局限

  • 只看光标前最多 32 字,看不到后文;句首没有上文时几乎不起作用。
  • 容量不是瓶颈(50M 与 30M 相当),瓶颈是信息:场景、后文、个人习惯。
  • 个人写法(如「嘛/吗」的语气取舍)它学不会,需要个人适配。
  • 训练文本以书面语为主(维基、联合国占大头),口语靠 asap 与合成数据,口味可能偏书面。
  • 合成数据带有生成模型的偏好与错误;自由采样出来的文字不通顺、会胡编数字,这个模型不是用来写字的。
  • 同音微调题库用输入法自带词库造题,所以模型对该词库覆盖的同音组更有把握。

许可

  • 权重:CC BY-SA 4.0(训练语料含 CC BY-SA 的维基百科,保守起见同协议发布;衍生模型是否必须如此在法律上没有定论)。
  • 署名与来源:中文维基百科(CC BY-SA 4.0);Tatoeba(CC BY 2.0 FR);asap(Apache-2.0);联合国平行语料(来源:联合国;Ziemski, Junczys-Dowmunt, Pouliquen. The United Nations Parallel Corpus v1.0. LREC 2016);合成数据含 AI 生成文本(DeepSeek)。
  • 输入法本体、词库的开源协议另定,与权重是两件事。

文件

zhizi30m_v2.onnx(fp32,127 MB,Windows / 跨平台)、zhizi30m_v2.mlpackage(Core ML fp16,Mac)、itos.json、SHA256SUMS、LICENSE、NOTICE。(文件名里的 v2 是接口版本,沿用至今;与权重版本无关。)int8 版(32 MB)未做精度验证,不随首发发布。

作者与联系

顺手·知字,知字输入法项目(DabbleCove)。联系:[email protected]

Identity and Version

Repository
DabbleCove/shunshou-zhizi-30m
Publisher
Dabblecove
Task
Not stated by the source
Modality
Other
Library
onnx
Parameters
Not stated by the source
Languages
zh, en
Revision
b74f57068819380bce70ab3bec22696a81a95c95
First published
2026-10-16
Last updated
2026-10-18

Files and Weights

10 files, 191.6 MB in total. The weights are 3 files totalling 191.5 MB in bin, mlmodel, onnx.

Weights3 files · 191.5 MB
Configuration2 files · 54.4 KB
Documentation3 files · 30.8 KB
Other1 file · 753 B
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
zhizi30m_v2.mlpackage/Data/com.apple.CoreML/model.mlmodelWeights76.9 KB 50feaa2862ef
zhizi30m_v2.mlpackage/Data/com.apple.CoreML/weights/weight.binWeights58.4 MB 5aada9e57096
zhizi30m_v2.onnxWeights133.0 MB 07c8a48dcc58
itos.jsonConfiguration53.8 KB —
zhizi30m_v2.mlpackage/Manifest.jsonConfiguration617 B —
LICENSEDocumentation20.1 KB —
NOTICEDocumentation742 B —
README.mdDocumentation9.9 KB —
SHA256SUMSOther753 B —
.gitattributesRepository1.5 KB —

License and Download

License
cc-by-sa-4.0
Access
Open weights, no gate
Download size
191.5 MB
Download from Dabblecove

Released by Dabblecove through its official repository on Hugging Face. Read the license.

Memory Requirements

PrecisionWeights in memory
As published191.5 MB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About shunshou-zhizi-30m

Can I use shunshou-zhizi-30m commercially?

Yes. shunshou-zhizi-30m is released under Creative Commons Attribution-ShareAlike 4.0. CC BY-SA 4.0 permits sharing and adapting, including commercially, with credit to the creator, and requires adaptations to be released under the same license.