C++模板编程:参数与特化技术深度解析
2026/10/15 9:46:47
口径与来源
- 风格规范:
/nas01/work/wam/OpenWAM/z_mermaid_style.md(28 节规则表 + 示例)。本文件严格遵循其 6 类固定classDef、形状语义(Data 平行四边形 / Model 矩形 / Frozen 矩形 / Operation 胶囊 / Random 六边形 / Loss 矩形)、顶部 Raw Data → 中部 Forward → 最底部唯一 Loss subgraph(子 Loss 同排 → Total Loss 最底)。- 代码来源:
/nas01/work/wam/OpenWAM(官方 repo,main@1e103e1)。- 论文来源:OpenWAM, arXiv:2609.07398(本地全文:
/nas01/temp/openwam_paper/paper_fulltext.txt)。- 数字可信度分级:图/表中的参数量与 Shape全部来自真实运行(
.py脚本在 meta device 上真实实例化 + 真实 forward,脚本:/nas01/temp/openwam_params/z_count_params_openwam.py,日志/nas01/temp/openwam_params/stdout.log)。凡写(实测)即为脚本 stdout 逐字取值;凡论文/脚本都没有的,写「论文未给出 / 未确认」,不猜测。- 对风格规范的显式让步与新增约定(真实性优先,见规范第 1/2 条):
- 模型节点内新增
<br/>参数:…行—— 规范模板(第 25 节)只为 Model 定义结构:行。本次用户显式要求「每一个可分解的子模块的参数量」,按 P1「用户后续明确提出的新规则覆盖此前对应规则」处理,参数行统一加(实测)后缀。- 规范要求「Model 节点不写 Shape」(第 72 条)—— 已遵守:Shape 只出现在 Data / Random 节点。
- 图 1 的 MoT 循环存在回环边(
O6 → M6/M7 → Q0 → O6)—— 这是真实拓扑(每层都是 bridge 层,30 层循环),不截断,在图下注明。- subgraph 底色按「阶段」区分(新增约定):规范只对 6 类节点定了
classDef,未规定 subgraph 底色。为避免整张图糊成一片白、并让「阶段边界」一眼可辨,本节给每个 subgraph 一个浅色底 + 同色系描边,颜色按阶段递进分配;节点配色严格保持规范第 24/25 节的 6 类classDef不变(灰=Data、绿=Model、浅绿=Frozen、紫=Operation、橙=Random、红=Loss)。同一语义的 subgraph 跨图同色(MoT 主干 = 紫色系,输出头 = 靛蓝系,Loss = 红色系,辅助输入 = 橙色系)。
- 术语澄清:论文全文0 次出现 “MoT / Mixture-of-Transformers”(
grep -c "MoT\b"= 0);论文用词是Dual-System + Joint Self-Attention。MoT(Mixture-of-Transformers)是官方代码里的名字(openwam/model/architectures/dual_system/mot_driver.py:1-10,注明 Inspired by FastWAM-Joint)。下文两者同义,凡涉论文口径处标「论文」、代码口径处标「代码」。