如何在ZYNQ本地部署DeepSeek模型

描述

以下文章来源于OpenFPGA,作者碎碎思

一个将最小号 DeepSeek 模型部署到 AMD Zynq UltraScale+ MPSoC 处理系统的项目。

Zynq

1. 引言

如果你过去几年没注意人工智能的大趋势,那么你可能不知道大型语言模型(LLM)已在 AI 领域占据重要地位。

这些模型能够理解人类的文本查询,并生成文本回应。之所以称“大模型”,是因为它们通常在大量网页、书籍、对话、代码等数据上训练。

其本质并非“真正的智能”,而是深度学习模型——基于复杂数学运算(如线性代数、优化算法)实现的预测机制。

常见的做法是:若希望获得良好性能,通常依赖高性能的 GPU(例如 AMD Instinct GPU)进行推理。

但在某些应用场景,我们可能希望将 LLM 部署在 边缘设备(edge device) 本地执行。出于这个目的,本项目将在 ZUBoard(含 Arm Cortex-A53 内核的 Zynq UltraScale+ MPSoC)上运行一个较小的 DeepSeek 模型。

部署在边缘设备的优势包括:

隐私:模型在本地运行,无需上传数据到云端。

离线访问:不依赖宽带或云服务。

成本:节省托管云推理的费用。

但工程中必须在 隐私、成本、性能之间做权衡。

2. 什么是 DeepSeek

如果你还不熟悉 DeepSeek:这是一系列高性能的开放权重 LLM 和大规模多模态模型(LMM),用于推动开放 AI 研究。

这些模型从零开始训练,使用了数万亿 tokens 的多语言网页、学术文献、代码库及精编数据集。

架构上基于 Transformer,并加入了诸如:Grouped Query Attention (GQA)、SwiGLU 激活函数、多查询注意力层,以提升推理效率。

模型尺寸可选范围:1.5B、7B、13B 参数及以上,以便在资源使用与准确度之间平衡。

DeepSeek-VL(视觉-语言版本)扩展支持图像数据与文本监督,能够进行跨模态推理、视觉问答、图片-文本生成。

其还提供量化版本(4 bit、8 bit)以适配边缘设备与移动部署。

在多个基准上(如 MMLU、GSM8K、HumanEval、MMMU)表现出接近或达到最先进水平,同时优化 CPU/GPU 推理效率。

3. 在  Zynq UltraScale+ MPSoC 上开始

项目使用 PYNQ 平台作为 DeepSeek 安装基础。

步骤如下:

从 PYNQ 官网下载适用于 Avnet ZUBoard 的镜像,并将镜像烧录至 SD 卡。

Zynq

将板上的启动开关设为 SD 卡启动,插入 SD 卡,并通过 USB UART 与以太网将 ZUBoard 连接至主机。

Zynq

启动后使用浏览器访问 http://pynq:9090,密码通常为 xilinx。

Zynq

打开终端,准备安装 DeepSeek 模型。

Zynq

4. 准备工作

由于 ZUBoard 仅配备 1 GB 的 LPDDR4 内存,需在 SD 卡上建立足够的交换(swap)空间,以防止内存耗尽导致系统崩溃。

具体命令示例:

 

swapon --show  
sudo swapoff /var/swap  
sudo rm /var/swap  
sudo chmod 600 /var/swap  
sudo mkswap /var/swap  
sudo swapon /var/swap

 

执行完成后,通过 swapon --show 可确认现在有约 4 GB 的 swap 空间。

Zynq

5. 安装 Ollama 与 DeepSeek

使用开源工具 Ollama 来运行 LLM,本项目使用 Ollama 框架。

安装命令示例:

 

curl -fsSL https://ollama.com/install.sh | sh

 

系统无 GPU,可忽略相应警告。

Zynq

在安装成功后,下载 DeepSeek 1.5B 参数版本。示例命令:

 

mkdir deepseek  
export HOME=/home/xilinx/deepseek  
ollama pull deepseek-r1:1.5b

 

Zynq

6. 测试

在 ZUBoard 上运行模型示例命令:

 

ollama run deepseek-r1:1.5b

 

系统将显示提示符,等待你的输入。

Zynq

我做的第一件事就是询问它关于模型的问题。

Zynq

模型信息如下图所示。

Zynq

然后,像操作普通 LLM 一样与该模型进行交互。

Zynq

可在另一个终端运行 top 命令来观察系统资源消耗。

Zynq

需要注意:

参数较少(1.5B)意味着推理能力有限。

使用 swap 空间意味着性能会受到影响。

7. 总结

该项目展示了:即便没有 GPU,也能在边缘设备(如 ZYNQ)上部署 LLM。尽管性能受限,但具备“本地离线自动推理”的能力,在特定应用场景中极具价值。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分