36 lines
1.8 KiB
Markdown
36 lines
1.8 KiB
Markdown
# 2026-07-01
|
||
|
||
## 发布 minicpm crates 到 Gitea Cargo Registry
|
||
|
||
- 修改了三个 crate 的 `Cargo.toml`:添加 `publish = ["gitea"]`,并为 `minicpm-convert` 和 `minicpm-inference` 的 `minicpm-core` 依赖添加 `version = "0.1.0", registry = "gitea"`
|
||
- Gitea registry: `sparse+http://macrocc.com:3000/api/packages/macrocc/cargo/`,registry 名称为 `gitea`
|
||
- `minicpm-core@0.1.0` 已存在于 registry,跳过发布
|
||
- `minicpm-convert@0.1.0` 发布成功
|
||
- `minicpm-inference@0.1.0` 发布成功
|
||
|
||
## burn 最小依赖 + 重发布 (0.1.1)
|
||
|
||
- burn 改为 `default-features = false, features = ["std"]`,移除 `wgpu`(wgpu 交给下游 binary 选择)
|
||
- 三个 crate 版本升级到 0.1.1,convert/inference 的 minicpm-core 依赖也更新到 0.1.1
|
||
- 发布顺序:`cargo publish --allow-dirty --registry gitea -p minicpm-core` → `minicpm-convert` → `minicpm-inference`
|
||
- 全部发布成功
|
||
|
||
## 添加流式输出
|
||
|
||
- `minicpm-inference/src/lib.rs`: 新增 `generate_stream` 函数和 `MiniCPM::generate_stream` 方法,每 token 通过回调 `impl FnMut(&str)` 输出解码文本
|
||
- `examples/minimal-inference/src/main.rs`: 改为流式调用,`print!` + `flush` 实时输出
|
||
|
||
## 升级 0.1.2 重新发布(含流式功能)
|
||
|
||
- minicpm-core, minicpm-convert, minicpm-inference 全部升级到 0.1.2
|
||
- 发布全部成功
|
||
|
||
## Q8 量化导出和加载
|
||
|
||
- `minicpm-convert`: 新增 `export_model_q8`,2D 权重 per-tensor INT8 量化(scale = max(|f|)/127),1D norm 权重存 F16;输出 `model.q8.json` + `model.q8.bin`
|
||
- `minicpm-inference`: 新增 `MiniCPM::load_q8`,加载 Q8 模型并在内存中反量化为 f32 推理;新增依赖 `memmap2`、`serde`、`serde_json`
|
||
- `examples/convert`: 支持 Q8 导出
|
||
- `examples/minimal-inference`: 支持 `--full|--half|--q8` 三种模式
|
||
- 量化方式:`q = clamp(round(f / scale), -127, 127)`,`f' = q * scale`
|
||
|