RDK模型量化工具(RDK S100)

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

来自 user_a793e4ac 的 Agent Skill,适用于 主流 AI 客户端。

一句话选型结论

按资料字段整理

RDK模型量化工具(RDK S100)是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_a793e4ac/rdk-model-quantization
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_a793e4ac仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791737219
正文体量9.7 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
RDK模型量化工具(RDK S100)当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

9.7 KB
模型实际读到的说明书原文,来自技能仓库

BPU量化Skill - 完整总结

📦 Skill概述

本skill提供了将PyTorch/ONNX模型量化部署到地平线BPU(RDK S100P/S600)的完整工作流,基于Paraformer-large语音识别模型的成功实践。

🎯 核心成果

量化精度

  • Encoder: Cosine = 0.959 (default校准)
  • Predictor: Cosine = 0.9999
  • 文本准确率: 100%

性能提升

  • Encoder加速: 15.8x (179ms → 11.34ms)
  • Predictor加速: 107x (46ms → 0.43ms)
  • 端到端实时率: 6.5倍实时 (2秒处理13秒音频)

关键技术突破

  1. Stride对齐问题: 发现并修复,Cosine从0.157提升到0.959(提升510%)
  2. Predictor过拟合: 使用correction_factor=0.78完美解决尾部垃圾字符问题
  3. 校准策略: 验证5种校准方法,确认default为最优选择

📁 Skill目录结构

bpu-quantization/
├── README.md                      # 项目说明和使用指南
├── QUICKSTART.md                  # 5分钟快速入门
├── SKILL_SUMMARY.md              # 本文档
├── CHANGELOG.md                   # 更新日志
├── LICENSE                        # MIT许可证
├── requirements.txt               # Python依赖
│
├── templates/
│   └── encoder_config.template.yaml  # 配置模板
│
├── scripts/
│   ├── export_onnx.py             # ONNX模型导出
│   ├── generate_calibration_data.py # 校准数据生成
│   ├── quantize_model.py          # 模型量化
│   ├── verify_quantization.py     # 精度验证
│   └── correction_factor_cleanup.py # 后处理
│
├── docs/
│   ├── best_practices.md          # 最佳实践指南
│   └── troubleshooting.md         # 故障排除指南
│
└── examples/
    ├── README.md                  # 示例说明
    ├── simple_quantization.py     # 简单量化示例
    └── paraformer_quantization.md # Paraformer详细示例

🚀 快速开始

1. 环境准备

# 加载Docker镜像
docker load -i ai_toolchain_ubuntu_22_s100_s600_cpu_v3.7.0.tar

# 启动容器
docker run -it --rm \
  -v $(pwd):/workspace \
  -w /workspace \
  ai_toolchain_ubuntu_22_s100_s600_cpu:v3.7.0 \
  bash

# 安装依赖
pip install -r requirements.txt

2. 五步量化流程

# Step 1: 导出ONNX模型
python3 scripts/export_onnx.py \
    --model-path models/your_model.pt \
    --output-path models/your_model.onnx \
    --input-shape 1,300,560

# Step 2: 生成校准数据
python3 scripts/generate_calibration_data.py \
    --data-dir audio_data/ \
    --output-dir calibration_data/ \
    --num-samples 100

# Step 3: 量化模型
python3 scripts/quantize_model.py \
    --config configs/encoder_config.yaml \
    --output-dir output/

# Step 4: 验证精度
python3 scripts/verify_quantization.py \
    --original-model models/your_model.onnx \
    --quantized-model output/your_model.hbm \
    --test-data calibration_data/

# Step 5: 部署到板端
scp output/your_model.hbm root@<board-ip>:/root/models/

🔑 关键技术点

1. Stride对齐(最重要!)

问题: BPU要求stride-padded内存,直接memcpy会导致Cosine从0.959降到0.157

解决方案:

void set_input(int idx, const float* src_data, int64_t src_floats) {
    auto& tensor = inputs[idx];
    auto dlen = tensor.properties.validShape.numDimensions;

    if (dlen < 2 || tensor.properties.stride[1] <= 0) {
        memcpy(tensor.sysMem.virAddr, src_data, src_floats * sizeof(float));
        return;
    }

    int32_t T = tensor.properties.validShape.dimensionSize[1];
    int32_t D = tensor.properties.validShape.dimensionSize[dlen - 1];
    int32_t stride_bytes = tensor.properties.stride[1];
    int32_t row_bytes = D * sizeof(float);

    uint8_t* dst = reinterpret_cast<uint8_t*>(tensor.sysMem.virAddr);
    const uint8_t* src = reinterpret_cast<const uint8_t*>(src_data);

    for (int32_t r = 0; r < T; r++) {
        memcpy(dst + r * stride_bytes, src + r * row_bytes, row_bytes);
    }
}

2. Correction Factor后处理

问题: BPU Predictor过拟合,导致尾部垃圾字符

解决方案:

def correction_factor_cleanup(token_ids, alphas, correction_factor=0.78):
    bpu_alpha_sum = alphas.sum()
    corrected_count = int(round(bpu_alpha_sum * correction_factor))
    filtered_ids = [t for t in token_ids if t not in (0, 1, 2)]
    return filtered_ids[:corrected_count]

3. 校准策略选择

方法 Cosine 推荐度
default 0.959 ⭐⭐⭐⭐⭐
mix 0.954 ⭐⭐⭐⭐
max(p=0.9999) 0.953 ⭐⭐⭐
max(p=0.999) 0.809 ⭐
split5x10 0.914 ⭐

