2024-11-21 一站式 AI 平台生日大派对!2024-11-21 一站式 AI 平台生日大派对! 无问芯穹特别推出多项超值福利!立即参与
Skip to content

使用预置镜像部署推理服务

本章节将介绍如何使用平台预置的 Fastchat + VLLM 镜像部署推理服务,并配置内网和外网访问方式。

NOTE

  • 运行推理服务需要预付费计算资源,请提前购买包年/包月/包周/包日资源池。购买方式参见购买、支持与售后。暂不支持按量付费方式。

部署前准备

在部署模型推理服务之前,请确保满足以下条件:

  • 算力资源: 预付费类型资源(包年/包月/包周/包日资源),购买方式参见购买、支持与售后。暂不支持按量付费方式。
  • 共享高性能存储:用于存放模型文件。推理服务实例通过挂载的方式访问共享高性能存储中的模型文件。
  • 模型文件:请提前放置模型文件至共享高性能存储。

准备模型文件

由于预置推理镜像中的框架不支持自动下载模型,请提前准备模型文件,并放置模型文件至共享高性能存储。

您可以使用开发机或免费的 AICoder 读写共享高性能存储。以下示例中直接从外部下载了一个模型文件。

shell
# 创建任意目录
mkdir -vp /mnt/public/models
cd /mnt/public/models
# 从 modelscope 下载模型
git lfs install
git clone https://www.modelscope.cn/Qwen/Qwen2.5-0.5B-Instruct.git
# 下载完成后,确保模型目录内存在 .safetensors 文件
ls -alht /mnt/public/models/Qwen2.5-0.5B-Instruct

创建推理服务

访问智算云控制台的推理服务页面,可创建推理服务。

进入创建页面后,请根据页面提示,完成以下配置。

Step 0 选择算力资源

首先,根据推理服务要求,在您购买的算力资源池中选择合适的 GPU 算力规格、实例数量。

如果算力资源类型为资源池,平台会列出租户下的所有资源池,在资源池右侧可直接查看空闲可用卡数。

alt text

您购买的资源池中可能包含一种或多种实例规格。您需要选择运行服务的计算资源规格。每种规格对应一个特定的 CPU、显卡、内存配置组合。

  • 实例数量: 预期运行的实例数。实例数大于 1 时自动提供负载均衡。仅在当前资源池可用实例大于等于 1 时,该推理服务可部署成功。
  • 滚动更新: 设置最大不可用百分比,该参数仅影响服务升级与回滚。在开发测试阶段,单实例的情况下可设置为 0,多实例的情况下可设置为 50%。详细说明请移步升级服务

NOTE

选择资源池后,平台会根据负载规格计算剩余可启动数量。例如,负载规格 NVIDIA A100-40-NVLinK 显卡数量 1 的可启动数量为 9,表示资源池内的剩余资源可供创建 9 个同规格实例。最佳实践是根据 检查资源占用情况 确保当前资源池的剩余资源足够满足任务启动需求。

Step 1 使用预置推理镜像

我们预置的推理服务镜像预装了 FastChat,并使用 vLLM worker,通过使用这个镜像,您可以简化部署过程,并专注于模型的服务和优化。

目前可选的专用镜像:

  • cr.infini-ai.com/infini-ai/inference-base:v1-vllm0.4.0-torch2.1-cuda12.3-ubuntu22.04
  • cr.infini-ai.com/infini-ai/inference-base:v2-vllm0.6.2-torch2.2-cuda12.3-ubuntu22.04

以下示例选用 v2 镜像,该镜像中 FastChat 的 vllm worker 版本为 0.6.2。

alt text

在启动命令中挂载模型路径,调用内置的 /app/entrypoint.sh 脚本,即可快捷启动推理服务。启动命令模板:

bash
# 必需的环境变量
export MODEL=qwen2.5-0.5b-instruct   # 模型名称,例如:qwen2.5-0.5b-instruct, llama2-7b-chat
export TP=1                        # Tensor并行大小,必须为正整数,通常设置为要使用的GPU数量

