ms_controller.json配置文件样例如下所示,参数解释请参见ms_controller.json配置文件参数解释,用户可根据具体场景进行配置。
{ "deploy_mode": "pd_separate", "process_manager" : { "to_file": true, "file_path": "./logs/controller_process_status.json" }, "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": 60, "disappeared_server_waiting_seconds": 120, "default_p_rate": 0, "default_d_rate": 0, "is_heterogeneous": false, "server_online_attempt_times": 60, "server_online_wait_seconds": 5, "init_role_attempt_times": 2, "check_role_attempt_times": 60, "check_role_wait_seconds": 5, "mindie_server_control_port": 1026, "mindie_server_port": 1025, "mindie_ms_coordinator_port": 1026, "mindie_server_metric_port": 1027, "http_timeout_seconds": 20, "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/llama2-70B.json", "digs_machine_config_path":"./conf/machine_config/800IA2.json", "digs_prefill_slo": 1000, "digs_decode_slo": 50, "model_type": "llama2-70B", "transfer_type": "D2DTransfer", "digs_pp": 1, "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": "" } }, "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 } }
参数名称 |
取值范围 |
配置说明 |
---|---|---|
deploy_mode |
|
部署模式。 必填;默认值为pd_separate。 |
process_manager:进程状态备份功能 |
||
to_file |
|
必填;默认值为true。 是否开启进程状态备份功能。 如果开启,会在程序启动时,自动加载进程状态备份文件。在程序运行的过程中,自动生成进程状态备份文件。备份文件详情请参见表2。 |
file_path |
- |
开启to_file开关时必填。 进程状态备份文件路径,用户不能创建文件,只能填写路径,要求该文件所在的路径为真实存在且可读的持久化路径,运行时会自动创建文件。如果进程文件保存在容器中的临时路径,在controller容器重启后,将发生文件丢失,需要重启整个集群才能恢复正常服务。 如果修改身份决策的相关配置,则需要删除进程状态备份文件,重启整个集群,否则将继承历史的身份决策结果。 |
cluster_status:集群服务状态导出功能 |
||
to_file |
|
必填;默认值为true。 是否开启集群服务状态导出功能。 如果开启,在程序运行的过程中会输出集群状态至文件。集群服务状态输出文件详情请参见表3。 |
file_path |
- |
开启to_file开关时必填。 集群状态导出文件路径,要求该文件所在的路径真实存在且可读,运行时会自动创建文件。 |
global_rank_table_file_path |
- |
必填。 全局集群信息表路径,要求该文件真实存在且可读。 如设置环境变量GLOBAL_RANK_TABLE_FILE_PATH,则优先读取环境变量的值。 说明:
全局集群信息表是Controller监控集群状态、管理Server节点的信息源。需要保证文件的安全性和内容的正确性。 |
cluster_synchronization_seconds |
[1,65535],单位为秒。 |
必填;默认值为1秒。 同步集群信息的时间周期。 |
rank_table_detecting_seconds |
[1,65535],单位为秒。 |
必填;默认值为60秒。 读取集群信息表的周期。 |
disappeared_server_waiting_seconds |
[1,65535],单位为秒。 |
必填;默认值为120秒。 全局集群信息表中,删除Server的等待时间,到此时间时Server将会被移除。 |
default_p_rate |
[0,15] |
必填;默认值为0。 PD分离部署模式下,P所占的比例。
如设置环境变量MINDIE_MS_P_RATE,则优先读取环境变量的值。 |
default_d_rate |
[0,15] |
必填;默认值为0。 PD分离部署模式下,D所占的比例。
如设置环境变量MINDIE_MS_D_RATE,则优先读取环境变量的值。 |
is_heterogeneous |
|
必填;默认值为false。 是否为异构场景,异构场景需要同步修改集群信息表,增加hardware_type字段。 说明:
异构场景下,P节点hardware-type标签必须为"800I A2(32G)",D节点hardware-type标签必须为"800I A2(64G)"。 |
server_online_attempt_times |
[1,65535] |
必填;默认值为60。 集群初始化时,Server节点上线状态的检查次数 |
server_online_wait_seconds |
[1,65535],单位为秒。 |
必填;默认值为5。 集群初始化时,Server节点上线状态的检查间隔 |
init_role_attempt_times |
[1,65535] |
必填;默认值为2。 Server身份初始化时的重试次数,只有当检查到身份为Unkonwn才会触发重新下发身份的操作。 |
check_role_attempt_times |
[1,65535] |
必填;默认值为60。 Server身份初始化的检查次数。 |
check_role_wait_seconds |
[1,65535],单位为秒。 |
必填;默认值为5秒。 Server身份初始化的检查间隔。 |
mindie_server_control_port |
[1024,65535] |
必填;默认值为1026。 MindIE Server的管理端口。 |
mindie_server_port |
[1024,65535] |
必填;默认值为1025。 MindIE Server的数据端口。 |
mindie_server_metric_port |
[1024,65535] |
必填;默认值为1027。 MindIE Server的metrics端口。 |
mindie_ms_coordinator_port |
[1024,65535] |
必填;默认值为1026。 MindIE Coordinator的管理端口。 |
http_timeout_seconds |
[1,65535],单位为秒。 |
必填;默认值为20秒。 通信超时时间。 |
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最佳比例计算的主要参数。
|
digs_request_summary_output_length |
[1,65535] |
必填;默认值为200。 推理请求的平均输出长度。 确定模型及设备配置后,此参数和digs_request_summary_input_length是影响PD最佳比例计算的主要参数。
|
digs_model_config_path |
- |
必填;默认值为llama2-70B模型的配置文件路径。 身份决策算法需要使用的模型参数信息,要求该文件真实存在且可读,格式参考模型配置文件描述。 |
digs_machine_config_path |
- |
必填;默认值为 身份决策算法需要使用的机器参数信息,要求该文件真实存在且可读,格式参考硬件设备文件描述。 |
digs_prefill_slo |
[1,65535] |
必填;默认值为1000。 Prefill速率。 |
digs_decode_slo |
[1,65535] |
必填;默认值为50。 Decode速率。 |
model_type |
- |
必填;默认值为llama2-70B。 推理模型的名称。 |
transfer_type |
D2DTransfer |
必填;默认值为D2DTransfer。 传输类型。 |
digs_pp |
[1,65535] |
必填;默认值为1。 任务并行数。 |
http_server:MindIE MS Controller HTTP服务端配置 |
||
ip |
- |
必填;默认值为127.0.0.1。 MindIE MS服务端IP,用于健康检查。 如设置环境变量POD_IP,则优先读取环境变量的值。 |
port |
[1024,65535] |
必填;默认值为1026。 MindIE MS服务端端口,用于健康检查。 |
request_coordinator_tls_enable |
|
必填;默认值为true。 是否开启与MindIE MS Coordinator通信接口的tls安全认证。建议用户开启,确保与MindIE MS Coordinator的通信安全。如果关闭则存在较高的网络安全风险。 |
request_coordinator_tls_items:MindIE MS Coordinator HTTP客户端的证书相关配置 |
||
ca_cert |
- |
开启tls时必填。 MindIE MS Coordinator HTTP客户端ca根证书文件路径,要求该文件真实存在且可读。 |
tls_cert |
- |
开启tls时必填。 MindIE MS Coordinator HTTP客户端tls证书文件路径,要求该文件真实存在且可读。 |
tls_key |
- |
开启tls时必填。 MindIE MS Coordinator HTTP客户端tls私钥文件路径,要求该文件真实存在且可读。 |
tls_passwd |
- |
开启tls时必填。 MindIE MS Coordinator HTTP客户端的KMC加密的私钥口令的文件路径,要求该文件真实存在且可读。 |
kmc_ksf_master |
- |
开启tls时必填。 MindIE MS Coordinator HTTP客户端加密口令的KMC密钥库文件,要求该文件真实存在且可读。 |
kmc_ksf_standby |
- |
开启tls时必填。 MindIE MS Coordinator HTTP客户端加密口令的KMC standby密钥库备份文件,要求该文件真实存在且可读。 |
tls_crl |
- |
开启tls时必填。 MindIE MS Coordinator HTTP客户端校验证书吊销列表crl文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。 |
request_server_tls_enable |
|
必填。默认值为true。 是否开启与MindIE Server 通信接口的tls安全认证。建议用户开启,确保与MindIE Server的通信安全。如果关闭则存在较高的网络安全风险。 |
request_server_tls_items:MindIE Server HTTP客户端的证书相关配置 |
||
ca_cert |
- |
开启tls时必填。 MindIE Server HTTP客户端ca根证书文件路径,要求该文件真实存在且可读。 |
tls_cert |
- |
开启tls时必填。 MindIE Server HTTP客户端tls证书文件路径,要求该文件真实存在且可读。 |
tls_key |
- |
开启tls时必填。 MindIE Server HTTP客户端tls私钥文件路径,要求该文件真实存在且可读。 |
tls_passwd |
- |
开启tls时必填。 MindIE Server HTTP客户端的KMC加密的私钥口令的文件路径,要求该文件真实存在且可读。 |
kmc_ksf_master |
- |
开启tls时必填。 MindIE Server HTTP客户端加密口令的KMC密钥库文件,要求该文件真实存在且可读。 |
kmc_ksf_standby |
- |
开启tls时必填。 MindIE Server HTTP客户端加密口令的KMC standby密钥库备份文件,要求该文件真实存在且可读。 |
tls_crl |
- |
开启tls时必填。 MindIE Server HTTP客户端校验证书吊销列表crl文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。 |
http_server_tls_enable |
|
必填。默认值为true。 是否开启MindIE MS Controller HTTP服务端tls。建议用户开启,确保MindIE MS Controller与客户端之间的通信安全。如果关闭则存在较高的网络安全风险。 |
http_server_tls_items属性:MindIE MS Controller HTTP服务端的证书相关配置 |
||
ca_cert |
- |
开启tls时必填。 MindIE MS Controller HTTP服务端ca根证书文件路径,要求该文件真实存在且可读。 |
tls_cert |
- |
开启tls时必填。 MindIE MS Controller HTTP 服务端tls证书文件路径,要求该文件真实存在且可读。 |
tls_key |
- |
开启tls时必填。 MindIE MS Controller HTTP 服务端tls私钥文件路径,要求该文件真实存在且可读。 |
tls_passwd |
- |
开启tls时必填。 MindIE MS Controller HTTP 服务端的KMC加密的私钥口令的文件路径,要求该文件真实存在且可读。 |
kmc_ksf_master |
- |
开启tls时必填。 MindIE MS Controller HTTP 服务端加密口令的KMC密钥库文件,要求该文件真实存在且可读。 |
kmc_ksf_standby |
- |
开启tls时必填。 MindIE MS Controller HTTP 服务端加密口令的KMC standby密钥库备份文件,要求该文件真实存在且可读。 |
tls_crl |
- |
开启tls时必填。 MindIE MS Controller HTTP 服务端校验客户端的证书吊销列表crl文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。 |
log_info:日志功能 |
||
log_level |
|
必填;默认值为INFO。 设置日志级别。 如设置环境变量MINDIEMS_LOG_LEVEL或者MINDIE_LOG_LEVEL,则优先读取环境变量的值。 |
to_file |
|
必填;默认值为true。 是否输出到文件。 如设置环境变量MINDIE_LOG_TO_FILE,则优先读取环境变量的值。 |
to_stdout |
|
必填;默认值为true。 是否输出到标准输出流。 如设置环境变量MINDIE_LOG_TO_STDOUT,则优先读取环境变量的值。 |
run_log_path |
- |
必填;当to_file为true时生效。 运行日志路径,要求该文件所在的路径真实存在且可读,运行时会自动创建文件。 |
operation_log_path |
- |
必填;当to_file为true时生效。 审计日志路径,要求该文件所在的路径真实存在且可读,运行时会自动创建文件。 |
max_log_str_size |
[1,65535] |
必填;默认值为4096 单条日志最大长度。 |
max_log_file_size |
[1,100],单位MB。 |
必填;默认值为20,当to_file为true时生效。 单个日志文件存储上限。 |
max_log_file_num |
[2,64] |
必填;默认值为10,当to_file为true时生效。 最大日志文件存储数量。 |
进程备份文件样例如下所示,参数解释请参见表2所示。
{ "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 } } ] }
参数 |
类型 |
描述 |
---|---|---|
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。
|
static_info属性 |
||
group_id |
uint64_t |
Server节点所在的GroupID。 |
label |
枚举类型 |
Server节点的标签类型:
当前版本仅支持2和3标签。 |
role |
枚举类型 |
Server节点的身份:
|
total_block_num |
size_t |
Server节点的block总量。 |
total_slots_num |
size_t |
Server节点的slot总量。 |
集群状态输出文件主要包含以下内容:
{ "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-8b", "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-8b", "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-8b", "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-8b", "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 } } ] }
参数 |
类型 |
描述 |
---|---|---|
Coordinator信息 |
||
ip |
string |
Coordinator节点的IP地址。 |
is_healthy |
bool |
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节点需要连接的其他节点。
|
static_info属性 |
||
block_size |
size_t |
KV Cache block的size大小。 |
group_id |
uint64_t |
Server节点所在的GroupID。 |
label |
枚举类型 |
Server节点的标签类型:
当前版本仅支持2和3标签。 |
max_output_len |
size_t |
最大输出长度。 |
max_seq_len |
size_t |
最大序列长度。 |
role |
枚举类型 |
Server节点的身份:
|
total_block_num |
size_t |
Server节点的block总量。 |
total_slots_num |
size_t |
Server节点的slot总量。 |
当前支持的环境变量如下所示。
环境变量名称 |
含义 |
---|---|
MINDIE_MS_CONTROLLER_CONFIG_FILE_PATH |
ms_controller配置文件的读取路径。 |
GLOBAL_RANK_TABLE_FILE_PATH |
集群信息文件的读取路径。集群信息文件请参见9中的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的比例。
环境变量的优先级高于ms_controller配置文件的default_p_rate属性。 |
MINDIE_MS_D_RATE |
PD分离部署模式下,D的比例。
环境变量的优先级高于ms_controller配置文件的default_d_rate属性。 |
MINDIEMS_LOG_LEVEL |
用户可动态设置Controller输出的日志等级。 默认值为空,环境变量的优先级高于表1中log_level参数。日志级别如下所示:
说明:
|
MINDIE_LOG_LEVEL |
默认值为空。统一设置MindIE各组件日志级别。优先级高于MINDIEMS_LOG_LEVEL环境变量,如果设置环境变量,将覆盖json配置文件中log_level参数。参阅9.3.5日志配置。 |
MINDIE_LOG_TO_FILE |
默认值为空。统一设置MindIE各组件日志是否写入文件。如果设置环境变量,将覆盖json配置文件中to_file参数。详情请参见日志配置。 |
MINDIE_LOG_TO_STDOUT |
默认值为空。统一设置MindIE各组件日志是否打屏。如果设置环境变量,将覆盖json配置文件中to_stdout参数。详情请参见日志配置。 |
MINDIE_LOG_VERBOSE |
默认值为空。统一设置MindIE各组件日志中是否加入可选日志内容。当前完整调试日志格式:[date time] ([pid] [tid] [组件名称] [大写日志级别] [file:line]) : [error code] [子组件名称] log message,小括号()内为可选内容,环境变量设置为开启时会加入可选内容。详情请参见日志配置。 |
MINDIE_CHECK_INPUTFILES_PERMISSION |
用户可设置是否需要检查外部挂载文件,具体包括ms_controller.json, rank_table.json以及证书相关文件。默认值为空,表示需要做权限校验。
说明:当用户使用MINDIE_MS_CONTROLLER_CONFIG_FILE_PATH设置配置文件路径时,ms_controller.json为外部挂载文件。 |
模型配置文件信息如下所示。
参数名称 |
含义 |
类型 |
默认值 |
有效值 |
---|---|---|---|---|
hidden_size |
隐藏层的特征维度。 |
|
8129 |
[0.000001, 2147483647.000000] |
initializer_range |
权重参数初始化的范围。 |
|
0.02 |
[0.000001, 2147483647.000000] |
intermediate_size |
FFN隐藏层大小。 |
|
28672 |
[0.000001, 2147483647.000000] |
max_position_embeddings |
最大位置嵌入数量。 |
|
4096 |
[0.000001, 2147483647.000000] |
num_attention_heads |
attention头数量。 |
|
64 |
[0.000001, 2147483647.000000] |
num_hidden_layers |
隐藏层数。 |
|
80 |
[0.000001, 2147483647.000000] |
num_key_value_heads |
kv头数量。 |
|
8 |
[0.000001, 2147483647.000000] |
torch_dtype |
PyTorch所用数据类型。 |
string |
float16 |
|
硬件设备信息文件信息如下所示。
参数名称 |
含义 |
类型 |
配置值 |
有效值 |
---|---|---|---|---|
BW_GB |
节点内卡间通信带宽。 |
|
392 |
[0.000001, 2147483647.000000] |
BW_RDMA_Gb |
节点间通信带宽。 |
|
200 |
[0.000001, 2147483647.000000] |
BWeff |
节点内通信带宽效率。 |
|
0.5 |
[0.000001, 1.000000] |
TFLOPS |
单卡算力。 |
|
246 |
[0.000001, 2147483647.000000] |
TFLOPSeff |
算力效率。 |
|
0.5 |
[0.000001, 1.000000] |
MBW_TB |
NPU访存带宽。 |
|
0.8 |
[0.000001, 2147483647.000000] |
MBW_TBeff |
NPU访存带宽效率。 |
|
0.3 |
[0.000001, 1.000000] |
alpha |
集合通信启动时延。 |
|
2 |
[0.000001, 2147483647.000000] |
MEMCapacity |
显存大小(GB)。 |
|
32 |
[0.000001, 2147483647.000000] |
eta_OOM |
显存OOM水线。 |
|
0.9 |
[0.000001, 1.000000] |
staticTransferDelay |
节点间通信静态时延。 |
|
0.00001 |
[0.000001, 2147483647.000000] |
其他配置要求:
export HSECEASY_PATH=$MIES_INSTALL_PATH/lib
export MINDIE_LOG_LEVEL=INFO