昇腾社区首页
EN
注册

MindIE MS服务端API接口

MindIE MS支持REST接口和tls认证通信,API接口描述如表1所示。

表1 API接口

API

method

url

body

说明

推理服务部署

post

/v1/servers/

json格式的字符串。

发起部署请求,异步接口,部署状态可通过get接口实时查询,部署配置信息请参见表2

推理服务卸载

delete

/v1/servers/{server_name}

无。

{server_name}为样例中server_name参数的值,在MS管理范围内具有全局唯一性,停止卸载服务,删除相关已创建资源。

用户需自行编写json格式的字符串,用于部署推理服务,如下所示(格式必须和样例保持一致):

 {
    "server_name": "mindie-1",
    "namespace": "default",
    "server_type":"mindie_cross_node",                                 
    "replicas": 1,                                                     
    "cross_node_num":2,
    "server_image": "image:version",
    "service_port": 31005,
    "service_type": "NodePort",
    "startup_cmd": "/path/run.sh",
    "scheduler": "default",
    "init_delay": 180,
    "resource_requests": {
        "memory":   500000,
        "cpu_core" : 32000,
        "npu_type": "Ascend910",
        "npu_chip_num": 8
    },
    
    "mindie_server_config": {
        "infer_port" : 1025,
        "management_port":1026,
        "enable_tls":true
    },
    "mount_path": {
        "/container_path": "/host_path"
    }
}
表2 json格式消息体参数解释

参数

类型

说明

server_name

String

必填。

多机任务服务名称。在MS管理范围内具备唯一性的ID,当前只支持部署一个服务。

namespace

String

必填。

服务所属的命名空间,使用命令空间之前需要现在Kubernetes集群内创建该namepace。

该值和表1中的namespace必须一致。

server_type

String

必填。

服务部署的形态,只支持mindie_cross_node为多机部署。

replicas

Int

必填。

部署的副本数量。取值为:1。

当前只支持部署一个实例。

cross_node_num

Int

必填。

可交叉部署服务的节点个数,取值为:2。

server_image

String

必填。

多机任务需要的镜像名称及版本,格式为:image_name:image_version。

service_type

String

必填。

创建Kubernetes的Service资源类型,当前只支持NodePort类型。

NodePort:表示从该参数获取Service的资源类型。

service_port

Int

必填。

部署服务对外可被用户访问的端口,NodePort取值范围[30000,32767]。

访问MindIE推理请求时需要使用该接口。

startup_cmd

String

必填。

MindIE Server容器的启动指令,必须是.sh文件的绝对路径。启动脚本样例请参考•非root用户镜像启动脚本样例如下所示:

每个部署节点上都需要有该启动脚本。

scheduler

String

必填。

可选调度器类型,当前仅支持default类型。

default:使用Kubernetes默认调度器。

init_delay

Int

必填。

允许推理实例启动的时间,在这个时间内MindIE MS会周期性检测服务实例是否就绪,超过这个时间服务未就绪,实例将自动重启。取值范围为[10, 1800], 单位为秒。

memory

Int

必填。

服务所需最少内存资源大小,单位为M。

默认值500000,取值范围[1000, 1000000]。

cpu_core

Int

必填。

服务所需最少CPU资源大小,取值范围[1000, 256000],单位为M(1000M等于1核心)。

npu_type

String

必填。

服务所需NPU卡类型,当前仅支持输入“Ascend910”。

npu_chip_num

Int

必填。

单个节点所需NPU卡的数量;多机场景下,会分配匹配的卡资源并写入ranktable。 多机场景下只支持全卡推理,当前仅支持配置为8卡的设备。

mindie_server_config

Object

必填。

infer_port:推理服务的推理端口。

management_port:推理服务的管理端口,用于查询服务状态。

enable_tls:是否开启https,使用服务端启动时,配置的证书发送tls请求需要与MindIE Serverconfig.json配置文件中httpsEnabled参数、表1中client_mindie_server_tls_enable参数的值保持一致。

mount_path

Object

必填。

如需要挂载物理路径到容器中,格式为 "容器路径(key):物理路径(value)"。

用户可以将1.c中在容器外部的config.json文件通过mount_path方式挂载回config.json源文件(/usr/local/Ascend/mindie/latest/mindieservice/conf/config.json),即可动态修改镜像内配置文件。

每个部署节点上都需要有挂载路径或文件。

  • 非root用户镜像启动脚本样例如下所示:
    export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7                    #1-6行为运行所需环境变量
    source /home/{用户名称}/Ascend/ascend-toolkit/set_env.sh
    source /home/{用户名称}/Ascend/mindie/set_env.sh
    source /home/{用户名称}/Ascend/nnal/atb/set_env.sh
    source /home/{用户名称}/Ascend/llm_model/set_env.sh
    export HCCL_OP_EXPANSION_MODE="AIV"
    cd /home/{用户名称}/Ascend/mindie/latest/mindie-service             #7-8行为运行启动命令
    ./bin/mindieservice_daemon

    {用户名称}为MindIE安装指南中的容器化部署和镜像制作 > 制作MindIE Server镜像章节中非root用户镜像制作中的用户名称。

其他客户端

如果已在Kubernetes容器中部署MindIE MS服务端,用户如需使用除MindIE MS客户端以外的客户端(例如:curl)向MindIE MS服务端发起请求,使用样例如下所示:

curl客户端通过HTTPS访问MindIE MS服务端样例:
  • 部署服务:
    curl -H "Content-Type: application/json" -X POST https://{ip}:{port}/v1/servers -d @infer_server.json --cacert {ca证书文件路径} --cert {证书文件路径} --key {秘钥文件路径}
  • 删除服务:
    curl -H "Content-Type: application/json" -X DELETE https://{ip}:{port}/v1/servers/{server_name} --cacert {ca证书文件路径} --cert {证书文件路径} --key {秘钥文件路径}

    参数解释:

    {ip}:是Kubernetes管理节点的物理机IP地址。

    {port}:是表1中port参数的值。

    infer_server.json:请参考用户自行编写用于部署服务的json格式的字符串,参考表2

    --cacert:表2的ca_cert参数。

    --cert:表2的tls_cert参数。

    --key:表2的tls_key参数。