昇腾社区首页
中文
注册
开发者
下载

配置说明

启动配置文件(ms_controller.json)

ms_controller.json配置文件样例如下所示,参数解释请参见ms_controller.json配置文件参数解释,用户可根据具体场景进行配置。
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
{
  "allow_all_zero_ip_listening": false,
  "deploy_mode": "pd_separate",
  "initial_dist_server_port": 10000,
  "cluster_port":8899,
  "process_manager" : {
    "to_file": true,
    "file_path": "./logs/controller_process_status.json"
  },
  "controller_backup_cfg" :{
    "function_sw":false,
    "database_server_dns":"etcd.default.svc.cluster.local",
    "database_server_port":2379
  },
  "cluster_status" : {
    "to_file": true,
    "file_path": "./logs/cluster_status_output.json"
  },
  "global_rank_table_file_path": "./conf/global_rank_table_file.json",
  "cluster_synchronization_seconds": 1,
  "rank_table_detecting_seconds": 5,
  "disappeared_server_waiting_seconds": 7200,
  "default_p_rate": 0,
  "default_d_rate": 0,
  "is_heterogeneous": false,
  "server_online_attempt_times": 4,
  "server_online_wait_seconds": 5,
  "init_role_attempt_times": 2,
  "check_role_attempt_times": 300,
  "check_role_wait_seconds": 5,
  "mindie_server_control_port": 1026,
  "mindie_server_port": 1025,
  "mindie_server_metric_port": 1027,
  "controller_alarm_port": 1027,
  "mindie_ms_coordinator_port": 1026,
  "mindie_ms_coordinator_external_port": 1028,
  "http_timeout_seconds": 5,
  "http_retries": 3,
  "role_decision_methods": "digs",
  "digs_request_summary_input_length": 3000,
  "digs_request_summary_output_length": 200,
  "digs_model_config_path":"./conf/model_config/llama3-70B.json",
  "digs_machine_config_path":"./conf/machine_config/800IA2.json",
  "digs_prefill_slo": 1000,
  "digs_decode_slo": 50,
  "multi_node_infer_config": {
    "multi_node_infer_enable": false,
    "p_node_config": {
      "enable_dist_dp_server": false,
      "node_machine_num": 2,
      "tp_size": 4,
      "dp_size": 4,
      "sp_size": 1
    },
    "d_node_config": {
      "enable_dist_dp_server": false,
      "node_machine_num": 2,
      "tp_size": 4,
      "dp_size": 4,
      "sp_size": 1
    }
  },
  "model_type": "llama3-70B",
  "transfer_type": "D2DTransfer",
  "digs_pp": 1,
  "digs_periodic_role_decision": {
    "auto_pd_role_switching_enable": true,
    "role_decision_time_period": 86400,
    "tasks_end_wait_seconds": 300
  },
  "http_server": {
    "ip" : "127.0.0.1",
    "port": 1026
  },
  "tls_config": {
    "request_coordinator_tls_enable": true,
    "request_coordinator_tls_items": {
      "ca_cert" : "./security/request_coordinator/security/certs/ca.pem",
      "tls_cert": "./security/request_coordinator/security/certs/cert.pem",
      "tls_key": "./security/request_coordinator/security/keys/cert.key.pem",
      "tls_passwd": "./security/request_coordinator/security/pass/key_pwd.txt",
      "kmc_ksf_master": "./security/request_coordinator/tools/pmt/master/ksfa",
      "kmc_ksf_standby": "./security/request_coordinator/tools/pmt/standby/ksfb",
      "tls_crl": ""
    },
    "request_server_tls_enable": true,
    "request_server_tls_items": {
      "ca_cert" : "./security/request_server/security/certs/ca.pem",
      "tls_cert": "./security/request_server/security/certs/cert.pem",
      "tls_key": "./security/request_server/security/keys/cert.key.pem",
      "tls_passwd": "./security/request_server/security/pass/key_pwd.txt",
      "kmc_ksf_master": "./security/request_server/tools/pmt/master/ksfa",
      "kmc_ksf_standby": "./security/request_server/tools/pmt/standby/ksfb",
      "tls_crl": ""
    },
    "http_server_tls_enable": true,
    "http_server_tls_items": {
      "ca_cert" : "./security/http_server/security/certs/ca.pem",
      "tls_cert": "./security/http_server/security/certs/cert.pem",
      "tls_key": "./security/http_server/security/keys/cert.key.pem",
      "tls_passwd": "./security/http_server/security/pass/key_pwd.txt",
      "kmc_ksf_master": "./security/http_server/tools/pmt/master/ksfa",
      "kmc_ksf_standby": "./security/http_server/tools/pmt/standby/ksfb",
      "tls_crl": ""
    },
    "cluster_tls_enable": true,
    "cluster_tls_items": {
      "ca_cert" : "./security/cluster/security/certs/ca.pem",
      "tls_cert": "./security/cluster/security/certs/cert.pem",
      "tls_key": "./security/cluster/security/keys/cert.key.pem",
      "tls_passwd": "./security/cluster/security/pass/key_pwd.txt",
      "kmc_ksf_master": "./security/cluster/tools/pmt/master/ksfa",
      "kmc_ksf_standby": "./security/cluster/tools/pmt/standby/ksfb",
      "tls_crl": ""
    },
    "etcd_server_tls_enable": true,
    "etcd_server_tls_items": {
      "ca_cert" : "./security/etcd_server/security/certs/ca.pem",
      "tls_cert": "./security/etcd_server/security/certs/cert.pem",
      "tls_key": "./security/etcd_server/security/keys/cert.key.pem",
      "tls_passwd": "./security/etcd_server/security/pass/key_pwd.txt",
      "kmc_ksf_master": "./security/etcd_server/tools/pmt/master/ksfa",
      "kmc_ksf_standby": "./security/etcd_server/tools/pmt/standby/ksfb",
      "tls_crl": ""
    },
    "ccae_tls_enable": true,
    "ccae_tls_items": {
      "ca_cert" : "./security/ccae/security/certs/ca.pem",
      "tls_cert": "./security/ccae/security/certs/cert.pem",
      "tls_key": "./security/ccae/security/keys/cert.key.pem",
      "tls_passwd": "./security/ccae/security/pass/key_pwd.txt",
      "kmc_ksf_master": "./security/ccae/tools/pmt/master/ksfa",
      "kmc_ksf_standby": "./security/ccae/tools/pmt/standby/ksfb",
      "tls_crl": ""
    },
    "alarm_tls_enable": true,
    "alarm_tls_items": {
      "ca_cert" : "./security/alarm_server/security/certs/ca.pem",
      "tls_cert": "./security/alarm_server/security/certs/cert.pem",
      "tls_key": "./security/alarm_server/security/keys/cert.key.pem",
      "tls_passwd": "./security/alarm_server/security/pass/key_pwd.txt",
      "kmc_ksf_master": "./security/alarm_server/tools/pmt/master/ksfa",
      "kmc_ksf_standby": "./security/alarm_server/tools/pmt/standby/ksfb",
      "tls_crl": ""
    },
    "external_coordinator_tls_enable": true,
    "external_coordinator_tls_items": {
      "ca_cert" : "./security/external_coordinator/security/certs/ca.pem",
      "tls_cert": "./security/external_coordinator/security/certs/cert.pem",
      "tls_key": "./security/external_coordinator/security/keys/cert.key.pem",
      "tls_passwd": "./security/external_coordinator/security/pass/key_pwd.txt",
      "kmc_ksf_master": "./security/external_coordinator/tools/pmt/master/ksfa",
      "kmc_ksf_standby": "./security/external_coordinator/tools/pmt/standby/ksfb",
      "tls_crl": ""
    }
  },
  "log_info": {
    "log_level": "INFO",
    "to_file": true,
    "to_stdout": true,
    "run_log_path": "./logs/ms_controller_run_log.txt",
    "operation_log_path": "./logs/ms_controller_operation_log.txt",
    "max_log_str_size": 4096,
    "max_log_file_size": 20,
    "max_log_file_num": 10
  }
}

