Files
yenharvey 0b10196fbc feat: 知意按音节出字、知意三元模型与二元模型插值后进整句词图
- 知意 ONNX 模型的 composition 头 char_logits 以前没用:ChoiceModel::compose 取每音节的字分布,整句词图里每个词按字加分(0.5×相对 log 概率,下限 −12),成词仍交给词库与二元模型
- 敲错边、模糊音改过读音的字字分布说明不了,固定扣 −4,取舍交给原来的纠错代价;直接用绝对分时冻结回放整句 82.6% → 79.7%,纠错路径被整条压掉
- 字分布与选词打分走同一后台线程、停键后算,有字要出时先出字;每次查询清掉上一次没送出的出字请求,否则逐键攒下几十个过时前缀,整句的那张表停键后要几百毫秒才轮到
- Windows Server 重查后还有要算的就立即再请求,不再等第二次防抖
- 冷启动评测(基线 → 接上):自己的输入 58.6% → 63.5%、本仓库文档抽样 29.7% → 40.8%、维基新闻留出集 59.5% → 69.0%;去掉上文后只 +1.8~3
- windows-ime-bench(本机):整句 33.33%(旧包)→ 按空格前停 400 ms 63.33%;测评的 120 ms 仍赶不上(42.5%)
- 词级三元模型 TrigramModel 读知意的 zh.ngram(按格式自己实现,知意代码是 GPL-3.0-only 不搬),经 Core 的 PhraseModel 进选词重排;还没测收益
- CLI 加 --zhiyi-onnx / --onnx-runtime / --zhiyi-tier / --ngram,评测与回放等后台的分回来再取结果
- Windows 安装包不再随包含章·通变(没被这套方案用到,包 153 MB → 88.8 MB)
- TrigramModel 实现 LanguageModel(新方法 log_prob_trigram 带前前词,词图传前前词),MixedModel 按概率插值,λ = TRIGRAM_WEIGHT 0.5
- 只用三元时无上文新闻掉分(不认识的专名、技术词被拆错);插值后六个开发集都涨:devA 63.5→65.6、项目文档 40.8→46.2、新闻 74.1→76.6、新闻无上文 66.8→69.0
- 冻结回放整句 80.5→78.6:新增 84 条未命中里约一半是当时选错 / 敲错(日志偏向旧模型),真退步多是三元不认识的技术词;λ 0.3 / 0.7 开发集总分都不如 0.5
- CLI 的 --ngram 同时接选词重排与整句词图;Windows Server 读用户目录 models/zhiyi-ngram/zh.ngram,没有就照旧只用二元
2026-10-24 09:52:51 +08:00

29 lines
816 B
TOML

[package]
name = "qingjian-cli"
description = "命令行测试工具:看候选、逐键计时、回放输入日志评测、整句评测"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
[lints]
workspace = true
[dependencies]
clap.workspace = true
serde.workspace = true
serde_json.workspace = true
dotenvy.workspace = true
qingjian-core.workspace = true
qingjian-dictionary.workspace = true
qingjian-learning.workspace = true
qingjian-platform.workspace = true
qingjian-predict.workspace = true
qingjian-lm.workspace = true
qingjian-neural = { workspace = true, features = ["zhiyi", "zhiyi-onnx"] }
qingjian-translate.workspace = true
thiserror.workspace = true
tracing.workspace = true
tracing-appender.workspace = true
tracing-subscriber.workspace = true