使用 TorchServe 部署 LLM¶
本文檔描述如何輕鬆地使用 TorchServe 部署大型語言模型 (LLM),例如 Meta-Llama3。除了使用我們的 VLLM 整合的快速入門指南外,我們還提供了一系列範例,描述了使用 TorchServe 部署 LLM 的其他方法。
LLM 部署快速入門¶
TorchServe 透過其 VLLM 整合提供簡單的 LLM 部署。透過整合我們的 LLM 啟動器腳本,使用者只需一個命令即可部署 VLLM 支援的任何模型。啟動器可以單獨使用,也可以與我們提供的 TorchServe GPU Docker 映像檔結合使用。
若要啟動 Docker,我們首先需要建置它
docker build . -f docker/Dockerfile.vllm -t ts/vllm
模型通常從 HuggingFace Hub 載入,並快取在 Docker 卷冊 中,以便更快地重新載入。如果您想存取閘道模型(如 Meta-Llama3 模型),您需要提供 HuggingFace Hub 權杖
export token=<HUGGINGFACE_HUB_TOKEN>
然後您可以繼續啟動 TorchServe 實例,以服務您選定的模型
docker run --rm -ti --shm-size 1g --gpus all -e HUGGING_FACE_HUB_TOKEN=$token -p 8080:8080 -v data:/data ts/vllm --model_id meta-llama/Meta-Llama-3-8B-Instruct --disable_token_auth
若要變更模型,您只需交換提供給 --model_id
參數的識別碼即可。您可以使用以下命令測試模型
curl -X POST -d '{"prompt":"Hello, my name is", "max_new_tokens": 50}' --header "Content-Type: application/json" "https://127.0.0.1:8080/predictions/model"
您可以透過使用 VLLM SamplingParams 關鍵字,變更請求的任何取樣引數。例如,若要將取樣溫度設定為 0,我們可以執行
curl -X POST -d '{"prompt":"Hello, my name is", "max_new_tokens": 50, "temperature": 0}' --header "Content-Type: application/json" "https://127.0.0.1:8080/predictions/model"
TorchServe 的 LLM 啟動器腳本也提供了一些自訂選項。若要將模型端點從 predictions/model
重新命名為其他名稱,您可以將 --model_name <SOME_NAME>
新增至 docker run
命令。
在安裝 TorchServe 後,按照安裝說明操作,也可以在 Docker 容器外部呼叫啟動器腳本。
python -m ts.llm_launcher --disable_token_auth
請注意,啟動器腳本以及 Docker 命令將自動在所有可用的 GPU 上執行,因此請務必透過設定 CUDA_VISIBLE_DEVICES 來限制可見裝置的數量。
若要進一步自訂處理器並新增第三方依賴項,您可以查看我們的 VLLM 範例。
支援的模型¶
快速入門啟動器應允許啟動任何 VLLM 支援的模型。以下是 TorchServe 團隊測試的模型識別碼清單
meta-llama/Meta-Llama-3-8B
meta-llama/Meta-Llama-3-8B-Instruct
meta-llama/Llama-2-7b-hf
meta-llama/Llama-2-7b-chat-hf
mistralai/Mistral-7B-v0.1
mistralai/Mistral-7B-Instruct-v0.1
使用 TorchServe 部署 LLM 的其他方法¶
TorchServe 提供了關於如何部署大型模型的各種範例。以下是目前範例的清單