集群节点同步接口

接口功能

同步集群节点。

该接口不需要用户调用,属于Coordinator和Controllor之间的通信接口。

接口格式

操作类型:POST

URL:https://{ip}:{port}/v1/instances/refresh

  • {ip}优先取启动命令参数中的{manage_ip};如果没有配置该命令行参数,则取配置文件ms_coordinator.json的“manage_ip”参数。
  • {port}优先取启动命令参数中的{manage_port};如果没有配置该命令行参数,则取配置文件ms_coordinator.json的“manage_port”参数。

请求参数

参数

类型

说明

ids

uint64_t[]

必填。

同步节点的ID列表。

instances

object[]

必填。

同步节点的具体信息。

id

uint64_t

必填。

节点ID。

ip

string

必填。

节点IP。

port

string

必填,取值范围:["1024", "65535"]

节点数据端口。

metric_port

string

必填,取值范围:["1024", "65535"]

节点metrics端口。

model_name

string

必填。

节点加载的模型名。

static_info

object

必填。

节点静态信息。

group_id

uint64_t

必填。

节点所属的组ID。

max_seq_len

uint32_t

必填。取值大于0。

节点最大队列长度。

max_output_len

uint32_t

必填,取值范围[1, max_seq_len - 1]。

节点最大推力输出长度。

total_slots_num

uint32_t

必填,取值范围[1, 5000]。

节点最大推理任务数。

total_block_num

uint32_t

必填,取值大于0。

节点最大内存块个数。

block_size

uint32_t

必填,取值范围[1, 128]。

内存块大小。

label

uint32_t

必填。只在PD分离场景有用。

节点标签;取值如下所示:

  • 2:Prefill节点
  • 3:Decode节点

role

uint32_t

必填。

节点身份;取值如下所示:

  • 80:Prefill节点
  • 68:Decode节点
  • 85:Undef节点

dynamic_info

object

必填。

节点动态信息。

avail_slots_num

uint32_t

必填。取值范围[0, total_slots_num]。

节点剩余可用推理任务数。

avail_block_num

uint32_t

必填。取值范围[0, total_block_num]。

节点剩余可用内存块个数。

peers

uint64_t[]

Decode节点连接的所有Prefill节点ID。

  • 当节点为Prefill时,不需要该字段;
  • 当节点为Decode时,必填。

使用样例

请求样例:

POST https://{ip}:{port}/v1/instances/refresh

请求消息体:

{
    "ids": [
        0,1
    ],
    "instances": [
        {
            "id": 0,
            "ip": "0.0.0.0",
            "port": "1025",
            "metric_port": "1026",
            "model_name": "your_model_name",
            "static_info": {
                "group_id": 0,
                "max_seq_len": 2048,
                "max_output_len": 512,
                "total_slots_num": 200,
                "total_block_num": 1024,
                "block_size": 128,
                "label": 2,
                "role": 80
            },
            "dynamic_info": {
                "avail_slots_num": 200,
                "avail_block_num": 1024
            }
        },
        {
            "id": 1,
            "ip": "0.0.0.0",
            "port": "1025",
            "metric_port": "1026",
            "model_name": "your_model_name",
            "static_info": {
                "group_id": 0,
                "max_seq_len": 2048,
                "max_output_len": 512,
                "total_slots_num": 200,
                "total_block_num": 1024,
                "block_size": 128,
                "label": 3,
                "role": 68
            },
            "dynamic_info": {
                "avail_slots_num": 200,
                "avail_block_num": 1024,
                "peers": [
                    0
                ]
            }
        }
    ]
}

响应样例:

正常时无响应消息体。

输出说明

当请求的消息体json格式和字段正确时,返回http200状态码;否则返回http400状态码。