月度归档:2023年09月

使用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

参考链接: