mirror of
https://gitee.com/mindspore/mindformers.git
synced 2025-12-06 11:29:59 +08:00
44 KiB
44 KiB
安全声明
依赖三方软件安全
推荐用户通过mindformers自动安装依赖三方软件(指定版本或默认最新版本),如因用户使用旧版本依赖三方软件引入安全漏洞产生影响,mindformers不承担相关责任。
运行用户建议
出于安全性及权限最小化角度考虑,不建议使用root等管理员类型账户。
安全隐私声明
请用户在使用个人数据时遵从当地适用的法律法规。
文件权限控制
-
建议用户在主机(包括宿主机)及容器中设置运行系统umask值为0027及以上,保障新增文件夹默认最高权限为750,新增文件默认最高权限为640。
-
建议用户对个人数据、商业资产、源文件、训练过程中保存的各类文件、mindformers安装目录、多用户使用共享数据集等敏感内容做好权限管控,管控权限可参考表1进行设置。
表1 文件(夹)各场景权限管控推荐最大值
类型 linux权限参考最大值 用户主目录 750(rwxr-x---) 程序文件(含脚本文件、库文件等) 550(r-xr-x---) 程序文件目录 550(r-xr-x---) 配置文件 640(rw-r-----) 配置文件目录 750(rwxr-x---) 日志文件(记录完毕或者已经归档) 440(r--r-----) 日志文件(正在记录) 640(rw-r-----) 日志文件目录 750(rwxr-x---) Debug文件 640(rw-r-----) Debug文件目录 750(rwxr-x---) 临时文件目录 750(rwxr-x---) 维护升级文件目录 770(rwxrwx---) 业务数据文件 640(rw-r-----) 业务数据文件目录 750(rwxr-x---) 密钥组件、私钥、证书、密文文件目录 700(rwx—----) 密钥组件、私钥、证书、加密密文 600(rw-------) 加解密接口、加解密脚本 500(r-x------)
构建安全声明
mindformers在源码构建安装过程中,会产生临时目录和程序文件。用户可根据需要,对源代码目录中的文件及文件夹进行权限管控,降低安全风险。
运行安全声明
- 建议用户结合运行环境资源状况编写对应训练脚本。若训练脚本与资源状况不匹配,如数据集加载内存大小超出内存容量限制、训练脚本在本地生成数据超过磁盘空间大小等情况,可能引发错误并导致进程意外退出。
- mindformers在运行异常时会退出进程并打印报错信息,属于正常现象。建议用户根据报错提示定位具体错误原因,包括python报错误栈定位到具体模块、环境中指定单框架等方式。
公网地址声明
| 类型 | 开源代码地址 | 文件名 | 公网IP地址/公网URL地址/域名/邮箱地址 | 用途说明 |
|---|---|---|---|---|
| 开发引入 | - | mindformers/.jenkins/test/config/dependent_packages.yaml | https://repo.mindspore.cn/mindspore/mindspore/version/202508/20250830/master_20250830161002_e6ff5e16e936d4238dc1b444b288fe55c39ac2e4_newest/ | 用于下载测试所依赖的mindspore包 |
| 开发引入 | - | mindformers/build.sh | https://pypi.tuna.tsinghua.edu.cn/simple | 用于pip安装mindformers时, 修改安装源 |
| 开发引入 | - | mindformers/core/callback/callback.py | https://www.hiascend.com/document/detail/zh/mindstudio/80RC1/ | MindStudio官网文档链接 |
| 开发引入 | - | mindformers/models/processing_utils.py | https://modelers.cn/models | 魔乐社区模型库链接 |
| 开发引入 | - | mindformers/models/tokenization_utils_base.py | https://modelers.cn/models | 魔乐社区模型库链接 |
| 开发引入 | - | mindformers/run_check.py | https://gitee.com/mindspore/mindformers/issues | mindformers的issue链接 |
| 开发引入 | - | mindformers/run_check.py | https://www.hiascend.com/document/detail/zh/canncommercial/ | CANN官方使用文档 |
| 开发引入 | - | mindformers/run_check.py | https://www.mindspore.cn/install/ | mindspore官方安装文档 |
| 开发引入 | - | mindformers/mindformers/tools/hub/hub.py | https://modelers.cn/ | 魔乐社区官网链接 |
| 开发引入 | - | mindformers/trainer/training_args.py | https://www.mindspore.cn/mindformers/docs/zh-CN/master/feature/ckpt.html#%E6%9D%83%E9%87%8D%E5%88%87%E5%88%86%E4%B8%8E%E5%90%88%E5%B9%B6 | mindformers权重切分与合并特性文档 |
| 开发引入 | - | run_mindformer.py | https://gitee.com/mindspore/mindformers#%E4%BB%8B%E7%BB%8D | mindformers介绍 |
| 开发引入 | - | mindformers/setup.py | https://gitee.com/mindspore/mindformers/tags | mindformers包下载链接 |
| 开发引入 | - | mindformers/setup.py | https://gitee.com/mindspore/mindformers/issues | mindformers的issue链接 |
| 开发引入 | - | mindformers/setup.py | https://www.mindspore.cn | mindspore官网链接 |
| 开发引入 | - | mindformers/setup.py | contact@mindspore.cn | mindspore的联系邮箱 |
| 开发引入 | - | mindformers/setup.py | https://gitee.com/mindspore/mindformers | setup脚本方式安装mindformers地址 |
公开接口声明
mindformers对外暴露接口可参考api, 具体接口规格可参考对应API文档查询。
通信矩阵
mindformers 通信矩阵
| 序号 | 代码仓 | 功能 | 源设备 | 源IP | 源端口 | 目的设备 | 目的IP | 目的端口 (侦听) |
协议 | 端口说明 | 端口配置 | 侦听端口是否可更改 | 认证方式 | 加密方式 | 所属平面 | 版本 | 特殊场景 | 备注 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | mindformers | 分布式训练推理 | 运行mindspore进程的服务器 | 运行mindspore进程的服务器的ip | 由用户配置 | 运行mindspore进程的服务器 | 运行mindspore进程的服务器的ip | TCP | 分布式启动时,作为主节点训练 | bash scripts/msrun_launcher.sh "run_mindformer.py <br/> --config {CONFIG_PATH} <br/> --run_mode {train/finetune/eval/predict}" <br/> 8 4 主节点ip 端口号 0 output/msrun_log False 300 | 是 | 无 | 无 | 不涉及 | 所有版本 | 无 | ||
| 2 | mindformers | 分布式训练推理 | 运行mindspore进程的服务器 | 运行mindspore进程的服务器的ip | 运行mindspore进程的服务器 | 运行mindspore进程的服务器的ip | 由用户配置 | TCP | 分布式启动时,作为从节点通信 | bash scripts/msrun_launcher.sh "run_mindformer.py <br/> --config {CONFIG_PATH} <br/> --run_mode {train/finetune/eval/predict}" <br/> 8 4 主节点ip 端口号 1 output/msrun_log False 300 | 是 | 无 | 无 | 不涉及 | 所有版本 | 无 | ||
| 3 | mindformers | ModelArts | 运行mindspore进程的服务器 | 运行mindspore进程的服务器的ip | 动态端口1024~65535 | 用户所在服务器 | 用户所在服务器的ip | 443 | HTTPS | 443是与ModelArts相关操作的端口 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 所有版本 | 无 |
除上述外,mindformers不涉及端口开放、侦听等相关行为,相关端口行为由用户在模型脚本调用原生接口,为MindSpore通信配置
MindSpore通信矩阵
| 序号 | 代码仓 | 功能 | 源设备 | 源IP | 源端口 | 目的设备 | 目的IP | 目的端口 (侦听) |
协议 | 端口说明 | 端口配置 | 侦听端口是否可更改 | 认证方式 | 加密方式 | 所属平面 | 版本 | 特殊场景 | 备注 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | MindSpore | 动态组网 | Worker所在服务器 | worker所在服务器的ip | 动态端口1024~65535 | Scheduler | Scheduler所在机器的IP地址 | 用户配置的 MS_SCHED_PORT | TCP | Scheduler进程提供端口,用于通信层处理Worke节点发送的组网请求。 | export MS_SCHED_HOST=xxx export MS_SCHED_PORT=xxx |
是 | 数字证书认证 | TLS 1.3(缺省)、TLS1.2 | 业务面 | MindSpore Enterprise 1.2.0及之后版本 | 无 | |
| 2 | MindSpore | 动态组网 | Scheduler所在服务器 | Scheduler所在服务器的ip | 动态端口1024~65535 | Worker | Worker所在机器的IP地址 | 8118~12214(为每个worker分配特定端口范围) | TCP | 每个worker进程打开随机端口,Scheduler处理完所有worker发送的组网请求之后,会将网络信息发送给每个worker。多个worker会打开多个随机端口号。 |
export MS_SCHED_HOST=xxx export MS_SCHED_PORT=xxx |
否 | 数字证书认证 | TLS 1.3(缺省)、TLS1.2 | 业务面 | MindSpore Enterprise 1.2.0及之后版本 | 无 | |
| 3 | MindSpore | 动态组网 | Worker所在服务器 | Worker所在服务器的ip | 动态端口1024~65535 | Worker | Worker所在机器的IP地址 | 8118~12214(为每个worker分配特定端口范围) | TCP | 每个worker进程生成随机端口,在进行梯度归约时,接收其他worker节点发送的梯度数据,完成梯度归约。多个worker会打开多个随机端口号。 |
export MS_SCHED_HOST=xxx export MS_SCHED_PORT=xxx |
否 | 数字证书认证 | TLS 1.3(缺省)、TLS1.2 | 业务面 | MindSpore Enterprise 1.2.0及之后版本 | 无 | |
| 4 | MindSpore | 动态组网+Ascend CM启动分布式训练 | Worker所在服务器 | Worker所在服务器的ip | 动态端口1024~65535 | Scheduler | Scheduler所在机器的IP地址 | 用户配置的 MS_SCHED_PORT+1 | TCP | Scheduler开放 MS_SCHED_PORT+1端口号,作为HCCL CM方式启动的主节点端口地址,用于HCCL host完成组网。但是只会在初始化阶段使用,初始化完后端口和对应链接全部会被释放。 | export MS_SCHED_HOST=xxx export MS_SCHED_PORT=xxx |
否 | 无 | 无 | 控制面/业务面 | MindSpore 2.1 及之后版本 | 只在Ascend CM启动方式下生效 | |
| 5 | MindSpore | GPU/Ascend分布式训练(OpenMPI) | 使用MindSpore进行OpenMPI启动分布式训练所在机器 | 使用MindSpore进行OpenMPI启动分布式训练所在机器的IP地址 | 动态端口1024~65535 | 训练进程 | 用户可配,根据用户配置host_file绑定ip地址 | 动态端口1024~65535 | TCP | 各进程(包括主进程和子进程)监听一个 用于在跨机场景下,主机间控制面指令输出结果同步到本机。在Mindspore中,用于主机名同步,NCCL root进程id同步等。 mpirun进程之间会建立链接,不会使用22端口,22端口只是用于ssh登录而已。 |
否 | 无 | 无 | 控制面/业务面 | MindSpore Enterprise 1.2.0及之后版本 | 无 | ||
| 6 | MindSpore | GPU/Ascend分布式训练(OpenMPI) | 使用MindSpore进行OpenMPI启动分布式训练所在机器 | 使用MindSpore进行OpenMPI启动分布式训练所在机器的IP地址 | 动态端口1024~65535 | 训练进程 | 127.0.0.1 | 动态端口1024~65535 | TCP | 主进程监听一个 相同主机上的进程通过本地环路进行通讯,在Mindspore中,用于主机名同步,NCCL root进程id同步等。 |
否 | 无 | 无 | 业务面 | MindSpore Enterprise 1.2.0及之后版本 | 无 | ||
| 7 | MindSpore | GPU分布式训练(NCCL) | 使用MindSpore进行GPU分布式训练所在机器 | 使用MindSpore进行GPU分布式训练所在机器的IP地址 | 动态端口1024~65535 | 训练进程 | 使用MindSpore进行GPU分布式训练所在机器的IP地址 | 随机端口(1024~65535),端口数由用户启动的训练进程数决定,如果用户启动N个进程,则NCCL启动N个侦听端口 | TCP | 每个子进程监听一个 NCCL初始化communicator时监听端口,用于各个进程之间建立按照AllGather Ring算法建立tcp链接,root进程与其他进程同步信息,其他进程间数据传送,梯度聚合等。 |
否 | 无 | 无 | 业务面 | MindSpore Enterprise 1.2.0及之后版本 | 无 | ||
| 8 | MindSpore | GPU分布式推理(NCCL) | 使用MindSpore Lite进行GPU分布式推理所在机器 | 使用MindSpore Lite进行GPU分布式推理所在机器的IP地址 | 动态端口1024~65535 | 推理进程 | 使用MindSpore Lite进行GPU分布式推理所在机器的IP地址 | 随机端口(1024~65535),端口数由用户启动的推理进程数决定,如果用户启动N个进程,则NCCL启动N个侦听端口 | TCP | 每个子进程监听一个 NCCL初始化communicator时监听端口,用于各个进程之间建立按照AllGather Ring算法建立tcp链接,root进程与其他进程同步信息,其他进程间数据传送,梯度聚合等。 |
否 | 无 | 无 | 业务面 | MindSpore Enterprise 1.2.0及之后版本 | 无 | ||
| 9 | MindSpore | Micro代码生成 | 使用MindSpore Lite生成的脚本进行工程编译 | 使用MindSpore Lite生成的脚本进行工程编译所在机器的IP地址 | 动态端口1024~65535 | MindSpore发布件所在的OBS服务器 | MindSpore发布件所在的OBS服务器的IP地址 | 443 | TCP | 通过网络建链下载发布件 | 否 | 无 | 无 | 业务面 | MindSpore Enterprise 1.2.0及之后版本 | 无 | ||
| 10 | MindSpore | Triton Server 后端接入 | 使用MindSpore Lite的服务器 | 使用MindSpore Lite的服务器的所在IP | Triton Server的服务器 | Triton Server的服务器的IP | 用于通信传输推理请求报文与响应 | 无 | 无 | 业务面 | MindSpore Enterprise 1.2.0及之后版本 | |||||||
| 11 | MindSpore | 代码优化服务化部署 | 使用MindSpore Lite的服务器 | 使用MindSpore Lite的服务器的所在IP | 9190(用户可配) | RPC的服务端 | RPC服务端所在IP | 9091(用户可配) | TCP | 1.服务端为用于RPC建链的的server侧侦听的TCP端口号; 2.源端口号为Client侧TCP协议栈自行分配的端口号 |
由接口配置 | 是 | 无 | 无 | 业务面 | MindSpore Enterprise 1.2.0及之后版本 | ||
| 12 | CANN | 1951弹性加速服务环境(拉远)通信 | D芯片 | 推理服务器所在的IP | 动态端口1024~65535 | D芯片 | 由用户配置 | 由用户配置 | TCP | 1. 目的端口号为用于建链的server侧侦听的TCP端口号 2. 源端口号为Client侧TCP协议栈自行分配的端口号 |
由配置文件配置 | 是 | 无 | 无 | 业务面 | MindSpore Enterprise 1.2.0及之后版本 | ||
| 13 | CANN | HCCL集合通信 | D芯片 | 由用户配置 | 动态端口1024~65535 | D芯片 | 由用户配置 | 16666 | TCP | 1. 目的端口号为用于HCCL建链的server侧侦听的TCP端口号 2. 源端口号为Client侧TCP协议栈自行分配的端口号 |
由配置文件配置 | 否 | 证书认证 | TLS 1.2 | 业务面 | MindSpore Enterprise 1.2.0及之后版本 | 无 | RoCE建链时,在server侧侦听16666端口。 |
| 14 | CANN | HCCL集合通信 | D芯片 | 由用户配置 | 动态端口1024~65535 | D芯片 | 由用户配置 | 4791 | UDP | 1. RoCE报文的目的端口号固定为4791 2. RoCE报文的源端口号为驱动根据QPN生产的端口号 |
由配置文件配置 | 否 | 无 | 无 | 业务面 | MindSpore Enterprise 1.2.0及之后版本 | 无 | RoCEv2协议,主要负责传输层 |
| 15 | CANN | HCCL集合通信 | Ascend分布式集合通信训练业务所在的服务器 | 由用户配置(分布式集合通信训练业务所在服务器的hostIP侧地址) | 动态端口1024~65535 | 分布式集合通信训练业务所在的服务器 | 由用户配置(分布式集合通信训练业务所在服务器的hostIP侧地址) | 用户配置 | TCP | 选择一个AI server作为TCP服务器,主动监听响应其他AI server的socket建链请求,连接后进行TCP数据传输,实现集群计算资源信息的收集和分发。 | 否 | 数字证书认证 | TLS 1.2 | 用户/业务面 | MindSpore Enterprise 1.2.0及之后版本 | 无 | HCCL_IF_BASE_PORT 功能描述OPBase模式下,使用Host网卡进行HCCL初始化或集合通信计算时,可以通过该环境变量指定Host网卡起始端口号,配置后系统默认占用以该端口起始的16个端口。默认值为60000,取值范围[0,65520]。配置示例export HCCL_IF_BASE_PORT = 50000 | |
| 16 | CANN | HCCL集合通信 | Ascend分布式集合通信训练业务所在的服务器 | 由用户配置(分布式集合通信训练业务所在服务器的hostIP侧地址) | 动态端口1024~65535 | 分布式集合通信训练业务所在的服务器 | 由用户配置(分布式集合通信训练业务所在服务器的hostIP侧地址) | 用户配置 | TCP | 根据数据面网络拓扑建立socket链接用于RDMA链路内存地址协商 | 否 | 数字证书认证 | TLS 1.2 | 用户/业务面 | MindSpore Enterprise 1.2.0及之后版本 | 无 | HCCL_IF_BASE_PORT 功能描述OPBase模式下,使用Host网卡进行HCCL初始化或集合通信计算时,可以通过该环境变量指定Host网卡起始端口号,配置后系统默认占用以该端口起始的16个端口。默认值为60000,取值范围[0,65520]。配置示例export HCCL_IF_BASE_PORT = 50000 | |
| 17 | CANN | HCCL集合通信 | Ascend分布式集合通信训练业务所在的服务器 | 由用户配置(分布式集合通信训练业务所在服务器的hostIP侧地址) | 动态端口1024~65535 | 分布式集合通信训练业务所在的服务器 | 由用户配置(分布式集合通信训练业务所在服务器的hostIP侧地址) | 4791 | UDP | 1. RoCE报文的目的端口号固定为4791 2. RoCE报文的源端口号为驱动根据QPN生产的端口号 |
否 | 无 | 无 | 用户/业务面 | MindSpore Enterprise 1.2.0及之后版本 | 无 | RoCEv2协议,主要负责传输层 | |
| 18 | Serving | 服务化推理部署 | Serving client所在服务器 | 随机 | 随机 | Serving Server所在服务器 | 由用户配置 | 由用户配置 | TCP | 源端口由http或grpc创建请求是随机选择,目的端口启动Serving Server时由用户指定 | 源端口由http或grpc创建请求是随机选择,目的端口启动Serving Server时由用户指定 | 否 | 数字证书认证 | >=TLS 1.2 | 业务面 | MindSpore Serving 1.0.0及之后版本 | 无 | |
| 19 | Serving | 服务化推理部署 | Serving Worker Agent所在服务器 | 由用户配置 | 由用户配置 | Serving Worker 所在服务器 | 由用户配置 | 由用户配置 | TCP | 源端口由用户启动分布式Worker Agent时指定,目的端口启动Serving Server时由用户指定 | 源端口由用户启动分布式Worker Agent时指定,目的端口启动Serving Server时由用户指定 | 否 | 不涉及 | 不涉及 | 用户/业务面 | MindSpore Serving 1.0.0及之后版本 | 无 | |
| 20 | Serving | 服务化推理部署 | Serving Worker 所在服务器 | 由用户配置 | 由用户配置 | Serving Worker Agent所在服务器 | 由用户配置 | 由用户配置 | TCP | 源端口启动Serving Server时由用户指定,目的端口由用户启动分布式Worker Agent时指定 | 源端口启动Serving Server时由用户指定,目的端口由用户启动分布式Worker Agent时指定 | 否 | 不涉及 | 不涉及 | 用户/业务面 | MindSpore Serving 1.0.0及之后版本 | 无 | |
| 24 | MindData | 数据集缓存加速 | 用户所在服务器 | 用户所在服务器的ip | 随机 | 用户所在服务器 | 回环地址 | 用户配置1025~65535,默认为50052 | TCP | MindData cache服务是独立于MindSpore训练进程的进程,所以需要和MindSpore训练进程通信,对数据进行缓存,加速读取。 | cache_admin --start返回port | 是 | 无 | 无 | 业务面 | MindSpore 1.1.0及之后版本 | 无 | |
| 25 | MindData | 从OBS下载MindRecord训练 | 用户所在服务器 | 用户所在服务器的ip | 随机 | OBS服务 | OBS服务IP | 80/443 | HTTP/HTTPS | OBS服务提供的端口,用于和用户服务器之间传输训练数据 | 客户端不涉及 | 不涉及 | 不涉及 | 不涉及 | 业务面 | 无 | ||
| 26 | MindAKG | 远程调试 | 用户所在服务器 | 用户所在服务器的ip | 用户所在服务器的ip | |||||||||||||
| 27 | MindAKG | MindSpore调用AKG进程通信 | 用户所在服务器 | 用户所在服务器的ip | 用户所在服务器的ip |
Openmind通信矩阵
| 序号 | 代码仓 | 功能 | 源设备 | 源IP | 源端口 | 目的设备 | 目的IP | 目的端口 (侦听) |
协议 | 端口说明 | 端口配置 | 侦听端口是否可更改 | 认证方式 | 加密方式 | 所属平面 | 版本 | 特殊场景 | 备注 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | openmind | 从魔乐社区上传或下载文件 | 用户所在服务器 | 用户所在服务器的ip | 动态端口1024~65535 | 远程服务器 | https://modelers.cn | 443 | TCP | 用于与魔乐社区交互 | 否 | HTTPS证书认证机制 | TLS | 业务平面 | 所有版本 | 无 | 通过HTTPS进行安全通信 |
datasets通信矩阵
| 序号 | 代码仓 | 功能 | 源设备 | 源IP | 源端口 | 目的设备 | 目的IP | 目的端口 (侦听) |
协议 | 端口说明 | 端口配置 | 侦听端口是否可更改 | 认证方式 | 加密方式 | 所属平面 | 版本 | 特殊场景 | 备注 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | datasets | 下载数据集 | 用户所在服务器 | 用户所在服务器的ip | 动态端口1024~65535 | Hugging Face Hub | https://huggingface.co | 443 | HTTPS | 主数据下载通道 | 否 | 视数据源要求而定 | TLS | 业务平面 | 所有版本 | 无 |