嵌入式怎么抱紧AI大腿

AI给嵌入式带来的改变:从挑战到新机遇

传统嵌入式开发遇到的难题:

算力和资源不匹配:AI 技术不断进步,像 CNN、RNN 这些 AI 模型,对计算资源的要求越来越高。但嵌入式设备因为使用场景的关系,一般都得做到低功耗、小内存 。

比如说,一个普通的 CNN 模型运行起来,可能需要好几 GB 的内存和很厉害的计算核心支持,可大多数嵌入式设备的内存也就几十 MB 甚至更少,计算能力也不强。这么大的差距,让传统嵌入式开发在运行 AI 模型时困难重重。

开发思路大转变:以前的嵌入式开发,主要是按照确定的规则来编程,用 if - else 这样的条件语句实现各种功能。

但 AI 开发不一样,它靠数据驱动,得收集、整理、标注大量数据,然后训练和优化模型。这种开发思路的改变,要求开发者不能只盯着程序逻辑设计,还要更加关注数据质量和模型性能。

工具跟不上:以前嵌入式开发者用惯的工具,在面对 AI 开发时就不好使了。他们得去适应新的 AI 框架,像 TensorFlow Lite、PyTorch Mobile,还有边缘计算工具。

AI 给嵌入式带来的新机会

边缘智能兴起:AI 技术往边缘端发展,在本地设备上进行 AI 推理变得越来越重要。就像人脸识别门禁系统、语音唤醒设备,在本地就能完成 AI 推理,不用老是依赖云端,反应更快,还更能保护隐私。

据 ABI Research 预测,到 2026 年,边缘 AI 芯片市场规模会达到 [X] 亿美元,每年增长超过 [X]%,这足以看出边缘智能市场潜力巨大。

硬件升级:AI 专用芯片(NPU、TPU)越来越普及,让嵌入式设备的 AI 处理能力更强了。

比如 STM32 AI 套件,把 STM32 微控制器低功耗、高性能的特点,和 AI 加速功能结合起来,开发者用它就能很容易在嵌入式设备上实现 AI 应用。

还有树莓派搭配 Edge TPU,也给开发者提供了方便的 AI 开发平台。

应用场景变多:智能家居、工业预测性维护、自动驾驶感知层等领域,对嵌入式 AI 的需求一下子就爆发了。

在智能家居里,有了嵌入式 AI 技术,智能音箱识别语音、理解语义更准;在工业领域,实时分析设备运行数据,能提前预测设备故障,减少停机时间;

在自动驾驶感知层,嵌入式 AI 能快速识别路况、行人和车辆,保障行车安全。

嵌入式开发者怎么转型?4个关键方法

方法1:补充 AI 基础知识

(1) 入门必学:机器学习基础,包括监督学习和无监督学习,这是理解 AI 算法的基础。开发者得掌握不同机器学习算法的原理和适用场景,

比如决策树、支持向量机、聚类算法这些。神经网络原理是深入了解 AI 的关键,得弄明白神经元怎么工作、神经网络的结构和训练方法。

另外,从数据预处理到模型评估、优化的整个模型训练流程,也得了解清楚.

(2) 轻量化技术:因为嵌入式设备资源有限,掌握模型压缩技术就特别重要。量化就是降低数据的表示精度,在不太影响模型性能的情况下,减少计算量和内存占用;剪枝是去掉模型里不重要的连接或神经元,简化模型结构;

知识蒸馏是把大模型的知识转移到小模型里,提升小模型的性能。TinyML 技术专注在资源少的微控制器上实现 AI 应用,开发者要学会把复杂的 AI 模型适配到这些小设备上。

(3) 推荐工具:Edge Impulse 是个不用写代码的嵌入式 AI 平台,从收集数据、训练模型到部署,一站式服务,特别适合新手快速上手。OpenMV 是专门用来做机器视觉开发的开发板,集成了摄像头和很强的图像处理能力,配合 Python 语言,开发者能轻松实现各种机器视觉应用。

方法2:提升软硬协同优化能力

(1) 选对硬件:选支持 AI 加速的 MCU 是实现嵌入式 AI 应用的重要一步。比如 ESP32 - S3,它里面有神经网络处理器(NPU),能高效处理 AI 任务,还能保持低功耗运行。NXP i.MX RT 系列计算能力强,外设接口也丰富,是嵌入式 AI 开发的热门选择。

