一、嵌入式AI与Ollama概述
大家好,我是你们的老朋友。做嵌入式Linux系统移植有些年头了,这几年AI大模型火得一塌糊涂。说实话,我一开始也觉得这东西离嵌入式很远——动辄几十GB的模型,怎么塞进只有几百兆内存的板子里?
但后来我发现,我错了。而且错得挺离谱。
今天这第一节课,咱们先聊聊大背景。不急着动手,先把方向搞清楚。
1.1 AI模型在边缘设备上的部署趋势
先问一个问题:为什么要把AI模型放到边缘设备上?
你想想看,如果每个智能设备都要连到云端才能做推理,延迟、带宽、隐私都是大问题。我去年帮一个客户做工业视觉检测,现场网络环境极差,云端推理延迟动不动就两三秒。后来我们把模型直接部署到边缘盒子,延迟降到了50毫秒以内。
这就是趋势——AI正在从云端走向边缘。
具体来说,有这几个明显的变化:
- 模型小型化:从GPT-3到TinyLlama,模型体积缩了上百倍
- 硬件加速普及:NPU、GPU、DSP,嵌入式芯片越来越能打
- 推理框架成熟:ONNX Runtime、TensorRT Lite、Ollama,工具链越来越顺手
- 场景碎片化:智能家居、工业检测、车载边缘、医疗终端,每个场景都有需求
核心观点:边缘AI不是云端的替代品,而是互补品。云端负责训练,边缘负责推理。这个分工在未来几年会越来越清晰。
1.2 Ollama是什么
Ollama,说白了就是一个本地大模型运行工具。
它的设计理念很简单:让你在本地跑LLaMA、Mistral、Qwen这些模型,就像在本地跑一个普通程序一样简单。
我刚开始接触Ollama时,第一反应是:这不就是个封装好的推理引擎吗?后来深入用了才发现,它远不止如此。
Ollama的核心能力包括:
- 模型管理:一键下载、切换、删除模型
- 推理加速:支持GPU、CPU、NPU多种后端
- API服务:提供兼容OpenAI的RESTful API
- 多模型支持:LLaMA、Mistral、Qwen、Phi等主流模型都能跑
- 自定义模型:可以用Modelfile定制自己的模型
嗯,这里要注意一点:Ollama本身不训练模型,它只负责推理。所以你要做的,是找到合适的模型,然后用Ollama把它跑起来。
1.3 为什么选择Ollama进行嵌入式移植
市面上推理框架那么多,为什么我偏偏选了Ollama?
原因有三:
- 轻量:Ollama核心代码量不大,依赖少,适合嵌入式环境裁剪
- 跨平台:官方支持Linux、macOS、Windows,社区已经有人移植到了ARM、RISC-V
- 生态好:模型格式统一,社区活跃,遇到问题容易找到解决方案
个人经验:我之前试过用llama.cpp直接移植,虽然也能跑,但模型管理、API服务这些都得自己写。Ollama把这些都封装好了,省了不少事。当然,代价是灵活性稍微差一点——但嵌入式场景下,这点代价完全可以接受。
还有一个很重要的点:Ollama的Modelfile机制。你可以通过一个文本文件,定义模型的参数、提示词模板、系统消息等。这在嵌入式场景下特别有用——比如你可以针对不同的硬件平台,调整推理参数来平衡性能和精度。
1.4 课程目标与学习路径
这门课的目标很明确:让你能在嵌入式Linux设备上,把Ollama跑起来,并且跑得稳、跑得快。
具体来说,学完这门课,你应该能做到:
- 理解Ollama的架构和原理
- 能在ARM、RISC-V等嵌入式平台上编译Ollama
- 能针对不同硬件优化推理性能
- 能解决移植过程中常见的坑
- 能基于Ollama开发边缘AI应用
学习路径是这样的:
| 阶段 | 章节 | 核心内容 |
|---|---|---|
| 基础篇 | 1-5章 | Ollama原理、环境搭建、编译流程 |
| 实战篇 | 6-15章 | ARM移植、RISC-V移植、性能优化 |
| 进阶篇 | 16-25章 | NPU加速、多模型管理、API开发 |
| 项目篇 | 26-30章 | 完整项目实战、避坑指南 |
避坑提醒:我曾经见过有人一上来就搞最复杂的NPU加速,结果基础编译都没搞定,折腾了两周放弃了。我的建议是:先跑通基础流程,再考虑优化。步子迈大了,容易扯着蛋。
好了,第一章的内容就到这里。下面这张图,帮你梳理一下本章的知识体系:
嗯,这张图把本章的核心内容串起来了。你可以看到,边缘AI趋势是背景,Ollama是工具,选择Ollama是理由,课程目标是方向。四者缺一不可。
下一章,我们会深入Ollama的架构,看看它到底是怎么工作的。到时候我会拿一个实际项目中的例子,带你一步步拆解。