跳转到内容

核心机制

ARTI 既通过 arti.nn.Layer 提供完整能力,也允许独立使用主要机制。

ARTI 的机制不只有 Recall:还包括结构上下文(coord、phase、mask、visibility)、隐空间动态召回与工作区HalfFoldPulse)、自回归接口(observer inverse 与 Membrane)、集成与可移植性,以及字面与运行时词表接口。成熟度按表面分别标记:受支持的 1.x 核心是 Stable Candidate;observer、Membrane 与字面模型集成仍属于 Alpha 或实验性能力。

相位与旋转坐标框架详解 active participant 与 observer participant;半透膜可见性路由详解 router、visibility、模型上下文和用户 emit 四个独立平面。

ARTILatentRecallField 根据隐藏状态、掩码与可选召回上下文创建候选修正,不会强加应用数据结构。

Half 是显著性条件激活。强特征接近完整通过,弱特征平滑衰减,而不是突然截断。

half = arti.nn.Half(threshold=1.0, base=0.5)
survived = half(delta)

Fold 通过可微软分配把 [B, N, D] 映射为 [B, K, D]

fold = arti.nn.Fold(k=16, dim=64)
workspace = fold(h, mask=mask)

当填充不应参与重要性排序时,应把 padding mask 与显著性值分开。

Pulse 从过完备隐片段形成紧凑的可学习工作区,组合投影、可选 Half 保留与 Fold 压缩。

pulse = arti.nn.Pulse(k=16, dim=64)
workspace = pulse(h, mask=mask)
assert workspace.shape == (h.shape[0], 16, 64)

每个机制都可以独立训练、测试和部署。

UnFold 在保留原值的同时改变布局

Section titled “UnFold 在保留原值的同时改变布局”

UnFold 查询新值,再通过随样本变化的 hard layout,把新值与每个原输入实例共同排列。ARTI 1.7.0 继续支持调用时 target_length,使同一个最大配置容量可服务不同工作区长度。

unfold = arti.nn.UnFold(dim=64, exposed=32)
layout = unfold(workspace, target_length=20)
assert layout.shape == (workspace.shape[0], 20, 64)

它不是 Fold 的逆。请阅读 UnFold,了解 source-index 诊断、canonical guide、mask 与容量边界。

FusionPulse 在 1.7.0 中仍是 Alpha 层,用于连接多个已经紧凑的 Pulse 工作区,并返回单个固定 [B,K,D] 结果。

fusion = arti.nn.FusionPulse(k=8, dim=64)
combined, info = fusion.concat(whole, regions, details, return_info=True)

其路径是联合上下文 → feature-wise salience → Half → shared UnFold。可选的 info["structural_loss"] 是无标签训练辅助项,不是任务指标,也不保证信息无损。请阅读 FusionPulse并使用真实浏览器工作区检查

RecallExpertPool.concatenate() 沿 bank 槽位维连接:[K1,H] + [K2,H] → [K1+K2,H]。合并后的 Recall field 会在扩大的地址空间上执行一次 retrieval softmax;这不是对已经生成的输出做混合。

pool = arti.RecallExpertPool(recall_expert, base_model=model)
pool.load_expert("coding", "coding.recall.arti.st")
pool.load_expert("dialogue", "dialogue.recall.arti.st")
recall = pool.concatenate()
delta, bank_weights, gate, recognition = recall(h, mask)

只有原生 ARTILatentRecallField 专家且所有非 bank 状态完全一致时才能拼接:query、gate、external projection 与 recognition operator 都必须相同。Pool 检测到分歧会拒绝 concat,而不会任取某个专家的算子。可用 RecallTTTSession(..., trainable_parameters=("bank",)) 训练 concat-safe 在线专家;如果共享算子不同,应保持专家独立,并使用显式命名路由或非负 mixture weights。

仍在演进的 VisualScan 表面把同一种固定工作区思想用于刚性视觉采样。默认观测模式在 (0, 0)(0, 0.5)(0.5, 0)(0.5, 0.5) 像素偏移处记录四帧低分辨率观测。ARTI 对这些观测执行连续反向配准,形成携带位置的视觉片段,再由 Pulse 压缩为 K 个工作区槽位。

import arti
import torch
config = arti.VisualScanConfig(
low_size=(8, 8),
scale=2,
shifts=((0.0, 0.0), (0.0, 0.5), (0.5, 0.0), (0.5, 0.5)),
patch_size=(4, 4),
pulse_count=4,
)
scan = arti.VisualScan(config)
# frames: [B, scans, channels, height, width]
result = scan(frames, torch.tensor(config.shifts), return_info=True)
assert result.pulses.shape[:2] == (frames.shape[0], 4)

这是物理采样与隐空间工作区契约,并不声称 Pulse 能重建未知图像内容。VisualScan 是公开但仍在演进的表面;arti.nn.Pulse 本身属于受支持的 1.x 核心。