在GPU實例上配置DeepGPU-LLM容器鏡像后,可以幫助您快速構建大語言模型(例如Llama模型、ChatGLM模型、百川Baichuan模型或通義千問Qwen模型)的推理環境,主要應用在智能對話系統、文本分析、編程輔助等自然語言處理業務場景,您無需深入了解底層的硬件優化細節,鏡像拉取完成后,無需額外配置即可開箱即用。本文為您介紹如何在GPU實例上使用DeepGPU-LLM容器鏡像構建大語言模型的推理服務。
DeepGPU-LLM是阿里云研發的基于GPU云服務器的大語言模型(Large Language Model,LLM)推理引擎,可以幫助您實現大語言模型在GPU上的高性能推理優化功能。更多信息,請參見什么是推理引擎DeepGPU-LLM。
準備工作
獲取DeepGPU-LLM容器鏡像詳細信息,以便您在GPU實例上部署該容器鏡像時使用。例如,創建GPU實例時需要提前了解容器鏡像適用的GPU實例類型,拉取容器鏡像時需要提前獲取鏡像地址等信息。
登錄容器鏡像服務控制臺。
在左側導航欄,單擊制品中心。
在倉庫名稱搜索框,搜索
deepgpu
選擇目標鏡像egs/deepgpu-llm
。DeepGPU-LLM容器鏡像大概每3個月內更新一次。鏡像詳情如下所示:
鏡像名稱
組件信息
鏡像地址
適用的GPU實例
DeepGPU-LLM
DeepGPU-LLM:24.3
Python:3.10
PyTorch:2.1.0
CUDA:12.1.1
cuDNN:8.9.0.131
基礎鏡像:Ubuntu 22.04
egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/deepgpu-llm:24.3-pytorch2.1-cuda12.1-cudnn8-ubuntu22.04
DeepGPU-LLM鏡像僅支持以下GPU實例選擇,更多信息,請參見GPU計算型。
gn6e、ebmgn6e
gn7i、ebmgn7i、ebmgn7ix
gn7e、ebmgn7e、ebmgn7ex
操作步驟
本操作以Ubuntu 20.04操作系統的gn7i實例規格為例。
創建GPU實例并安裝Tesla驅動。
具體操作,請參見創建GPU實例。
在GPU實例上使用DeepGPU-LLM鏡像,需要提前在該實例上安裝Tesla驅動且驅動版本為535或更高,建議您通過ECS控制臺購買GPU實例,并選中安裝GPU驅動。
說明GPU實例創建完成后,會同時自動安裝Tesla驅動、CUDA、cuDNN庫等,相比手動安裝方式更快捷。
遠程連接GPU實例。
具體操作,請參見通過密碼或密鑰認證登錄Linux實例。
執行以下命令,安裝Docker環境。
sudo apt-get update sudo apt-get -y install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io
執行以下命令,檢查Docker是否安裝成功。
docker -v
如下圖回顯信息所示,表示Docker已安裝成功。
執行以下命令,安裝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 sudo apt-get update sudo apt-get install -y nvidia-container-toolkit
設置Docker開機自啟動并重啟Docker服務。
sudo systemctl enable docker sudo systemctl restart docker
執行以下命令,查看Docker是否已啟動。
sudo systemctl status docker
如下圖回顯所示,表示Docker已啟動。
執行以下命令,拉取DeepGPU-LLM鏡像。
sudo docker pull egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/deepgpu-llm:24.3-pytorch2.1-cuda12.1-cudnn8-ubuntu22.04
執行以下命令,運行DeepGPU-LLM容器。
sudo docker run -d -t --net=host --gpus all \ --privileged \ --ipc=host \ --name deepgpu \ -v /root:/root \ egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/deepgpu-llm:24.3-pytorch2.1-cuda12.1-cudnn8-ubuntu22.04
測試驗證
本測試以通義千問-7B-Chat模型
為例,您可以通過DeepGPU-LLM安裝包自帶的可運行代碼實例體驗模型運行效果,展示使用DeepGPU-LLM的推理性能。更多信息,請參見使用DeepGPU-LLM。
執行以下命令,進入DeepGPU-LLM容器。
sudo docker exec -it deepgpu bash
執行以下命令,下載modelscope格式的
通義千問-7B-Chat
模型。git-lfs clone https://modelscope.cn/qwen/Qwen-7B-Chat.git
執行以下命令,將modelscope格式的通義千問模型轉換為DeepGPU-LLM支持的格式。
#qwen-7b weight convert huggingface_qwen_convert \ -in_file /workspace/Qwen-7B-Chat \ -saved_dir /workspace/Qwen-7B-Chat-converted \ -infer_gpu_num 1 \ -weight_data_type fp16 \ -model_name qwen-7b
說明in_file
參數后的/workspace/Qwen-7B-Chat
請替換為您實際待轉換的原始模型所在路徑。saved_dir
參數后的/workspace/Qwen-7B-Chat-converted
請替換為您實際轉換后的模型所存放的路徑。
執行以下命令,運行DeepGPU-LLM安裝包自帶的推理代碼,測試模型的推理效果。
qwen_cli -i /workspace/Qwen-7B-Chat-converted/1-gpu/ -t /workspace/Qwen-7B-Chat/
運行完成后,您可以輸入內容和ChatGLM模型進行問答對話。例如: