graph TB
subgraph Core[核心层]
direction TB
A1[MoEModel
主模型类
- 管理专家列表
- 路由策略调用
- 审计与替换方法
- 负载均衡损失]
subgraph ExpertModule[专家模块]
A2[Expert<br/>- 多种类型(ffn/attention/conv/...)<br/>- 状态管理(Active/Idle等)<br/>- 前向计算<br/>- 性能指标收集]
A3[ExpertMetrics<br/>- 指标窗口管理<br/>- 统计计算<br/>- 性能趋势检测]
A2 --> A3
end
subgraph RoutingModule[路由策略模块]
A4[RoutingStrategyRegistry<br/>策略注册中心]
A5[MLPRoutingStrategy]
A6[AttentionRoutingStrategy]
A7[ReinforceRoutingStrategy]
A8[BayesianRoutingStrategy]
A9[HybridRoutingStrategy]
A4 --> A5 & A6 & A7 & A8 & A9
end
subgraph ReplacementModule[替换策略模块]
A10[ExpertReplacementStrategyRegistry<br/>策略注册中心]
A11[least_used_replacement]
A12[performance_based_replacement]
A13[age_based_replacement]
A14[multi_objective_replacement]
A15[mixture_replacement]
A16[adaptive_hybrid_replacement]
A10 --> A11 & A12 & A13 & A14 & A15 & A16
end
A1 --> ExpertModule
A1 --> RoutingModule
A1 --> ReplacementModule
end
subgraph Multimodal[多模态扩展层]
direction TB
B1[MultiModalExpertLayer<br/>- 管理模态专家<br/>- 跨模态融合<br/>- 不确定性估计]
subgraph ModalExperts[模态专家]
B2[MultiTypeExpert<br/>继承自 Expert<br/>支持多种类型]
end
subgraph ModalMapping[模态映射]
B3[DynamicModalExpertMapper<br/>- 专家能力评估<br/>- 模态到专家映射]
end
subgraph ModalSampling[模态采样]
B4[AdvancedModalSampler<br/>- 自适应权重更新<br/>- 性能记录<br/>- 相关性建模]
end
subgraph CrossModal[跨模态交互]
B5[CrossModalAttention<br/>- 多头注意力融合<br/>- 模态权重学习]
end
subgraph Uncertainty[不确定性估计]
B6[BayesianNeuralNetwork<br/>- 贝叶斯线性层<br/>- KL散度计算]
end
B1 --> ModalExperts
B1 --> ModalMapping
B1 --> ModalSampling
B1 --> CrossModal
B1 --> Uncertainty
end
subgraph Training[训练层]
direction TB
T1[MoETrainer<br/>主训练类<br/>- 训练循环<br/>- 多任务支持]
subgraph TaskHeads[任务头]
T2[LMHead<br/>用于因果/条件语言建模]
T3[MLMHead<br/>掩码语言建模]
T4[ITCHead<br/>图文对比学习]
T5[SimCSEHead<br/>无监督对比学习]
end
subgraph Encoders[多模态编码器]
T6[TextEncoder<br/>- 文本嵌入<br/>- Transformer编码]
T7[ImageEncoder<br/>- ResNet特征提取<br/>- 空间池化]
T8[AdvancedAudioEncoder<br/>- Mel谱图<br/>- CNN + Transformer]
end
subgraph Datasets[数据集]
T9[CausalLMDataset]
T10[ConditionalLMDataset<br/>支持图像/音频条件]
T11[MLMDataset]
T12[ITCDataset]
T13[SimCSEDataset]
end
subgraph TrainingUtils[训练工具]
T14[Optimizer & Scheduler<br/>AdamW + 线性调度]
T15[Gradient Scaler<br/>混合精度支持]
T16[CheckpointManager<br/>保存/加载检查点]
end
subgraph ExpertReplacement[专家替换机制]
T17[审计与替换流程<br/>调用MoEModel.audit_and_replace_experts]
T18[优化器重建<br/>替换后重新构建]
T19[路由器微调<br/>finetune_router]
end
subgraph Monitor[监控客户端]
T20[TrainingMonitor<br/>- 上报训练状态<br/>- 发送专家指标]
end
T1 --> TaskHeads
T1 --> Encoders
T1 --> Datasets
T1 --> TrainingUtils
T1 --> ExpertReplacement
T1 --> Monitor
end
subgraph Analysis[分析层]
direction TB
ANA1[MoEModelAnalyzer<br/>- 配置加载<br/>- 可视化生成<br/>- 指标计算]
subgraph ExpertUsage[专家使用分析]
ANA2[ExpertUsageAnalyzer<br/>- 负载分布统计<br/>- 熵计算<br/>- 负载可视化]
end
subgraph PerformanceEval[性能评估]
ANA3[PerformanceEvaluator<br/>- 分类报告<br/>- 混淆矩阵<br/>- AUC计算]
end
subgraph Calibration[校准分析]
ANA4[CalibrationAnalyzer<br/>- ECE/MCE计算<br/>- 可靠性图绘制]
end
subgraph Explainability[可解释性]
ANA5[SHAPExplainer<br/>- 特征重要性<br/>- 摘要图]
ANA6[LIMEExplainer<br/>- 局部解释<br/>- HTML可视化]
ANA7[TextEncoder<br/>- SimpleTextEncoder回退<br/>- 可选训练脚本编码器]
end
subgraph Visualization[可视化工具]
ANA8[PlotUtils<br/>- matplotlib/seaborn<br/>- 图表保存]
end
ANA1 --> ExpertUsage
ANA1 --> PerformanceEval
ANA1 --> Calibration
ANA1 --> Explainability
ANA1 --> Visualization
ANA2 --> ANA1
ANA3 --> ANA1
ANA4 --> ANA1
ANA5 --> ANA1
ANA6 --> ANA1
ANA7 --> ANA1
ANA8 --> ANA1
ANA2 -.-> A1 “读取专家使用数据”
ANA3 -.-> A1 “获取模型预测”
ANA5 -.-> A1 “SHAP模型包装器”
ANA6 -.-> A1 “LIME分类函数”
end
subgraph PerfAnalysis[性能分析层]
direction TB
P1[MoEPerformanceAnalyzer<br/>- 配置加载<br/>- 结果保存]
subgraph Benchmark[基准测试]
P2[InferenceBenchmarker<br/>- 预热与计时<br/>- 吞吐量计算<br/>- 序列输入兼容]
end
subgraph Throughput[吞吐量/延迟]
P3[ThroughputAnalyzer<br/>- 多batch测试<br/>- 延迟统计]
end
P1 --> Benchmark
P1 --> Throughput
P2 -.-> A1 “测试MoEModel推理”
P3 -.-> A1 “获取模型结构信息”
end
subgraph Monitoring[监控层]
F[FastAPI监控服务器<br/>WebSocket实时推送]
end
subgraph Utils[工具层]
G[配置管理<br/>日志系统<br/>异常处理<br/>软导入工具]
end
%% 依赖关系
T1 --> A1 “训练器使用MoEModel进行前向/审计”
T1 -.-> B1 “可选使用多模态专家层(如配置启用)”
T1 --> F “训练器通过HTTP控制监控服务器”
T1 --> T20 “使用监控客户端上报数据”
T20 --> F “客户端推送数据到监控服务器”
A1 --> ANA1 “核心模型提供专家性能数据”
A1 --> P1 “核心模型用于基准测试”
ANA1 --> F “分析报告可推送至监控层展示”
P1 --> F “基准报告可推送至监控层展示”
T6 -.-> ANA7 “分析层可选使用训练脚本的TextEncoder”
G -.-> A1
G -.-> B1
G -.-> T1
G -.-> ANA1
G -.-> P1
G -.-> F
G -.-> T20
G -.-> ANA2
G -.-> ANA3
G -.-> ANA4
G -.-> ANA5
G -.-> ANA6
G -.-> ANA7
G -.-> ANA8
G -.-> P2
G -.-> P3
%% 数据流标注
T1 -- “审计/替换指令” --> A1
A1 -- “专家性能数据” --> ANA1
A1 -- “模型检查点” --> P1
ANA1 -- “专家负载/校准报告” --> F
P1 -- “基准测试结果” --> F