在GPU云服務(wù)器上快速部署TensorRT-LLM以構(gòu)建大語(yǔ)言模型的推理環(huán)境
在GPU的實(shí)例上安裝推理引擎TensorRT-LLM,可以幫助您快速且方便地構(gòu)建大語(yǔ)言模型(例如Llama模型、ChatGLM模型、百川Baichuan模型或通義千問(wèn)Qwen模型)的推理環(huán)境,主要應(yīng)用在智能對(duì)話系統(tǒng)、文本分析等自然語(yǔ)言處理業(yè)務(wù)場(chǎng)景。本文為您介紹如何在GPU實(shí)例上安裝和使用TensorRT-LLM來(lái)快速構(gòu)建大語(yǔ)言模型的高性能推理優(yōu)化功能。
TensorRT-LLM是NVIDIA推出的一個(gè)開(kāi)源推理加速庫(kù),專門(mén)用于加速大語(yǔ)言模型推理性能。關(guān)于TensorRT-LLM支持的模型和GPU卡等信息,請(qǐng)參見(jiàn)TensorRT-LLM。
使用限制
僅支持在GPU計(jì)算型實(shí)例上安裝TensorRT-LLM,更多信息,請(qǐng)參見(jiàn)GPU計(jì)算型實(shí)例規(guī)格族。本文以在gn6i實(shí)例上安裝TensorRT-LLM為例。
阿里云的云市場(chǎng)鏡像中僅Ubuntu 22.04 64位系統(tǒng)的鏡像預(yù)裝了TensorRT-LLM工具。
阿里云的公共鏡像中僅Ubuntu 22.04 64位系統(tǒng)的鏡像支持安裝TensorRT-LLM工具。
安裝TensorRT-LLM
部分云市場(chǎng)鏡像中已預(yù)裝了TensorRT-LLM工具,在創(chuàng)建GPU實(shí)例時(shí),您可以一鍵獲取預(yù)裝TensorRT-LLM的鏡像來(lái)自動(dòng)安裝TensorRT-LLM;也可以先購(gòu)買(mǎi)GPU實(shí)例,然后手動(dòng)安裝TensorRT-LLM。
自動(dòng)方式(選擇云市場(chǎng)鏡像)
獲取云市場(chǎng)鏡像并創(chuàng)建GPU實(shí)例。
云市場(chǎng)鏡像中預(yù)裝了TensorRT-LLM工具,您可以通過(guò)以下兩個(gè)入口獲取云市場(chǎng)鏡像。
通過(guò)ECS購(gòu)買(mǎi)頁(yè)面獲取
選擇自定義購(gòu)買(mǎi)頁(yè)簽。
按需選擇付費(fèi)類型、地域、網(wǎng)絡(luò)及可用區(qū)、實(shí)例規(guī)格、鏡像等配置。
需要注意的參數(shù)項(xiàng)設(shè)置如下圖所示,其他配置項(xiàng)參數(shù)的詳細(xì)說(shuō)明,請(qǐng)參見(jiàn)配置項(xiàng)說(shuō)明。
實(shí)例:以
ecs.gn6i-c4g1.xlarge
實(shí)例規(guī)格為例。鏡像:在云市場(chǎng)鏡像中搜索
tensorrt-llm
,然后選擇所需鏡像。在創(chuàng)建GPU計(jì)算型實(shí)例時(shí),云市場(chǎng)鏡像中提供了基于預(yù)裝tensorrt-llm的ubuntu 22.04系統(tǒng)(VM版本)鏡像供您選擇,安裝了TensorRT-LLM后即可立即使用TensorRT-LLM,您無(wú)需額外配置,具體鏡像及版本信息如下。
支持的實(shí)例規(guī)格
預(yù)裝大語(yǔ)言模型框架的鏡像
最新版本
預(yù)裝tensorrt-llm的ubuntu 22.04系統(tǒng)
V 0.10.0
按照頁(yè)面提示操作,單擊確定下單。
在支付頁(yè)面查看實(shí)例的總費(fèi)用,如無(wú)疑問(wèn),按照提示完成支付。
通過(guò)云市場(chǎng)獲取
在頁(yè)面的搜索框輸入
tensorrt-llm
并按回車(chē)鍵。選擇需要的鏡像類型,單擊詳情。
云市場(chǎng)鏡像中提供了基于預(yù)裝tensorrt-llm的ubuntu 22.04系統(tǒng)(VM版本)鏡像供您選擇,安裝了TensorRT-LLM后即可立即使用TensorRT-LLM,您無(wú)需額外配置,具體鏡像及版本信息如下。
支持的實(shí)例規(guī)格
預(yù)裝大語(yǔ)言模型框架的鏡像
最新版本
預(yù)裝tensorrt-llm的ubuntu 22.04系統(tǒng)
V 0.10.0
在鏡像詳情頁(yè),單擊立即購(gòu)買(mǎi)。
說(shuō)明購(gòu)買(mǎi)鏡像時(shí),系統(tǒng)鏡像本身是免費(fèi)的,您只需要支付GPU云服務(wù)器的費(fèi)用。
在實(shí)例購(gòu)買(mǎi)頁(yè)的鏡像區(qū)域,查看云市場(chǎng)鏡像頁(yè)簽下是否已選中所購(gòu)買(mǎi)鏡像。
下圖以購(gòu)買(mǎi)的鏡像被選中為例,如果鏡像未被選中,則您需要繼續(xù)單擊重新選擇鏡像,選擇所需鏡像。
在實(shí)例購(gòu)買(mǎi)頁(yè),配置其他參數(shù)并創(chuàng)建GPU實(shí)例。
更多信息,請(qǐng)參見(jiàn)配置項(xiàng)說(shuō)明。
遠(yuǎn)程連接GPU實(shí)例。
具體操作,請(qǐng)參見(jiàn)通過(guò)密碼或密鑰認(rèn)證登錄Linux實(shí)例。
執(zhí)行以下命令,檢查T(mén)ensorRT-LLM安裝狀態(tài)和版本信息。
python3 -c "import tensorrt_llm"
如果TensorRT-LLM安裝成功,則會(huì)返回TensorRT-LLM的版本信息。
手動(dòng)方式(選擇公共鏡像)
先創(chuàng)建GPU實(shí)例(鏡像須選擇公共鏡像中的Ubuntu 22.04 64位系統(tǒng)鏡像),然后在該GPU實(shí)例上安裝TensorRT-LLM。
創(chuàng)建GPU實(shí)例。
選擇自定義購(gòu)買(mǎi)頁(yè)簽。
按需選擇付費(fèi)類型、地域、網(wǎng)絡(luò)及可用區(qū)、實(shí)例規(guī)格、鏡像等配置。
需要注意的參數(shù)項(xiàng)設(shè)置如下圖所示,其他配置項(xiàng)參數(shù)的詳細(xì)說(shuō)明,請(qǐng)參見(jiàn)配置項(xiàng)說(shuō)明。
實(shí)例:以
ecs.gn6i-c4g1.xlarge
實(shí)例規(guī)格為例。鏡像:在公共鏡像中選擇Ubuntu 22.04 64位。
按照頁(yè)面提示操作,單擊確定下單。
在支付頁(yè)面查看實(shí)例的總費(fèi)用,如無(wú)疑問(wèn),按照提示完成支付。
遠(yuǎn)程連接GPU實(shí)例。
具體操作,請(qǐng)參見(jiàn)通過(guò)密碼或密鑰認(rèn)證登錄Linux實(shí)例。
依次執(zhí)行以下命令,安裝GPU實(shí)例的Tesla驅(qū)動(dòng)和CUDA Tooklit。
wget https://developer.download.nvidia.com/compute/cuda/12.5.0/local_installers/cuda_12.5.0_555.42.02_linux.run sudo sh cuda_12.5.0_555.42.02_linux.run
依次執(zhí)行以下命令,配置環(huán)境變量。
export PATH=/usr/local/cuda-12.5/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-12.5/lib64:$LD_LIBRARY_PATH
依次執(zhí)行以下命令,查看GPU實(shí)例的驅(qū)動(dòng)以及CUDA是否安裝成功。
nvidia-smi nvcc -V
依次執(zhí)行以下命令,安裝TensorRT-LLM以及相應(yīng)依賴。
說(shuō)明下載和安裝過(guò)程需要較長(zhǎng)時(shí)間,請(qǐng)您耐心等待。
sudo apt-get update sudo apt-get -y install python3.10 python3-pip openmpi-bin libopenmpi-dev sudo pip3 install tensorrt_llm -U --extra-index-url https://pypi.nvidia.com
執(zhí)行以下命令,檢查T(mén)ensorRT-LLM安裝狀態(tài)和版本信息。
python3 -c "import tensorrt_llm"
如果TensorRT-LLM安裝成功,則會(huì)返回TensorRT-LLM的版本信息。
使用TensorRT-LLM
TensorRT-LLM具有高性能推理優(yōu)化能力,本文以使用TensorRT-LLM快速運(yùn)行Qwen1.5-4B-Chat模型為例。
執(zhí)行以下命令,下載TensorRT-LLM源代碼。
本示例以TensorRT-LLM 0.10.0版本為例,您可以根據(jù)自己實(shí)際情況進(jìn)行相應(yīng)修改。
wget https://github.com/NVIDIA/TensorRT-LLM/archive/refs/tags/v0.10.0.tar.gz tar xvf v0.10.0.tar.gz
執(zhí)行以下命令,下載Qwen1.5-4B-Chat開(kāi)源模型。
以ModelScope上的Qwen1.5-4B-Chat模型為例。
重要因?yàn)槟P洼^大,請(qǐng)下載前確保網(wǎng)絡(luò)連接穩(wěn)定,網(wǎng)絡(luò)帶寬盡量保持最大。
git-lfs clone https://modelscope.cn/qwen/Qwen1.5-4B-Chat.git
構(gòu)建模型Engine。
執(zhí)行以下命令,進(jìn)入解壓好的TensorRT-LLM源碼目錄。
cd TensorRT-LLM-0.10.0/examples/qwen
執(zhí)行以下命令,安裝模型所需的依賴軟件。
sudo pip install -r requirements.txt
依次執(zhí)行以下命令,配置模型參數(shù)并構(gòu)建模型Engine。
python3 convert_checkpoint.py --model_dir /home/ecs-user/Qwen1.5-4B-Chat --output_dir /home/ecs-user/trt_checkpoint --dtype float16
trtllm-build --checkpoint_dir /home/ecs-user/trt_checkpoint --output_dir /home/ecs-user/trt_engines/qwen1.5-4b-chat/1-gpu --gemm_plugin float16
說(shuō)明如果構(gòu)建模型Engine失敗,根據(jù)失敗原因調(diào)整參數(shù)重新構(gòu)建,也可以指定int8和int4量化等功能,更多信息,請(qǐng)參見(jiàn)模型目錄下的
README.md
。
執(zhí)行以下命令,運(yùn)行TensorRT-LLM進(jìn)行模型推理。
以
你好,你是誰(shuí)?
作為文本輸入?yún)?shù)為例,運(yùn)行TensorRT-LLM進(jìn)行模型的推理。python3 ../run.py --input_text "你好,你是誰(shuí)?" --max_output_len=500 --tokenizer_dir /home/ecs-user/Qwen1.5-4B-Chat --engine_dir=/home/ecs-user/trt_engines/qwen1.5-4b-chat/1-gpu
推理結(jié)果展示: