FusionPulse
arti.nn.FusionPulse 是 ARTI 1.6.0 新增、并在 1.7.0 继续提供的 Alpha API。它把多个已经紧凑的 Pulse 工作区融合成一个固定容量工作区。它不会替代 Pulse,也不应用于无界原始序列。
Pulse workspaces→ concat→ 联合上下文 + feature-wise salience→ Half survival→ shared UnFold→ 固定 [B,K,D] 工作区来源可变,输出固定
Section titled “来源可变,输出固定”import torchfrom arti.nn import FusionPulse, Pulse
whole = Pulse(k=8, dim=64)(torch.randn(4, 96, 64))regions = Pulse(k=12, dim=64)(torch.randn(4, 192, 64))details = Pulse(k=6, dim=64)(torch.randn(4, 48, 64))
fusion = FusionPulse(k=8, dim=64)workspace, info = fusion.concat( whole, regions, details, return_info=True,)
assert workspace.shape == (4, 8, 64)来源数量可以在调用间变化,concat() 也接受槽位数不同的来源。等长来源可堆叠为 [B, sources, slots, D],再调用 fusion(stacked)。
来源长度不同时,为每路分别提供 [B,Nᵢ] mask。无效槽不会参与 salience、结构损失或共享 UnFold 查询。
平衡式融合训练
Section titled “平衡式融合训练”任务损失正常训练融合工作区。如果重复观测需要合并,同时保留来源特有证据,可选的无标签结构项会施加三种压力:避免非常相似的候选同时生存、保留每个相似邻域的支持,并留下强代表。
workspace, info = fusion.concat(whole, regions, details, return_info=True)loss = task_loss(workspace, target) + info["structural_loss"]诊断包含 survival、source_index、mask,以及未加权的 redundancy、support、representative 损失分量。它们是工程信号,不是任务指标,也不保证每个来源等量保留。
全局、区域与细节工作区是有用的应用模式,前提是每个视图先由自己的 Pulse 形成紧凑表示,再参与融合。这些标签没有内置语义:ARTI 只接收普通 tensor 与 mask。对齐、坐标、训练数据与任务目标仍由集成方负责。
每个尺度的原始片段 → 独立 Pulse → 紧凑工作区紧凑工作区 → FusionPulse → 单个固定容量工作区- 1.7.0 继续记录 tensor 输入输出契约。
FusionPulse及其结构损失默认值没有获得与Pulse、UnFold相同的冻结承诺。- 随机初始化没有任务含义;任何质量 claim 前都必须使用真实目标训练。
- ARTI 1.7.0 增加由 Python 拥有的可检查导出,并提供 FusionPulse 中间张量的 Python ORT → 浏览器 WASM/WebGPU 锁定 parity fixture。
@arti-fit/web只把 workspace、mask、index 等角色视为元数据,不在 JavaScript 中重新实现 FusionPulse。
可在工作区证据实验室运行官方导出工件并检查真实中间张量。