(2) 适配模型:把 AI 模型转换成嵌入式设备能兼容的格式,像 ONNX、TFLite,这样模型就能在嵌入式设备上正常运行。转换的时候,要优化模型,减少内存占用,提高推理速度。比如说,通过模型量化技术,可以把 32 位浮点数模型变成 8 位整数模型,既能降低内存占用,还能提高计算效率。

(3) 控制能耗:在嵌入式设备里,能耗控制一直是个重要问题。通过动态电压频率调整(DVFS)技术,根据设备的工作负载,实时调整电压和频率,既能保证算力需求,又能最大程度降低功耗。设备空闲的时候,就降低电压和频率,减少能耗;有 AI 任务要处理时,再提高电压和频率,满足计算需求。

方法3:专注垂直领域场景

工业领域:设备故障预测是工业里的一个重要应用场景。在设备上装上振动传感器,实时采集设备的振动数据,再用时序模型分析,就能提前预测设备可能出现的故障。视觉质检在工业生产里也必不可少,用 YOLO Tiny 等轻量级目标检测模型,搭配摄像头模组,能快速准确检测产品缺陷。

消费电子:语音交互在消费电子领域已经很常见了,像智能音箱、智能手表。通过 Wake Word Detection 技术,设备能准确识别用户的唤醒词,快速做出响应。手势控制也是个热门方向,用 CNN 结合 IMU 传感器,能识别和解析用户的手势,让交互更方便。

农业与环保:在农业领域,边缘端图像分类技术可以用来识别病虫害。在农田里安装摄像头,实时采集农作物图像,用 AI 模型分析,就能及时发现病虫害,采取防治措施。在环保领域,把温湿度等传感器数据融合起来,结合 AI 预测模型,能实时监测和预测环境变化。

方法4:参与开源社区和实战

学习资源:Kaggle 上的微型竞赛给开发者提供了实践 AI 技术的平台,比如 MCU 图像分类竞赛,开发者能在竞赛里学到最新算法和技术,还能和其他开发者交流经验。

GitHub 上也有很多嵌入式 AI 项目,把这些项目复现一遍,开发者就能深入了解嵌入式 AI 的开发流程和技术要点。

开发板实战:用 Arduino Nano 33 BLE Sense 可以实现关键词识别,这个开发板集成了多种传感器和蓝牙低功耗功能,很适合开发语音识别应用。

Jetson Nano 是功能强大的 AI 开发板,在上面部署目标检测模型,开发者能深入了解 AI 模型在嵌入式设备上的部署和优化过程。

嵌入式软件工程师面试完全指南

面经一共32篇文章,12w+字数,包含全部最新的面试必问考点,4.7w+同学学习,3300+订阅,非常适合在找工作面经薄弱的同学,销量即是口碑,提前订阅提前享受,持续更新中。

原帖链接:https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM

全部评论

相关推荐