ms_controller.json配置文件参数解释

ms_controller.json配置文件中各个字段解释如表1所示,用户可根据具体场景进行配置。

表1 参数说明

参数名称

取值范围

配置说明

allow_all_zero_ip_listening

  • true:允许全零监管。
  • false:禁止全零监管。

必填;默认值为false。

是否允许全零监管,在取值为false状态下,如果使用全零监管将导致程序运行失败并报错。

说明:

全零监管会导致三面隔离失效,不满足安全配置要求,故默认禁止绑定IP地址为0.0.0.0。若仍需绑定IP地址为0.0.0.0,那么在保证安全前提下,需要将该参数设置为true。

deploy_mode

  • pd_separate或pd_disaggregation:多机PD分离部署;
  • pd_disaggregation_single_container:单机PD分离部署;
  • single_node:无身份部署。

必填;默认值为pd_separate。

部署模式。

initial_dist_server_port

[1024, 65535]

在DeepSeek大EP分布式并行场景下,配置的D节点Server实例起始端口号,在其他场景该参数不生效。

cluster_port

-

选填;默认值8899。

MindCluster ClusterD gRPC服务端端口。

process_manager:进程状态备份功能

to_file

  • true:开启。
  • false:关闭。

必填;默认值为true。

是否开启进程状态备份功能。

如果开启,会在程序启动时,自动加载进程状态备份文件。在程序运行的过程中,自动生成进程状态备份文件。备份文件详情请参见表2

file_path

-

开启to_file开关时必填。

进程状态备份文件路径,要求该路径为真实存在且可读,同时确保该路径安全可靠,运行时会自动创建进程状态备份文件至该路径。如果进程文件保存在容器中的临时路径,在controller容器重启后,将发生文件丢失,需要重启整个集群才能恢复正常服务。

如果修改身份决策的相关配置,则需要删除进程状态备份文件,重启整个集群,否则将继承历史的身份决策结果。

cluster_status:集群服务状态导出功能

to_file

  • true:开启。
  • false:关闭。

必填;默认值为true。

是否开启集群服务状态导出功能。

如果开启,在程序运行的过程中会输出集群状态至文件。集群服务状态输出文件详情请参见表3

file_path

-

开启to_file开关时必填。

集群状态导出文件路径,要求该文件所在的路径真实存在且可读,同时确保该路径安全可靠,运行时会自动创建文件至该路径。

ccae:端到端运维管理功能

ms_controller.json配置文件默认不带CCAE相关参数,如需开启,需自行添加,样例如下:

"ccae" : {
    "ip": "",
    "port": 0
  },

ip

IPv4或IPv6

开启CCAE时必填。

CCAE服务端IP。

port

[1024,65535]

开启CCAE时必填。

CCAE服务端端口。

controller_backup_cfg配置Controller主备倒换

function_sw

  • true:开启。
  • false:关闭。

Controller主备倒换功能开关,默认值为false。

database_server_dns

-

ETCD服务端的域名,默认值为etcd.default.svc.cluster.local。

database_server_port

-

ETCD服务端的端口号,默认值为2379。

global_rank_table_file_path

-

必填。

全局集群信息表路径,要求该文件真实存在且可读,同时确保该路径安全可靠。

如设置环境变量GLOBAL_RANK_TABLE_FILE_PATH,则优先读取环境变量的值。

