Skip to main content
您可以借助 llama.cpp 在 Dragonwing 开发板上 运行各种大语言模型 (LLM) 和视觉语言模型 (VLM)。在 llama.cpp 下运行的模型跑在 GPU 上,而非 NPU 上。您可以通过 GENIE 在 NPU 上运行部分模型。

构建 llama.cpp

您需要为 llama.cpp 构建若干依赖。在开发板上打开终端,或通过 ssh 连接到开发板,然后 运行:
1

安装构建依赖

2

安装 OpenCL 头文件和 ICD 加载库

3

使用 OpenCL 后端构建 llama.cpp

4

将 llama.cpp 路径添加到 PATH

5

确认 llama.cpp 已安装

下载并量化模型

要运行 GPU 加速的模型,您需要 GGUF 格式的纯 4 位量化(Q4_0)模型(llama.cpp 的格式, 参见转换指南)。您可以查找 已量化好的模型,也可以使用 llama-quantize 自行量化。例如,针对 Qwen2-1.5B-Instruct:

使用 llama-cli 运行您的第一个 LLM

您现在可以通过 llama-cli 运行 LLM。它会自动将部分层卸载到 GPU:
🚀 您的设备 GPU 上现在已经运行起了一个 LLM!

使用 llama-server 提供 LLM 服务

接下来,您可以使用 llama-server 启动一个带聊天界面和兼容 OpenAI 的 chat completions API 的 Web 服务器。
1

查找开发板的 IP 地址

2

启动服务器

3

在浏览器中打开聊天界面

在您的电脑上打开 Web 浏览器并访问 http://192.168.1.253:9876(请将 IP 地址替换为步骤 1 中找到的地址):

使用 llama-server 提供 LLM 服务

4

通过 OpenAI Chat Completions API 以编程方式访问服务器

以 Python 为例:
1

创建新的 venv 并安装 requests

2

创建新文件 chat.py

3

运行 chat.py

提供多模态 LLM 服务

您也可以使用多模态 LLM,例如 SmolVLM-500M-Instruct-GGUF。 下载 Q4_0 量化权重(或自行量化),并下载 CLIP 编码器 mmproj-*.gguf 文件。例如:

使用 llama-server 提供多模态 LLM 服务

CLIP 模型仍为 fp16: mmproj 模型仍然是 fp16;因此图像处理速度较慢。在 较旧版本的 llama.cpp 中有量化 CLIP 编码器的代码,您可以参考。

提示与技巧

对比 CPU 性能

在 llama-* 命令中加上 -ngl 0 可跳过将层卸载到 GPU。模型将在 CPU 上运行,您可以将 性能与 GPU 对比。 以 Qwen2-1.5B-Instruct Q4_0 为例: GPU:
CPU:
在这里,CPU 对 token 的评估速度大约是 GPU 的两倍。