實戰:vLLM多機多卡部署大模型

  • 兩臺服務器

1. Docker容器中使用GPU

  • 必須確保已安裝并配置 NVIDIA Docker。你可以安裝 nvidia-docker 來確保 GPU 驅動能夠被 Docker 使用
#安裝 nvidia-docker:
sudo apt-get install nvidia-docker2#然后重啟 Docker:
sudo systemctl restart docker

2.下載vllm-openai鏡像

  • 當前latest版本: v0.7.2
docker pull vllm/vllm-openai:latest

3. 啟動vllm-openai容器

  • 會啟動一個node容器

在這里插入圖片描述

3.1 啟動腳本

# master  服務器1執行
sudo bash run_cluster.sh \vllm/vllm-openai \  # 鏡像名稱172.16.3.38 \  # head服務器IP--head \   # 代表head/home/llm/ai/model \  # huggingface 模型路徑-v /home/llm/ai/model:/home/llm/ai/model \   # 宿主機本地模型映射到容器內-e GLOO_SOCKET_IFNAME=enp4s0 \  # 服務器IP對應的網卡名稱-e NCCL_SOCKET_IFNAME=enp4s0 \  # 服務器IP對應的網卡名稱-e VLLM_HOST_IP=172.16.3.38# worker  服務器2執行
bash run_cluster.sh \vllm/vllm-openai \172.16.3.38 \--worker \  # 代表 從服務器/home/llm/ai/model \-v /home/llm/ai/model:/home/llm/ai/model \-e GLOO_SOCKET_IFNAME=enp5s0 \-e NCCL_SOCKET_IFNAME=enp5s0 \-e VLLM_HOST_IP=172.16.3.37
  • run_cluster.sh
