功能简介

推理服务功能的核心定义是将训练好的机器学习或深度学习模型部署为可在线调用的服务,使用 HTTP API 或 gRPC 等协议,使应用能够实时或批量使用模型的预测、分类、生成等能力。该功能主要解决在模型训练完成后,如何高效、稳定、便捷地将模型部署到生产环境,并提供可扩展的在线服务。

优势

  • 简化模型部署流程,降低部署复杂度。
  • 提供高可用、高性能的在线和批量推理服务。
  • 支持动态模型更新和版本管理。
  • 实现推理服务的自动化运维和监控。

适用场景

  • 实时推荐系统:基于用户行为对商品或内容进行实时推荐。
  • 图像识别:对上传的图像进行分类、检测或识别。
  • 自然语言处理:提供文本分类、情感分析和机器翻译等服务。
  • 金融风控:实时评估用户信用风险或交易风险。
  • 大语言模型服务:提供在线问答、文本生成等服务。
  • 批量推理:对大量非实时数据进行推理,例如历史数据分析和报告生成。

带来的价值

  • 加速模型部署,缩短应用开发周期。
  • 提高模型推理效率,降低延迟。
  • 降低运维成本,提升系统稳定性。
  • 支持业务快速迭代和创新。

主要功能

推理服务的直接模型部署

  • 允许用户直接从模型仓库中选择模型文件的特定版本,并指定推理运行时镜像,快速部署在线推理服务。系统会自动下载、缓存并加载模型,启动推理服务。这简化了模型部署流程,降低了部署门槛。

推理服务的自定义镜像部署

  • 支持用户编写 Dockerfile,将模型及其依赖打包到自定义镜像中,然后通过标准的 Kubernetes Deployment 部署推理服务。该方式提供了更高的灵活性,允许用户根据自身需求自定义推理环境。

推理服务的批量操作

  • 支持对多个推理服务进行批量操作,例如批量启动、停止、更新和删除。
  • 支持创建、监控和结果导出的批量推理任务。
  • 提供批量资源管理能力,可批量分配和调整推理服务的资源。

推理服务体验

  • 提供交互式界面,便于用户测试和体验推理服务。
  • 支持多种输入和输出格式,满足不同应用场景的需求。
  • 提供模型性能评估工具,帮助用户优化模型部署。

推理运行时支持

  • 集成多种主流推理框架,例如 vLLM、Seldon MLServer 等,并支持用户自定义推理运行时。
TIP
  • vLLM:针对 DeepSeek/Qwen 等大语言模型(LLMs)进行了优化,具备高并发处理能力,并通过更优的资源利用率提升吞吐量。
  • MLServer:面向传统 ML 模型(XGBoost/图像分类),提供多框架兼容性和更简化的调试体验。

访问方式、日志、Swagger、监控等

  • 提供多种访问方式,例如 HTTP API 和 gRPC。
  • 支持详细的日志记录和分析,便于用户排查问题。
  • 自动生成 Swagger 文档,便于用户集成和调用推理服务。
  • 提供实时监控和告警功能,确保服务稳定运行。

功能优势

性能优势:

  • 支持 GPU 加速,提升模型推理速度。
  • 支持批量推理,提高吞吐量。
  • 优化推理运行时,降低延迟。

可扩展性:

  • 基于 Kubernetes 构建,支持弹性扩缩容。
  • 支持水平扩展,以应对高并发场景。
  • 支持大模型分布式推理。
  • 支持批量任务并行处理。

安全性:

  • 提供身份认证和授权机制,保障服务安全。
  • 支持网络隔离,防止数据泄露。
  • 支持模型的安全部署和更新。

稳定性:

  • 提供健康检查和自动重启机制,提升服务可用性。
  • 支持日志监控和告警,及时发现并解决问题。

创建推理服务

Step 1

选择自定义发布

TIP

自定义发布推理服务需要手动设置参数。你也可以通过组合输入参数创建一个“模板”,以便快速发布推理服务。

Step 2

填写用于模型发布的推理服务详情

参数描述
名称必填,推理 API 的名称。
描述推理 API 的详细说明,用于解释其功能和用途。
模型必填,用于推理的模型名称。
版本必填,模型版本。选项包括 Branch 和 Tag。
推理运行时必填,用于推理运行时的引擎。
请求 CPU必填,推理服务请求的 CPU 资源量。
请求内存必填,推理服务请求的内存资源量。
限制 CPU必填,推理服务可使用的最大 CPU 资源量。
限制内存必填,推理服务可使用的最大内存资源量。
GPU 加速类型GPU 加速的类型。
GPU 加速值GPU 加速的值。
临时存储推理服务使用的临时存储空间。
挂载现有 PVC将现有的 Kubernetes Persistent Volume Claim(PVC)挂载为存储。
容量必填,临时存储或 PVC 的容量大小。
自动伸缩启用或禁用自动伸缩功能。
实例数量必填,运行推理服务的实例数量。
环境变量注入到容器运行时环境中的键值对。
添加参数传递给容器入口可执行文件的参数。字符串数组(例如 ["--port=8080", "--batch_size=4"])。
启动命令覆盖容器镜像中的默认 ENTRYPOINT 指令。可执行文件 + 参数(例如 ["python", "serve.py"])。

Step 3

点击 发布 按钮创建推理服务。

体验

Step 1

Inference API 服务列表中,点击任意 Running 服务的名称以查看其详细信息。

Step 2

点击 体验 以展开右侧图表。

Step 3

提问

  • 系统角色

    定义 AI 的目的、语气和操作边界(例如,“你是一个专注于医疗信息的有用助手”)。

  • 参数

    根据你的任务类型选择参数。详情请参考下面的参数说明。

不同任务类型的参数说明

文本生成

预设参数

参数数据类型描述
do_samplebool是否使用采样;如果不使用,则采用贪心解码。
max_new_tokensint生成的最大 token 数,不包含提示词中的 token。
repetition_penaltyfloat重复惩罚,用于控制生成文本中的重复内容;1.0 表示无重复,0 表示重复。
temperaturefloat文本生成时模型对下一个 token 的随机性;1.0 表示高随机性,0 表示低随机性。
top_kint在计算下一个 token 的概率分布时,仅考虑概率最高的前 k 个 token。
top_pfloat控制模型在选择下一个 token 时所考虑的累积概率分布。
use_cachebool是否使用模型在生成过程中计算出的中间结果。

其他参数

参数数据类型描述
max_lengthint生成 token 的最大数量。对应输入提示词中的 token 数 + max_new_tokens。如果设置了 max_new_tokens,其效果会被 max_new_tokens 覆盖。
min_lengthint生成 token 的最小数量。对应输入提示词中的 token 数 + min_new_tokens。如果设置了 min_new_tokens,其效果会被 min_new_tokens 覆盖。
min_new_tokensint生成 token 的最小数量,不包含提示词中的 token。
early_stopbool控制基于 beam 的方法的停止条件。True:当出现 num_beams 个完整候选项时停止生成。False:当通过启发式方法判断不太可能找到更好的候选项时停止生成。
num_beamsintbeam search 使用的 beam 数量。1 表示不使用 beam search。
max_timeint允许计算运行的最长时间,单位为秒。
num_beam_groupsintnum_beams 分组,以确保不同 beam 组之间的多样性。
diversity_penaltyfloat在启用 num_beam_groups 时生效。该参数对组间施加多样性惩罚,以确保每个组生成的内容尽可能不同。
penalty_alphafloatpenalty_alpha 大于 0 且 top_k 大于 1 时,会启用对比搜索。penalty_alpha 值越大,对比惩罚越强,生成文本越有可能符合预期。如果 penalty_alpha 设得过大,可能会导致生成文本过于单一。
typical_pfloat局部典型性衡量的是:预测下一个目标 token 的条件概率与在已生成部分文本给定情况下预测下一个随机 token 的预期条件概率之间的相似度。如果设置为小于 1 的浮点数,则会保留概率累加达到或超过 typical_p 的最小局部典型 token 集合用于生成。
epsilon_cutofffloat如果设置为严格介于 0 和 1 之间的浮点数,则仅对条件概率大于 epsilon_cutoff 的 token 进行采样。建议取值范围为 3e-4 到 9e-4,具体取决于模型大小。
eta_cutofffloatEta sampling 是局部典型采样和 epsilon 采样的混合形式。如果设置为严格介于 0 和 1 之间的浮点数,则仅当 token 大于 eta_cutoff 或 sqrt(eta_cutoff) * exp(-entropy(softmax(next_token_logits))) 时才会被考虑。建议取值范围为 3e-4 到 2e-3,具体取决于模型大小。
repetition_penaltyfloat重复惩罚参数。1.0 表示无惩罚。

更多参数请参考 文本生成参数配置

图像生成

预设参数

参数数据类型描述
num_inference_stepsint去噪步骤数。更多的去噪步骤通常会生成更高质量的图像,但推理速度更慢。
use_cachebool是否使用模型在生成过程中计算出的中间结果。

其他参数

参数数据类型描述
heightint生成图像的高度,单位为像素。
widthint生成图像的宽度,单位为像素。
guidance_scalefloat用于调整生成图像质量与多样性之间的平衡。数值越大,多样性越高,但质量会降低;建议范围为 7 到 8.5。
negative_promptstr or List[str]用于引导图像生成中不应包含的内容。

更多参数请参考 图像生成参数配置

文本分类

预设参数

参数数据类型描述
top_kint评分最高的类别标签数量。如果提供的数量为 None,或高于模型配置中可用标签的数量,则默认返回所有标签数量。
use_cachebool是否使用模型在生成过程中计算出的中间结果。

更多参数请参考 文本分类参数配置

其他参考

图像分类参数配置

对话参数配置

摘要参数配置

翻译参数配置

Text2Text Generation 参数配置

Image-to-Image 参数配置