当前位置: 首页 > news >正文

在树莓派集群上部署 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登录到每个树莓派,然后运行以下命令更新软件包列表和系统:

    sudo apt update
    sudo apt upgrade -y
    
  2. 安装依赖:
    安装 git 用于克隆项目仓库,python3-pip 用于安装Python包,以及 build-essential 用于编译C++代码。

    sudo apt install git python3-pip build-essential -y
    
  3. 克隆项目仓库:
    Distributed Llama 项目克隆到本地。

    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,并完成所有必要的转换和设置。

    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进程:

# 在 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的地址。

    ./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通信。
http://www.xdnf.cn/news/1450063.html

相关文章:

  • “乾坤大挪移”:耐达讯自动化RS485转Profinet解锁HMI新乾坤
  • 当Python遇见高德:基于PyQt与JS API构建桌面三维地形图应用实战
  • leetcode算法刷题的第二十六天
  • 软考中级习题与解答——第二章_程序语言与语言处理程序(2)
  • 用Logseq与cpolar:构建开源笔记的分布式协作系统
  • openEuler2403安装部署Kafka
  • 【图像处理基石】图像在频域处理和增强时,如何避免频谱混叠?
  • 机电装置:从基础原理到前沿应用的全方位解析
  • 大模型RAG项目实战:阿里巴巴GTE向量模型
  • 【算法--链表题5】24.两两交换链表中的节点--通俗讲解
  • 【Unity开发】热更新学习——AssetBundle
  • 华清远见25072班I/O学习day4
  • 从端口耗尽危机到性能提升:一次数据库连接问题的深度剖析与解决
  • Ansible 核心功能:循环、过滤器、判断与错误处理全解析
  • Java学习笔记一(数据类型,运算符,流程控制)
  • GitLens:VS Code下高效解决代码追溯的Git管理实用插件
  • 【串口过滤工具】串口调试助手LTSerialTool v3.12.0发布
  • Redis 发布订阅模式详解:实现高效实时消息通信
  • TDengine TIMEDIFF() 函数用户使用手册
  • 66认知诊断模型发展与NeuralCD框架笔记
  • FPGA笔试面试常考问题及答案汇总
  • 无穿戴动捕如何深度结合AI数据分析,实现精准动作评估?
  • DOM常见的操作有哪些?
  • 还在 @AfterEach 里手动 deleteAll()?你早就该试试这个测试数据清理 Starter 了
  • leetcode110. 平衡二叉树
  • mysql常见面试题
  • [光学原理与应用-376]:ZEMAX - 优化 - 概述
  • 代码随想录算法训练营第四天|链表part02
  • SQLint3 模块如何使用
  • PostgreSQL 技术峰会哈尔滨站活动回顾|深度参与 IvorySQL 开源社区建设的实践与思考