You need to enable JavaScript to run this app.
文档中心
边缘智能

边缘智能

复制全文
下载 pdf
模型服务
部署模型服务 - 自定义框架
复制全文
下载 pdf
部署模型服务 - 自定义框架

本文介绍了如何向边缘节点部署基于自定义推理框架(非 Triton 框架)的模型服务。自定义框架在服务大语言、视觉语言等模型上更具优势。

预置推理框架镜像

推理框架提供了模型的运行环境。要为模型应用自定义推理框架,您必须提供自定义框架的镜像地址。边缘智能在部署您的模型时,会先自动拉取镜像进行安装,然后再部署模型。
边缘智能预置了一些来自第三方的推理框架镜像,方便您直接使用;若预置镜像无法满足您的需求,请自行准备好推理框架镜像。
下表罗列了边缘智能预置的推理框架。预置推理框架均来自第三方开源系统。在选择框架时,请注意以下内容:

  • 不同推理框架有不同的安装要求。选择特定框架时,请自行评估边缘节点是否满足其安装要求。
  • 不同推理框架支持的模型不同。选择特定框架时,请自行评估要部署的模型是否被支持。
推理框架简介

LMDeploy

LMDeploy 是一个用于压缩、部署和服务大型语言模型 (LLM) 和视觉语言模型 (VLM) 的 Python 库。其核心推理引擎包括 TurboMind Engine 和 PyTorch Engine。前者由 C++ 和 CUDA 开发,力求推理性能的极致优化,而后者纯由 Python 开发,旨在降低开发人员的门槛。

  • GitHub 仓库地址:https://github.com/InternLM/lmdeploy
  • 开源许可协议:Apache-2.0 license
  • 安装要求:
    https://lmdeploy.readthedocs.io/en/latest/installation.html#installation
  • 支持的模型:
    Supported Models — lmdeploy
  • 边缘智能平台预置镜像:
    r-veen.volces.com/library/msc/lmdeploy:v0.5.2.post1
    

vLLM

vLLM 是一个快速且易于使用的 LLM 推理和服务库。

  • GitHub 仓库地址:https://github.com/vllm-project/vllm
  • 开源许可协议:Apache-2.0 license
  • 安装要求:
    https://docs.vllm.ai/en/latest/getting_started/installation.html#requirements
  • 支持的模型:
    Supported Models — vLLM
  • 边缘智能平台预置镜像:
    r-veen.volces.com/library/msc/vllm-openai:v0.4.0
    r-veen.volces.com/library/msc/vllm-openai:v0.7.3
    

TGI

文本生成推理 (TGI) 是一个用于部署和提供大型语言模型 (LLM) 的工具包。TGI 为最流行的开源 LLM(包括 Llama、Falcon、StarCoder、BLOOM、GPT-NeoX 和 T5)提供高性能文本生成功能。

  • GitHub 仓库地址:https://github.com/huggingface/text-generation-inference
  • 开源许可协议:Apache-2.0 license
  • 安装要求:
    https://huggingface.co/docs/text-generation-inference/quicktour#supported-hardware
  • 支持的模型:
    Supported Models and Hardware (huggingface.co)
  • 边缘智能平台预置镜像:
    r-veen.volces.com/library/msc/text-generation-inference:v2.2.0
    

前提条件

  • 您已经为空间绑定了边缘节点。相关操作,请参见绑定节点。
  • 如果您使用边缘节点型 aPaaS 工具,则 aPaaS 工具必须是 高级版。
    边缘节点 - 基础版 aPaaS 工具不包含边缘推理功能。更多信息,请参见资源包(aPaaS 工具)计费说明。
  • 如果您要部署自定义模型,您必须完成以下任务:创建自定义模型并为自定义模型创建和发布版本。相关操作,请参见创建自定义模型、创建一个版本。

操作步骤

  1. 登录边缘智能控制台。

  2. 在左侧导航栏,从 我的空间 下拉列表选择一个空间。

  3. 在左侧导航栏,选择 边缘推理 > 模型服务。
  4. 单击 自定义框架 页签,然后单击 部署模型服务。
  5. 在 部署模型服务 页面,配置以下参数,然后单击 确认。
    alt

