骁龙大赛 - 技术分享第 5 期(下)

6.如果模型结构是自定义的(非主流架构),在 NPU 上部署会不会很困难?是否支持自定义算子?
答复:我们的 QAIRT 是支持自定义算子的,正如第一个问题中提到的,只要模型能够通过 TensorFlow,PyTorch 或 ONNX Runtime 推理,基本都能转换到 NPU 上来运行。支持自定义算子。只要模型能在 TensorFlow、PyTorch 或 onnx runtime 推理,一般都可以转换上 NPU。
7. AppBuilder 是否支持模型蒸馏或知识蒸馏?
答复:请注意, QAI AppBuilder 是专门用来在高通平台的 NPU 上加载模型并进行推理的工作,不支持训练模型或对模型进行蒸馏。不支持。AppBuilder 专注于模型推理部署,不包含训练相关能力。
8. GitHub 示例代码里的性能 benchmark 靠谱吗?实际项目中能达到那个水平吗?
答复:仅供参考。Benchmark 通常在“理想环境”(清空后台、散热良好、特定系统版本)下测得。实际项目中受限于设备散热、后台负载和系统资源竞争,性能通常会打折,建议预留 10%-20%的余量。
9.老师能讲讲模型转换的完整 pipeline 吗?从训练到部署中间有哪些坑要注意?
答复:流程通常是:训练(PyTorch/TF) ->导出(ONNX) ->量化/转换(QNN 工具链) ->端侧部署(.qnn/.so)。
坑:最常见的是算子不支持(导致回退 CPU,极其缓慢)和量化掉点(精度损失严重,需校准数据调优)。
10.老师,想问一下刚刚分享的工作流的结点底层用的什么原理?以及用到的库有哪些?
答复:N/A
11.老师 AppBuilder 跟其他推理引擎(比如 TensorRT、OpenVINO)相比,在骁龙平台上的优势在哪?
答复:核心优势是硬件原生支持。TensorRT 专为 NVIDIA GPU 设计,OpenVINO 专为 Intel 芯片设计,它们无法调用骁龙的 NPU。QAI AppBuilder/QNN 是骁龙 NPU 的原生指令集,能效比和速度是最高的。
12. LangFlow 跟传统的 LangChain 比,在本地部署上有啥优势?灵活性会不会差一些?
答复:优势在于可视化,降低了原型搭建和调试的门槛。灵活性确实不如纯代码(LangChain),对于复杂的自定义逻辑,LangFlow 可能需要手写 Custom Component(自定义组件)来实现。LangFlow 中很多可视化组件其实是直接调用 LangChain 实现的。
13.遇到内存溢出或者显存不足有没有动态 batch、gradient checkpoint 这些技术可以用?
答复:Gradient Checkpoint 是训练技术,推理阶段用不上。 推理阶段显存不足,建议使用:模型量化(INT8/INT4)、分块推理、或者限制上下文(Context)长度。动态 Batch 主要提升吞吐量,对降低单次请求的峰值显存帮助有限。
14. NPU 的算力跟最新的 GPU 比怎么样?适合跑 Transformer 架构的模型吗?
答复:绝对算力低于桌面级独立显卡,但能效比(性能/功耗)远超 GPU。NPU 非常适合 Transformer,因为其专门针对 Transformer 核心的大规模矩阵乘法做了硬件级优化。
15.边缘设备上部署这套方案,稳定性和功耗表现如何?适合 24 小时运行吗?
答复:NPU 的功耗远低于 CPU 和 GPU,发热较小,理论上非常适合 24 小时常驻运行。但实际稳定性还取决于设备的被动散热设计,如果散热不佳,长时间满载可能会触发降频。
16. NPU 的调度机制是怎样的?会不会互相抢资源?
答复:会有资源竞争。NPU 资源通常由底层驱动(QNN/Hexagon)管理。如果多个应用或多个模型同时请求 NPU,系统会根据优先级排队或分时调度。建议在应用层做串行化处理,避免多线程并发抢占导致延迟抖动。







评论