标签归档:RK3588S

使用Docker在Orange Pi上LLM(使用GPU加速)

最初买 Orange Pi 5 的目的之一就是想跑一些 AI 应用。Orange Pi 5 虽带了 NPU,但这颗 NPU 实在太小众,除了官方的 Demo 就没法轻松把 NPU 用起来。近期看到有人用 RK3588 跑LLM,于是把吃灰已久的 Orange Pi 5 拿出来折腾。

Orange Pi 5 使用的是 RK3588 芯片,该芯片配备的 GPU 是 Mali-G610。在 Orange Pi 5 上跑 LLM 用的就是这颗 GPU 。

基本用法

LLM 模型通过 MLC LLM 项目加载运行。在 Orange Pi 5 上通过 OpenCL 实现 GPU 加速,因此要求系统支持 OpenCL 。Orange Pi 5 的官方 Linux 镜像已添加了 OpenCL 支持,因此不用再额外安装驱动。

如果 Orange Pi 5 上已经安装了 Docker 可以使用下面的命令把服务跑起来。7b-f16 的模型会用到 6.xG 的内存,如果你的系统只有4G内存可以试试 3b-f16 的模型。

# 更多镜像见 https://hub.docker.com/r/vicalloy/mlc-llm-rk3588/tags
docker run --rm -it --privileged \
    vicalloy/mlc-llm-rk3588:FlagAlpha-Llama2-Chinese-7b-Chat-q4f16_1

编译自己的Docker镜像

rock5-toolchain 项目中提供了 MLC LLMDockerfile ,可以通过修改 Dockerfile 里的 ARG MODEL 来打包不同的模型。

为了更方便的打包不同的模型,更为了白嫖 Github Actions 服务器,我参考 rock5-toolchain 项目写了自己的 Dockerfile。相比原始的 Dockerfile,我把TVM编译/G610驱动安装等步骤打包在镜像 vicalloy/mlc-llm-rk3588:base 预置 model 的镜像从该镜像继承。要预置不同的模型,只要将对应的模型复制到镜像就好。

对应项目地址:https://github.com/vicalloy/docker-images/tree/main/mlc-llm-rk3588

参考链接:

香橙派5(Orange pi5)初体验

前些时间心血来潮想弄个ARM单板做个微型服务器。没想到今年树莓派涨价太狠,原本¥400点4b直奔¥1000去了。刚好看到Orange pi5要发布了,据说性能提升巨大,价格¥500起。本还有些犹豫,想到树莓派都成理财产品了,于是预购享折扣。

Orange pi5 采用的是瑞芯微的 RK3588S 根据测试性能介于骁龙845/855之间。在华为推出后,这已是最强的国产ARM芯片了,比树莓派4b要强出不少。该芯片集成了 6TOPS 算力的NPU,不过瑞芯微提供的SDK最新只支持到Ubuntu20.04,因此我没有实际测试过。

Orange pi5 提供了一个 M.2 接口,不过遗憾的是没有板载 Wi-Fi ,因此只能SSD,无线网卡2选一。

由于是新出的板子,还没有官方/第三方外壳(注:现在第三方外壳已经出来了),自己用硬纸板/塑料片/尼龙立柱做了个简单的外壳。偶尔做个手工,收获满满的成就感。

自己DIY的外壳

部署的服务

初步构想是作为家庭里的微型服务器使用,跑一些不需要实时性的“高负载”的任务(已有台云主机,大多服务可以跑在云主机上)。这些天把机器的基础设施搭建了一下,更具体的用途再说了(大概率吃灰)。

为简化管理,能用 Docker 部署等服务尽量用 Docker 部署。跑的 Python 脚本用 Pipenv 创建虚拟环境。

目前部署的服务有

  • Aria2/AriaNg 下载工具,及该工具的 Web 管理界面。
  • bypy 百度云盘的下载工具。
  • File Browser 基于 Web 的文件管理器。可以方便的对设备上的文件进行管理。
  • homepage 导航页生成工具,在设备上部署的服务多了后会比较有用。

开箱视频

拿到板子后做的开箱视频: https://www.bilibili.com/video/BV198411G7oy/