在树莓派集群上部署 Distributed Llama (Qwen 3 14B) 详细指南

项目地址:https://github.com/b4rtaz/distributed-llama

本文档将指导您如何使用一个树莓派5作为Root节点和三个树莓派4作为Worker节点,共同搭建一个4节点的分布式LLM推理集群,并运行10.9GB的Qwen 3 14B模型。

中间要用到github和huggingface的,

注意

将下面的IP和端口替换为你自己的,我电脑上开启了**程序,我的电脑ip是192.168.71.70

export http_proxy="http://192.168.71.70:7890"

export https_proxy="http://192.168.71.70:7890"

集群架构概览

  • Root 节点 (兼Worker) : 1 x 树莓派 5
    • IP地址 : 192.168.71.84
    • 职责: 加载模型和权重,分发给Worker节点,同步神经网络状态,并处理自己那一部分的计算任务。
  • Worker 节点 : 3 x 树莓派 4
    • IP地址 : 192.168.71.83, 192.168.71.86, 192.168.71.91
    • 职责: 接收Root节点的指令和数据,处理分配给自己的计算任务。

1. 准备工作 (所有节点)

在开始之前,请确保您的所有4个树莓派都满足以下条件。这些步骤需要在每一台树莓派上执行。

1.1 硬件与网络
  • 内存 (RAM) : 强烈建议 所有树莓派都配备 8GB RAM 。Qwen 3 14B模型大小为10.9GB,分摊到4个节点上,每个节点约需承载 10.9 / 4 ≈ 2.73 GB 的模型数据。加上操作系统和程序运行所需的内存,4GB内存的设备可能会非常勉强或失败。
  • 操作系统 : 安装最新版的 Raspberry Pi OS (64-bit)。64位系统对于性能和内存管理至关重要。
  • 网络连接 : 简易使用有线以太网。将所有4个树莓派连接到同一个路由器或交换机。无线网络(Wi-Fi)会有较高延迟。
1.2 系统与软件
  1. 更新系统 :

    通过SSH登录到每个树莓派,然后运行以下命令更新软件包列表和系统:

    bash 复制代码
    sudo apt update
    sudo apt upgrade -y
  2. 安装依赖 :

    安装 git 用于克隆项目仓库,python3-pip 用于安装Python包,以及 build-essential 用于编译C++代码。

    bash 复制代码
    sudo apt install git python3-pip build-essential -y
  3. 克隆项目仓库 :

    Distributed Llama 项目克隆到本地。

    bash 复制代码
    git clone https://github.com/bgz-io/distributed-llama.git
    cd distributed-llama

完成以上步骤后,您的所有节点都已准备就绪。

2. 配置并启动 Root 节点 (树莓派 5)

此步骤仅在 Root 节点 (192.168.71.84) 上执行。

  1. SSH 登录 :

    确保您已登录到树莓派5。

  2. 下载并准备模型 :

    distributed-llama 目录中,运行 launch.py 脚本。这将自动下载Qwen 3 14B模型、tokenizer,并完成所有必要的转换和设置。

    bash 复制代码
    python3 launch.py qwen3_14b_q40

    注意: 这是一个非常耗时的过程!您需要下载10.9GB的文件,并且脚本会进行一些处理。请确保您的网络连接稳定,并耐心等待其完成。完成后,模型文件将存储在本地。

3. 启动 Worker 节点 (3 x 树莓派 4)

此步骤需要在每一个 Worker 节点 (192.168.71.83, 192.168.71.86, 192.168.71.91) 上分别执行。为方便操作,您可以为每个Worker节点打开一个独立的SSH终端窗口。

在每个Worker节点的终端中,进入 distributed-llama 目录,然后运行以下命令来启动Worker进程:

bash 复制代码
# 在 192.168.71.83 上运行
# 在 192.168.71.86 上运行
# 在 192.168.71.91 上运行

./dllama worker --port 9999 --nthreads 4
  • dllama worker: 启动Worker模式。
  • --root-addr 192.168.71.84:18666: 指定Root节点的IP地址和通信端口(18666 是一个常用默认端口,如果项目有特定端口,请相应修改)。

成功运行后,每个Worker终端会显示等待连接或类似的信息。它们现在正在监听来自Root节点的指令。

4. 启动集群并开始聊天

现在,回到 Root 节点 (192.168.71.84) 的终端窗口。所有Worker都已准备就绪,可以启动主程序了。

  1. 运行聊天程序 :

    distributed-llama 目录中,运行 dllama chat 命令,并通过 --worker-addrs 参数告诉Root节点所有Worker的地址。

    bash 复制代码
    ./dllama chat --model dllama_model_qwen3_14b_q40.m --tokenizer dllama_tokenizer_qwen3.t --buffer-float-type q80 --max-seq-len 4096 --prompt "你好,世界" --steps 256 --nthreads 8 --workers 192.168.71.83:9999 192.168.71.86:9999  192.168.71.91:9999
    • dllama chat: 启动命令行聊天界面。
    • --worker-addrs ...: 提供一个用逗号分隔的Worker节点地址列表。18667 是Worker监听的常用默认端口,请确保与Worker启动时使用的端口一致。
  2. 开始交互 :

    如果一切顺利,Root节点会连接到所有3个Worker节点,加载模型并分发权重。您将在终端看到一个聊天提示符,现在您可以输入问题与Qwen 3 14B模型进行交互了!

总结与注意事项

  • 架构: 您已成功搭建一个4节点(1个Root + 3个Worker)的计算集群。根据项目文档,Root节点本身也参与计算,因此总计算能力是4个节点的总和。
  • 性能: 树莓派的CPU性能有限,即使是集群,推理速度也无法与桌面级CPU或GPU相比。请对性能有合理的预期,它会比在单台树莓派上运行快,但仍然较慢。
  • 网络是关键 : 我使用的是无线局域网,可能千兆有线以太网新能会更好。任何网络瓶颈都会严重影响整体速度。
  • 防火墙 : 如果您在树莓派上启用了防火墙(如 ufw),请确保允许端口 1866618667 (或您使用的任何端口) 的TCP通信。
相关推荐
大模型铲屎官9 分钟前
【数据结构与算法-Day 35】拓扑排序:从依赖关系到关键路径的完整解析
人工智能·python·深度学习·操作系统·数据结构与算法·关键路径·扩扑排序
Keying,,,,10 分钟前
秋招算法记录 | 排序算法整理 | 直接选择、直接插入、冒泡、快排、希尔排序
数据结构·python·算法·排序算法
用户23452670098214 分钟前
如何使用Python实现异步文件读写
python
长安——归故李2 小时前
【PLC程序学习】
java·c语言·javascript·c++·python·学习·php
闲人编程2 小时前
会议安排问题之贪心算法
python·算法·ios·贪心算法·会议问题·算法改进·codecapsule
清静诗意2 小时前
Pandas 函数速查专业指南
python·数据分析·pandas
倔强青铜三2 小时前
苦练 Python 第 57 天:用 pathlib 模块告别繁琐的文件操作,开启优雅编程之旅!
人工智能·python·面试
老歌老听老掉牙2 小时前
PDF转图片工具:基于PyQt5的完整实现与深度解析
python·qt·pdf
llm2009092 小时前
UI自动化框架之Selenium简介(一)
python·selenium·ui·自动化
独行soc2 小时前
2025年渗透测试面试题总结-90(题目+回答)
网络·python·安全·web安全·adb·渗透测试·安全狮