成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用 VLLM 部署 DeepSeek:基于 Ubuntu 22.04 + RTX 4090 + Docker 的完整指南

人工智能
這篇文章適合那些想快速上手 vLLM 的開發者,文章涵蓋了顯卡驅動、CUDA、Docker 環境的安裝,以及 vLLM 的完整運行流程。

最近,大語言模型(LLM)的部署已經成為 AI 開發者繞不開的核心技能。而 VLLM 作為一款高性能、低延遲的推理引擎,在大模型推理領域迅速崛起。今天,我就帶大家從零開始,在 Ubuntu 22.04 + RTX 4090 + Docker 環境下,部署 DeepSeek模型,并讓它跑起來!

這篇文章適合那些想快速上手 vLLM 的開發者,文章涵蓋了顯卡驅動、CUDA、Docker 環境的安裝,以及 vLLM 的完整運行流程。讓我們開始吧!

什么是 VLLM?

VLLM(Very Large Language Model Inference)是一個 高性能、優化顯存管理 的大模型推理引擎。它的目標是 最大化推理吞吐量,并降低顯存消耗,讓大語言模型(LLMs)在 單卡或多 GPU 服務器 上運行得更高效。

VLLM 的核心優勢:

  • 高吞吐量:支持批量推理,減少 token 生成延遲,高效 KV 
  • 緩存管理:優化 GPU 顯存,支持 更長的上下文
  • 多 GPU 支持:Tensor Parallel 加速推
  • OpenAI API 兼容:可以作為 本地 API 服務器 運行

環境準備

在正式部署 VLLM 之前,我們需要先確保機器環境可用,包括 顯卡驅動、CUDA、Docker 等核心組件。

01、確保系統環境

我們使用 Ubuntu 22.04,建議先更新系統并重啟系統:

sudo apt update && sudo apt upgrade -y
sudo reboot

02、安裝 NVIDIA 顯卡驅動

在 Ubuntu 22.04 中,禁用原有的 GPU 驅動(尤其是默認的 nouveau 驅動或已安裝的舊版 NVIDIA 驅動)非常重要,以避免與新的 NVIDIA 驅動 發生沖突。執行如下命令禁用原有GPU驅動后,重啟系統。

sudo tee /etc/modprobe.d/blacklist-nouveau.conf <<EOFblacklist nouveauoptions nouveau modeset=0EOF
sudo update-initramfs -u

執行上面命令后,重啟系統:

sudo reboot

重啟后,執行如下命令安裝推薦的 NVIDIA 驅動:(以 RTX 4090 為例)

sudo apt install -y nvidia-driver-535

安裝完后 NVIDIA 驅動后,進行重啟:

sudo reboot

然后再次運行 nvidia-smi,如果能正確顯示顯卡信息,就說明驅動安裝成功。

03、安裝 CUDA

VLLM 需要 GPU 加速,而 CUDA 是核心庫之一。我們使用 CUDA 12.1(推薦版本):

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.debsudo dpkg -i cuda-keyring_1.0-1_all.debsudo apt updatesudo apt install -y cuda-toolkit-12-1

驗證 CUDA 是否正確安裝:

nvcc --version

04、安裝 cuDNN

cuDNN 是深度學習加速庫,我們執行如下命令安裝cuDNN:

wget https://developer.download.nvidia.com/compute/cudnn/9.8.0/local_installers/cudnn-local-repo-ubuntu2204-9.8.0_1.0-1_amd64.debsudo dpkg -i cudnn-local-repo-ubuntu2204-9.8.0_1.0-1_amd64.debsudo cp /var/cudnn-local-repo-ubuntu2204-9.8.0/cudnn-*-keyring.gpg /usr/share/keyrings/sudo apt-get updatesudo apt-get -y install cudnn

05、安裝Docker

執行下面命令,安裝Docker:

# Add Docker's official GPG key:sudo apt-get updatesudo apt-get install ca-certificates curlsudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:echo \  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \  sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt-get update


sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

執行如下命令,運行Docker:

sudo systemctl start docker

06、安裝NVIDIA Container Toolkit  

