推理服务
推理服务功能的核心定义是将训练好的机器学习或深度学习模型部署为可在线调用的服务,使用 HTTP API 或 gRPC 等协议,使应用能够实时或批量使用模型的预测、分类、生成等能力。该功能主要解决模型训练完成后,如何高效、稳定、便捷地将模型部署到生产环境,并提供可扩展的在线服务。
优势
- 简化模型部署流程,降低部署复杂度。
- 提供高可用、高性能的在线与批量推理服务。
- 支持动态模型更新和版本管理。
- 实现推理服务的自动化运维和监控。
核心特性
推理服务直接模型部署
- 允许用户直接从模型仓库中选择特定版本的模型文件,并指定推理运行时镜像,以快速部署在线推理服务。系统会自动下载、缓存并加载模型,启动推理服务。这样简化了模型部署流程,并降低了部署门槛。
推理服务应用
- 将 Kubernetes 应用作为推理服务使用。该方式提供更高的灵活性,允许用户根据自身需求自定义推理环境。
推理服务模板管理
- 支持创建、管理和删除推理服务模板,用户可基于预定义模板快速部署推理服务。
推理服务批量操作
- 支持对多个推理服务进行批量操作,例如批量启动、停止、更新和删除。
- 支持批量推理任务的创建、监控和结果导出。
- 提供批量资源管理能力,可批量分配和调整推理服务资源。
推理体验
- 提供交互式界面,方便用户测试和体验推理服务。
- 支持多种输入和输出格式,以满足不同应用场景的需求。
- 提供模型性能评估工具,帮助用户优化模型部署。
推理运行时支持
- 集成多种主流推理框架,例如 vLLM、Seldon MLServer 等,并支持用户自定义推理运行时。
- vLLM:针对 DeepSeek/Qwen 等大语言模型(LLMs)进行了优化,具备高并发处理能力,并通过更高的资源效率提升吞吐量。
- MLServer:面向传统 ML 模型(XGBoost/图像分类)设计,提供多框架兼容性和简化的调试体验。
访问方式、日志、Swagger、监控等
- 提供多种访问方式,例如 HTTP API 和 gRPC。
- 支持详细的日志记录和分析,便于用户排查问题。
- 自动生成 Swagger 文档,便于用户集成和调用推理服务。
- 提供实时监控和告警能力,确保服务稳定运行。
创建推理服务
第 1 步:进入模型仓库
在左侧导航栏中,点击 模型仓库
自定义发布推理服务需要手动设置参数。你也可以通过组合输入参数创建一个“模板”,以便快速发布推理服务。
第 2 步:发起推理服务发布
点击模型名称进入模型详情页,然后点击右上角的 发布推理服务。
第 3 步:配置模型元数据(如需要)
如果 “发布推理服务” 按钮无法点击,请进入 “文件管理” 选项卡,点击“编辑元数据”,并根据实际模型信息选择 “任务类型” 和 “框架”。(必须编辑默认分支的元数据才会生效。)
第 4 步:选择发布模式并进行配置
进入 发布模式选择 页面。AML 提供 自定义发布 和 模板发布 两种选项。
-
模板发布:
- 选择模型并点击 模板名称
- 进入模板发布表单,模板中的参数会预先加载,但可手动编辑
- 点击 发布 即可部署推理服务
-
自定义发布:
- 点击 自定义发布
- 进入自定义发布表单并配置参数
- 点击 发布 即可部署推理服务
第 5 步:监控和管理推理服务
你可以在左侧导航栏的推理服务下查看已发布推理服务的状态、日志及其他详情。如果推理服务启动失败或运行资源不足,可能需要更新或重新发布推理服务,并修改可能导致启动失败的配置。
注意: 推理服务会根据请求流量在“最小副本数”和“最大副本数”之间自动扩缩容。如果“最小副本数”设置为 0,当一段时间内没有请求时,推理服务会自动暂停并释放资源。此时,如果有请求到来,推理服务可以自动启动并加载缓存在 PVC 中的模型。
AML 基于 kserve InferenceService CRD 完成云原生推理服务的发布和运行。如果你熟悉 kserve 的使用,在“从模型直接发布推理服务”时,也可以点击右上角的“YAML”按钮,直接修改 YAML 文件以完成更高级的发布操作。
模型发布参数说明
推理服务模板管理
AML 引入了 模板发布,用于快速部署推理服务。你可以创建和删除模板(更新模板需要新建一个模板)。
第 1 步:创建模板
- 在左侧导航栏中,点击 推理服务 > 创建推理服务
- 点击 自定义发布
- 进入表单页面并配置参数
- 点击 创建模板
第 2 步:从已有模板创建新模板
- 在左侧导航栏中,点击 推理服务 > 创建推理服务
- 选择模型并点击 模板名称
- 按需编辑参数
- 点击 创建模板 保存为新模板
第 3 步:删除模板
- 在左侧导航栏中,点击 推理服务 > 创建推理服务
- 在模板卡片上点击 操作 > 删除
- 确认删除
推理服务更新
- 在左侧导航栏中,点击 推理服务。
- 点击 推理服务名称。
- 在推理服务详情页右上角点击 操作 > 更新,进入更新页面。
- 修改必要字段后点击 更新。系统会执行滚动更新,以避免影响现有客户端请求。
调用已发布的推理服务
AML 为常见任务类型提供了可视化的 “推理体验” 方式来访问已发布的推理服务;你也可以使用 HTTP API 方式调用推理服务。
推理体验
AML 支持以下任务类型的推理服务推理演示(任务类型在模型元数据中指定):
- 文本生成
- 文本分类
- 图像分类
- 图像生成
成功发布上述任务类型的推理服务后,你可以在模型详情页和推理服务详情页右侧显示 “推理体验” 对话框。根据推理任务类型不同,输入和输出数据类型可能不同。以文本生成为例,输入文本后,模型生成的文本会以蓝色字体追加在文本框中已输入文本的后面。 推理体验支持选择部署在不同集群中的不同推理服务,以及同一模型多次发布的推理服务。选择某个推理服务后,将调用该推理服务并返回推理结果。
通过 HTTP API 调用
发布推理服务后,你可以在应用或其他服务中调用该推理服务。本文档以 Python 代码为例,演示如何调用已发布的推理 API。
-
在左侧导航栏中点击 推理服务 > 推理服务名称,进入推理服务详情页。
-
点击 访问方式 选项卡,获取集群内或集群外访问方式。集群内访问方式可直接从 Notebook 或此 K8s 集群中的其他容器访问。如果需要从集群外部位置(例如本地笔记本电脑)访问,则需要使用集群外访问方式。
-
点击调用示例查看示例代码。
注意:调用示例中提供的代码仅适用于使用 mlserver 运行时(Seldon MLServer)发布的推理服务所支持的 API 调用协议。此外,Swagger 选项卡也仅支持访问使用 mlserver 运行时发布的推理服务。
推理参数说明
调用推理服务时,可以通过调整模型推理参数来调整模型输出效果。 在 推理体验 界面中,常用参数和默认值已预设,也可以添加任意自定义参数。
不同任务类型的参数说明
文本生成
预设参数
其他参数
更多参数请参考 Text Generation Parameter Configuration。
图像生成
预设参数
其他参数
更多参数请参考 Text-to-Image Parameter Configuration。
文本分类
预设参数
更多参数请参考 Text Classification Parameter Configuration
其他参考
Image Classification Parameter Configuration
Conversational Parameter Configuration
Summarization Parameter Configuration
Translation Parameter Configuration