在基于RK3566的嵌入式开发板上本地部署并运行大模型
大模型开源浪潮之下,线上调用早已不能满足所有人的好奇心。直接在本地运行一个真正属于自己的大模型,正成为越来越多人的探索方向。大家都知道,跑大模型对算力要求极高,个人电脑尚且吃力,更不用说资源更有限的嵌入式设备了。但事情正在起变化——一些“小而美”的模型正在涌现,比如微软开源的Phi-3 mini,让普通PC离线跑模型不再是梦。而本文的目标,是更进一步:在嵌入式设备上让大模型跑起来。具体来说,就是基于RK3566开发板(LubanCat),一步步实现离线运行Qwen1.5模型。
嵌入式环境
- :RK3566(4核A55,1.8GHz)
处理器
- :2G RAM + 8G eMMC(可SD卡扩展)
存储
- :Debian 10.13
系统
- :Linux lubancat 4.19.232 #5 SMP Sat May 20 08:56:33 CST 2023 aarch64 GNU/Linux
uname信息
运行框架
这次选用的运行框架是Ollama。它是一个非常趁手的本地大模型部署工具,核心优势一目了然:
- 支持本地运行多种模型,涵盖Llama 3、Phi-3、Gemma等主流选手
- 跨平台能力覆盖Linux、macOS、Windows
- 可以通过GGUF格式灵活导入模型
硬件环境准备
板载存储只有8G,而Ollama模型在下载和解压过程中,需要预留至少模型文件两倍大小的空间。所以,最合理的方案是把模型文件存放在SD卡上。
插入SD卡后,每次开机都要手动挂载到/mnt/sdcard目录,太麻烦。解决方法是配置开机自动挂载。
在/etc/fstab文件的最末尾添加如下内容:

这样,每次开机时/dev/mmcblk1p2就会自动挂载到/mnt/sdcard目录。
小提示:磁盘名称/dev/mmcblk1p2可以通过sudo fdisk -l命令查询确认。
安装Ollama
Ollama官方提供了Linux在线安装方式,一行命令就能搞定。但受限于网络环境,经常安装不成功。这里介绍离线安装的方案——直接下载Linux可执行文件。
1. 下载Ollama可执行文件
Ollama同时提供了amd64和arm64架构的二进制文件,RK3566是arm64,直接下载对应版本即可。最省事的方法是在Windows下完成下载,再拷贝到板子上。
将下载好的可执行文件放到/usr/bin/目录下,并重命名为ollama,然后赋予可执行权限。
2. 配置为系统启动服务
按照官方做法,需要创建一个名为ollama的用户,并指定主目录/usr/share/ollama,模型文件也会默认存储到该目录。但实际测试发现,权限问题会带来不少麻烦,所以这里干脆直接使用root用户,并且自定义模型存放目录。
创建/etc/systemd/system/ollama.service文件,内容如下(注意用户和组都指定为root,避免权限问题):
填入内容,并将模型存放路径指向SD卡下的ollama/目录。
3. 启动Ollama
4. 查询服务启动状态
如果状态信息中没有出现error,表示启动正常。下方信息会显示当前处于running状态。
运行大模型
Ollama已经支持了大量常见开源模型。考虑到RK3566的算力上限,本次选择运行模型文件仅有300多MB的Qwen1.5-0.5B。
初次启动需要从Ollama网站下载模型文件,如果出错,多试几次即可。下载速度非常可观,实测在普通网络环境下基本能达到10MB/s以上。不过有个小插曲:在Windows和Linux下,下载大模型文件时,前面速度很快,最后几百兆速度总会降到1MB/s左右。
实测下来的响应速度(无加速处理,GIF动图需重新加载播放):
一些思考
令人感慨的是,一个仅有300多MB的离线模型,在嵌入式设备上的理解能力和应答质量,已经足以秒杀那些发展了近十年的“智能”音箱。一年前,很多人还在寻找各种免费在线访问大模型的方法,转眼之间,我们已经能在个人电脑、甚至资源局促的嵌入式设备上,离线运行真正免费的大模型了。当时也提到过,小爱、小度、天猫精灵这些“智能”音箱,如果能够趁早利用已有的硬件布局,快速接入大模型,或许早就走进了千家万户。可惜的是,目前各大厂商仍然更多以手机APP的形式提供服务,普及性和可玩性大打折扣。
小结
本文详细介绍了在RK3566嵌入式开发板上本地部署大模型的全流程。这套方法同样适用于其他基于Linux的嵌入式环境。可以预见的是,随着嵌入式设备算力的持续提升,以及大模型体积的进一步压缩,未来会有更多离线大模型能够在嵌入式终端上流畅运行,甚至具备离线学习的能力,那才是真正值得期待的图景。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名