如何在ZYNQ本地部署DeepSeek模型 以下文章来源于OpenFPGA,作者碎碎思
一个将最小号 DeepSeek 模型部署到 AMD Zynq UltraScale+ MPSoC 处理系统的项目。

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 卡。

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

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

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

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 空间。

5. 安装 Ollama 与 DeepSeek
使用开源工具 Ollama 来运行 LLM,本项目使用 Ollama 框架。
安装命令示例:
curl -fsSL https://ollama.com/install.sh | sh
系统无 GPU,可忽略相应警告。

在安装成功后,下载 DeepSeek 1.5B 参数版本。示例命令:
mkdir deepseek export HOME=/home/xilinx/deepseek ollama pull deepseek-r1:1.5b

6. 测试
在 ZUBoard 上运行模型示例命令:
ollama run deepseek-r1:1.5b
系统将显示提示符,等待你的输入。

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

模型信息如下图所示。

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

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

需要注意:
参数较少(1.5B)意味着推理能力有限。
使用 swap 空间意味着性能会受到影响。
7. 总结
该项目展示了:即便没有 GPU,也能在边缘设备(如 ZYNQ)上部署 LLM。尽管性能受限,但具备“本地离线自动推理”的能力,在特定应用场景中极具价值。
全部0条评论
快来发表一下你的评论吧 !