在 Ubuntu 服務器 4x2080ti-22G- 上部署 QwQ-32B - vLLM 教程
QwQ 是 Qwen 級數的推理模型。與傳統的指令調優模型相比,能夠思考和推理的 QwQ 可以在下游任務中實現顯著增強的性能,尤其是難題。QwQ-32B 是中型推理模型,能夠實現與最先進的推理模型(如 DeepSeek-R1、o1-mini)相比的競爭性能。
在這篇文章中,我將詳細介紹在 Ubuntu 22.04 服務器(4 x 2080Ti 22G)上部署和運行 QwQ-32B 服務的詳細流程!
升級和安裝相關的依賴
操作系統更新
sudo apt update && sudo apt upgrade
安裝 git-all
sudo apt install git-all
安裝 curl
sudo apt install curl
驗證是否安裝成功
curl --version
下載和安裝 git-lfs
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash sudo apt-get install git-lfs
下載模型
我們可以在 huggingface 和魔搭社區下載 QwQ-32B 模型,國內以魔搭社區爲例:
打開模型的下載頁面:https://modelscope.cn/models/Qwen/QwQ-32B/files
點擊 “下載模型”
複製下載鏈接:
git clone https://www.modelscope.cn/Qwen/QwQ-32B.git
在 Ubuntu 服務器中的指定位置打開一個終端窗口,將下載鏈接粘貼進去回車,系統將自動下載好所有的模型和配置文件!下面的案例中,我在 disk1 磁盤中專門新建了一個 LLM 的目錄用來存放所有的模型,cd 到這個目錄之後,直接將下載命令粘貼進來回車,下載完成之後你可以在該目錄中看到 “QwQ-32B” 這個模型文件夾。
模型大小有 64G,所以下載的時間會比較漫長,取決於你的網速情況!我大概下載了一個小時!
安裝 miniconda(如果已經安裝過了這一步可以省略)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh
第二行命令輸入之後,要一直按着 “Enter” 鍵閱讀完它全部的 license,知道出現了提示輸入 “yes” 和“no”的輸入框提示
我們直接輸入 “yes” 進行確認!然後會然我們選擇安裝的路徑,一般情況下我們直接按 “Enter” 鍵確認即可!
詢問是否要初始化,直接輸入 “yes” 確認
看到下面的 “Thank you…” 就標誌着安裝完成了!
激活 conda 模式
source ~/.bashrc
安裝 vLLM
新建一個單獨的虛擬環境
首先要爲 vllm 新建一個虛擬環境:
conda create -n vllm python=3.10 -y && conda activate vllm
安裝 vllm
繼續在虛擬環境中執行下面的代碼:
pip install vllm==0.7.3
安裝 NCCL(NVIDIA Collective Communications Library)庫
安裝與 CUDA 12.x 兼容的 NCCL 庫,確保在使用 CUDA 進行加速計算時,可以利用 NCCL 提供的通信優化,運行下面這行代碼
python -m cupyx.tools.install_library --library nccl --cuda 12.x
運行 vllm server 服務
在 vllm 虛擬環境激活的狀態下,運行下面的 vllm server 命令:
vllm serve /mnt/disk1/LLM/QwQ-32B --served-model QwQ-32B --tensor-parallel-size 4 --max-model-len 32768 --dtype=half --trust-remote-code --gpu-memory-utilization 0.95 --max-num-seqs 5 --host=0.0.0.0 --port=4000
命令參數解析:
模型路徑:/mnt/disk1/LLM/QwQ-32B
模型名稱:–served-model QwQ-32B
顯卡數量:–tensor-parallel-size 4
最大上下文長度:–max-model-len 32768
顯存使用率:–gpu-memory-utilization 0.95
最大併發數:–max-num-seqs 5
運行成功之後你會看到 vllm server 給出了一個帶端口號的 IP 地址和 “Application startup complete.” 的字樣,證明已經運行成功了!
如果我們在任何一種 webui 調用這個 api 的話,就可以運行 QwQ-32B 的模型來進行推理了!下面以谷歌瀏覽器插件 “Page Assist” 調用 QwQ-32B 模型推理爲例:
可以看得出來 “QwQ-32B” 模型的思考過程沒有丟失 < think > 標籤,並且推理結果也是正確的!
推理速度也是比較快的,穩定在 26.2tokens/s 左右。不過跟 deepseek-r1 的蒸餾模型(比如 DeepSeek-R1-Distill-Qwen-32B)相比,QwQ-32B 模型存在明顯的過度思考的問題,這會導致 GPU KV cache 的佔有率迅速飆升,這意味着併發數可能會受到影響。
總結
測試結果:
第一題:3.9 和 3.11 哪個更大?(✔)
第二題:1 塊錢一瓶可樂,兩個空瓶可以再換一瓶可樂,假設你有 20 元錢,最多可以喝到幾瓶可樂?(✔)
第三題:明天的昨天是昨天的哪天?(✔)
第四題:魯迅爲什麼要打周樹人?(✔)
第五題:冰箱裏有 10 個雞蛋,我敲了兩個,煎了兩個,吃了兩個,還剩幾個?(✔)
第六題:在平面四邊形 ABCD 中,AB=AC=CD=1,angle ADC=30^{circ}, angle DAB =120^{circ}。將 triangle ACD 沿 AC 翻折至 triangle ACP,其中 P 爲動點。求二面角 A-CP-B 的 餘弦值的最小值。(✘)
第七題:一個漢字具有左右結構,左邊是木,右邊是乞。這個字是什麼?只需回答這個字即可。(✘)
第八題:請用我給你的 4 個數字,通過加、減、乘、除、括號,組成一個運算,使得結果爲 24。注意:數字需要全部使用我提供的數字:4468(✔)
總體來說表現還是十分亮眼的!但是比起滿血版的 deepseek-r1 來還是有差距的!至於 QwQ-32B 和 DeepSeek-R1-Distill-Qwen-32B 相比究竟誰強誰弱,我們後面會專門做一期全面的測試!總而言之,QwQ-32B 讓我們在低成本的設備上運行大模型有了更多的選擇!這是已經非常好的事!
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/3qKxN7ckXBsXOqzgMvLlMQ