完成以上操作后,您可以在 模型服务 列表看到刚刚部署的模型服务。此时,模型服务的状态是 部署中。您可以将光标放置在状态旁边的问号图标上,了解部署进度。

  • 当模型服务的状态变为 运行中,表示模型服务已经部署成功。
  • 如果模型服务的状态是 部署失败,您可以将光标放置在 部署失败 上,然后单击 查看原因,以获取具体的错误消息。

配置说明

区域参数说明
基本信息所属空间默认为当前选择的空间。

部署位置

选择将模型服务部署到指定的 节点 或 节点组。

节点

说明

只有当 部署位置 为 节点 时,该参数才会出现。

选择一个或多个节点,将模型服务部署到指定的节点。

节点组

说明

只有当 部署位置 为 节点组 时,该参数才会出现。

选择一个节点组,将模型服务部署到指定的节点组。

  • 请确保节点组中所有节点架构相同,否则可能部署失败。
  • 模型服务只会部署到节点组中的在线节点上。

服务名称

为模型服务设置一个名称。您可以使用以下字符:英文字母、数字、汉字、下划线(_)和连字符(-)。请注意以下规则:

  • 长度限制为 32 个字符以内。
  • 下划线和连字符不能用在开头或结尾,也不能连续使用。
  • 名称不能与边缘节点上其他模型服务名称重复。

副本数量

设置要创建的副本数量。取值范围:1~10。默认值:1。

模型信息

模型

选择要使用的模型。您可以选择边缘智能的官方模型,也可以选择您创建的自定义模型。

模型版本

选择要使用的模型版本。

服务配置

镜像来源

从以下两种推理框架镜像来源中选择一种:

  • 平台预置镜像:边缘智能预置镜像,可直接选择镜像。
  • 自定义镜像:您的自定义镜像,需提供镜像地址。

镜像选择

说明

当 镜像来源 是 平台预置镜像 时,该配置项才会出现。

选择一个预置镜像。关于不同镜像的介绍,请参见预置推理框架镜像。

镜像地址

说明

当 镜像来源 是 自定义镜像 时,该配置项才会出现。

输入您的推理框架镜像的 URL 地址。地址需符合 URL 格式。长度不超过 1024 个字符。

说明

您可以将制作好的应用镜像托管在某个镜像仓库,获取镜像的 URL。我们推荐您将镜像托管到火山引擎镜像仓库。

若您提供的私有镜像仓库地址,请单击 输入,并提供您的 仓库密钥。否则,边缘智能无法访问您的镜像,这将导致服务部署失败。仓库密钥 包含 用户名 和 密码。

注意

不使用免密组件,且需要拉取私有镜像时,必须配置 仓库密钥。

Python三方库配置

设置您希望在边缘节点上安装的第三方 Python 库。格式为 <库名>==<版本号>,多个库通过换行分隔。示例:

numpy==1.22.0
pandas==1.5.3

环境变量

您可以手动设置环境变量。Kubernetes 在创建 Pod 时,会将环境变量的信息注入到容器中。
单击 + 添加一个环境变量。可以添加多个环境变量。

启动命令

输入容器启动前运行的命令。多行命令使用换行符分隔。

GPU算力

设置允许此模型服务使用的 GPU 数量。取值范围:1~8。

注意

要使用 GPU 算力调度能力,必须确保您的节点已经启用了 NVIDIA device plugin 组件。更多信息,请参见绑定节点。

端口

将容器内端口与宿主机(即边缘节点)的端口进行映射。单击 + 添加端口映射。可以添加多个端口映射。

外部访问

设置是否允许从集群外部访问推理服务。开启外部访问后,可以在集群外部通过<节点ip:port>/path来访问推理服务。具体访问方式,可在模型服务部署成功后,前往模型详情的 服务配置 页面查看。更多信息,请参见查看模型服务。

注意

要启用外部访问,必须先设置 端口。

健康检查

