⚠️ 注意:有限維護
本專案不再積極維護。現有版本仍然可用,但沒有計劃進行更新、錯誤修復、新功能開發或安全補丁。使用者應注意,潛在的安全漏洞可能不會得到解決。
使用 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 token
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://: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://:8080/predictions/model"
TorchServe 的 LLM 啟動指令碼也提供了一些自定義選項。要將模型端點從 predictions/model 重新命名為其他名稱,您可以在 docker run 命令中新增 --model_name <SOME_NAME>。
按照 安裝說明 安裝 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 提供了各種關於如何部署大型模型的示例。以下是當前示例列表