
在raspberry Pi上运行deepseek R1:逐步指南和性能评估的乐趣
DeepSeek R1 在 Raspberry Pi 5 上
DeepSeek R1 震撼了生成式人工智能界,所有对人工智能稍有兴趣的人都急于尝试它。在我看来,它是一个很棒的模型。正如你所知,我喜欢在本地运行模型,而由于这是一个开源模型,我当然必须尝试一下。它在我的 Mac Studio 和 4090 机器上运行得非常好。
但它能在这个上运行吗?一个愚蠢的小 Raspberry Pi?
我收到了几封电子邮件和私人消息询问这个问题,因此我不得不尝试一下。在本教程中,我们将逐步介绍如何在 Raspberry Pi 5 上运行 DeepSeek R1 模型并评估其性能。无论你是想在本地运行大语言模型,还是构建一些边缘人工智能应用,这可能是一个有趣的教程。
如果你更喜欢视频形式,这里有一个视频:
你需要的东西:
- Raspberry Pi 5
- Raspbian操作系统
- Python 3.x
- 所需库
安装步骤
-
更新你的系统:
sudo apt update sudo apt upgrade
-
安装 Python 和 pip:
sudo apt install python3 python3-pip
-
安装所需库:
pip3 install numpy pandas tensorflow
运行模型
要运行模型,请使用以下命令:
python3 run_deepseek.py
性能评估
一旦模型运行,你可以通过检查以下指标来评估其性能:
- 推理时间
- 内存使用
- 输出准确性
注意:性能可能会根据模型的复杂性和执行的任务而有所不同。
结论
在 Raspberry Pi 5 上运行 DeepSeek R1 是一项具有挑战性但回报丰厚的任务。它让你能够探索生成式人工智能在边缘设备上的能力。
前提条件
-
硬件:
- Raspberry Pi 5(推荐使用8GB或16GB RAM)。
- 安装了Raspbian操作系统(64位)的MicroSD卡。
- 稳定的电源和互联网连接。
-
软件:
- 对Raspbian操作系统和终端命令有基本的了解。
- Docker(可选,用于容器化应用程序)。
这是我尝试过的机器:
配备16GB RAM的Raspberry Pi 5
第一步:配置您的 Raspberry Pi
启用远程桌面(可选)
为了简化 GUI 交互,启用远程桌面:
sudo apt-get install xrdp -y
sudo systemctl start xrdp
sudo systemctl enable xrdp
将 Pi 设置为自动登录到桌面 GUI。
输入
sudo raspi-config
并选择 1 系统选项
然后选择 S5 启动/自动登录
并选择 B3 桌面(桌面 GUI,需要用户登录)
现在,如果您愿意,可以使用 RDP 远程登录到桌面并访问桌面。
注意:在我的 Raspberry Pi 上,我无法让任何浏览器正常运行。它们无法以可读的形式显示,我会在某个时候查看并尝试修复这个问题。
您的浏览器也可能看起来像这样:
第2步:安装Ollama
Ollama是一个在本地运行大语言模型的工具。由于Raspberry Pi使用ARM64架构,请下载Ollama Linux ARM64版本:
curl -fsSL https://ollama.com/install.sh | sh
验证安装:
请注意,它会显示:
警告:未检测到NVIDIA/AMD GPU。Ollama将以仅CPU模式运行。
这是因为Raspberry Pi的GPU不支持CUDA。但是,我们可以看到它如何仅在CPU上运行。
第3步:运行DeepSeek R1模型
测试1.5B参数模型
让我们从可用的最小模型开始尝试。这将是deepseek-r1 1.5b模型,它具有15亿个参数。
ollama run deepseek-r1:1.5b
示例提示:
告诉我一个关于Python的有趣笑话。
性能说明:
- 速度:~6.12个tokens/秒。
- RAM使用:~3GB。
- CPU:始终达到99%的最大值。
所以这还不错。虽然不算优秀,但可能对原型设计和实验有用。只要不是实时聊天或其他立即交互的任务,你可以用它来完成许多工作。
让我们尝试一个更大的模型。我们知道它会更慢,但我想看看是否可行。
测试 7B 参数模型(可选)
对于这个测试,我们将尝试 deepseek-r1 7B参数 模型。这个模型要大得多,并且对于许多项目来说是一个相当不错的模型。
ollama run deepseek-r1:7b
性能说明:
- 速度:~1.43 tokens/秒(极慢)。
- RAM 使用:~6GB(需要 8GB+ 的 Pi)。
这个模型确实很慢,几乎无法使用。但在我看来,能够在 Raspberry Pi 上运行 7B 参数模型仍然令人印象深刻。虽然用途不大,但这是可能的。
第4步:部署一个Docker化的聊天应用程序
让我们尝试运行一个Docker化的聊天应用程序。这是我为之前的YouTube视频构建的应用程序。它是一个使用DeepSeek R1模型的VueJS应用程序。
以下是在Pi上运行它的方法:
-
克隆演示应用程序(用你自己的项目替换):
git clone https://github.com/JeremyMorgan/DeepSeek-Chat-Demo cd deepseek-chat-demo
-
使用Docker构建和运行:
docker-compose up
-
访问应用程序
http://localhost:5173
并测试提示。
嘿!它运行了!太棒了。响应速度还不错,有点慢但可以使用。
第5步:实验 Raspberry Pi 集群(额外奖励环节!)
我决定在我的 Raspberry 集群上尝试一下这个。虽然这并没有提高速度(大语言模型在单节点上运行),但这是一个有趣的分布式工作负载实验。
这些 Raspberry Pi 全部是 8GB 型号,而不是 16GB。以下是设置方法:
-
设置 Kubernetes,使用
microk8s
或类似工具。 -
部署应用,通过创建 YAML 清单 (deepseek-deployment.yaml):
apiVersion: apps/v1 kind: Deployment metadata: name: deepseek-deployment labels: app: deepseek spec: replicas: 4 selector: matchLabels: app: deepseek template: metadata: labels: app: deepseek spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app: deepseek topologyKey: "kubernetes.io/hostname" containers: - name: deepseek image: jeremymorgan/deepseek-1-5b-chat-demo:ARM64 ports: - containerPort: 11435 hostPort: 11435
-
创建服务 (deepseek-service.yaml):
apiVersion: v1 kind: Service metadata: name: deepseek-service spec: type: NodePort selector: app: deepseek ports: - name: http protocol: TCP port: 80 targetPort: 80 nodePort: 30080 - name: chat protocol: TCP port: 11436 targetPort: 11436 nodePort: 31144
响应仍然很慢,因为集群并没有并行化模型推理。然而,在 1.5B 参数模型下,8GB 和 16GB 之间的性能差异并不明显。
关键要点
所以在将 DeepSeek 模型部署到 Raspberry Pi 5 时,您将学到以下内容。
-
可行性:
- 1.5B模型在8–16GB的 Raspberry Pi 5 上运行良好,适合轻量级任务。
- 7B模型可以运行,但由于速度(1.43 tokens/sec)而不实用。
-
使用案例:
- 教育实验。
- 边缘 AI 应用的原型设计。
-
优化提示:
- 使用量化模型(例如,4-bit GGUF)以获得更好的性能。
- 通过无头运行 Ollama 来避免 GUI 开销。
结论
虽然 DeepSeek R1 不会替代 Raspberry Pi 上的基于云的大语言模型,但它是一个在预算硬件上探索人工智能的有趣方式。考虑升级到 Jetson Nano 或二手 GPU 服务器以获得更好的性能。
这是一个有趣的实验!
最终结果:
此故事发布在 生成式人工智能 上。