一、课程导论与硬件选型:为什么要在嵌入式设备上跑大模型?
各位同学,欢迎来到《嵌入式设备大模型推理部署实战》的第一课。
先问大家一个问题:大模型动辄几十GB,跑在云端服务器上不香吗?为什么非要折腾到嵌入式设备上?
我当年第一次接到这个需求时,也觉得有点反直觉。但后来发现,现实场景逼着你这么做。举个例子,你做一个智能摄像头,需要实时检测画面中的异常行为。如果每帧画面都上传云端,延迟不说,网络一断就抓瞎。更别提数据隐私问题——有些客户明确要求,所有推理必须在本地完成,数据不能出设备。
说白了,嵌入式端侧推理的核心价值就三个字:低延迟、高隐私、离线可用。
核心观点:大模型上嵌入式设备,不是为了炫技,而是为了解决「最后一公里」的实际问题。云端负责训练,端侧负责推理,这才是未来的分工。
1.1 嵌入式AI芯片的江湖格局
市面上的嵌入式AI芯片,我大致分成四类。每一类都有自己的脾气,选型时千万别搞混。
| 芯片平台 | 算力(TOPS) | 内存 | 功耗 | 典型价格 | 适合场景 |
|---|---|---|---|---|---|
| NVIDIA Jetson Orin NX | 70 TOPS | 8-16GB LPDDR5 | 15-25W | ¥3000+ | 机器人、自动驾驶、复杂视觉 |
| Rockchip RK3588 | 6 TOPS (NPU) | 4-16GB LPDDR4X | 5-10W | ¥500-1500 | 边缘计算、智能家居、工业检测 |
| 树莓派 5 (BCM2712) | 0.5 TOPS (GPU) | 4-8GB LPDDR4X | 5-7W | ¥400-600 | 原型验证、教育、轻量级推理 |
| Google Coral TPU | 4 TOPS | 1GB LPDDR4 | 2-3W | ¥300-500 | 超低功耗、固定模型推理 |
这张表我建议你收藏。每次选型前拿出来对照一下,能省不少弯路。
1.2 算力、内存、功耗的三角权衡
做嵌入式AI选型,本质上是在算力、内存、功耗这三个维度上找平衡。我习惯用一个三角模型来思考:
你看这张图,每个芯片在三角形里的位置,就代表了它的「性格」。Jetson 偏算力,功耗也高;Coral TPU 偏低功耗,但内存小得可怜。选型时,你得先问自己三个问题:
- 模型多大? 1B 参数以下的小模型,RK3588 或树莓派就能搞定。7B 以上的大模型,基本只能上 Jetson。
- 延迟要求多高? 实时视频流要求毫秒级响应,那就别指望树莓派了。
- 供电条件如何? 电池供电的设备,功耗必须控制在 10W 以内。
我的经验: 如果预算充足,直接上 Jetson Orin NX 16GB 版本。我去年做的一个巡检机器人项目,一开始选了 RK3588,结果模型量化后精度掉得厉害,最后不得不换 Jetson。多花了钱,但省了时间。
1.3 各平台深度解析
NVIDIA Jetson 系列
Jetson 是嵌入式AI领域的「大哥大」。它最大的优势是生态——CUDA、TensorRT、DeepStream 这些工具链非常成熟。我习惯用 TensorRT 做模型优化,INT8 量化后推理速度能提升 3-5 倍。
但要注意,Jetson 的功耗不低。Orin NX 满载能到 25W,散热是个大问题。我见过有人用 Jetson 做手持设备,结果散热片烫得能煎鸡蛋。
避坑指南: 我曾经在一个项目中,为了省成本选了 Jetson Nano(4GB 版本)。结果模型加载完就占用了 3.8GB 内存,跑一次推理要 2 秒。后来换成 8GB 版本才解决问题。所以,内存宁大勿小。
Rockchip RK3588
RK3588 是国产芯片里的「性价比之王」。它内置的 NPU 能提供 6 TOPS 算力,功耗只有 5-10W。我最近在做一个智能门禁项目,用的就是 RK3588。部署一个 MobileNet 级别的模型,推理延迟在 30ms 以内,完全够用。
但 RK3588 的 NPU 编程比较麻烦。它不支持 CUDA,只能用 Rockchip 自己的 RKNN 工具链。如果你习惯用 PyTorch,需要先把模型转成 ONNX,再转成 RKNN 格式。中间可能遇到算子不支持的问题。
树莓派 5
树莓派 5 的 GPU 算力只有 0.5 TOPS,跑大模型基本没戏。但它有一个独特的优势——社区生态。你遇到任何问题,网上几乎都能找到答案。我建议初学者先用树莓派跑通流程,再迁移到其他平台。
举个例子,用树莓派跑一个 TinyLLaMA(1.1B 参数)模型,量化后大概需要 2GB 内存,推理速度在 5-10 token/s。虽然慢,但至少能跑起来。
Google Coral TPU
Coral TPU 是「专一型选手」。它只适合跑固定结构的模型,比如 MobileNet、EfficientNet。优点是功耗极低(2-3W),适合电池供电的设备。缺点是内存只有 1GB,大模型根本放不下。
我曾在一个人脸识别门禁项目里用过 Coral TPU。模型量化后只有 5MB,推理延迟 10ms,效果非常好。但如果你想换模型,就得重新编译,灵活性很差。
1.4 选型决策流程
说了这么多,到底怎么选?我总结了一个四步决策法:
- 确定模型规模:你的模型参数量是多少?需要多少内存?
- 评估延迟要求:实时性要求多高?能否接受 1 秒以上的延迟?
- 计算功耗预算:设备是插电还是电池供电?散热条件如何?
- 考虑开发成本:团队熟悉什么工具链?有没有现成的代码库?
举个例子,如果你要做一个人脸识别门禁:
- 模型:MobileNet(5MB,INT8 量化)
- 延迟:< 100ms
- 功耗:< 10W(插电)
- 开发:团队熟悉 PyTorch
这种情况下,RK3588 是最优解。如果团队熟悉 CUDA,Jetson Nano 也可以。
我的建议: 初学者先从树莓派或 RK3588 入手。这两个平台资料多,踩坑成本低。等跑通了流程,再考虑上 Jetson 做高性能部署。
1.5 本章小结
这一章我们聊了嵌入式设备跑大模型的必要性,也对比了主流芯片的优劣。核心就一句话:没有最好的芯片,只有最合适的芯片。
选型时,别只看算力。内存和功耗往往才是真正的瓶颈。我见过太多人买了 Jetson 回来,发现散热搞不定,最后只能降频使用,性能还不如 RK3588。
下一章,我们会深入 RK3588 平台,手把手教你搭建开发环境,部署第一个模型。到时候,我会分享一些 RKNN 工具链的踩坑经验。