NVIDIA Container Toolkit 是一款用于在容器化環境中高效運行 GPU 加速應用 的工具,通常與 Docker 配合使用,能夠讓開發者將基于 NVIDIA GPU 的應用程序打包到容器中并在支持 NVIDIA GPU 的服務器上運行。NVIDIA Container Toolkit 使得我們可以 在容器內使用 GPU,實現高效的并行計算,特別適用于 深度學習、高性能計算(HPC) 和 圖形渲染 等任務。

NVIDIA Container Toolkit本質上是一個為 NVIDIA GPU 提供容器化支持的工具包,它能讓 Docker 容器直接訪問 GPU 資源,而無需繁瑣的配置。

執行如下命令,安裝NVIDIA Container Toolkit:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list


sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list


sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

安裝完成后,對Docker進行配置并重啟Docker:

sudo nvidia-ctk runtime configure --runtime=dockersudo systemctl restart docker

07、拉取VLLM鏡像

執行如下命令安裝VLLM鏡像:

docker pull vllm/vllm-openai

08、下載模型

我們本次使用模型:DeepSeek-R1-Distill-Qwen-7B進行測試,模型下載頁面:https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B如果你下載不了,請使用鏡像網站進行下載:圖片你也可以使用如下命令進行下載:

huggingface-cli download deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --local-dir  /root/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B

/root/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B:為下載模型存儲路徑,依據實際情況自己定義。


運行模型

我們使用docker compose進行VLLM鏡像運行,文件如下:

version: '3.9'
services:
  vllm_service:
    image: vllm/vllm-openai:latest
    container_name: vllm_deepseek_7b
    restart: always
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    ports:
      - "8000:8000"
    volumes:
      - /root/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B:/app/model
    command: [
      "--served-model-name", "DeepSeek-R1:7b",
      "--trust-remote-code",
      "--enforce-eager",
      "--gpu-memory-utilization", "0.8",
      "--model", "/app/model/",
      "--host", "0.0.0.0",
      "--port", "8000",
      "--max-model-len", "10000",
      "--api-key", "12345678",
      "--tokenizer", "/app/model/"
    ]

下面是 VLLM 容器啟動時傳入的命令參數:

--served-model-name "DeepSeek-R1:7b"

設置模型名稱為 DeepSeek-R1:7b。這是在容器內加載的模型名稱。

--trust-remote-code

允許容器信任遠程代碼執行。這在使用外部模型時很有用,但在安全性較為敏感的情況下需謹慎使用。

--enforce-eager

啟用急切執行模式(Eager Execution)。在某些情況下,急切執行模式可以幫助調試和查看模型的每個操作的結果。

--gpu-memory-utilization "0.8"

指定容器使用 GPU 顯存的比例。在此配置中,0.8 表示容器將使用 GPU 顯存的 80%。

--model "/app/model/"

指定模型文件的位置,即掛載到容器中的 /app/model/ 目錄。這個路徑將指向你的 DeepSeek 模型。

--host "0.0.0.0"

設置容器的綁定地址為 0.0.0.0,這意味著容器將接受來自所有 IP 地址的請求。

--port "8000"

設置容器服務監聽的端口為 8000,也就是你通過 localhost:8000 或宿主機的 IP 地址和端口來訪問該容器提供的 API 服務。

--max-model-len "10000"

該參數設置模型能夠處理的最大輸入文本長度,通常這個值的設置需要根據模型和任務的需求來進行調節。

--api-key "12345678"

設置訪問 API 的密鑰,這個密鑰通常用于驗證客戶端請求的合法性和安全性。你可以將其替換為實際的 API 密鑰。

--tokenizer "/app/model/"

設置 分詞器 的路徑,在這里,分詞器位于 /app/model/ 目錄下,這個目錄包含了模型的相關資源文件,包括分詞器。

其它參數可參考官方說明。

VLLM在多張GPU上運行

在運行 vLLM 時,使用 --tensor-parallel-size 參數指定 GPU 數量。例如,如果你有 2 張 RTX 4090,可以這樣運行:只需在上面的命令中加入:

"--tensor-parallel-size", "2"

這樣,VLLM 會自動將計算任務拆分到 2 張顯卡上。你可以通過 nvidia-smi 觀察顯存占用情況。如果你有 4 張 GPU,可以將 --tensor-parallel-size 設為 4,以獲得更高的計算吞吐量。

KV 緩存優化

