| license | apache-2.0 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| base_model | mlx-community/Qwen3.5-9B-4bit | ||||||||
| library_name | peft | ||||||||
| language |
|
||||||||
| tags |
|
为中文学习者生成多语言词汇助记场景的实验 LoRA 模型。
Luna Tanka v0.1.0 来自 Lunaword 的最新多语言续训候选,支持英语、日语、韩语、法语、德语、西班牙语和俄语输入,输出中文联想画面与回忆线索。日语输入使用给定假名读音,保留完整词形;示范重点包含借入/借出、寄存/代管、返回/归还、寻找/找到等区别。
本仓库包含实际适配器权重、推理入口、训练数据、续训入口和原始评估输出。当前版本仍有漏字、重复和场景逻辑问题,作为实验候选发布。尚未证明真实记忆效果,也没有替换 Lunaword 当前运行的模型。
An experimental multilingual mnemonic LoRA for Chinese-speaking learners. This is an adapter release, not a standalone 9B checkpoint. See the raw evaluation outputs and known limitations below.
| 项目 | 内容 |
|---|---|
| 名称/版本 | Luna Tanka / v0.1.0 |
| 发布日期 | 2026-10-27 |
| 格式 | PEFT LoRA,Safetensors |
| 当前权重 | adapter/adapter_model.safetensors,6,852,160 字节 |
| SHA-256 | 7c4eae5d6d06d38130a2a52e327d0d2221e81021771c7cc0db7b29b8221b908a |
| 对应实验 | multilingual-v5,第二轮,182 次参数更新 |
| 适配器设置 | rank 8,alpha 32,dropout 0,最后四层中的 14 个线性模块 |
| 输出协议 | method、decomposition、derivation、soundHint、text、cue 六个字符串字段 |
名称与发布路径已经整理为 Luna Tanka,权重字节未修改。适配器配置只将本机基座绝对路径改为相对路径,原配置哈希记录在 adapter/origin.json。
基座来自 mlx-community/Qwen3.5-9B-4bit,固定 revision 为 8b2b98c00a6b4d291155e4890773ca8f769aee53。运行时将其文本权重还原到 BF16,并以原始 affine4 字节保存冻结前缀,词嵌入和 FP32 输出投影在 CPU 上。此转换还原的是已经量化的权重,不等同于原始未量化 Qwen 权重。普通 AutoModel.from_pretrained 不能直接加载这个 MLX 基座;请使用下方准备脚本和配套运行时。
完整基座不在本 GitHub 仓库或 Release 内;使用时从上述固定来源获取。基座来源、转换步骤及权重哈希见 provenance/base-conversion.json。
参考环境为 Windows、Python 3.12、RTX 4090 24 GB、64 GB 内存。当前配套运行时需要 NVIDIA CUDA,未验证 CPU-only 或 macOS 推理。保留量化源文件和转换文件需要约 25 GB 磁盘空间,安装环境另计。
以下命令在 D 盘的仓库目录执行;虚拟环境、pip 缓存和模型文件均放在该目录中。推理和准备脚本也会将 CUDA、CuPy、Torch、Hugging Face 与临时缓存放在当前仓库的 .cache/。
Set-Location D:\
git clone https://github.com/ergou-yu/Luna-Tanka.git
Set-Location D:\Luna-Tanka
$env:PYTHONDONTWRITEBYTECODE = "1"
$env:PYTHONUTF8 = "1"
$env:TEMP = "$PWD\.cache\tmp"
$env:TMP = $env:TEMP
New-Item -ItemType Directory -Force $env:TEMP | Out-Null
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install --cache-dir .cache/pip torch==2.6.0 --index-url https://download.pytorch.org/whl/cu124
.\.venv\Scripts\python.exe -m pip install --cache-dir .cache/pip -r requirements.txt
.\.venv\Scripts\python.exe training/mnemonic/infer_luna_tanka.py --verify-only首次下载基座并转换:
.\.venv\Scripts\python.exe training/mnemonic/prepare_base.py生成日语词汇的记忆方法:
.\.venv\Scripts\python.exe training/mnemonic/infer_luna_tanka.py --language ja --word "選ぶ" --definition "选择;挑选" --phonetic "えらぶ"其他语言通过 --language en|ko|fr|de|es|ru 指定。--dry-run 只输出构造好的提示词,不加载模型。--verify-only 校验发布文件和权重,不下载基座、不占用 GPU。
若已有配套基座,可使用 --base-root D:\Lunaword,复用该目录下的 models/mnemonic/base-9b 和 models/mnemonic/base-9b-hf-cuda。CLI 使用固定贪心解码和相同 tokenizer 设置,返回原始文本及解析结果,不自动修补漏字或不合法 JSON。初始化日志写入 stderr,最后的生成结果写入 stdout。
| 语言 | 本轮新增示范 |
|---|---|
| 日语 | 60 |
| 韩语 | 30 |
| 法语 | 30 |
| 德语 | 30 |
| 西班牙语 | 30 |
| 俄语 | 30 |
| 英语 | 60 |
| 合计 | 270 |
135 个词条族各有两个场景,合并原有示范后共 499 条:训练 361 条、验证 69 条、测试 69 条。本轮新增示范中,198 条进入训练、72 条留作评估。同一语言、同一规范化拼写的全部词义、读音与场景属于同一分组,旧数据的分组和答案保持不变。没有未经核实的中文谐音或词源;英语拆解仅使用审核目录。
本轮从 V4 候选继续训练两轮,学习率 0.00003,每四个样本累积更新一次,共 182 次更新。仅监督 assistant completion,包括 EOS,prompt 部分不计入损失。提供的 training/initial-adapter/ 是该次续训的 V4 初始权重,不是 Luna Tanka 最终权重。
检查或重新进行这次续训:
.\.venv\Scripts\python.exe training/mnemonic/train_luna_tanka.py
.\.venv\Scripts\python.exe training/mnemonic/train_luna_tanka.py --train训练输出到独立的 models/luna-tanka-retrained/,目录已存在时拒绝覆盖;默认只检查,不训练、不加载模型。基座须先准备好。发布用配置与代码做了路径和无关 import 的移植,记录在 data/manifest.json;历史训练清单原样保存在 provenance/original-training-manifest.json。相同硬件、软件和输入有助于复核,未承诺跨环境逐位重现生成。
| 固定 14 个验证输入,同提示词与贪心解码 | 训练前 | 训练后 |
|---|---|---|
| 通过结构检查 | 10 / 14 | 12 / 14 |
| 同时满足结构、正文长度等机械检查 | 3 / 14 | 7 / 14 |
七种语言的验证 token 损失下降约 4.1%–7.1%,日语约 5.0%。最终另生成 14 个保留测试输入,14 个通过结构检查,9 个同时通过正文长度等检查。上述数字是小样本格式和损失指标,不是语义正确率,也不是学习者记忆效果。
部分借出场景有改善,但当前模型仍有以下实际缺陷:
- 日语「確かめる」有时输出「確かめ」,漏掉结尾的「る」。
- 日语「犬」、法语 chat 等场景有重复句;pain 可能退化成只有“面包”的正文。
- 德语 Haus 的场景出现开窗后雨停的不合理因果。
- 俄语 продолжить 的场景出现“停下”与“没有停步”的矛盾。
原始输出完整保存在 evaluation/,具体观察见 evaluation/content-review.json。训练示范由同一助手编写并核查,尚无独立母语者或学习者验证。旧验证/测试样例此前已被查看,属于回归评估;新词条族也共享作者和任务模板。模型可能偏离完整拼写、给定义项及 JSON 约束,实际学习内容需要核对。
.\.venv\Scripts\python.exe -m unittest discover -s tests -v发布文件 SHA-256 与大小列在 release-manifest.json,额外提供 SHA256SUMS。测试检查权重、全部 499 条输入的提示词一致性、词条分组边界和续训输入哈希。
发布内容使用 Apache License 2.0,见 LICENSE 与 NOTICE。上游 Qwen3.5-9B 的归属及许可保留;该项目与上游作者没有隶属或背书关系。