给我面没招了,感觉自己好菜、面试很难,还是要多多练习1.项目拷打2.你的知识库数据是如何清洗和构造的?如果数据质量参差不齐会对 RAG 系统产生哪些影响?3.文档切分策略是如何设计的?chunk size 和 overlap 会如何影响召回质量和生成效果?4.如果用户的问题在知识库中确实存在,但系统经常没有召回正确文档,你会如何排查?5.如果检索到的文档是正确的,但模型最终生成的答案仍然是错误的,你会如何定位问题?6.实际系统中,如果召回结果经常语义相似但事实不相关,你会如何优化检索模块?7.如果一个问题需要跨多个文档的信息才能回答,你的 RAG 系统如何处理这种情况?8.在 RAG 系统中如何判断问题出在检索模块还是生成模块?9.请详细说明 Transformer 从输入 token 到输出 logits 的完整计算流程。10.FFN 层为什么采用“先升维再降维”的结构,这种设计对模型表达能力有什么作用?11.MHA、MQA、GQA 在推理阶段的 KV Cache 占用和计算效率上有什么差异?12.为什么推理阶段 KV Cache 只缓存 K 和 V,而不缓存 Q?13.RoPE 的核心原理是什么,它在长上下文场景下会遇到什么问题?14.instruction tuning 中多轮对话数据训练时,loss mask 应该如何设计?15.如果 SFT 之后模型在特定任务上能力增强,但通用能力明显下降,你会如何解决?16.LoRA 的低秩分解为什么能够逼近全参数微调的效果?17.如果 LoRA 的 rank 设置不合理,在模型表现上会出现什么现象?18.DPO 训练后模型输出明显变长,在实际系统中你会如何处理?19.如果对齐之后模型变得过于保守,经常拒绝回答,你会如何调整训练策略?20.大模型出现复读机现象通常由哪些因素导致?
点赞 评论 收藏
分享
继续来分享下最近的面经~欢迎友好讨论,信息共享1. Transformer 为什么能替代 RNN 成为大模型主流架构?2. Self-Attention 的计算过程是什么,时间复杂度为什么高?3. Multi-Head Attention 的作用是什么,为什么要分多个头?4. 位置编码为什么必要,绝对位置编码和相对位置编码有什么区别?5. 什么是 KV Cache,它为什么能显著提升推理效率?6. Prefix Cache 和 KV Cache 有什么区别,分别适合什么场景?7. 为什么大模型推理通常是 memory bound,而不是 compute bound?8. Batch 推理和单请求推理的吞吐与延迟 tradeoff 是什么?9. Continuous Batching 解决了什么问题,为什么对推理服务很重要?10. Prefill 和 Decode 两个阶段的性能瓶颈分别在哪里?11. 大模型采样里的 temperature、top-k、top-p 分别会怎样影响输出?12. 贪心解码、束搜索、随机采样分别适合什么生成任务?13. 重复惩罚和长度惩罚分别是为了解决什么问题?14. 为什么模型有时会出现“复读机”现象,通常怎么缓解?15. 量化是什么,INT8、INT4、FP16 的核心区别是什么?16. 推理量化会对模型效果造成什么影响,如何评估是否值得量化?17. 张量并行、流水线并行、数据并行分别适合哪个阶段?18. 单机多卡部署大模型时,通信开销主要来自哪里?19. 为什么 GPU 显存是大模型部署的核心约束之一?20. 模型参数量、上下文长度、并发数三者之间是什么关系?21. 什么是 MoE 模型,为什么它能在参数规模很大时控制推理成本?
查看21道真题和解析
点赞 评论 收藏
分享
03-30 18:50
门头沟学院 Java
给我面没招了,发点面经攒攒人品~1. 实习拷打2. 项目拷打3. 你的检索是否基于向量实现,搭建完整的 RAG 系统会涉及哪些核心部分?4. RAG 项目的文档上传和分块是怎么实现的?5. 向量检索召回的单次耗时是多久,有没有用到Rerank模型?6. 你如何评估检索召回内容与用户问题的匹配度,有没有做相关的效果评估?7. 你对 Agent 的理解是什么,它包含哪些核心模块?8. 是否了解 Agent 的设计范式,例如ReAct 范式?9. 你的 Agent 循环一般多少步可以完成任务,有没有出现过达到最大步数仍无法完成的情况?10. 你的 Agent 目前接入了哪些工具?11. 你是如何约定并约束大模型进行工具调用的?12. 你的项目推流是否使用 SSE?13. 你的 Agent 编排流程中有没有做 Plan 阶段?14. 从协议层面,介绍 SSE、WebSocket 与 HTTP 的区别和关联?15. 项目为什么限制每个用户只能上传单个文件?16. 项目的图像识别如何实现的,为什么不用多模态大模型,而选择传统的识别模型?17. 你的项目中用到了哪些大语言模型?18. 请介绍 Go 语言的并发和其他语言并发的区别?19. Goroutine 是什么,请介绍一下它的核心原理?20. 你对锁的理解是什么,锁是解决什么问题的?21. 日常开发中用哪种锁更多,还了解哪些后台开发常用的锁?22. 多机器、多进程场景下会涉及到哪些锁,是否了解分布式锁?23. 你对 MCP、Function Call、A2A 分别是怎么理解的?24. 你的项目接入了哪些 MCP 服务?有没有本地手写过 MCP 服务?25. 你日常开发会借助哪些 AI 工具?26. 使用这些工具的心得以及是否有写过相关的 command/skill?27. Claude Code 的实现原理?28. 是否了解OpenClaw以及了解它的实现原理?
LambertCla...:Claude Code实现原理都来了,难道是预测到了这波源码泄露
查看26道真题和解析
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务