使用 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" "http://localhost: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" "http://localhost:8080/predictions/model"
TorchServe 的 LLM 启动脚本也提供了一些自定义选项。要将模型端点从 predictions/model
重命名为其他名称,您可以将 --model_name <SOME_NAME>
添加到 docker run
命令中。
启动脚本也可以在 Docker 容器外部使用,方法是在按照 安装说明 安装 TorchServe 后调用它。
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 提供了各种关于如何部署大型模型的示例。以下是当前示例的列表