说明:

全局集群信息表是Controller管控集群状态、管理Server节点的信息源。需要保证文件的安全性和内容的正确性。

cluster_synchronization_seconds

[1,65535],单位为秒。

必填;默认值为1秒。

同步集群信息的时间周期。

rank_table_detecting_seconds

[1,65535],单位为秒。

必填;默认值为5秒。

读取集群信息表的周期。

disappeared_server_waiting_seconds

[1,65535],单位为秒。

必填;默认值为7200秒。

全局集群信息表中,删除Server的等待时间,到此时间时Server将会被移除。

default_p_rate

[0,15]

必填;默认值为0。

PD分离部署模式下,P所占的比例。

  • 0:表示自动决策最佳比例,default_d_rate需要同时为0;
  • 非0:表示指定P的比例,default_d_rate需要同时非0,且default_p_rate和default_d_rate的和小于等于16。

如设置环境变量MINDIE_MS_P_RATE,则优先读取环境变量的值。

default_d_rate

[0,15]

必填;默认值为0。

PD分离部署模式下,D所占的比例。

  • 0:表示自动决策最佳比例,default_p_rate需要同时为0;
  • 非0:表示指定D的比例,default_p_rate需要同时非0,且default_d_rate和default_p_rate的和小于等于16。

如设置环境变量MINDIE_MS_D_RATE,则优先读取环境变量的值。

is_heterogeneous

  • false:表示同构场景;即Server在不同硬件设备上随机指定PD身份。
  • true:表示异构场景;即支持指定Atlas 800I A2 推理服务器(32G)为P节点,指定Atlas 800I A2 推理服务器(64G)为D节点。

必填;默认值为false。

是否为异构场景,异构场景需要同步修改集群信息表,增加hardware_type字段。

说明:

异构场景下,P节点hardware-type标签必须为"800I A2(32G)",D节点hardware-type标签必须为"800I A2(64G)"。

server_online_attempt_times

[1,65535]

必填;默认值为4。

集群初始化时,Server节点上线状态的检查次数

server_online_wait_seconds

[1,65535],单位为秒。

必填;默认值为5。

集群初始化时,Server节点上线状态的检查间隔

init_role_attempt_times

[1,65535]

必填;默认值为2。

Server身份初始化时的重试次数,只有当检查到身份为Unkonwn才会触发重新下发身份的操作。

check_role_attempt_times

[1,65535]

必填;默认值为300。

Server身份初始化的检查次数。

check_role_wait_seconds

[1,65535],单位为秒。

必填;默认值为5秒。

Server身份初始化的检查间隔。

mindie_server_control_port

[1024,65535]

必填;默认值为1026。

Server的管理端口。

mindie_server_port

[1024,65535]

必填;默认值为1025。

Server的数据端口。

mindie_server_metric_port

[1024,65535]

必填;默认值为1027。

Server的metrics端口。

controller_alarm_port

[1024,65535]

必填;默认值为1027。

Controller作为告警服务端端口。

mindie_ms_coordinator_port

[1024,65535]

必填;默认值为1026。

MindIE Coordinator的管理端口。

mindie_ms_coordinator_external_port

[1024,65535]

必填;默认值为1028。

MindIE Coordinator的外部端口。

http_timeout_seconds

[1,65535],单位为秒。

必填;默认值为5秒。

通信超时时间。

http_retries

[0,65535]

必填;默认值为3。

通信异常重试次数。

role_decision_methods

digs

必填;默认值为digs。

PD身份决策算法;目前仅支持digs。

digs_request_summary_input_length

[1,65535]

必填;默认值为3000。

推理请求的平均输入长度。

确定模型及设备配置后,此参数和digs_request_summary_output_length是影响PD最佳比例计算的主要参数。

  • 推理请求为长输入短输出时,P实例的个数多于D实例的个数;
  • 推理请求为短输入长输出时,D实例的个数多于P实例的个数。

digs_request_summary_output_length

[1,65535]

必填;默认值为200。

推理请求的平均输出长度。

确定模型及设备配置后,此参数和digs_request_summary_input_length是影响PD最佳比例计算的主要参数。

  • 推理请求为长输入短输出时,P实例的个数多于D实例的个数;
  • 推理请求为短输入长输出时,D实例的个数多于P实例的个数。

digs_model_config_path

-

必填;默认值为llama3-70B模型的配置文件路径。

身份决策算法需要使用的模型参数信息,要求该文件真实存在且可读,格式参考模型配置文件描述。

digs_machine_config_path

-

必填;默认值为Atlas 800I A2 推理服务器的硬件参数文件路径。

身份决策算法需要使用的机器参数信息,要求该文件真实存在且可读,格式参考硬件设备文件描述。

digs_prefill_slo

[1,65535]

必填;默认值为1000。

Prefill速率。

digs_decode_slo

[1,65535]

必填;默认值为50。

Decode速率。

multi_node_infer_config

multi_node_infer_enable

  • false:不开启
  • true:开启

选填;默认值为false。

该参数仅在DeepSeek大规模专家并行场景下生效,配置是否开启多节点推理。

p_node_config

-

配置P节点。

d_node_config

-

配置D节点。

enable_dist_dp_server

  • false:不开启
  • true:开启

选填;默认值为false。

该参数仅在DeepSeek大规模专家并行场景下生效,表示是否开启分布式并行策略。

node_machine_num

[1, 768]

选填;默认值为2。

该参数仅在DeepSeek大规模专家并行场景下生效,表示P/D实例数。

tp_size

[1, 16]

选填;默认值为4。

该参数仅在DeepSeek大规模专家并行场景下生效,tp数据并行大小。

dp_size

[1, 512]

