本教程以部署一个 Llama 3 8B 模型服务为例,介绍如何从头创建一个 Serverless Endpoint。

步骤 1: 准备容器镜像

您需要提前将 Llama 3 8B 模型运行环境打包成 Docker 镜像,并上传至镜像仓库。目前派欧算力云平台支持指定「公共镜像仓库地址」和「私有镜像仓库地址」(包含镜像仓库访问凭证)。

您可以将镜像上传到平台的私有镜像仓库,也可以上传到 Docker Hub,目前平台针对 Docker Hub 提供了镜像加速服务。

我们使用 vLLM 官方镜像仓库来托管部署 Llama 3.1 8B 模型:vllm/vllm-openai:latest,您可以直接使用该镜像地址。

步骤 2:进入控制台页面

进入Serverless 控制台页面后,选择合适的 GPU 容器实例规格并点击「创建 Endpoint」。

目前仅支持 RTX 4090 24GBRTX 4090D 24GB 实例规格,后续会逐步放开,请关注官方的后续通知。

步骤 3:配置 Serverless Endpoint

请注意上方示例截图中的 Serverless 费用仅作参考,请以实际页面信息为准。

确认配置无误后,点击「一键部署」即完成创建过程。

表单字段说明:

  • Endpoint 名称:用于唯一标识您的 Endpoint,系统会默认为您生成一个名称,您也可以自行指定。
  • 应用名称:应用名称是 Endpoint URL 的组成部分,可选并支持自定义,只支持小写字母、数字和 -。如果没有指定则系统会自动生成。
  • Worker 配置
    • 最小 Worker 数:最小保留的 GPU 容器实例数,可以设置为 0,这样当您的服务没有请求时,不会保留任何容器实例,请注意当设置为 0 时,可能无法快速响应后续的请求,对响应时间有较高要求的场景,请谨慎设置。
    • 最大 Worker 数:最大保留的 GPU 容器实例数,当您的服务请求量增加并触发自动扩容机制时,会增加 Worker 数,这个配置项限制了可扩容的最大实例数,以帮助控制成本。
    • 空闲超时(秒):当触发自动缩容机制而准备下线 Worker 时,平台会为您保留该 Worker 指定的时间,以快速应对后续可能上涨的请求量。请注意平台会收取您这段时间的 Worker 费用。
    • 最大并发数:每个 Worker 能处理的请求最大并发数,当并发数超过最大值时,会将请求调度到其他 Worker 上,如果所有 Worker 并发都被打满,则会将请求存放到队列中等待被执行。
    • GPUs / Worker:每个 Worker 占用的 GPU 卡数。
    • CUDA 版本:支持指定 CUDA 版本。
  • 弹性策略
    • 队列延迟策略:根据队列中请求的等待时间调整 Worker 数量。此时您需要配置「队列等待时间」,当队列中请求的等待时间超过该值时,会触发自动扩容,小于该值时,会触发自动缩容(结合您在前面设置的「空闲超时(秒)」来决定 Worker 的下线具体时间)。
    • 队列请求数策略:根据队列中的请求数调整 Worker 数量。此时您需要配置「队列最大请求数」,当队列中的请求数超过该值时,会触发自动扩容,小于该值时,会触发自动缩容(结合您在前面设置的「空闲超时(秒)」来决定 Worker 的下线具体时间)。
  • 镜像配置
    • 镜像地址:镜像仓库地址,例如 vllm/vllm-openai:latest
    • 镜像仓库凭证:当您指定的是私有镜像仓库时,需要设置访问凭证信息,请通过 个人中心 - 镜像仓库认证信息页面进行配置。
    • HTTP 端口:GPU 容器实例暴露的 HTTP 端口,请根据实际情况进行配置,负载均衡器会将请求转发到 GPU 容器实例的该端口上。
    • 容器启动命令:容器启动时执行的命令。比如:--model meta-llama/Llama-3.1-8B-Instruct --max-model-len 4096
  • 存储配置:这里可以配置本地盘挂载路径以及云存储。目前系统盘和本地盘固定大小,后续会逐步放开,请关注官方的后续通知。
  • 其他
    • 健康检查路径:内置的负载均衡器会通过该路径做健康检查,通过判断返回的状态码是否为 200 来决定是否将请求转发到该 Worker 上。比如:/health
    • 环境变量:这里可以配置服务依赖的环境变量。比如:HUGGING_FACE_HUB_TOKEN={您在 Hugging Face 上的 Access Token(有读权限)}; HTTP_PROXY=http://172.17.0.1:1081; HTTPS_PROXY=http://172.17.0.1:1081

步骤 4: 访问部署好的 Llama 3 8B 模型服务

您可以在Serverless 控制台中找到您刚刚创建的 Serverless Endpoint。当状态变为 “服务中”,并至少有一个 Worker 处于 “运行中” 状态时,点击 “复制” 按钮复制 URL 用于接下来访问模型服务。

您可以使用 curl 命令访问部署好的服务,如下所示:

curl "{您刚刚复制的 URL}/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "meta-llama/Llama-3.1-8B-Instruct",
    "messages": [
        {
            "role": "system",
            "content": "Act like you are a helpful assistant."
        },
        {
            "role": "user",
            "content": "Hi there!"
        }
    ],
    "max_tokens": 512
}'

下一步

接下来,请通过文档管理 Serverless Endpoint了解如何查看和更改您刚刚创建的 Serverless Endpoint 配置。

在这个过程中,如果您遇到任何问题,欢迎随时联系我们