在 Transformer 結構中,每次生成新 token 時,模型需要重新計算所有之前的 token(自回歸推理)。這會導致長文本推理速度越來越慢。KV 緩存(Key-Value Cache) 是一種優化策略,它將計算過的 Key(鍵)和 Value(值)存儲起來,避免重復計算,從而加速推理。

vLLM 的 Paged KV 緩存

vLLM 采用了一種 Paged KV 緩存 技術,相比傳統的 KV 緩存,它能更高效地管理顯存,避免顯存碎片化,提高推理效率。

特點:

動態分配內存 —— 僅在需要時分配緩存,減少不必要的顯存占用

支持流式生成 —— 適用于長文本對話,避免顯存溢出

減少重復計算 —— 加快推理速度,特別適用于長文本生成

開啟 KV 緩存優化

vLLM 默認開啟 KV 緩存,但如果要手動調整 KV 緩存的大小,可以使用 --max-num-batched-tokens 參數。如果你的模型處理長文本較多,建議調大 --max-num-batched-tokens,但要注意 GPU 顯存的使用情況。

VLLM 常用參數簡介

參數類別

關鍵參數

作用

核心設置

--model--tensor-parallel-size

選擇模型 & 多 GPU 并行

顯存管理

--gpu-memory-utilization--dtype

控制顯存占用

推理優化

--max-num-batched-tokens--enable-kv-cache

提高吞吐量 & KV 緩存優化

API 服務器

--port--host

控制 vLLM API 監聽地址

輸出控制

--max-tokens--temperature

控制輸出質量

如果你在使用 VLLM 過程中遇到 顯存溢出(OOM) 或 推理速度慢 的問題,可以嘗試調整:

  1. 降低 --max-num-batched-tokens
  2. 調整 --gpu-memory-utilization(一般設為 0.85~0.95)
  3. 使用 --dtype float16 減少顯存占用
  4. 在多 GPU 服務器上增加 --tensor-parallel-size
責任編輯:龐桂玉 來源: 寫代碼的中年人
相關推薦

2025-02-28 07:11:20

2025-04-09 03:25:00

2023-06-20 07:19:49

RTX 4090HWBOT顯卡

2023-01-28 21:27:27

2023-08-25 15:44:46

Bodhi 7.0Linux

2022-05-23 15:56:32

UbuntuLinux

2022-04-06 12:19:50

LinuxUbuntu

2022-04-07 12:53:40

UbuntuLinux

2022-10-25 11:06:43

2023-02-27 07:36:36

渦輪風扇噪音

2022-07-28 15:10:34

UbuntuDocker

2023-12-26 08:00:00

微前端React

2024-10-12 08:00:00

機器學習Docker

2024-01-03 16:01:23

2024-05-15 15:27:39

2023-02-13 11:38:38

GPU筆記本性能

2023-07-05 16:45:30

WiresharkLinux

2020-03-06 16:00:04

KubernetesSpark容器

2023-04-14 07:18:24

RTX 4090Boost頻率
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩视频91| 日韩激情网| 久久久久久网站 | 国产乱肥老妇国产一区二 | 成人国产在线观看 | 理论片免费在线观看 | 精品综合视频 | 精品国产一区二区三区免费 | 免费视频二区 | 高清黄色毛片 | 中文字幕国产精品 | 亚洲免费观看视频网站 | 亚洲最大看片网站 | 国产乱人伦 | 日韩a v在线免费观看 | 亚洲精品久久 | 一区二区高清在线观看 | 亚洲福利一区二区 | 成人免费在线观看视频 | 国产一区免费 | 国产精品毛片久久久久久 | 国产黄色av电影 | 久久色视频 | 久久久久久蜜桃一区二区 | 亚洲成人一区二区 | 国产91视频一区二区 | 亚洲欧美日韩激情 | 尤物在线 | 国产真实精品久久二三区 | 99久久免费精品视频 | 一区二区在线免费观看 | 日韩在线观看一区二区三区 | 精品一区二区三区四区在线 | 欧美一区2区三区3区公司 | 国产精品第2页 | 国产成人99久久亚洲综合精品 | 欧美日韩一区二区三区四区 | 激情久久网| 久久伊人影院 | 夜夜爽99久久国产综合精品女不卡 | 91影院 |