#!/bin/bash# Check for minimum number of required arguments
if [ $# -lt 4 ]; thenecho "Usage: $0 docker_image head_node_address --head|--worker path_to_hf_home [additional_args...]"exit 1
fi# Assign the first three arguments and shift them away
DOCKER_IMAGE="$1"
HEAD_NODE_ADDRESS="$2"
NODE_TYPE="$3"  # Should be --head or --worker
PATH_TO_HF_HOME="$4"
shift 4# Additional arguments are passed directly to the Docker command
ADDITIONAL_ARGS=("$@")# Validate node type
if [ "${NODE_TYPE}" != "--head" ] && [ "${NODE_TYPE}" != "--worker" ]; thenecho "Error: Node type must be --head or --worker"exit 1
fi# Define a function to cleanup on EXIT signal
cleanup() {docker stop nodedocker rm node
}
trap cleanup EXIT# Command setup for head or worker node
RAY_START_CMD="ray start --block"
if [ "${NODE_TYPE}" == "--head" ]; thenRAY_START_CMD+=" --head --port=6379"
elseRAY_START_CMD+=" --address=${HEAD_NODE_ADDRESS}:6379"
fi# Run the docker command with the user specified parameters and additional arguments
docker run \--entrypoint /bin/bash \--network host \--name node \--shm-size 10.24g \--gpus all \-v "${PATH_TO_HF_HOME}:/root/.cache/huggingface" \"${ADDITIONAL_ARGS[@]}" \"${DOCKER_IMAGE}" -c "${RAY_START_CMD}"

4. 進入到容器內部加載模型

# 進入容器內部
docker exec -it node /bin/bash# tensor-parallel-size 每臺服務器顯卡數量
# pipeline-parallel-size 服務器數量
vllm serve /home/llm/ai/model/Qwen/Qwen1___5-1___8B-Chat --port 8080 --tensor-parallel-size 1 --pipeline-parallel-size 2  --dtype float16

5. 查看集群狀態

  • 容器內執行 可以看到兩個節點
    ray status

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895759.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895759.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895759.shtml

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

相關文章

LLM中種子(Seed)作用是什么:多樣性

LLM中種子(Seed)作用是什么:多樣性 目錄 LLM中種子(Seed)作用是什么:多樣性作用舉例不同種子的區別設置不同種子的原因在LLM(大語言模型)中,種子(Seed)用于初始化隨機數生成器,發揮著確保結果可重復性的關鍵作用,具體如下: 作用 當大語言模型生成文本時,很多操…

neo4j二進制部署

neo4j二進制部署 下載所需組件 jdk 17 neo4j 5.2.0 配置文件 server.default_listen_address0.0.0.0環境變量 export JAVA_HOME/usr/local/jdk-17.0.13 export CLASSPATH.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar export PATH$…

Win10環境使用零訊ZeroNews內網穿透實現Deepseek對外服務

Win10環境使用零訊ZeroNews內網穿透實現Deepseek對外服務 前言 之前筆者已經在Win10環境搭建好了Ollama、DeepSeek、Open WebUI、Dify等組件,成功實現了私有化部署及內網訪問: https://lizhiyong.blog.csdn.net/article/details/145505686 https://l…

spconv 安裝測試

pip install spconv 報錯: File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/mod…

MySQL 查詢緩存技術深度解析

在現代數據庫管理系統中,查詢性能優化是提升應用響應速度和用戶體驗的關鍵環節。MySQL 作為一款廣泛使用的開源關系型數據庫,提供了查詢緩存功能,用于緩存查詢結果,從而在后續相同的查詢請求時能夠快速返回結果,減少數…

halcon 條形碼、二維碼識別、opencv識別

一、條形碼 函數介紹 create_bar_code_model * 1.創建條碼讀取器的模板 * 參數一:通用參數的名稱,針對條形碼模型進行調整。默認值為空 * 參數二:針對條形碼模型進行調整 * 參數三:條形碼模型的句柄。 create_bar_code_model (…

一個簡潔高效的Flask用戶管理示例

Flask-Login 是 Flask 的用戶管理擴展,提供 用戶身份驗證、會話管理、權限控制 等功能。 適用于: ? 用戶登錄、登出 ? 記住用戶(“記住我” 功能) ? 限制未登錄用戶訪問某些頁面 ? 用戶會話管理 1. 安裝 Flask-Login pi…

HashSet 的底層原理(簡單易懂)

在 Java 集合框架中,HashSet 是一個非常常用的集合類,它提供了快速的元素查找和插入操作。那么,HashSet 的底層是如何實現這些高效操作的呢?本文將深入探討 HashSet 的底層原理。 一、HashSet 的基本概念 HashSet 是基于哈希表的…

【學習資源】時間序列數據分析方法(2)-mWDN和AutoEncoder

接著上次的【學習資源】時間序列數據分析方法(1)-CSDN博客,本次介紹mWDN和AutoEncoder 解決時序數據分類的方法。介紹模型原理、應用場景和參考代碼。也從模型性能、訓練效率、模型復雜度、計算復雜度、可解釋性、適應性和泛化能力、健壯性、…

[LeetCode力扣hot100]-鏈表

相交鏈表 160. 相交鏈表 - 力扣(LeetCode) 思路就是遍歷兩個鏈表,有相同的部分就可以視為相交。 但是長度不一樣,比如兩個會相交的鏈表,headA 的長度為 a c,headB 的長度為 b c,其中 c 是公…

JAVA EE初階 - 預備知識(四)

一、API API 即應用程序編程接口(Application Programming Interface),是一組定義、協議和工具,用于不同軟件組件、應用程序或系統之間進行交互和通信。以下從多個方面詳細介紹 API: 基本概念 接口規范:A…

【TI C2000】F28002x的系統延時、GPIO配置及SCI(UART)串口發送、接收

【TI C2000】F28002x的系統延時、GPIO配置及SCI(UART)串口發送、接收 文章目錄 系統延時GPIO配置GPIO輸出SCI配置SCI發送、接收測試附錄:F28002x開發板上手、環境配置、燒錄及TMS320F280025C模板工程建立F28002x敘述燒錄SDK庫文件說明工程建…

親測有效!使用Ollama本地部署DeepSeekR1模型,指定目錄安裝并實現可視化聊天與接口調用

文章目錄 一、引言二、準備工作(Ollama 工具介紹與下載)2.1 Ollama介紹2.2 Ollama安裝 三、指定目錄安裝 DeepSeek R1四、Chatbox 可視化聊天搭建4.1 Chatbox下載安裝4.2 關聯 DeepSeek R1 與 Chatbox 的步驟 五、使用 Ollama 調用 DeepSeek 接口5.1 請求…

期權隱含波動率是什么意思?

財順小編本文主要介紹期權隱含波動率是什么意思?期權隱含波動率(Implied Volatility)是根據當前期權市場價格,利用期權定價模型(如Black-Scholes模型)推導出的關于合約標的理論上的價格波動率。它反映了市場…

Python 面向對象的三大特征

前言:本篇講解面向對象的三大特征(封裝,繼承,多態),還有比較細致的(類屬性類方法,靜態方法),分步驟講解,比較適合理清楚三大特征的思路 面向對象的…

Jmeter如何計算TPS

1.在jmeter中計算出接口請求的個數 1175 1172 1172 174 200 416 384 1174 5867 2.計算接口平均響應時間 計算每個接口的請求次數乘以平均響應時間,所有接口相加,然后除以所有接口的數量總和,得到接口的平均響應時間 (1175*18191172*…

github上文件過大無法推送問題

GitHub 對文件大小有限制,超過 100 MB 的文件無法直接推送到倉庫中。 解決思路: 使用 Git Large File Storage (Git LFS) 來管理大文件不上傳對應的大文件 使用Git LFS: 1. 安裝 Git LFS 首先,你需要安裝 Git LFS。可以按照以…

Httprint 指紋識別技術:網絡安全的關鍵洞察

引言 Http指紋識別現在已經成為應用程序安全中一個新興的話題,Http服務器和Http應用程序安全也已經成為網絡安全中的重要一部分。從網絡管理的立場來看,保持對各種web服務器的監視和追蹤使得Http指紋識別變的唾手可得,Http指紋識別可以使得信…

docker push鏡像到阿里云

阿里云賬號 阿里云-計算,為了無法計算的價值 開通個人鏡像容器 進入控制臺,試用容器 實例列表界面 點擊上圖中的個人,個人版特性 創建個人版: 個人版實例界面: 設置密碼 個人版實例: 創建鏡像倉庫 如上…

【C#零基礎從入門到精通】(二十六)——C#三大特征-多態詳解

【C#零基礎從入門到精通】(二十六)——C#三大特征-多態詳解 在 C# 中,多態是面向對象編程的重要特性之一,它允許不同的對象對同一消息做出不同的響應。多態可以分為靜態多態和動態多態,下面將詳細介紹它們以及各自包含的知識點。 多態概述 多態性使得代碼更加靈活、可擴展…