选填;默认值为4。

该参数仅在DeepSeek大规模专家并行场景下生效,dp数据并行大小。

sp_size

[1, 16]

选填;默认值为1。

该参数仅在DeepSeek大规模专家并行场景下生效,sp数据并行大小。

model_type

-

必填;默认值为llama3-70B。

推理模型的名称。

上报CCAE的模型名称默认为该参数的值,如需上报的模型名称为使用的模型,请自行修改该参数值。

transfer_type

D2DTransfer

必填;默认值为D2DTransfer。

传输类型。

digs_pp

[1,65535]

必填;默认值为1。

任务并行数。

digs_periodic_role_decision

auto_pd_role_switching_enable

  • false:不开启
  • true:开启

必填;默认值为true。

是否开启PD节点身份切换。

role_decision_time_period

[3600, 1296000]

必填;默认值为86400。

PD节点身份切换时间间隔,单位为秒。

tasks_end_wait_seconds

[1, 65535]

必填;默认值为300。

PD节点身份切换场景,任务执行后等待时长,单位为秒。

http_serverController HTTPS服务端配置

ip

IPv4或IPv6

必填;默认值为127.0.0.1。

Controller服务端IP,用于健康检查。

如设置环境变量POD_IP,则优先读取环境变量的值。

port

[1024,65535]

必填;默认值为1026。

Controller服务端端口,用于健康检查。

tls_config:证书配置

request_coordinator_tls_enable

  • true:开启。
  • false:关闭。

必填;默认值为true。

是否开启与Coordinator通信接口的tls安全认证。建议用户开启,确保与Coordinator的通信安全。如果关闭则存在较高的网络安全风险。

request_coordinator_tls_items:Coordinator HTTPS客户端的证书相关配置

ca_cert

-

开启tls时必填。

Coordinator HTTPS客户端ca根证书文件路径,要求该文件真实存在且可读。

tls_cert

-

开启tls时必填。

Coordinator HTTPS客户端tls证书文件路径,要求该文件真实存在且可读。

tls_key

-

开启tls时必填。

Coordinator HTTPS客户端tls私钥文件路径,要求该文件真实存在且可读。

tls_passwd

-

开启tls时必填。

Coordinator HTTPS客户端的KMC加密的私钥口令的文件路径,要求该文件真实存在且可读。

kmc_ksf_master

-

开启tls时必填。

Coordinator HTTPS客户端加密口令的KMC密钥库文件,要求该文件真实存在且可读。

kmc_ksf_standby

-

开启tls时必填。

Coordinator HTTPS客户端加密口令的KMC standby密钥库备份文件,要求该文件真实存在且可读。

tls_crl

-

开启tls时必填。

Coordinator HTTPS客户端校验证书吊销列表CRL文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。

request_server_tls_enable

  • true:开启。
  • false:关闭。

必填。默认值为true。

是否开启与Server通信接口的tls安全认证。建议用户开启,确保与Server的通信安全。如果关闭则存在较高的网络安全风险。

request_server_tls_items:Server HTTPS客户端的证书相关配置

ca_cert

-

开启tls时必填。

Server HTTPS客户端ca根证书文件路径,要求该文件真实存在且可读。

tls_cert

-

开启tls时必填。

Server HTTPS客户端tls证书文件路径,要求该文件真实存在且可读。

tls_key

-

开启tls时必填。

Server HTTPS客户端tls私钥文件路径,要求该文件真实存在且可读。

tls_passwd

-

开启tls时必填。

Server HTTPS客户端的KMC加密的私钥口令的文件路径,要求该文件真实存在且可读。

kmc_ksf_master

-

开启tls时必填。

Server HTTPS客户端加密口令的KMC密钥库文件,要求该文件真实存在且可读。

kmc_ksf_standby

-

开启tls时必填。

Server HTTPS客户端加密口令的KMC standby密钥库备份文件,要求该文件真实存在且可读。

tls_crl

-

开启tls时必填。

Server HTTPS客户端校验证书吊销列表CRL文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。

http_server_tls_enable

  • true:开启。
  • false:关闭。

必填。默认值为true。

是否开启Controller HTTPS服务端tls。建议用户开启,确保Controller与客户端之间的通信安全。如果关闭则存在较高的网络安全风险。

http_server_tls_items属性:Controller HTTPS服务端的证书相关配置

ca_cert

-

开启tls时必填。

Controller HTTPS服务端ca根证书文件路径,要求该文件真实存在且可读。

tls_cert

-

开启tls时必填。

Controller HTTPS服务端tls证书文件路径,要求该文件真实存在且可读。

tls_key

-

开启tls时必填。

Controller HTTPS服务端tls私钥文件路径,要求该文件真实存在且可读。

tls_passwd

-

开启tls时必填。

Controller HTTPS服务端的KMC加密的私钥口令的文件路径,要求该文件真实存在且可读。

kmc_ksf_master

-

开启tls时必填。

Controller HTTPS服务端加密口令的KMC密钥库文件,要求该文件真实存在且可读。

kmc_ksf_standby

-

开启tls时必填。

Controller HTTPS服务端加密口令的KMC standby密钥库备份文件,要求该文件真实存在且可读。

tls_crl

-

开启tls时必填。

Controller HTTPS服务端校验客户端的证书吊销列表CRL文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。

cluster_tls_enable

  • true:开启。
  • false:关闭。

必填。默认值为true。

是否开启与MindCluster ClusterD通信接口的tls安全认证。建议用户开启,确保与MindCluster ClusterD的通信安全。如果关闭则存在较高的网络安全风险。

cluster_tls_items属性:MindCluster ClusterD gRPC服务端的证书相关配置

ca_cert

-

开启tls时必填。

