8bit量化使用指南
8bit量化使用指南
开始
小程序AI通用接口是由官方提供的通用AI模型推理方案,支持Int8模型量化推理。可显著提升模型推理性能并减小模型的存储和计算开销。
本指南将展示如何通过该技术优化浮点分类Demo。
1. 准备
- 请下载模型量化工具,并安装依赖。
git clone https://github.com/wechat-miniprogram/xnet-miniprogram.git && cd xnet-miniprogram/nncs && pip install -r requirements.txt
- 请下载ImageNet数据集,或者ImageNet-mini。
- 请下载预训练模型Mobilenetv2。目录
ImageNet
|---train
| |---n01440764
| |---n01443537
| |---...
| |---n15075141
|---val
| |---n01440764
| |---n01443537
| |---...
| |---n15075141
nncs
|---nncs
|---demo
| |---imagenet_classification
|---requirements.txt
|---README.md
mobilenet-v2-71dot82.onnx
2. 量化训练示例
- 参考代码: demo/imagenet_classification/train_imagenet_onnx.py
- 修改数据来源和ONNX路径:
...
args.train_data = "/data/yangkang/datasets/ImageNet"
args.val_data = "/data/yangkang/datasets/ImageNet"
...
model = "mobilenet-v2-71dot82.onnx"
- 运行量化训练
cd demo/imagenet_classification && python train_imagenet_onnx.py
- 日志样例: demo/imagenet_classification/nncs_onnx_lr1e-5.logfile,浮点模型精度71.82,QAT微调之后精度71.52。
- 量化模型导出: mobilenetv2_qat.onnx
python deploy.py
- 量化方案支持: 量化感知训练(QAT)和后训练量化(PTQ)
3. 小程序Demo
量化分类的Demo借鉴了浮点分类Demo。需注意的区别是:
this.session = wx.createInferenceSession({
model: modelPath,
precisionLevel : 0,
allowNPU : false,
allowQuantize: true, // 需设置为true,激活量化推理
});
4. 运行效果
扫描下方二维码,点击接口-通用AI推理能力-mobileNetInt8, 可以查看运行效果。
运行 demo,可以看到摄像头在采集同时,将会实时地将分类结果写回到页面下方。
完整 demo 请参考官方github小程序示例
5.开启耗时测试
data: {
predClass: "None",
classifier: null,
enableSpeedTest: true, // 设置true
avgTime: 110.0,
minTime: 110.0
},
iphone13ProMax,浮点分类Demo的耗时约10ms,量化分类Demo耗时约5ms。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具