分享一套完整的大模型分布式训练系统顶层架构设计,免费公开。
本文完整定义 L1~L5 全层级模块职责、权限流向、事件驱动规则、边界红线、旧架构问题整改思路。
定位说明:这是顶层范式与模块边界规约,聚焦权责隔离与消除隐性耦合,不附带可直接运行代码。工程落地、性能优化、硬件适配属于后续工程工作。
设计核心范式:
上层决策、下层执行、单向指令、禁止窥探、权责原子隔离、无主动轮询、无跨层耦合。
本内容为顶层架构规范设计,聚焦系统解耦、防腐、稳定性架构。
不含可运行代码,工程落地、性能调优、硬件适配属于落地层工作,不在本次顶层设计范畴。
免费公开,供行业架构参考学习。
全局权限总纲 + 全模块速查清单
一、全局权限总纲(系统底层铁律,不可突破)
核心权限范式
单线流转:上层下发指令,下层执行;下层只反馈结果与状态;上层不可直接修改下层内部状态;下层严禁主动拉取 / 窥探上层任何私有状态。
1. 决策权收敛:所有顶层决策(启停、恢复、终止、资源分配)唯一收口于 L1【任务编排器】。其余任何模块,只允许执行与上报,无权自主决策。
2. 链路刚性隔离:管理层内部多通道分离,每条通道只承载固定类型消息。禁止模块私下直连、消息跨通道混用、跨层跳转通信。所有消息逐级传递,禁止越级。
3. 职责原子化:一个模块只做一类事,不兼决策、不兼多业务。执行模块剥离判断能力;判断模块剥离操作能力。
4. 事件驱动:废除全部主动轮询机制。状态传递统一使用事件推送;下层超时未上报,上层判定故障。
5. 只读反馈原则:下层向上上报的事件、指标、状态,原始内容不可被接收方篡改。反馈消息只读。
层级总览
L1 调度管理层:决策、资源、故障判定、恢复执行(只发指令,不做训练计算)
L2 训练控制引擎层:训练循环主控、并行、优化器、混合精度(调度训练流程,不做底层张量计算)
L3 模型 & 计算层:模型加载、算子、前向 / 反向、梯度归约(张量计算主体,无权干预训练时序)
L4 数据管道层:数据集版本、预加载、混洗、过滤、批次打包(样本处理流水线,不参与模型计算)
L5 持久化与指标观测层:Checkpoint 快照、指标日志统计(持久化存储与观测,零决策能力)
二、全模块速查清单(层级|模块名称|核心职责|禁止行为摘要)
L1 调度管理层(4 模块,决策中枢)
1. L1-1 任务编排器:系统唯一决策源,下发顶层指令,汇总事件,掌握任务启停 / 暂停 / 恢复 / 终止最终决策权。禁止直接操作 GPU、文件、张量,禁止参与计算。
2. L1-2 资源分配器:资源申请释放、并行拓扑管理、NCCL 进程组构建。禁止自主启停训练,禁止修改训练超参。
3. L1-3 故障检测器:收集全链路上报健康事件,故障分级判定,只上报,不决策不下发指令。禁止直接干预下层训练流程。
4. L1-4 恢复控制器:收到编排器指令后执行快照加载、通信域重建;无自主故障触发权。禁止自主监听故障,无权修改任务规约。
L2 训练控制引擎层(4 模块,训练流程主控)
1. L2-1 训练循环控制器:承接 L1 配置,驱动 step 迭代,调度 L2 子模块、L3/L4/L5,向上汇总训练事件。禁止资源申请释放,无权决策任务终止。
2. L2-2 并行策略控制器:解析并行拓扑,维护 TP/DP/PP 分片规则,初始化 / 销毁 NCCL 通信域。禁止张量计算,无权改动 L1 下发拓扑。
3. L2-3 优化器封装:接收梯度,执行权重更新计算,产出权重增量。禁止自主调整学习率,禁止直接修改显存权重。
4. L2-4 混合精度管理器:张量精度转换、loss 缩放、梯度溢出检测。禁止修改梯度本体,无权跳过本轮参数更新。
L3 模型 & 计算层(5 模块,张量计算层)
1. L3-1 模型分片加载器:权重分片载入显存,校验分片完整性。禁止前向反向计算,禁止自主修改分片规则。
2. L3-2 算子库适配层:统一封装 CUDA/Fused 算子,硬件指令翻译,算子调度。禁止业务计算逻辑,无权自主切换算子策略。
3. L3-3 前向计算单元:执行模型前向运算,输出 logits 张量。禁止反向求导、梯度归约、loss 计算。
4. L3-4 反向计算单元:基于 logits 与标签求 loss,生成每层梯度张量。禁止梯度归约、权重更新。
5. L3-5 梯度归约单元:跨 rank 梯度 All-Reduce 聚合。禁止梯度生成,无权自主重建 NCCL 通信域。
L4 数据管道子系统(5 模块,样本流水线)
1. L4-1 数据集版本管理器:数据集版本、路径、哈希校验,挂载 / 切换 / 卸载数据集。禁止样本加工、批次打包。
2. L4-2 多线程预加载器:磁盘 IO,原始样本读取,内存缓存填充。禁止样本修改、混洗、过滤。
3. L4-3 数据混洗器:样本顺序随机打乱,仅变更顺序。禁止修改样本内容、筛选样本。
4. L4-4 样本过滤模块:依据规则剔除脏数据、异常样本。禁止修补样本,无权自主调整过滤阈值。
5. L4-5 批次打包器:样本组 batch、padding、转换为 GPU 张量 micro-batch。禁止样本筛选混洗。
L5 持久化与指标观测层(2 模块,存储与观测)
1. L5-1 Checkpoint 管理器:快照序列化保存、读取、版本链维护。禁止自主触发保存,禁止修改权重与训练配置。
2. L5-2 指标日志统计器:接收、汇总、落地训练指标与日志。禁止判断收敛,无权干预训练流程,不可篡改原始指标。
三、通用红线(所有模块强制遵守)
1. 下层一律禁止主动读取、轮询、窥探上层任何私有状态(step、epoch、loss、学习率、并行拓扑、显存等)。配置仅在初始化阶段一次性推送固化。
2. 任何下层模块禁止自主决策,触发动作必须等待上层指令。
3. 模块只能修改自身私有状态,严禁修改其他模块内部状态。
4. 禁止跨层越级通信,所有消息逐级转发。
5. 所有上报事件、原始数据、指标保持只读,接收方不可篡改。
狂潮分布式训练系统|六层原子化权责架构(正文)
模块边界职责规约|L1-1:任务编排器
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L1 最高决策中枢,全系统唯一决策源。负责全生命周期任务调度、启停、暂停、终止、全局时序管控;只做决策调度,不参与任何计算、IO、显存操作。
1. 模块唯一核心职责
下发训练顶层指令;统筹全链路层级调度;接收所有上层模块事件汇总;判定任务全局状态;输出启停 / 恢复 / 终止最高级决策。
2. 模块私有状态(外部全部禁止读、禁止改)
全局任务状态枚举:待机 / 预热中 / 训练运行中 / 暂停 / 故障冻结 / 终止
全局任务配置副本(顶层超参、训练总步数、epoch 上限)
全链路模块健康状态台账
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
任务初始化就绪事件
任务正式启动事件
任务暂停事件
任务恢复事件
任务终止 / 结束事件
全局故障冻结事件
4. 允许接收的输入事件 / 指令清单
上层:无(顶层模块)
下层(L1 内部三子模块 + L2 训练引擎)
资源分配就绪 / 异常事件
故障检测上报事件
恢复执行完成事件
训练循环运行反馈事件
5. 允许对外发出的输出事件 / 消息清单
向上:无
向下(全系统所有下层层级)
全局初始化指令
启动训练指令
暂停训练指令
恢复训练指令
强制终止指令
全局冻结保护指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止直接操作 GPU 显存、模型权重、张量计算
❌ 禁止执行数据读取、样本处理、磁盘 IO
❌ 禁止修改 loss、梯度、权重、学习率等训练参数
❌ 禁止自主探测下层状态、轮询下层进度;只接收上报事件
❌ 禁止参与任何算子调用、前向反向计算逻辑
旧架构问题 & 整改方案
旧问题:旧版调度器存在 “被动响应故障”“局部模块自主启停”,导致全局时序撕裂、多模块状态不一致。
整改:
1. 剥夺所有下层模块自主启停权限,所有全局动作唯一收口本模块;
2. 废除被动调度,全部采用顶层指令驱动;
3. 所有全局状态统一由本模块固化,杜绝局部状态覆盖全局状态。
---
模块边界职责规约|L1-2:资源分配器
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L1 资源顶层管控模块;负责算力、进程、通信域、显存配额的初始化与生命周期管理;只分配资源、不调度训练流程、不参与计算。
1. 模块唯一核心职责
接收顶层编排指令;初始化硬件资源、进程组、NCCL 通信域;分配各 rank 算力与显存配额;监控全局资源占用;向上反馈资源就绪 / 耗尽 / 异常状态。
2. 模块私有状态(外部全部禁止读、禁止改)
全局 rank 拓扑表、进程映射关系
单卡 / 全局显存配额参数
资源状态枚举:未初始化 / 资源就绪 / 资源紧张 / 资源泄漏 / 资源崩溃
NCCL 通信域句柄、进程组 ID
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
资源初始化完成事件
全局通信域构建就绪事件
显存资源紧张告警事件
资源泄漏检测事件
资源异常崩溃事件
4. 允许接收的输入事件 / 指令清单
上层(L1-1 任务编排器)
全局资源初始化指令
重建通信域指令
释放全局资源指令
下层(L2 并行控制器、硬件底层)
硬件资源就绪反馈
通信域异常反馈
显存溢出上报事件
5. 允许对外发出的输出事件 / 消息清单
向上推送(L1-1 任务编排器)
资源就绪可训练事件
资源不足告警事件
通信域故障事件
向下推送(下层所有模块)
分配 rank 拓扑与通信权限指令
锁定资源配额指令
释放局部资源指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止干预训练 step、epoch、训练时序
❌ 禁止参与模型计算、梯度、权重更新、loss 逻辑
❌ 禁止修改并行策略分片规则,只做资源承载
❌ 禁止自主启停训练、自主修复故障
❌ 禁止读取训练指标、loss、精度状态
旧架构问题 & 整改方案
旧问题:资源模块主动适配训练节奏、动态修改显存配额,下层干预上层时序。
整改:
1. 资源配额初始化一次性固化,训练中禁止自主改动;
2. 通信域故障只上报、不自救、不自建;
3. 只做资源管控,零训练流程干预权。
---
模块边界职责规约|L1-3:故障检测器
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L1 全局故障感知模块;只收集、分级、上报,不决策、不修复、不干预。
1. 模块唯一核心职责
全链路监听各模块异常事件;做故障分级(轻微 / 中级 / 严重 / 致命);汇总故障台账;向上推送故障报告;无任何执行与决策权限。
2. 模块私有状态(外部全部禁止读、禁止改)
故障分级规则台账
本轮 / 累计故障统计记录表
监听状态枚举:待机 / 全域监听中 / 故障堆积 / 监听异常
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
轻微故障上报事件
中级异常告警事件
严重故障预警事件
致命崩溃上报事件
4. 允许接收的输入事件 / 指令清单
上层(L1-1 任务编排器)
开启全域故障监听指令
重置故障台账指令
下层所有模块
各模块异常报错事件
硬件故障事件
数据异常事件
计算异常事件
5. 允许对外发出的输出事件 / 消息清单
向上推送(L1-1 任务编排器)
分级故障报告事件
批量故障堆积告警事件
向下:无(纯上行监听模块)
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止自主判定是否停机、是否恢复
❌ 禁止自主修复故障、重试任务
❌ 禁止修改任何模块状态、参数、数据
❌ 禁止干预训练流程、暂停 / 启停任务
❌ 禁止读取私有训练参数,只接收公开异常事件
旧架构问题 & 整改方案
旧问题:旧检测器会自主判断故障严重性、自主触发重试,越权决策。
整改:
1. 彻底剥夺决策修复权,纯监听、纯汇总、纯上报;
2. 所有故障处理全权交由任务编排器与恢复控制器。
---
模块边界职责规约|L1-4:恢复控制器
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L1 故障执行层;只执行恢复动作,不判定故障、不决策时机。
1. 模块唯一核心职责
接收顶层恢复指令;执行快照回载、通信域重建、状态复位;完成故障后环境修复;向上反馈恢复成功 / 失败。
2. 模块私有状态(外部全部禁止读、禁止改)
恢复流程步骤台账
恢复状态枚举:待机 / 恢复执行中 / 恢复成功 / 恢复失败
本次恢复使用快照版本记录
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
恢复流程启动事件
环境恢复就绪事件
恢复失败重试告警事件
4. 允许接收的输入事件 / 指令清单
上层(L1-1 任务编排器)
启动故障恢复指令
指定快照回载恢复指令
强制环境重置指令
下层(L5 快照管理器、L2 并行控制器)
快照加载就绪反馈
通信域重建完成反馈
5. 允许对外发出的输出事件 / 消息清单
向上推送(L1-1 任务编排器)
全局环境恢复完成事件
恢复流程失败事件
向下推送
加载指定快照指令
重建通信域指令
重置模块状态指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止自主监听故障、自主触发恢复
❌ 禁止选择快照版本、自主决策恢复策略
❌ 禁止修改训练配置、超参、并行规则
❌ 禁止参与训练计算、数据处理
旧架构问题 & 整改方案
旧问题:旧恢复模块会预判轻微故障自主修复,越权执行。
整改:
1. 所有恢复动作必须顶层指令触发;
2. 无自主修复逻辑,纯执行工具模块。
---
模块边界职责规约|L2-1:训练循环控制器
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L2 训练引擎总控,单 step 时序核心;负责驱动每一步训练闭环、调度前向 / 反向 / 精度 / 优化 / 数据流水线;只调度时序,不做资源决策、不做顶层启停决策。
1. 模块唯一核心职责
接收 L1 启动指令;迭代驱动每一个训练 step;按固定时序调度数据、前向、反向、精度、归约、优化、快照流程;汇总每一步训练状态向上上报。
2. 模块私有状态(外部全部禁止读、禁止改)
当前全局 step 计数、epoch 计数
单 step 执行时序台账
循环状态枚举:待机 /step 迭代中 / 等待数据 / 等待计算 / 异常阻塞
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
训练循环启动事件
单 step 执行完成事件
循环阻塞等待事件
循环异常中断事件
4. 允许接收的输入事件 / 指令清单
上层(L1 任务编排器)
启动 / 暂停 / 恢复 / 终止训练指令
下层(L2 子模块、L3 计算层、L4 数据层)
数据就绪事件
前向完成事件
反向完成事件
梯度归约完成事件
优化更新完成事件
精度溢出事件
5. 允许对外发出的输出事件 / 消息清单
向上推送(L1)
训练运行时序状态
单 step 完成汇总事件
训练阻塞 / 异常事件
向下推送
单 step 全链路调度时序指令
启动前向 / 反向 / 优化 / 精度校验指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止自主申请 / 释放硬件资源
❌ 禁止自主判定全局故障、自主停机
❌ 禁止修改顶层训练配置
❌ 禁止直接参与张量计算、权重修改
旧架构问题 & 整改方案
旧问题:旧循环控制器自主决定是否跳过异常 step,局部越权干预全局时序。
整改:异常仅上报,是否跳过、是否冻结全部交由 L1 决策。
---
模块边界职责规约|L2-2:并行策略控制器
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L2 并行拓扑管控核心;维护 TP/PP/DP 并行规则、rank 分片映射、通信域策略;只维护规则,不做计算、不做通信执行。
1. 模块唯一核心职责
解析顶层并行配置;固化模型分片、数据分片、流水线分片规则;下发并行拓扑给计算层;维护跨卡通信策略;向上反馈并行初始化与异常状态。
2. 模块私有状态(外部全部禁止读、禁止改)
TP/PP/DP 维度分片规则表
rank 与模型层映射拓扑
并行状态枚举:未初始化 / 拓扑就绪 / 通信异常 / 分片不匹配
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
并行拓扑初始化就绪事件
分片规则下发完成事件
跨卡通信异常事件
分片不匹配报错事件
4. 允许接收的输入事件 / 指令清单
上层(L1 资源分配器、L2 循环控制器)
并行拓扑配置下发指令
重建并行通信域指令
下层(L3 梯度归约、模型加载器)
分片加载完成反馈
通信执行异常反馈
5. 允许对外发出的输出事件 / 消息清单
向上推送
并行环境就绪事件
并行拓扑异常事件
向下推送
固化分片规则指令
通信域同步策略指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止自主修改并行策略、动态调分片
❌ 禁止执行张量通信、归约计算
❌ 禁止干预训练 step 时序
旧架构问题 & 整改方案
旧问题:旧并行模块根据显存自主微调分片策略,下层自适应越权。
整改:拓扑初始化一次性固化,训练全程不可自主修改。
---
模块边界职责规约|L2-3:优化器封装层
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L2 权重更新唯一模块;执行参数梯度更新、学习率调度、动量迭代;只更新权重,不生成梯度、不归约梯度。
1. 模块唯一核心职责
接收全局聚合梯度;依据学习率与优化器算法执行权重迭代更新;维护优化器自身动量、梯度累积状态;向上反馈更新完成 / 异常。
2. 模块私有状态(外部全部禁止读、禁止改)
本轮学习率值
优化器动量缓存、累积梯度缓存
更新状态枚举:空闲 / 更新执行中 / 更新完成 / 梯度异常
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
权重更新开始事件
权重更新完成事件
梯度非法更新失败事件
4. 允许接收的输入事件 / 指令清单
上层(L2 训练循环控制器)
执行权重更新指令
学习率配置更新指令
下层(L3 梯度归约单元)
全局聚合梯度就绪事件
5. 允许对外发出的输出事件 / 消息清单
向上推送
参数更新完成事件
更新异常事件
向下推送
权重写入更新指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止自主调整学习率、自主改优化策略
❌ 禁止生成、修改、裁剪梯度张量
❌ 禁止参与前向反向计算
旧架构问题 & 整改方案
旧问题:旧优化器会自主检测梯度爆炸,跳过更新,越权干预训练流程。
整改:仅执行更新,异常只上报,是否跳过由上层决策。
---
模块边界职责规约|L2-4:混合精度管理器
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L2 训练控制引擎层,训练循环控制器直属次级模块;负责张量精度管理、损失缩放、梯度溢出检测;只做精度相关转换与校验,不参与前向反向主体计算,不改动优化器更新逻辑。
1. 模块唯一核心职责
接收训练循环控制器下发的精度配置;执行 FP16/BF16 张量缩放、loss 缩放、梯度溢出判断;向上上报溢出事件,向下下发张量精度转换指令。
2. 模块私有状态(外部全部禁止读、禁止改)
缩放系数(loss scale)
溢出检测状态枚举:空闲 / 缩放计算中 / 梯度溢出 / 无溢出
精度策略副本:启用混合精度 / 关闭,初始缩放值、缩放调整规则
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
混合精度初始化就绪事件
梯度溢出事件(附带当前缩放值)
无溢出事件
缩放系数调整完成事件
4. 允许接收的输入事件 / 指令清单
上层(来自 L2-1 训练循环控制器)
混合精度初始化指令(携带精度策略配置)
执行 loss 缩放指令
执行梯度反缩放与溢出检测指令
下层(来自 L3 模型 & 计算层)
张量精度转换完成事件
梯度张量读取就绪事件
5. 允许对外发出的输出事件 / 消息清单
向上推送(发给 L2-1 训练循环控制器)
初始化就绪事件
梯度溢出告警事件
无溢出事件
缩放系数调整完成事件
向下推送(直属下级:L3 模型 & 计算层)
张量精度转换指令(FP32 ↔ FP16/BF16)
读取梯度张量指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止修改梯度本身数值,仅做缩放转换;梯度修改权归属优化器
❌ 禁止自主调整学习率、step 计数,训练时序由训练循环控制器管控
❌ 禁止参与模型前向推理、loss 计算;loss 计算归属模型计算层
❌ 禁止操作 NCCL 通信域、并行分片规则,并行逻辑归属并行策略控制器
❌ 禁止主动轮询 GPU 张量、显存状态,只接收下层上报事件
❌ 禁止触发参数更新、评估、快照保存等训练动作,触发权归训练循环控制器
当前模块旧架构权限问题 & 整改方案
旧问题:原版混合精度管理器会主动读取模型层梯度张量,属于下层主动拉取;溢出发生时,会直接跳过本轮优化更新,越权干预训练循环。
整改:
1. 取消主动读取梯度,由训练循环控制器调度,下发指令读取梯度,下层返回事件;
2. 溢出检测结果仅作为事件上报给训练循环控制器;是否跳过本轮参数更新,由训练循环控制器决策,本模块只负责检测与上报,无权终止本轮更新。
---
模块边界职责规约|L3-1:模型分片加载器
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L3 模型 & 计算层主入口模块;全权负责权重分片加载、初始化、显存入驻;只负责权重分片加载、初始化、显存入驻,不做计算、不做通信、不做参数更新,纯静态资源装载模块。
1. 模块唯一核心职责
接收上层并行分片规则与权重加载指令;根据 TP/PP 拓扑完成模型权重分片切割、单卡权重载入显存;校验分片完整性;向上反馈加载成功 / 失败状态。
2. 模块私有状态(外部全部禁止读、禁止改)
当前本机 rank 对应的权重分片缓存信息
分片加载状态枚举:未加载 / 加载中 / 加载完成 / 分片损坏 / 不匹配
本地模型层映射表:本机负责的网络层区间
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
分片加载开始事件
分片加载成功事件
分片不匹配 / 损坏告警事件
模型权重显存入驻完成事件
4. 允许接收的输入事件 / 指令清单
上层(来自 L2-2 并行策略控制器)
并行分片规则配置推送(一次性初始化)
重新加载权重分片指令(故障恢复 / 重启训练)
上层(来自 L2-1 训练循环控制器)
初始化模型权重加载指令
加载指定 checkpoint 快照权重指令
下层(本层内部算子 / 计算单元)
网络层资源就绪反馈事件
5. 允许对外发出的输出事件 / 消息清单
向上推送(发给 L2 训练引擎)
权重分片加载完成事件
分片异常事件
模型显存就绪事件
向下推送(L3 下层算子 & 计算单元)
启用对应模型层资源指令
冻结 / 锁定权重资源指令(训练中保护)
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止主动读取、拉取上层并行拓扑、step 状态、学习率等任何上层私有参数
❌ 禁止执行前向传播、反向传播、梯度计算
❌ 禁止参与权重更新、优化器迭代逻辑
❌ 禁止发起 NCCL 通信、张量分片交换
❌ 禁止修改分片规则、并行策略,只能被动接收上层推送规则
❌ 禁止主动读写磁盘文件,只接收上层加载指令
当前模块旧架构权限问题 & 整改方案
旧问题:
1. 原版模型分片加载器主动读取上层并行拓扑配置(典型下层窥探上层,权限违规);
2. 加载失败时,会自行调整分片策略补救,越权修改上层规则。
整改:
1. 所有分片规则初始化一次性推送,永久固化,本模块无权读取、无权修改;
2. 加载异常只上报、不自救、不修改规则;补救决策全部上交 L2 训练引擎;
3. 彻底纯职能化:只装载、只校验、只反馈,零决策、零运算、零修改。
---
模块边界职责规约|L3-2:算子库适配层
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L3 模型 & 计算层底层硬件适配中枢。承接上层计算指令,统一调度 CUDA/Flash/Fused 算子;做指令翻译、硬件适配、算子切换;只做适配调度,不写业务计算逻辑、不做参数更新。
1. 模块唯一核心职责
接收上层下发的前向 / 反向计算指令;根据硬件环境自动匹配最优加速算子;统一封装底层硬件调用接口;屏蔽不同 GPU、不同算子版本差异;向上反馈算子执行成功 / 异常状态。
2. 模块私有状态(外部全部禁止读、禁止改)
当前硬件能力快照:算力规格、支持算子列表、显存阈值
算子映射注册表:模型计算逻辑 → 底层硬件算子映射关系
算子运行状态枚举:空闲 / 算子调度中 / 算子执行异常 / 硬件繁忙
算子缓存句柄池
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
算子库初始化就绪事件
算子调度成功事件
算子执行报错事件
硬件资源超限告警事件
4. 允许接收的输入事件 / 指令清单
上层(来自 L3 前向 / 反向计算单元)
执行前向算子调用指令
执行反向算子调用指令
切换加速模式指令
下层(硬件底层)
CUDA 算子执行完成反馈
硬件报错反馈
显存资源占用反馈
5. 允许对外发出的输出事件 / 消息清单
向上推送(发给 L3 前向 / 反向计算单元)
算子执行成功事件
算子执行失败事件
硬件资源不足事件
向下推送(底层硬件)
启动指定硬件算子指令
释放算子缓存资源指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止主动读取上层训练 step、loss、学习率、并行拓扑等私有状态
❌ 禁止参与权重更新、梯度修改、优化器迭代
❌ 禁止执行 loss 判定、模型预测、业务逻辑计算
❌ 禁止发起 NCCL 通信、张量归约、跨卡同步
❌ 禁止自主切换算子策略;策略变更必须等待上层指令
❌ 禁止主动探测上层计算节奏、主动预加载算子;只被动响应调用指令
当前模块旧架构权限问题 & 整改方案
旧问题:
1. 原版算子适配层会主动检测上层计算类型,自主切换算子,属于下层自主决策,越权;
2. 会主动读取 GPU 空闲资源,预判调度,存在反向窥探硬件状态耦合。
整改:
1. 算子切换、调度策略全部由上层计算单元下发指令,本模块只执行、不决策;
2. 取消所有主动探测、主动预判逻辑,严格被动响应;
3. 硬件状态只上报,不上层不轮询、不读取。
---
模块边界职责规约|L3-3:前向计算单元
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L3 模型 & 计算层,算子库适配层的直属上游模块;接收输入 token 张量与模型分片权重,调用算子库完成模型前向推理计算,输出 logits;不做反向梯度计算,不参与权重更新。
1. 模块唯一核心职责
接收上层下发的输入张量与前向计算指令;调用算子库适配层执行模型前向运算;产出 logits 张量;向上反馈前向计算完成或异常事件。
2. 模块私有状态(外部全部禁止读、禁止改)
前向计算上下文缓存:各层中间激活张量(用于反向计算复用)
运行状态枚举:空闲 / 前向计算执行中 / 计算异常
当前批次张量元信息:张量形状、数据类型
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
前向计算开始事件
前向计算完成事件(携带 logits 张量句柄)
前向计算报错事件
4. 允许接收的输入事件 / 指令清单
上层(来自 L2-1 训练循环控制器)
执行前向计算指令(附带 micro-batch 输入张量)
下层(来自 L3-2 算子库适配层)
算子执行完成事件
算子执行失败事件
5. 允许对外发出的输出事件 / 消息清单
向上推送(发给 L2-1 训练循环控制器)
前向计算完成事件
前向计算异常事件
向下推送(直属下级:L3-2 算子库适配层)
执行模型层算子前向调用指令
释放中间激活缓存指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止主动读取上层 step、loss、并行拓扑、学习率等私有状态
❌ 禁止执行反向传播、梯度计算、梯度归约
❌ 禁止修改模型权重张量,权重只读
❌ 禁止发起 NCCL 跨 rank 张量通信,通信交给梯度归约单元与并行策略控制器
❌ 禁止自主调整算子选择,算子选择由上层指令下发
❌ 禁止计算 loss 损失值,loss 不属于前向单元职责
当前模块旧架构权限问题 & 整改方案
旧问题:原版前向单元会主动保留 loss 计算逻辑,越界承担额外计算;同时主动读取权重分片信息,直接访问模型分片加载器内部状态。
整改:
1. 剥离 loss 计算,loss 交由反向链路处理;前向单元只输出 logits;
2. 权重由模型分片加载器初始化阶段一次性推送,本模块不再主动拉取权重分片信息;
3. 所有状态使用事件推送,删除主动轮询逻辑。
---
模块边界职责规约|L3-4:反向计算单元
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L3 模型 & 计算层核心运算模块;负责根据前向输出 logits、真实标签,完成 loss 求解、反向梯度求导、张量梯度生成;只生产梯度,不归约、不更新权重。
1. 模块唯一核心职责
接收上层下发的反向计算指令、logits 张量、标签数据;依托算子库完成全局反向求导,生成每层参数梯度张量;保留梯度输出结果;向上反馈反向计算完成 / 异常状态。
2. 模块私有状态(外部全部禁止读、禁止改)
当前 step 所有梯度张量缓存(待归约)
反向计算依赖的前向激活上下文快照
反向运行状态枚举:空闲 / 反向计算中 / 梯度生成完成 / 计算报错
当前批次 loss 原始标量值
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
反向计算启动事件
梯度生成完成事件
反向计算报错事件
本批次 loss 数值推送事件
4. 允许接收的输入事件 / 指令清单
上层(来自 L2-1 训练循环控制器)
启动反向计算指令(携带 logits、label、精度缩放参数)
下层(来自 L3-2 算子库适配层)
反向算子执行完成事件
反向算子异常报错事件
5. 允许对外发出的输出事件 / 消息清单
向上推送(发给 L2-1 训练循环控制器)
反向计算完成、梯度就绪事件
反向计算失败事件
向下推送(直属下级:L3-2 算子库适配层)
执行逐层反向算子计算指令
释放无用前向激活缓存指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止主动读取上层 step、学习率、并行拓扑、混合精度状态
❌ 禁止执行跨卡梯度归约、NCCL 通信同步(归约专属梯度归约单元)
❌ 禁止修改、裁剪、微调梯度数值(缩放除外,由精度模块统一管控)
❌ 禁止参与权重更新、参数迭代优化(专属优化器)
❌ 禁止主动触发精度溢出判定、自主缩放梯度
❌ 禁止主动探测前向计算进度,必须等待上层统一调度指令
当前模块旧架构权限问题 & 整改方案
旧问题:
1. 原版反向单元会自主读取混合精度状态,自行做梯度缩放,跨模块越权;
2. 计算完成后主动触发局部梯度归约,绕过上层调度私自调用通信逻辑;
3. 主动读取前向单元缓存状态,属于下层跨模块窥探。
整改:
1. 所有精度缩放参数、溢出判定结果,全部由 L2 混合精度管理器事件推送,本模块不主动读取;
2. 梯度生成完毕仅上报就绪,归约动作全权交给梯度归约单元、上层调度;
3. 前向上下文缓存统一由算子层调度管理,本模块只接收指令执行,不主动访问。
---
模块边界职责规约|L3-5:梯度归约单元
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L3 模型 & 计算层最后一个计算模块;接收上层指令与各 rank 本地梯度张量,依托 NCCL 执行跨 rank 梯度归约(求和 / 平均);输出全局统一梯度;只负责张量通信归约,不做梯度生成,不做权重更新。
1. 模块唯一核心职责
接收训练循环控制器下发的归约执行指令与本地梯度张量;依照并行策略控制器推送的 rank 分组规则执行梯度 All-Reduce;完成跨卡梯度聚合;向上反馈归约完成或通信异常事件。
2. 模块私有状态(外部全部禁止读、禁止改)
当前归约任务上下文:梯度张量句柄、归约运算类型
归约运行状态枚举:空闲 / 归约通信中 / 归约完成 / 通信失败
NCCL 归约操作临时缓冲区
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
梯度归约开始事件
梯度归约完成事件(携带聚合后的全局梯度句柄)
归约通信失败事件
4. 允许接收的输入事件 / 指令清单
上层(来自 L2-1 训练循环控制器)
执行梯度归约指令(附带本地梯度张量)
上层(来自 L2-2 并行策略控制器)
rank 分组与通信域配置(初始化一次性推送)
下层(来自 L3-2 算子库适配层)
底层 NCCL 通信执行完成事件
底层通信报错事件
5. 允许对外发出的输出事件 / 消息清单
向上推送(发给 L2-1 训练循环控制器)
梯度归约就绪事件
梯度归约通信失败告警事件
向下推送(直属下级:L3-2 算子库适配层)
发起 NCCL All-Reduce 通信指令
终止当前通信操作指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止主动拉取并行拓扑、step 计数、loss、学习率等上层私有状态;分组配置仅初始化一次性推送
❌ 禁止生成梯度、修改梯度数值;梯度由反向计算单元产出
❌ 禁止执行权重更新、优化器参数迭代
❌ 禁止自主发起重建 NCCL 通信域;通信域的创建 / 销毁由并行策略控制器管控
❌ 禁止参与前向、反向模型计算,只处理梯度聚合通信
❌ 禁止主动轮询其他 rank 的梯度状态,等待上层指令触发归约
当前模块旧架构权限问题 & 整改方案
旧问题:
1. 原版梯度归约单元会主动读取并行策略控制器内部 rank 分组拓扑,下层窥探上层状态;
2. 通信报错时尝试自行重建通信域,越权决策。
整改:
1. 并行分组信息在初始化阶段一次性推送,后续禁止本模块主动拉取拓扑;
2. 通信异常仅向上报告失败,重建通信域的决策交给上层并行策略控制器;
3. 仅被动响应归约指令,不主动触发任何通信操作。
---
模块边界职责规约|L4-1:数据集版本管理器
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L4 数据管道子系统顶层管控模块;全权负责数据集版本、路径、校验、生命周期管理;只做数据资源管控,不做数据运算、不做样本分拣、不做张量打包。
1. 模块唯一核心职责
接收上层下发的数据集版本指令;绑定对应数据源路径;校验数据集完整性与版本合法性;管理多版本数据集切换;向上反馈数据集就绪 / 异常状态,为整个数据管道提供合规数据源。
2. 模块私有状态(外部全部禁止读、禁止改)
已注册数据集版本清单、数据源路径映射表
数据集校验哈希值、文件数量、样本总量
数据集状态枚举:未挂载 / 挂载就绪 / 校验异常 / 版本不匹配 / 已卸载
当前激活使用的数据集版本标记
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
数据集版本挂载就绪事件
数据集缺失 / 损坏校验失败事件
数据集版本切换完成事件
数据集卸载完成事件
4. 允许接收的输入事件 / 指令清单
上层(来自 L2-1 训练循环控制器)
挂载指定数据集版本指令
切换数据集版本指令
卸载数据集指令
下层(来自 L4 多线程预加载器)
数据读取就绪反馈
数据源读取失败反馈
5. 允许对外发出的输出事件 / 消息清单
向上推送(发给 L2-1 训练循环控制器)
数据集就绪可训练事件
数据集异常不可用事件
版本切换完成事件
向下推送(L4 数据管道下属所有模块)
激活当前数据集数据源指令
冻结旧版本数据集指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止主动读取上层训练 step、并行拓扑、超参、显存状态
❌ 禁止参与样本过滤、shuffle、批次打包等数据加工逻辑
❌ 禁止生成、修改、编辑任何样本数据内容
❌ 禁止干预数据预加载节奏、预加载数量
❌ 禁止自主切换数据集版本;版本切换必须等待上层指令
❌ 禁止参与模型计算、loss、梯度、权重任何训练核心逻辑
当前模块旧架构权限问题 & 整改方案
旧问题:
1. 原版版本管理器会主动适配训练 step 动态切换数据集,下层自主决策上层训练节奏,严重越权;
2. 主动探测下层数据加载进度,轮询下层状态,形成反向依赖。
整改:
1. 数据集挂载、切换、卸载全部由上层下发指令触发,本模块无自主决策权;
2. 取消所有轮询探测,只接收下层上报事件、向上推送状态;
3. 彻底剥离数据加工能力,只保留版本、路径、校验、生命周期管控。
---
模块边界职责规约|L4-2:多线程预加载器
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L4 数据管道子系统数据读取执行模块;负责磁盘 IO、多线程预读、内存缓存填充;只负责原始数据搬运,不修改数据、不筛选数据、不规整数据。
1. 模块唯一核心职责
接收上层数据源激活指令与预加载规格;多线程从指定数据集路径读取原始样本;加载至内存缓冲区;维持训练所需数据缓存水位;向上反馈数据就绪、数据枯竭、读取异常事件。
2. 模块私有状态(外部全部禁止读、禁止改)
内存缓冲区:原始样本缓存队列
线程池状态:工作线程数、空闲线程、忙碌线程
读取指针位置、当前缓存水位阈值
加载状态枚举:待机 / 预加载中 / 缓存充足 / 缓存枯竭 / IO 异常
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
预加载启动事件
缓存充足就绪事件
缓存枯竭告警事件
磁盘 IO 读取失败事件
4. 允许接收的输入事件 / 指令清单
上层(来自 L4-1 数据集版本管理器)
激活数据源读取指令
冻结数据源、清空缓存指令
上层(来自 L2-1 训练循环控制器)
设置预加载水位、缓存规格指令
下层(磁盘 IO 系统)
文件读取成功反馈
文件读取报错反馈
5. 允许对外发出的输出事件 / 消息清单
向上推送(发给 L4-1 数据集版本管理器 & L2 训练循环控制器)
缓存就绪事件
数据枯竭事件
IO 异常事件
向下推送(磁盘 IO)
批量读取原始数据指令
终止无效读取指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止主动探测 GPU 空闲、训练 step 节奏、计算层状态(历史最大越界问题)
❌ 禁止对样本做过滤、清洗、打乱、截断、补齐
❌ 禁止修改原始数据内容、标签内容
❌ 禁止自主调整预加载水位、线程数量;参数全部上层下发
❌ 禁止干预 shuffle、批次打包逻辑
❌ 禁止参与模型计算、梯度、权重、精度转换任何训练逻辑
当前模块旧架构权限问题 & 整改方案
旧问题:
1. 原版预加载器会主动感知 GPU 空闲状态,动态调速预加载,下层窥探上层硬件状态,形成跨层反向耦合;
2. 会根据 step 进度自主增减缓存量,下层干预上层训练节奏。
整改:
1. 彻底切断对 GPU、训练状态的所有探测链路;只被动响应上层指令;
2. 缓存水位、线程规模全部由上层固定配置下发,本模块无权自适应调整;
3. 只做纯粹数据搬运,数据质量、数据规则全权交给下游模块。
---
模块边界职责规约|L4-3:数据混洗器
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L4 数据管道子系统数据规整模块;只负责内存样本随机打乱、顺序重置;只改顺序、不改内容、不改规格、不做筛选。
1. 模块唯一核心职责
接收上层待混洗原始样本缓存;按照上层下发的随机种子与混洗规则,全局打乱样本顺序;输出无序干净样本队列;向上反馈混洗完成、混洗异常状态。
2. 模块私有状态(外部全部禁止读、禁止改)
当前本轮混洗索引序列
本轮生效随机种子(上层下发后本地固化)
混洗运行状态枚举:待机 / 混洗执行中 / 混洗完成 / 异常中断
待混洗样本缓冲区快照
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
混洗开始事件
全局样本混洗完成事件
混洗中断、数据异常事件
4. 允许接收的输入事件 / 指令清单
上层(来自 L4-2 多线程预加载器)
原始样本缓存就绪事件
上层(来自 L2-1 训练循环控制器)
本轮混洗启动指令
本轮随机种子、混洗范围规则下发
下层(发给 L4-4 样本过滤模块)
混洗完成样本队列推送
5. 允许对外发出的输出事件 / 消息清单
向上推送(发给 L2-1 训练循环控制器)
本轮数据混洗就绪事件
混洗失败 / 数据缺失告警事件
向下推送(直属下级:L4-4 样本过滤模块)
混洗完成的标准化样本队列数据流
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止主动读取训练 step、epoch、学习率、GPU 状态、并行拓扑等上层私有信息
❌ 禁止筛选、剔除、修改、增补样本内容
❌ 禁止截断、补全、padding 样本,样本规格不动
❌ 禁止自主生成随机种子、自主变更混洗策略;规则全权上层定义
❌ 禁止干预 IO 读取速度、缓存水位、预加载线程调度
❌ 禁止参与模型计算、梯度、loss、权重更新等训练核心逻辑
当前模块旧架构权限问题 & 整改方案
旧问题:
1. 原版混洗器会主动读取当前 epoch 进度,自主决定是否重混洗,下层干预上层训练时序;
2. 会根据显存占用大小自动调整混洗粒度,窥探硬件状态,跨层耦合严重。
整改:
1. 所有混洗时机、种子、粒度全部上层指令下发,本模块零自主决策;
2. 彻底切断对训练时序、硬件状态的探测链路;
3. 职责极致收敛:只打乱顺序,其余一概不碰。
模块边界职责规约|L4-4:样本过滤模块
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L4 数据管道子系统样本清洗模块;依据上层下发的过滤规则剔除脏数据、异常样本;只做样本剔除,不修补、不修改样本内容,不新增样本。
1. 模块唯一核心职责
接收上层推送的混洗完成样本队列;加载预先下发的过滤规则(长度阈值、非法字符、异常格式等);识别并丢弃不符合规则的样本;输出过滤后的干净样本流;向上反馈过滤完成、脏样本统计事件。
2. 模块私有状态(外部全部禁止读、禁止改)
当前生效的过滤规则副本(上层一次性下发固化)
本轮脏样本计数、过滤统计台账
过滤状态枚举:待机 / 过滤执行中 / 过滤完成 / 样本流中断
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
样本过滤启动事件
样本过滤完成事件(附带脏样本统计)
样本流中断 / 格式异常事件
4. 允许接收的输入事件 / 指令清单
上层(来自 L4-3 数据混洗器)
混洗后的样本队列推送事件
上层(来自 L2-1 训练循环控制器)
下发过滤规则指令
启动样本过滤指令
下层(发给 L4-5 批次打包器)
过滤完成样本流推送事件
5. 允许对外发出的输出事件 / 消息清单
向上推送(发给 L2-1 训练循环控制器)
本轮样本过滤就绪事件
脏样本数量上报事件
样本流异常中断告警事件
向下推送(直属下级:L4-5 批次打包器)
干净样本流推送
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止主动读取上层 step、epoch、显存、并行拓扑等私有状态
❌ 禁止修改、修补、改写样本文本 / 张量内容,仅允许丢弃样本
❌ 禁止自主新增、生成样本数据
❌ 禁止自主调整过滤阈值,规则变更必须等待上层指令
❌ 禁止干预混洗顺序、预加载缓存水位
❌ 禁止参与模型计算、梯度、权重更新等训练逻辑
当前模块旧架构权限问题 & 整改方案
旧问题:
1. 原版过滤模块会根据训练 loss 动态调整过滤严格程度,下层窥探训练指标,越权自适应修改规则;
2. 自动补全截断样本,修改原始样本内容,破坏数据真实性。
整改:
1. 过滤规则初始化固化,训练过程不能自主变更;
2. 仅可丢弃样本,任何样本修改、修补行为全部禁止;
3. 脏样本统计只向上上报,是否调整规则交由上层决策。
---
模块边界职责规约|L4-5:批次打包器
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L4 数据管道子系统末端模块;接收过滤后的样本流,按上层指定 batch size 做样本组批、padding、类型转换,组装为 micro-batch GPU 张量;只做组批与张量格式转换,不筛选、不打乱样本。
1. 模块唯一核心职责
接收过滤完成样本流;按照上层下发的 batch 尺寸、padding 规则、张量类型要求,组装 micro-batch;完成 padding 补齐,转换为 GPU 可直接送入模型的张量;向上反馈批次就绪事件,向下输出批次张量给 L3 计算层。
2. 模块私有状态(外部全部禁止读、禁止改)
当前 batch 组装缓冲区
组批规则副本:batch 大小、padding ID、最大序列长度(上层下发固化)
打包状态枚举:待机 / 组批进行中 / 批次就绪 / 样本不足
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
批次打包启动事件
micro-batch 张量就绪事件
样本不足无法组批事件
4. 允许接收的输入事件 / 指令清单
上层(来自 L4-4 样本过滤模块)
干净样本流推送事件
上层(来自 L2-1 训练循环控制器)
下发组批参数指令
启动批次组装指令
下层(发给 L3 前向计算单元)
推送组装完成 micro-batch 张量
5. 允许对外发出的输出事件 / 消息清单
向上推送(发给 L2-1 训练循环控制器)
micro-batch 就绪事件
样本耗尽、无法组批告警事件
向下推送(直属下级:L3 前向计算单元)
组装完成的批次张量
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止主动读取训练 step、loss、GPU 显存占用、并行拓扑等上层私有信息
❌ 禁止筛选样本、打乱样本顺序,样本顺序由上游混洗器固定
❌ 禁止修改样本原始内容,padding 仅允许填充指定占位符
❌ 禁止自主调整 batch size、最大序列长度;参数变更必须上层下发指令
❌ 禁止参与前向、反向、梯度计算,不参与权重更新逻辑
当前模块旧架构权限问题 & 整改方案
旧问题:
1. 原版批次打包器会读取 GPU 显存剩余容量,动态调整 batch 大小,下层窥探硬件状态;
2. 样本不足时,会自主循环复用样本填充批次,修改原始数据分布。
整改:
1. batch 与序列参数一次性下发固化,训练期间禁止自主修改;
2. 样本不足只向上告警,不自行重复填充样本;
3. 只负责组装和格式转换,样本顺序、样本内容完全不干预。
---
模块边界职责规约|L5-1 Checkpoint 管理器
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L5 持久化与观测层快照管理模块;负责模型权重、优化器状态的序列化保存、读取、版本链维护;只执行快照读写,无权自主触发保存,不能修改权重与训练配置。
1. 模块唯一核心职责
接收上层下发的快照保存 / 加载指令;序列化权重、优化器状态,写入存储;读取指定版本快照,恢复权重与优化器状态;维护快照版本链表;向上反馈快照保存 / 加载成功或失败事件。
2. 模块私有状态(外部全部禁止读、禁止改)
快照版本链表:版本号、存储路径、step 标记、保存时间戳
快照操作状态枚举:待机 / 快照写入中 / 快照读取中 / 读写失败
快照保留策略副本(上层下发固化)
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
快照保存启动事件
快照保存完成事件
快照加载完成事件
快照读写失败事件
4. 允许接收的输入事件 / 指令清单
上层(来自 L1-1 任务编排器、L2-1 训练循环控制器)
保存当前快照指令(附带版本标记)
加载指定版本快照指令
清理过期快照指令
下层(文件存储系统)
文件写入完成反馈
文件读取完成反馈
5. 允许对外发出的输出事件 / 消息清单
向上推送(发给 L1 任务编排器、L2 训练循环控制器)
快照保存成功事件
快照加载成功事件
快照读写失败告警事件
向下推送(底层存储)
序列化写入文件指令
读取快照文件指令
删除过期快照文件指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止主动轮询 step、loss 等指标,自主判断何时保存快照
❌ 禁止修改快照内权重、优化器状态数据
❌ 禁止自主选择快照版本,快照版本选择必须由上层指令指定
❌ 禁止干预训练流程,不能暂停、启动训练任务
❌ 禁止读取模型张量、梯度等实时训练数据,仅在快照读写时接收上层传入的状态副本
当前模块旧架构权限问题 & 整改方案
旧问题:
1. 旧版 Checkpoint 管理器监听 loss 下降情况,自主触发快照保存,下层窥探训练指标,自主决策;
2. 自动选择最优 loss 快照版本,越权决定快照保留策略。
整改:
1. 快照保存、加载、清理动作全部依靠上层指令触发,无自主触发逻辑;
2. 快照版本选择、保留策略由上层定义下发,本模块仅执行 IO 操作;
3. 快照内部数据只读,不做任何修改、筛选。
---
模块边界职责规约|L5-2:指标日志统计器
权限范式:单线流转,主下发指令,次反馈状态;上层不可修改下层内部状态;下层禁止主动拉取上层私有数据。
定位:L5 持久化与观测层末端模块;接收、汇总、落地训练指标与日志;只做收集、聚合、持久化,禁止判断收敛,无权干预训练流程,不可篡改原始指标。
1. 模块唯一核心职责
接收上层各模块推送的原始指标、事件日志;按 step/epoch 维度聚合;写入日志存储;对外提供指标事件推送;向上反馈日志写入状态。
2. 模块私有状态(外部全部禁止读、禁止改)
日志缓冲区、指标时序存储表
日志输出配置副本:输出路径、采样频率(上层下发固化)
日志状态枚举:待机 / 日志写入中 / 写入异常
规则:私有状态只能由本模块修改;外部只能接收本模块主动推送的状态事件,无权直接读取。
3. 对外可公开状态(仅事件推送,禁止外部拉取)
日志采集启动事件
指标批次落地完成事件
日志写入异常事件
4. 允许接收的输入事件 / 指令清单
上层(全链路所有模块推送原始指标事件)
loss、学习率、显存占用、模块运行时长、报错日志等原始指标事件
上层(来自 L2-1 训练循环控制器)
启动日志采集指令
停止日志采集指令
下发日志采样、存储配置指令
下层(日志存储系统)
日志持久化写入完成反馈
5. 允许对外发出的输出事件 / 消息清单
向上推送(发给 L1 任务编排器)
指标批次落地完成事件
日志存储写入失败告警事件
向下推送(底层存储)
写入指标日志指令
6. 【红线边界】本模块绝对禁止做的事情(越界黑名单)
❌ 禁止主动拉取各模块状态、主动采集指标,只能等待各模块主动上报事件
❌ 禁止对指标做二次篡改、平滑、修正,原始上报数据原样保存
❌ 禁止判断 loss 收敛、提前终止训练,无权做出任何训练相关决策
❌ 禁止调整训练超参、触发快照保存等动作
❌ 禁止参与任何张量、权重、梯度计算
当前模块旧架构权限问题 & 整改方案
旧问题:
1. 旧日志模块主动轮询各模块读取指标,属于下层主动窥探上层;
2. 根据 loss 趋势判定收敛,主动上报建议停止训练,越权参与决策。
整改:
1. 取消所有主动轮询采集,全部改为各模块事件推送上报;
2. 只存储、聚合原始指标,不做收敛判断;收敛判断属于 L1 任务编排器的决策范畴。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。