Convora · 卷语
面向多种 NPU 的卷积语言模型,采用 TCN + Engram + Delta Lite。目前已在 Rockchip RV1103 / Luckfox Pico 上验证。
模型
| 项目 | 配置 |
|---|---|
| 参数量 | 9.29M |
| 骨干 | 8 层 TCN,256 通道,6400 词表 |
| 记忆 | Engram + Delta Lite(4 头 × 32 维) |
| TCN 感受野 / 聊天输入上限 | 133 / 512 tokens |
训练流程为 1 epoch 预训练 → 2 epoch SFT → 30 分钟 Delta QAT。fakeQ 覆盖 Delta 权重、激活和递归状态,骨干与输出头采用 PTQ。
文件
| 路径 | 用途 |
|---|---|
models/float/qat-final.pt |
最终浮点学习权重及 QAT 网格 |
models/float/sft-before-qat.pt |
QAT 前 SFT 浮点权重 |
models/rknn/model.rknn |
已板测的兼容 RKNN 图 |
models/rknn/{embedding.f32,memory.i8,memory_scale.f32} |
RKNN 配套 CPU 查表 |
models/onnx/ |
浮点图、原 QDQ 图和最终 compatible.onnx |
models/tokenizer.json |
tokenizer |
tests/fixtures/ |
260 步数值诊断的输入、输出与参考 |
.pt 使用代码仓库中的自定义加载器,不含 optimizer,不能直接恢复训练。RKNN 与 CPU 表须配套使用。文件 SHA256 见 ARTIFACTS.json。
下载与运行
Linux / WSL,Python 3.10:
git clone https://github.com/goxtopia/convora.git
cd convora
pip install -r requirements-cpu.txt huggingface_hub
hf download heyanzhuo/convora --local-dir . \
--include 'models/**' 'tests/fixtures/**'
python scripts/verify_release.py --artifacts
python scripts/infer_float.py --prompt '你好' --max-new-tokens 80
python tests/offline.py --out outputs/offline.json
仅需推理时可只下载 models/**。板端运行所需 Rockchip 库需从匹配 SDK 获取。
RV1103 测试
RKNN 1.6.0、driver 0.9.2、CMA 12 MiB;误差基于 260-token 递归闭环。
| 指标 | 原 QDQ 图 | 最终兼容图 |
|---|---|---|
| logits NRMSE 对浮点参考 | 32.096% | 4.400% |
| state NRMSE 对浮点参考 | 126.146% | 14.483% |
| top1 与浮点参考相同 | 75/260 | 228/260 |
最终兼容图 NPU 定长闭环约 286 steps/s,RSS 10,272 KiB、DMA 4,560 KiB。
这些是数值一致性和吞吐测试。严格量化精度与长记忆验收尚未通过,回答可能跑题或重复。完整结果见测试总结。