您可选择启用 Kubernetes 健康检查,即配置存活、就绪、启动探针。

  • 存活检查:启用后可配置存活探针。

    存活探针决定何时重启容器。例如,当应用在运行但无法取得进展时,存活探针可以捕获这类死锁。存活检查失败时,kubelet 会杀死容器再重新启动容器。

  • 就绪检查:启用后可配置就绪探针。

    就绪探针决定何时容器准备好开始接受流量。这种探针在等待应用执行耗时的初始任务时非常有用,例如建立网络连接、加载文件和预热缓存。就绪检查失败时,Pod 将被标记为未就绪,且不会接收来自任何服务的流量。

  • 启动检查:启用后可配置启动探针。

    启动探针检查容器内的应用是否已启动。启动探针可以用于对慢启动容器进行存活检查,避免它们在启动运行之前就被 kubelet 杀掉。

三类探针具有相同的配置项,具体说明如下。
更多信息,请参见 Kubernetes 官方文档:存活、就绪和启动探针、配置存活、就绪和启动探针。

检查方式

  • HTTP 请求检查:kubelet 向容器发送一个 HTTP(S) Get 请求来执行探测。如果响应状态码为 200~399,则认为检查成功;否则认为检查失败。您需要进行如下检查配置:
    • 协议:HTTP 或 HTTPS。
    • HTTP Headers:HTTP(S) 请求中自定义的请求头。单击 添加 并输入键值对进行配置。
    • 路径:访问 HTTP(S) Server 的路径。
    • 端口:容器暴露的访问端口号。
  • TCP 端口检查:kubelet 尝试在指定端口和容器建立 TCP Socket 连接。如果可以建立连接,则认为检查成功;否则认为检查失败。您需要进行如下检查配置:
    • 端口:容器暴露的访问端口号。
  • 执行命令检查:kubelet 在容器内执行指定的命令。如果命令执行成功并且返回值为 0,则认为检查成功;否则认为检查失败。您需要进行如下检查配置:
    • 命令:探测命令。

时间设置

  • 初始等待:容器启动后要等待多少秒后才启动启动、存活和就绪探针。默认为 0 秒。
    如果定义了启动探针,则存活探针和就绪探针的延迟将在启动探针已成功之后才开始计算。如果 超时时间 的值大于 初始等待,则 初始等待 将被忽略。
  • 超时时间:探测开始后超过多少秒无响应认为请求超时。默认为 1 秒。
  • 检查间隔:执行探测的时间间隔(单位是秒)。默认为 10 秒。

阈值设置

  • 成功阈值:使探测目标的状态标记为成功(如“存活”、“就绪”、“启动”)必须经历的连续检查成功次数。默认为 1 次。
    • 对于不同类型探针,目标状态的含义不同。例如,对于存活探针,默认值表示只要一次检查成功,则认为容器存活。
    • 对于存活探针和启动探针,成功阈值必须为 1。
  • 失败阈值:使探测目标的状态标记为失败(如“不存活”、“未就绪”、“未启动”)必须经历的连续检查失败次数。默认为 3 次。
    对于不同类型探针,目标状态的含义不同。例如,对于存活探针,默认值表示只有连续三次检查失败,才认为容器不存活。

发布策略

发布策略

说明

只有当 副本数量 大于 1 时,发布策略 才会显示。

择一种发布策略。可选项:

  • 滚动发布:用新版本的 Pod 逐步替换旧版本的 Pod。升级的过程中,业务流量会同时负载均衡分布到新版本和旧版本的 Pod 上,因此业务不会中断。选择该策略后,还需要设置以下参数:
    • 滚动数量:扩容过程中,工作负载中可用的 Pod 的数量的上限。
    • 最大不可用:缩容过程中,工作负载中不可用的 Pod 的数量占总 Pod 数量(副本数)的比例上限。
  • 重建:先把工作负载的老版本 Pod 删除,再安装指定的新版本 Pod。升级过程中业务会中断。

如果 副本数量 为 1,默认采用 重建 策略。

最近更新时间:2025.08.06 17:54:50
这个页面对您有帮助吗?
有用
有用
无用
无用