结论: 优先使用default方法

📊 验证结果

校准方法对比

default: Cosine = 0.959 ✅ 推荐
mix: Cosine = 0.954
max(p=0.9999): Cosine = 0.953
max(p=0.999): Cosine = 0.809 ❌ 不推荐
split5x10: Cosine = 0.914 ❌ 不推荐

板端推理性能

模块 FP32 INT8 (BPU) 加速比
Encoder 179ms 11.34ms 15.8x
Predictor 46ms 0.43ms 107x
端到端 ~3000ms ~2000ms 1.5x

文本识别结果

参考文本 (65字): 
正是因为存在绝对正义所以我们接受现实的相对正义但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义

BPU推理结果 (correction_factor=0.78):
正是因为存在绝对正义所以我们接受现实的相对正义但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义

✅ 完全匹配!

🎓 最佳实践

1. 校准数据

  • 数量: 50-100个代表性样本
  • 多样性: 不同说话人、语速、噪声环境
  • 长度: 与推理时一致

2. 量化参数

calibration_parameters:
  calibration_type: 'default'  # 推荐
  num_samples: 100

compiler_parameters:
  optimize_level: 'O2'  # 开发阶段
  # optimize_level: 'O3'  # 生产部署

3. 板端部署

  • ✅ 使用stride-aware数据拷贝
  • ✅ 执行3次warmup
  • ✅ 应用correction_factor后处理
  • ❌ 避免直接memcpy
  • ❌ 避免首次推理不warmup

🛠️ 脚本说明

export_onnx.py

导出PyTorch模型为ONNX格式

python3 scripts/export_onnx.py \
    --model-path models/model.pt \
    --output-path models/model.onnx \
    --input-shape 1,300,560

generate_calibration_data.py

生成BPU量化校准数据

python3 scripts/generate_calibration_data.py \
    --data-dir audio_data/ \
    --output-dir calibration_data/ \
    --num-samples 100

quantize_model.py

执行BPU量化

python3 scripts/quantize_model.py \
    --config configs/encoder_config.yaml \
    --output-dir output/

verify_quantization.py

验证量化精度

python3 scripts/verify_quantization.py \
    --original-model models/model.onnx \
    --quantized-model output/model.hbm \
    --test-data calibration_data/

correction_factor_cleanup.py

后处理去除尾部垃圾token

python3 scripts/correction_factor_cleanup.py \
    --token-ids output_tokens.txt \
    --alphas output_alphas.npy \
    --correction-factor 0.78

📚 文档导航

初学者

  1. 阅读快速入门 - 5分钟上手
  2. 运行简单示例 - 完整流程
  3. 查看README - 详细说明

进阶用户

  1. 阅读最佳实践 - 优化技巧
  2. 研究Paraformer示例 - 真实案例
  3. 查看故障排除 - 问题解决

高级用户

  1. 研究scripts/源码 - 深入理解
  2. 修改配置模板 - 自定义参数
  3. 尝试不同校准方法 - 探索优化

🔍 故障排除

常见问题

问题 原因 解决方案
Cosine < 0.5 Stride对齐问题 使用stride-aware拷贝
尾部垃圾字符 Predictor过拟合 应用correction_factor
推理延迟高 未warmup 执行3次warmup
特征不一致 提取参数错误 对齐CMVN/LFR参数

详见故障排除指南

📈 学习曲线

时间线:
Day 1: 阅读QUICKSTART.md,运行简单示例
Day 2: 研究Paraformer示例,理解关键技术
Day 3: 尝试自己的模型,应用最佳实践
Day 4: 优化性能,解决遇到的问题
Day 5: 掌握完整流程,可以独立部署

💡 经验总结

成功的关键因素

  1. 优质的校准数据 - 代表性、多样性、数量充足
  2. 正确的Stride对齐 - 这是最常见的错误
  3. 完整的验证流程 - Cosine验证 + 业务指标验证
  4. 合适的后处理 - correction_factor解决尾部垃圾

避免的陷阱

  1. ❌ 忽略Stride对齐 → Cosine大幅下降
  2. ❌ 校准数据太少 → 精度不稳定
  3. ❌ 未做Warmup → 首次推理延迟高
  4. ❌ 特征提取不一致 → 识别错误
  5. ❌ 忽略后处理 → 尾部垃圾字符

🎉 成功案例

Paraformer-large (225M参数)

  • ✅ Cosine = 0.959
  • ✅ 文本准确率 = 100%
  • ✅ Encoder加速15.8x
  • ✅ Predictor加速107x
  • ✅ 实时率6.5倍

🤝 贡献

欢迎贡献你的经验和改进!

  1. Fork本项目
  2. 添加你的示例或改进
  3. 提交Pull Request
  4. 在地平线论坛分享经验

📞 支持

  • 文档: 查看本skill的完整文档
  • 论坛: 地平线论坛
  • Issue: 提交GitHub Issue
  • 邮件: 联系技术支持

📄 许可证

MIT License - 详见LICENSE


版本: 1.0.0
更新日期: 2026-06-06
维护者: BPU Quantization Team

常见问题

5 问
答案由本站依据条目字段整理
RDK模型量化工具(RDK S100)怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_a793e4ac/rdk-model-quantization。安装方式为未标注。装完刷新技能列表或重开客户端。

RDK模型量化工具(RDK S100)支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

RDK模型量化工具(RDK S100)权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

RDK模型量化工具(RDK S100)收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

RDK模型量化工具(RDK S100)用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。