在樹莓派集群上部署 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.pswp.cn/diannao/98276.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/98276.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/98276.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ 容器——unordered_xxx

自 C11 開始,STL 引入了基于 hash table 的 unordered_set、unordered_map 等容器,正如其名它們是無序容器。一定數量(據說有測試數據是10000000)元素時無序容器的性能要比對應的有序容器優。一、容器數據結構unordered_set、unor…

分布式常見面試題整理

一、分布式理論: CAP理論 分布式系統最多同時滿足一致性(C)、可用性(A)、分區容錯性(P)中的兩個,無法三者兼得。 BASE理論 對CAP中一致性和可用性的權衡,強調基本可用&a…

Python基礎入門常用198英語單詞詳解

最近,我總結了一份Python學習者入門常用單詞表,列出了Python學習中常見的198個高頻單詞,供初學者學習使用。 這些單詞都比較簡單,非常易于理解,在掌握好單詞的基礎上,再去學Python可以達到事半功倍的效果。…

EP-SPY 網路追蹤規避實驗:山脈通聯測試

EP-SPY V3.0 https://github.com/MartinxMax/ep-spy 基於 GI6E 編碼的無線電通信工具,用於保護您的隱私。 https://github.com/MartinxMax/gi6e 編寫了偽協議以防止內容被解密無法通過網絡追蹤,抵抗官方監控無線音頻廣播,用於隱蔽信息傳輸…

蘋果 FoundationModels 秘典俠客行:隱私為先的端側 AI 江湖

引子 話說俠客島之上,有一對年輕俠侶 ——「青鋒劍客」凌云與「素心仙子」蘇凝,二人自幼習武,尤擅拆解各路奇功秘籍。 近日聽聞蘋果谷(Apple)于 WWDC 2025 武林大會之上,亮出一門全新絕學「FoundationMod…

華為基于IPD的產品質量計劃模板

目錄 模板:產品質量計劃模板....................................... 1 1. 介紹...................................................................... 5 1.1. 范圍和目的.................................................... 5 1.2. 參考資料..…

事務管理的選擇:為何 @Transactional 并非萬能,TransactionTemplate 更值得信賴

在 Spring 生態的后端開發中,事務管理是保障數據一致性的核心環節。開發者常常會使用 Transactional 注解快速開啟事務,一行代碼似乎就能解決問題。但隨著業務復雜度提升,這種“簡單”的背后往往隱藏著難以察覺的隱患。本文將深入剖析 Spring…

CodePerfAI體驗:AI代碼性能分析工具如何高效排查性能瓶頸、優化SQL執行耗時?

前陣子幫同事排查用戶下單接口的性能問題時,我算是真切感受到 “找性能瓶頸比寫代碼還磨人”—— 接口偶爾會突然卡到 3 秒以上,查日志只看到 “SQL 執行耗時過長”,但具體是哪個查詢慢、為什么慢,翻了半天監控也沒頭緒&#xff0…

《sklearn機器學習——繪制分數以評估模型》驗證曲線、學習曲線

估計器的偏差、方差和噪聲 每一個估計器都有其優勢和劣勢。它的泛化誤差可以分解為偏差、方差和噪聲。估計器的偏差是不同訓練集的平均誤差。估計器的方差表示對不同訓練集,模型的敏感度。噪聲是數據的特質。 在下圖中,可以看見一個函數 f(x)cos?32πxf…

2025年AI PPT必修課-匯報中AI相關內容的“陷阱”與“亮點”

《2025年AI PPT必修課-匯報中AI相關內容的“陷阱”與“亮點”》 (適用于方案匯報、戰略PPT、標書/投資人演示)一、內容類坑(戰略/趨勢層面)? Pitfall (不要寫)? Correct Expression (推薦寫法)Why (原因)還在強調 Caffe / Theano / TF1.x / LSTM采用 P…

Java數據結構 - 順序表模擬實現與使用

目錄1.順序表的基本介紹2.順序表的模擬實現2.1 常見的功能2.2 基本框架2.3 方法的實現2.3.1 add方法2.3.2 size方法2.3.3 display方法2.3.4 add(int pos,E data)方法2.3.5 remove方法2.3.6 get方法2.3.7 contain方法2.3.8 indexOf方法2.3.9 set方法2.3.1…

rust語言 (1.88) egui (0.32.1) 學習筆記(逐行注釋)(二十六)windows平臺運行時隱藏控制臺

1、主程序第一句添加: 必須放在所有代碼第一句 #![cfg_attr(windows, windows_subsystem "windows")]2、 編譯命令:cargo build --release3、 編譯完成后運行可執行文件: 項目目錄/target/release/項目名.exe

什么是靜態住宅IP 跨境電商為什么要用靜態住宅IP

靜態住宅IP的定義靜態住宅IP是指由互聯網服務提供商(ISP)分配給家庭用戶的固定IP地址。與動態IP不同,靜態IP不會頻繁變動,長期保持穩定。其特點包括:固定性:IP地址長期不變,適合需要穩定網絡環境…

RabbitMQ 初步認識

目錄 1. 基本概念 2. RabbitMq 的工作流程 3. 協議 4. 簡單的生產者, 消費者模型 4.1 我們先引入 rabbitmq 的依賴 4.2 生產者 4.3 消費者 1. 基本概念 Pruducer : 生產者, 產生消息Consumer : 消費者, 消費消息Broker : RabbitMq Server, 用來接收和發送消息Connectio…

Redis(46) 如何搭建Redis哨兵?

搭建 Redis 哨兵(Sentinel)集群,確保 Redis 服務具有高可用性。以下是詳細的步驟,從 Redis 安裝、配置主從復制到配置和啟動 Sentinel 集群,并結合相關的代碼示例。 步驟 1:安裝 Redis 首先,需要…

Grafana 多指標相乘

PromQL中多指標相乘 PromQL表達式: 0.045 * h9_daily_income{coin"nock"} * h9_pool_price_cny{coin"nock"}📈 基礎:單指標運算 常數與指標相乘 在PromQL中,常數與指標的乘法是最簡單的運算: # ?…

【微服務】springboot3 集成 Flink CDC 1.17 實現mysql數據同步

目錄 一、前言 二、常用的數據同步解決方案 2.1 為什么需要數據同步 2.2 常用的數據同步方案 2.2.1 Debezium 2.2.2 DataX 2.2.3 Canal 2.2.4 Sqoop 2.2.5 Kettle 2.2.6 Flink CDC 三、Flink CDC介紹 3.1 Flink CDC 概述 3.1.1 Flink CDC 工作原理 3.2 Flink CDC…

分布式數據架構

分布式數據架構是一種將數據分散存儲在多臺獨立計算機(節點)上,并通過網絡協調工作的系統設計。其核心目標是解決海量數據處理、高并發訪問、高可用性及可擴展性等傳統集中式數據庫難以應對的挑戰。以下是關鍵要點解析:一、核心原…

Spark 中spark.implicits._ 中的 toDF和DataFrame 類本身的 toDF 方法

1. spark.implicits._ 中的 toDF(隱式轉換方法)本質這是一個隱式轉換(implicit conversion),通過 import spark.implicits._ 被引入到作用域中。它的作用是為本地 Scala 集合(如 Seq, List, Array 等&#…

如何在MacOS上卸載并且重新安裝Homebrew

Homebrew是一款針對macOS操作系統的包管理工具,它允許用戶通過命令行界面輕松安裝、升級和管理各種開源軟件包和工具。Homebrew是一個非常流行的工具,用于簡化macOS系統上的軟件安裝和管理過程。一、卸載 Homebrew方法1:官方卸載腳本&#xf…