使用 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 卷 中,以便更快地重新加载。如果您想访问 gated 模型(例如 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 提供了关于如何部署大型模型的各种示例。以下是当前示例的列表