[Lane 4 · numerics] tokenizer.json parity — golden encode fixtures from Hugging Face tokenizers for the ModernBERT and mmBERT files
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 76/100
- Issue 类型
- 功能
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- python
调研方向
Create scripts/tokenizer_goldens.py; use the five reference texts from #1321 and the listed edge cases, then generate goldens for both Laya tokenizer paths at the specified revision. Start by checking #1321 for its five expected rows and the Qwen fixture test header for the command and pip pin format. Done means deterministic JSON outputs with source SHA-256 and tokenizers version committed under the stated resources directory.
由索引模型根据 Issue 内容生成。
描述
Sub-issue of #1321 (HF tokenizer.json parity for BPE encoders).
Lane: 4 · Ground truth / CI
Skill needed: Python (tokenizers, huggingface_hub). No Kotlin, no SKaiNET knowledge.
Size: xs–s (an hour or two)
Blocked by: nothing
What to do
- Write
scripts/tokenizer_goldens.py(new file) that, given a Hub repo id, a revision and a path to atokenizer.json, downloads the file, computes its SHA-256, and encodes a fixed list of texts withTokenizer.from_file(...).encode(text, add_special_tokens=False). Output one JSON per tokenizer:{"repo": "convaiinnovations/laya", "revision": "7b928d82…", "path": "tokenizer/tokenizer.json", "sha256": "…", "tokenizers_version": "0.23.3", "vocab_size_with_added": 50368, "cases": [{"text": "Bitte die doppelte Rechnung prüfen.", "ids": [12871, 442, …], "tokens": ["Bit", "te", …]}]} - Texts: the five fixture texts from #1321 plus ~15 more that each target one feature — a lone special token (
<|endoftext|>,<bos>), a non-special added token, tabs and newlines, a run of 24 spaces (ModernBERT has an added token for it), CJK, Arabic, an emoji with skin-tone modifier, decomposed vs composed accents, digits (1234567890), the empty string, a single space. - Generate goldens for both Laya files:
tokenizer/tokenizer.jsonandmultilingual/tokenizer/tokenizer.jsonat revision7b928d828b7b0e022f929d9bd2e44165aa270148of https://huggingface.co/convaiinnovations/laya (Apache-2.0). - Commit the two JSON files under
skainet-io/skainet-io-core/src/jvmTest/resources/tokenizer-goldens/(they are a few KB; the tokenizer files themselves are not committed — the Kotlin lane downloads them like the existing Qwen fixtures). - Put the exact command line and the
pippin in the script header, in the style of the header comment of QwenByteLevelBpeTokenizerFixtureTest.kt.
Acceptance
- Script reproduces the five reference rows quoted in #1321 byte-for-byte
- Two golden JSON files committed, each with
sha256of the sourcetokenizer.jsonand thetokenizersversion - Running the script twice gives identical output (deterministic ordering)
- Result reported back on #1321
Notes
Keep the script free of SKaiNET-specific logic so the sibling repository (SKaiNET-transformers) can reuse it for its own model families. If a text makes tokenizers itself warn or behave oddly, keep the text and note it in the JSON ("note" field) — surprising oracle behaviour is exactly what the Kotlin side must match.
- 主要语言
- Kotlin
- 星标
- 52
- 派生
- 15
- 平均合并
- 1 天 15 小时
- 30 天内合并 PR
- 36
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
SKaiNET-developers/SKaiNET 的其他 Issue
-
coding good first issue size:xs skill:kotlin-core sub-issue
难度 2/5 1-3 小时 新手友好度 88/100
SKaiNET-developers/SKaiNET#1323 ·
维护者通常 1 天内回复
-
coding good first issue platform size:xs skill:js sub-issue
难度 2/5 1-3 小时 新手友好度 72/100
SKaiNET-developers/SKaiNET#1232 ·
维护者通常 1 天内回复
-
skeep tracking
难度 5/5 一周以上 新手友好度 15/100
SKaiNET-developers/SKaiNET#1331 ·
维护者通常 1 天内回复
-
assessment size:s skill:review sub-issue
难度 4/5 1-2 天 新手友好度 18/100
SKaiNET-developers/SKaiNET#1330 ·
维护者通常 1 天内回复
-
documentation good first issue size:s skill:docs sub-issue
难度 3/5 1-2 天 新手友好度 78/100
SKaiNET-developers/SKaiNET#1329 ·
维护者通常 1 天内回复
查看 SKaiNET-developers/SKaiNET 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 83/100
Kotlin/kotlin-lsp#288 ·
-
afk-ok area:data-quality importer size:S
难度 2/5 1-3 小时 新手友好度 77/100
enorm-labs/event-junkie#3166 ·
维护者通常 1 天内回复
-
bugbane/qf good first issue
难度 2/5 1-3 小时 新手友好度 64/100
osservatorionessuno/bugbane#173 ·
维护者通常 1 天内回复
-
Android: build fails with Android Gradle Plugin 9 (kotlinOptions, lintOptions, proguard-android.txt)未关闭
难度 2/5 1-3 小时 新手友好度 78/100
capacitor-community/stripe#544 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100