# 可选环境变量(带默认值,可按需启用和修改)
# export GMU=0.90                  # GPU 显存使用率(默认:0.90)
# export MAXLR=16                  # LoRA 最大秩(默认:16)
# export TOKENMODE=auto            # 分词器模式(默认:auto)
# export SFT=0                     # 是否为 SFT 模型(默认:0)
# export BLOCK_SIZE=16             # 块大小(默认:16)
# export MAX_NUM_SEQS=256         # 最大序列数(默认:256)
# export LOG=1                     # 启用日志(默认:1)
# export DEBUG=0                   # 调试模式(默认:0)

# 可选环境变量(需要显式设置,默认为空/未启用)
# ENABLE_LORA export ENABLE_LORA=True
# LORA_MODELS
# FIRST_TOKEN_METRICS  first token metrics seconds. export FIRST_TOKEN_METRICS=0.01,0.025,0.05,0.075,0.1,0.15,0.2,0.3,0.4,0.5,0.75,1.0,2.5
# PRE_TOKEN_METRICS pre token metrics seconds. export PRE_TOKEN_METRICS=0.001,0.005,0.01,0.02,0.04,0.06,0.08,0.1,0.25,0.5,0.75,1.0,2.5,5.0,7.5,10.0
# PREFIXCACHING  export PRE_TOKEN_METRICS=True
# CHUNKEDPREFILL export CHUNKEDPREFILL=True
# ENFORCEEAGER export ENFORCEEAGER=True

# 模型路径设置,将您放置在共享存储中的模型通过软链接提供给 vllm worker
ln -s /mnt/public/models/Qwen2.5-0.5B-Instruct /app/model/${MODEL}

# 执行镜像内置的脚本,无需更改;
/app/entrypoint.sh

如果希望详细了解平台预置的 FastChat+vLLM 镜像与内置脚本,请参考实践教程 推理服务:使用 FastChat 和vLLM 部署大语言模型

Step 2 挂载共享高性能存储

推理服务依赖的模型和代码可放置在共享高性能存储中。创建推理服务时,可保持平台默认创建的挂载点。

alt text

  • 系统盘: 推理服务实例的 / 目录的存储大小,固定 50GB。
  • 高性能存储:挂载租户的共享高性能存储(例如,您可以将模型文件放在共享高性能存储中)。详见共享高性能存储

Step 3 配置网络

配置推理服务是否支持从公网访问访问,监听端口以及内网访问端口。

外网配置

启用外网访问,一般选择默认地址即可。推理服务创建成功后,平台将自动生成租户下唯一访问地址,地址中带有当前推理服务的 ID。

格式: https://cloud.infini-ai.com/AIStudio/inference/api/<推理服务ID>/

alt text

NOTE

选择 自定义地址 后,可自定义 URL 中的部分路径,但无法支持自定义域名。推理服务创建成功后,地址中将带有当前租户的 ID 和当前服务的自定义地址。详见访问推理服务

内网配置(端口)

配置监听端口(默认 8000)和调用端口(默认 80),内网支持 HTTP 访问。

WARNING

如果推理服务为提供 UI 的文生图类服务,请保留 80 调用端口。

NOTE

如果推理服务使用预置镜像,会额外展示预置的监控端口配置,默认使用 20000,暂不支持修改。AIStudio 的推理服务监控功能依赖该端口从镜像中采集「业务指标监控数据」。详见服务监控

Step 4 高级配置

首次部署服务时,建议保持自动扩缩容关闭状态,先完成服务部署流程。

开启自动扩缩容后,配置界面如下:

alt text

NOTE

后续根据实际情况选择手动扩缩容、定时扩缩容或自动扩缩容。使用方法详见扩缩容

Step 5 填写基本信息

最后填写推理服务的名称与描述。

  • 名称: 推理服务名称,最多 64 个字符,支持中英文数字以及- _。
  • 描述(可选): 上限 400 字符。

根据模型参数量,所需部署时间可能有差异。推理服务进入部署中状态后,将会执行一系列耗时的子操作。如果进度长期停留在部署中状态,建议查看详细部署进度。

查看部署进度

推理进入部署中状态后,将会执行一系列子操作。只要当前推理服务有一个实例完成所有子操作,即可运行成功。

如果部署进度长时间停留在部署中状态,建议在推理服务列表的状态栏中点击 ... 图标,在打开的弹窗中查看详细进度。

如果在任何子状态发生错误,平台会自动重试。如果进度长时间停留在错误状态且无法恢复,建议停止推理服务,并重新发起。如果问题持续存在,请联系售后服务。

alt text

常见问题

请移步推理服务常见问题