MindCluster ClusterD gRPC服务端ca根证书文件路径,要求该文件真实存在且可读。

tls_cert

-

开启tls时必填。

MindCluster ClusterD gRPC服务端tls证书文件路径,要求该文件真实存在且可读。

tls_key

-

开启tls时必填。

MindCluster ClusterD gRPC服务端tls私钥文件路径,要求该文件真实存在且可读。

tls_passwd

-

开启tls时必填。

MindCluster ClusterD gRPC服务端的KMC加密的私钥口令的文件路径,要求该文件真实存在且可读。

kmc_ksf_master

-

开启tls时必填。

MindCluster ClusterD gRPC服务端加密口令的KMC密钥库文件,要求该文件真实存在且可读。

kmc_ksf_standby

-

开启tls时必填。

MindCluster ClusterD gRPC服务端加密口令的KMC standby密钥库备份文件,要求该文件真实存在且可读。

tls_crl

-

开启tls时必填。

MindCluster ClusterD gRPC服务端校验客户端的证书吊销列表CRL文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。

etcd_server_tls_enable

  • true:开启。
  • false:关闭。

必填。默认值为true。

是否开启与ETCD通信接口的tls安全认证。建议用户开启,确保与ETCD的通信安全。如果关闭则存在较高的网络安全风险。

etcd_server_tls_items属性:查询分布式存储系统(ETCD)状态信息的通信证书配置

ca_cert

PD分离

开启tls时必填。

ETCD服务端ca根证书文件路径,要求该文件真实存在且可读。

tls_cert

PD分离

开启tls时必填。

ETCD服务端tls证书文件路径,要求该文件真实存在且可读。

tls_key

PD分离

开启tls时必填。

ETCD服务端tls私钥文件路径,要求该文件真实存在且可读。

tls_passwd

PD分离

开启tls时必填。

ETCD服务端的KMC加密的私钥口令的文件路径,要求该文件真实存在且可读。

kmcKsfMaster

PD分离

开启tls时必填。

ETCD服务端加密口令的KMC密钥库文件,要求该文件真实存在且可读。

kmcKsfStandby

PD分离

开启tls时必填。

ETCD服务端加密口令的KMC standby密钥库备份文件,要求该文件真实存在且可读。

tls_crl

PD分离

开启tls时必填。

ETCD服务端校验客户端的证书吊销列表CRL文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。

ccae_tls_enable

  • true:开启。
  • false:关闭。

选填。默认值为true。

是否开启CCAE HTTPS服务端tls,开启CCAE时必填。

ccae_tls_items属性:CCAE HTTPS服务端的证书相关配置

ca_cert

-

开启CCAE时必填。

CCAE HTTPS服务端ca根证书文件路径,要求该文件真实存在且可读。

tls_cert

-

开启CCAE时必填。

校验CCAE HTTPS服务端tls证书文件路径,要求该文件真实存在且可读。

tls_key

-

开启CCAE时必填。

校验CCAE HTTPS服务端tls私钥文件路径,要求该文件真实存在且可读。

tls_passwd

-

开启CCAE时必填。

校验CCAE HTTPS服务端的KMC加密的私钥口令的文件路径,要求该文件真实存在且可读。

kmc_ksf_master

-

开启CCAE时必填。

校验CCAE HTTPS服务端加密口令的KMC密钥库文件,要求该文件真实存在且可读。

kmc_ksf_standby

-

开启CCAE时必填。

校验CCAE HTTPS服务端加密口令的KMC standby密钥库备份文件,要求该文件真实存在且可读。

tls_crl

-

开启CCAE时必填。

校验CCAE HTTPS服务端校验客户端的证书吊销列表CRL文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。

alarm_tls_enable

  • true:开启。
  • false:关闭。

必填。默认值为true。

是否开启与Coordinator告警通信接口的tls安全认证。建议用户开启,确保与Coordinator告警的通信安全。如果关闭则存在较高的网络安全风险。

alarm_tls_items属性:Controller作为告警服务端的证书相关配置

ca_cert

-

开启tls时必填。

Controller告警服务端ca根证书文件路径,要求该文件真实存在且可读。

tls_cert

-

开启tls时必填。

Controller告警服务端tls证书文件路径,要求该文件真实存在且可读。

tls_key

-

开启tls时必填。

Controller告警服务端tls私钥文件路径,要求该文件真实存在且可读。

tls_passwd

-

开启tls时必填。

Controller告警服务端的KMC加密的私钥口令的文件路径,要求该文件真实存在且可读。

kmc_ksf_master

-

开启tls时必填。

Controller告警服务端加密口令的KMC密钥库文件,要求该文件真实存在且可读。

kmc_ksf_standby

-

开启tls时必填。

Controller告警服务端加密口令的KMC standby密钥库备份文件,要求该文件真实存在且可读。

tls_crl

-

开启tls时必填。

Controller告警服务端校验客户端的证书吊销列表CRL文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。

external_coordinator_tls_enable

  • true:开启。
  • false:关闭。

必填。默认值为true。

是否开启与Controller作为客户端访问Coordinator外部端口的tls安全认证。建议用户开启,确保与Coordinate外部端口的通信安全。如果关闭则存在较高的网络安全风险。

external_coordinator_tls_items属性:Controller作为客户端访问Coordinator外部端口的证书相关配置

ca_cert

-

开启tls时必填。

访问Coordinator外部端口的ca根证书文件路径,要求该文件真实存在且可读。

tls_cert

-

开启tls时必填。

访问Coordinator外部端口的tls证书文件路径,要求该文件真实存在且可读。

tls_key

-

开启tls时必填。

访问Coordinator外部端口的tls私钥文件路径,要求该文件真实存在且可读。

tls_passwd

-

开启tls时必填。

访问Coordinator外部端口KMC加密的私钥口令的文件路径,要求该文件真实存在且可读。

kmc_ksf_master

-

开启tls时必填。

访问Coordinator外部端口加密口令的KMC密钥库文件,要求该文件真实存在且可读。

kmc_ksf_standby

-

开启tls时必填。

访问Coordinator外部端口加密口令的KMC standby密钥库备份文件,要求该文件真实存在且可读。

tls_crl

-

开启tls时必填。

访问Coordinator外部端口校验客户端的证书吊销列表CRL文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。

log_info:日志功能(建议使用环境变量配置日志,详情请参见日志配置

log_level

  • CRITICAL
  • ERROR
  • WARN
  • INFO
  • DEBUG

可选;默认值为INFO。

设置日志级别。

如设置环境变量MINDIEMS_LOG_LEVEL或者MINDIE_LOG_LEVEL,则优先读取环境变量的值。

to_file

  • true:输出到文件。
  • false:不输出到文件。

可选;默认值为true。

是否输出到文件。

如设置环境变量MINDIE_LOG_TO_FILE,则优先读取环境变量的值。

to_stdout

  • true:输出到标准输出流。
  • false:不输出到标准输出流。

可选;默认值为false。

是否输出到标准输出流。

如设置环境变量MINDIE_LOG_TO_STDOUT,则优先读取环境变量的值。

run_log_path

-

可选。默认路径与MINDIE_LOG_PATH环境变量的默认路径相同,详情请参见日志配置。如设置环境变量MINDIE_LOG_PATH,则优先读取环境变量的值。当to_file为true时生效。

运行日志路径,要求该文件所在的路径真实存在且可读,运行时会自动创建文件。

operation_log_path

-

可选。默认路径与MINDIE_LOG_PATH环境变量的默认路径相同,详情请参见日志配置。如设置环境变量MINDIE_LOG_PATH,则优先读取环境变量的值。当to_file为true时生效。

审计日志路径,要求该文件所在的路径真实存在且可读,运行时会自动创建文件。

max_log_str_size

[128,65535]

可选;默认值为4096。

单条日志最大长度。

max_log_file_size

[1,500],单位MB。

可选;默认值为20,当to_file为true时生效。

单个日志文件存储上限。如设置环境变量MINDIE_LOG_ROTATE,则优先读取环境变量的值。

max_log_file_num

[1,64]

可选;默认值为10,当to_file为true时生效。

最大日志文件存储数量。如设置环境变量MINDIE_LOG_ROTATE,则优先读取环境变量的值。

如果推理服务所在的计算节点的网络为跨公网和局域网,绑定0.0.0.0的IP地址可能导致网络隔离失效,存在较大安全风险。故该场景下默认禁止EndPoint的IP地址绑定为0.0.0.0。若用户仍需要使用0.0.0.0,请在环境具备全零监管防护能力的前提下,通过设置配置项“allow_all_zero_ip_listening”为true手动打开允许配置0.0.0.0的IP地址开关,启用全零监管的安全风险由用户自行承担。

进程备份文件

支持持久化保存业务数据文件,通过ms_controller.json配置文件指定路径信息,进程备份文件的更新周期与同步集群状态的周期一致。进程备份文件包含Server是否为故障节点、Server的身份、所属组ID、资源总量和PD分离部署模式下Server节点是否已经完成身份下发等信息。
  • 在集群初始化阶段,如果超过Server节点上线状态的检查总时间,Server节点的静态配置采集接口或者动态状态采集接口仍然返回非200,则认为Server节点上线失败,为故障节点。
  • 在集群初始化阶段,如果Server节点指定身份接口请求失败,则认为身份下发失败。如果身份下发成功,但是Server节点在身份初始化检查总时间内一直切换失败,则认为Server节点为故障节点。可能有以下两种场景:
    • Server节点被指定为P节点,超过身份初始化的检查总时间,仍然为RoleUnknown或者RoleSwitching状态。
    • Server节点被指定为D节点,超过身份初始化的检查总时间,仍然为RoleUnknown状态或者该D节点和全部的P节点建链失败。

进程备份文件样例如下所示,参数解释请参见表2所示。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{
  "server": [
    {
      "delete_time": 0,
      "id": xx,
      "ip": "xx.xx.xx.1",
      "is_faulty": false,
      "is_initialized": true,
      "peers": [
        xx,
      ],
      "static_info": {
        "group_id": 0,
        "label": 2,
        "role": 80,
        "total_block_num": 320,
        "total_slots_num": 200
      }
    },
    {
      "delete_time": 0,
      "id": xx,
      "ip": "xx.xx.xx.2",
      "is_faulty": false,
      "is_initialized": true,
      "peers": [
        xx
      ],
      "static_info": {
        "group_id": 0,
        "label": 3,
        "role": 68,
        "total_block_num": 320,
        "total_slots_num": 200
      }
    }
  ]
}
表2 进程备份文件参数解释

参数

类型

描述

delete_time

int64_t

Server节点在ranktable中的删除时间。

id

uint64_t

Server节点的IP地址转换得到的唯一ID。

ip

string

Server节点的IP地址。

is_faulty

bool

Server节点是否为故障节点。

is_initialized

bool

Server节点是否已经完成身份下发。

无身份部署模式下,此字段永远为false。

peers

size_t数组

Server节点需要连接的其他节点ID。

  • 当前节点为P节点,则表示需要与该P节点连接的D节点ID。
  • 当前节点为D节点,则表示需要与该D节点连接的P节点ID。

static_info属性

group_id

uint64_t

Server节点所在的GroupID。

label

枚举类型

Server节点的标签类型:

  • 0:表示倾向于作为Prefill实例。
  • 1:表示倾向于作为Decode实例。
  • 2:表示只允许作为Prefill实例。
  • 3:表示只允许作为Decode实例。

当前版本仅支持2和3标签。

role

枚举类型

Server节点的身份:

  • 85:表示角色未知。
  • 80:表示该Server节点为P节点。
  • 68:表示该Server节点为D节点。

total_block_num

size_t

Server节点的block总量。

total_slots_num

size_t

Server节点的slot总量。

集群服务状态输出文件

集群状态输出文件主要包含以下内容:

  • Coordinator的健康状态,Controller和Coordinator之间的通信接口请求成功,则认为Coordinator为健康状态。
  • Server是否为故障节点,以及非故障节点的健康状态。
    • 在集群初始化阶段,如果超过Server节点上线状态的检查总时间后,Server节点的静态配置采集接口或者动态状态采集接口仍然返回非200,则认为Server节点上线失败,为故障节点。
    • 在集群初始化阶段,如果Server节点身份初始化失败,则认为Server节点上线失败,为故障节点。可能有以下两种场景:
      • Server节点被指定为P节点,超过身份初始化的检查总时间,仍然为RoleUnknown或者RoleSwitching状态。
      • Server节点被指定为D节点,超过身份初始化的检查总时间,仍然为RoleUnknown状态或者该D节点和全部的P节点建链失败。
    • 集群初始化完成后,Controller和非故障的Server之间的通信接口请求成功,则认为Server为健康状态。
集群服务状态输出文件样例如下所示,参数解释请参见表3所示。
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
{
  "coordinator": [
    {
      "ip": "xx.xx.xx.xx",
      "is_healthy": true
    }
  ],
  "server": [
    {
      "delete_time": 0,
      "dynamic_info": {
        "avail_block_num": 320,
        "avail_slots_num": 200
      },
      "ip": "xx.xx.xx.1",
      "is_faulty": false,
      "is_healthy": true,
      "model_name": "llama3-70b",
      "peers": [
        "xx.xx.xx.2"
      ],
      "static_info": {
        "block_size": 128,
        "group_id": 1,
        "label": 2,
        "max_output_len": 512,
        "max_seq_len": 2560,
        "role": 80,
        "total_block_num": 320,
        "total_slots_num": 200
      }
    },
    {
      "delete_time": 0,
      "dynamic_info": {
        "avail_block_num": 244,
        "avail_slots_num": 181
      },
      "ip": "xx.xx.xx.2",
      "is_faulty": false,
      "is_healthy": true,
      "model_name": "llama3-70b",
      "peers": [
        "xx.xx.xx.1"
      ],
      "static_info": {
        "block_size": 128,
        "group_id": 1,
        "label": 3,
        "max_output_len": 512,
        "max_seq_len": 2560,
        "role": 68,
        "total_block_num": 320,
        "total_slots_num": 200
      }
    },
    {
      "delete_time": 0,
      "dynamic_info": {
        "avail_block_num": 0,
        "avail_slots_num": 200
      },
      "ip": "xx.xx.xx.3",
      "is_faulty": true,
      "is_healthy": false,
      "model_name": "llama3-70b",
      "peers": [
        "xx.xx.xx.4"
      ],
      "static_info": {
        "block_size": 128,
        "group_id": 0,
        "label": 2,
        "max_output_len": 512,
        "max_seq_len": 2560,
        "role": 80,
        "total_block_num": 1024,
        "total_slots_num": 200
      }
    },
    {
      "delete_time": 0,
      "dynamic_info": {
        "avail_block_num": 0,
        "avail_slots_num": 200
      },
      "ip": "xx.xx.xx.4",
      "is_faulty": true,
      "is_healthy": true,
      "model_name": "llama3-70b",
      "peers": [
        "xx.xx.xx.3"
      ],
      "static_info": {
        "block_size": 128,
        "group_id": 0,
        "label": 3,
        "max_output_len": 512,
        "max_seq_len": 2560,
        "role": 68,
        "total_block_num": 1024,
        "total_slots_num": 200
      }
    }
  ]
}
表3 集群服务状态输出文件参数解释

参数

类型

描述

Coordinator信息

ip

string

Coordinator节点的IP地址。

is_healthy

bool

Coordinator节点的健康状态。

  • true:表示健康,Controller与该Coordinator通信正常。
  • false:表示非健康,Coordinator与该Coordinator通信正常。

Server信息

delete_time

int64_t

Server节点在ranktable中的删除时间。

dynamic_info属性

avail_block_num

size_t

Server节点的可用block数量。

avail_slots_num

size_t

Server节点的可用slot数量。

ip

string

Server节点的IP地址。

is_faulty

bool

是否为故障节点。

is_healthy

bool

是否为健康节点。

当节点为故障节点时,此字段仅表示Controller与该Server的最后一次通信是否成功。

model_name

string

推理使用的模型。

peers

string数组

Server节点需要连接的其他节点。

  • 当前节点为P节点,则表示需要与该P节点连接的D节点。
  • 当前节点为D节点,则表示需要与该D节点连接的P节点。

static_info属性

block_size

size_t

KV Cache block的size大小。

group_id

uint64_t

Server节点所在的GroupID。

label

枚举类型

Server节点的标签类型:

  • 0,表示倾向于作为Prefill实例。
  • 1,表示倾向于作为Decode实例。
  • 2,表示只允许作为Prefill实例。
  • 3,表示只允许作为Decode实例。

当前版本仅支持2和3标签。

max_output_len

size_t

最大输出长度。

max_seq_len

size_t

最大序列长度。

role

枚举类型

Server节点的身份:

  • 85,表示角色未知。
  • 80,表示该Server节点为P节点。
  • 68,表示该Server节点为D节点。

total_block_num

size_t

Server节点的block总量。

total_slots_num

size_t

Server节点的slot总量。

环境变量

当前支持的环境变量如下所示。

表4 Controller支持的环境变量

环境变量名称

含义

MINDIE_MS_CONTROLLER_CONFIG_FILE_PATH

ms_controller配置文件的读取路径。

GLOBAL_RANK_TABLE_FILE_PATH

集群信息文件的读取路径。集群信息文件请参见8中的global_ranktable.json文件。

环境变量的优先级高于ms_controller配置文件的global_rank_table_file_path属性。

POD_IP

ms_controller所在Pod的IP。

环境变量的优先级高于ms_controller配置文件的http_server.ip属性。

MINDIE_MS_P_RATE

PD分离部署模式下,P的比例。

  • 0:表示自动进行决策最佳比例,D的比例需要同时为0;
  • 非0:表示指定P的比例,D的比例需要同时非0。

环境变量的优先级高于ms_controller配置文件的default_p_rate属性。

MINDIE_MS_D_RATE

PD分离部署模式下,D的比例。

  • 0:表示自动进行决策最佳比例,P的比例需要同时为0;
  • 非0:表示指定D的比例,P的比例需要同时非0。

环境变量的优先级高于ms_controller配置文件的default_d_rate属性。

MINDIEMS_LOG_LEVEL

用户可动态设置Controller输出的日志等级。

默认值为空,环境变量的优先级高于表1中log_level参数。日志级别如下所示:

  • CRITICAL
  • ERROR
  • WARN
  • INFO
  • DEBUG
说明:
  • 优先使用MINDIE_LOG_LEVEL设置日志等级,当前保留MINDIEMS_LOG_LEVEL是为了兼容旧版本配置方式。
  • 若MINDIE_LOG_LEVEL设置为空则使用MINDIEMS_LOG_LEVEL。

MINDIE_CHECK_INPUTFILES_PERMISSION

用户可设置是否需要检查外部挂载文件,具体包括ms_controller.json, rank_table.json以及证书相关文件。默认值为空,表示需要做权限校验。

  • 0:对外部挂载文件不做权限校验。
  • 非0:对外部挂载文件做权限校验。

说明:当用户使用MINDIE_MS_CONTROLLER_CONFIG_FILE_PATH设置配置文件路径时,ms_controller.json为外部挂载文件。

MODEL_ID

部署模型的唯一标识。

注:日志相关环境变量详情请参见日志配置

模型配置文件

模型配置文件信息如下所示。

表5 模型配置文件

参数名称

含义

类型

默认值

有效值

hidden_size

隐藏层的特征维度。

  • string
  • int
  • double

8129

[0.000001, 2147483647.000000]

initializer_range

权重参数初始化的范围。

  • string
  • int
  • double

0.02

[0.000001, 2147483647.000000]

intermediate_size

FFN隐藏层大小。

  • string
  • int
  • double

28672

[0.000001, 2147483647.000000]

max_position_embeddings

最大位置嵌入数量。

  • string
  • int
  • double

4096

[0.000001, 2147483647.000000]

num_attention_heads

attention头数量。

  • string
  • int
  • double

64

[0.000001, 2147483647.000000]

num_hidden_layers

隐藏层数。

  • string
  • int
  • double

80

[0.000001, 2147483647.000000]

num_key_value_heads

kv头数量。

  • string
  • int
  • double

8

[0.000001, 2147483647.000000]

torch_dtype

PyTorch所用数据类型。

string

float16

  • float16
  • bfloat16

硬件设备信息文件

硬件设备信息文件如下所示。

表6 硬件设备信息文件

参数名称

含义

类型

配置值

有效值

BW_GB

节点内卡间通信带宽。

  • string
  • int
  • double

392

[0.000001, 2147483647.000000]

BW_RDMA_Gb

节点间通信带宽。

  • string
  • int
  • double

200

[0.000001, 2147483647.000000]

BWeff

节点内通信带宽效率。

  • string
  • int
  • double

0.5

[0.000001, 1.000000]

TFLOPS

单卡算力。

  • string
  • int
  • double

246

[0.000001, 2147483647.000000]

TFLOPSeff

算力效率。

  • string
  • int
  • double

0.5

[0.000001, 1.000000]

MBW_TB

NPU访存带宽。

  • string
  • int
  • double

0.8

[0.000001, 2147483647.000000]

MBW_TBeff

NPU访存带宽效率。

  • string
  • int
  • double

0.3

[0.000001, 1.000000]

alpha

集合通信启动时延。

  • string
  • int
  • double

2

[0.000001, 2147483647.000000]

MEMCapacity

显存大小(GB)。

  • string
  • int
  • double

32

[0.000001, 2147483647.000000]

eta_OOM

显存OOM水线。

  • string
  • int
  • double

0.9

[0.000001, 1.000000]

staticTransferDelay

节点间通信静态时延。

  • string
  • int
  • double

0.00001

[0.000001, 2147483647.000000]

其他配置要求:

  • ms_controller运行时需要依赖对应lib目录下的so,主要涉及:libboundscheck.so、libcrypto.so.3、libhse_cryption.so、libmie_role_manager.so和libssl.so.3。
  • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MIES_INSTALL_PATH/lib(该目录需要替换为对应依赖的so的路径)
  • 开启tls校验或者将日志写入日志文件时,需要导入以下KMC依赖的环境变量。
    1
    export HSECEASY_PATH=$MIES_INSTALL_PATH/lib
    
  • 设置输出的日志等级,例如将日志等级设置为INFO。
    1
    export MINDIE_LOG_LEVEL=INFO