跳转至

Lecture06

LaTeX 源码

\makecscover

来源审计与动机:为什么需要通用感知架构

本讲讨论的不是“再做一个视觉 Transformer”,而是一个更基础的接口问题:如果输入可能来自图像、声音、触觉、点云、事件相机、文本、蛋白质或科学仪器,我们是否必须为每种数据重新手工设计卷积、tokenizer、局部邻域和专用 decoder?Perceiver 的目标是尽量减少这种逐模态工程,把数据先视为一个带特征与位置的数组,再用统一 attention 接口完成编码、处理和解码。

本次重写以当前 Stanford Online 官方上传 wTZ3o36lXoQ 为时间基准。旧讲义引用的 GV8-6ZgJVRk 已下线;当前视频提供 1,399 条官方手动英文字幕。录像没有公开独立 slide PDF,因此从 1080p 视频中恢复 39 张完整教学页;重复动画、Q&A 反复跳页和光流视频中间帧被有意合并,但相应口头解释进入正文与 teacher-voice ledger。

\lecturefigure{slide-01-why-understand-all-modalities.jpg}{为什么要理解所有数据模态:现实世界的数据远不止图像与文本。}{Stanford Online 当前官方视频 00:00:58--00:01:53。}

什么是 inductive bias

Inductive bias(归纳偏置)是架构预先写入的结构假设。例如卷积假设局部邻域重要且平移共享;tokenizer 假设某种离散子词边界;图神经网络假设输入由节点和边组成。偏置能提高数据效率,却也限定适用数据形态。

\teachervoice{Drew Jaegle 的第一个理由非常务实:为每一种传感器和科学数据手工发明偏置,作为研究共同体根本无法持续扩展。通用架构的价值首先是降低“每个新模态一套研究工程”的成本。}

第二个理由是系统维护。传统多模态方案常为视频、音频和文本分别构建 backbone、预处理和 task head,再设计融合模块。它们可以工作,却往往只服务少数固定输入组合,且对采样率、网格形状和模态缺失敏感。Perceiver 希望把架构构建抽象掉,让研究者把精力转向任务、数据和学习目标。

\lecturefigure{slide-02-why-unified-systems.jpg}{从多个专用子系统转向一个可接收异构数组的统一模型。}{Stanford Online 当前官方视频 00:02:58--00:05:09。}

“通用”不等于“无假设”

Perceiver 仍假设输入可以表示为有限数组,attention 可以学习元素关系,位置/模态信息可作为特征提供,并且有足够数据恢复任务结构。它减少的是模态专用架构假设,不是消除全部先验。

统一接口与统一训练是两件事

讲座展示同一架构分别用于多种任务,但这些实验大多独立训练。能够复用 encode/process/decode 接口,不等于已经训练出一个同时掌握所有模态的单一模型。

本章小结

Perceiver 的问题起点是模态扩张和系统复杂度。它追求可复用的数组接口与较少的手工结构,而不是宣称领域知识、专用模型或联合多模态训练已不再需要。

Transformer 的优点与瓶颈:通用性为什么昂贵

前一节提出统一架构,本节解释为什么研究从 Transformer 出发。Transformer 的 attention 不强制局部连接,位置通常作为输入特征而不是固定计算拓扑,且大部分计算是规则矩阵乘法。这些性质让它比卷积更容易迁移到未知结构;代价是 raw input 越大,self-attention 的两两比较越昂贵。

\lecturefigure{slide-03-improving-transformers.jpg}{Transformer 的通用 inductive bias 与输入规模瓶颈。}{Stanford Online 当前官方视频 00:05:10--00:06:01。}

术语表:本讲的核心接口

术语 精确定义
non-local 任意输入元素原则上都可直接相互注意,不预先限制在固定邻域。
position as feature 坐标被编码进 token 特征,而不是用卷积核或图边硬限制连接。
latent array 固定或较小数量的可学习向量,作为处理大输入的内部工作空间。
cross-attention query 与 key/value 来自不同数组;此处 latent 查询原始输入。
output query 指定“预测什么、在哪个位置、哪个模态或哪个任务”的 decoder 查询。
Fourier feature 用多频率正弦/余弦把连续坐标映射成可学习的高频特征。
byte-level language 直接以 UTF-8 bytes 等低层符号建模,不依赖子词 tokenizer。
optical flow 对相邻帧中每个像素预测二维运动向量的稠密结构化输出。

标准 attention 将输入 \(X\in\mathbb{R}^{M\times d}\) 投影为 query、key 和 value:

\[ Q=XW_Q,\qquad K=XW_K,\qquad V=XW_V, \qquad \operatorname{Attn}(X)=\operatorname{softmax}\!\left(\frac{QK^\top}{\sqrt{d_k}}\right)V. \]

其中,\(M\) 是输入元素数;\(d\) 是表示维度;\(W_Q,W_K,W_V\) 是投影矩阵;\(d_k\) 是 key 维度。矩阵 \(QK^\top\) 的形状为 \(M\times M\),因此注意力分数计算和存储随 \(M^2\) 增长。

\lecturefigure{slide-04-standard-qkv-attention.jpg}{标准 QKV attention:每个输入元素与全部 key 比较。}{Stanford Online 当前官方视频 00:06:02--00:08:01。}

Self-attention 的输入规模成本

忽略常数时,一层 attention 的核心分数成本约为 \(\mathcal{O}(M^2d)\),注意力矩阵内存约为 \(\mathcal{O}(M^2)\)。若图像从 \(224^2\) 像素扩大到视频或高分辨率多模态流,\(M\) 的增长会迅速压倒模型深度扩展。

Non-locality:昂贵但通用的连接方式

卷积预设邻近像素更相关,能用局部 kernel 高效处理网格。Attention 则让远距离元素直接交互,因此可处理集合、长距离匹配和未知拓扑。讲者把 non-locality 视为通用性的关键,而不是需要完全消除的浪费。

\lecturefigure{slide-05-why-non-locality.jpg}{Non-local attention 不预先规定局部邻域,卷积则以网格邻接限制连接。}{Stanford Online 当前官方视频 00:08:02--00:08:37。}

\teachervoice{老师的判断不是“attention 永远优于 convolution”,而是两者位于不同 Pareto 点:已知图像结构时,卷积往往更快、更省数据;面对事件相机、细胞、点云或未知科学数组时,我们可能连正确的卷积邻域都不知道。}

Position as feature:把坐标交给学习,而不是写进连线

本节关注 non-locality 的配套条件:若 attention 对输入排列天然不敏感,模型必须获得位置才能重建空间、时间或序列关系。Perceiver 将坐标编码和内容拼接,让架构知道“这是哪里”,却不强制“只能与谁相连”。这比完全无位置更可用,也比固定局部 kernel 更弱假设。

\lecturefigure{slide-06-why-featurize-position.jpg}{将位置编码成特征,使 attention 学习空间关系而非使用硬连接规则。}{Stanford Online 当前官方视频 00:08:38--00:09:29。}

弱偏置不等于位置无关

若任务要求空间输出,模型仍必须区分坐标。不给位置会让不同排列不可辨;给位置但允许全局 attention,才是“弱化局部结构”,不是“删除结构”。

Scalability 与 generality 的张力

讲座把 convnet 与 Transformer 放在一张概念图上:convnet 对网格高度优化,复杂度可近似线性,但适用输入更窄;Transformer 适合一般集合,却承受二次 attention。Perceiver 的设计目标是保留非局部、位置特征化和权重共享,同时重写输入规模复杂度。

\lecturefigure{slide-07-scalability-vs-generality.jpg}{ConvNet 与 Transformer 在输入结构假设和复杂度上的权衡。}{Stanford Online 当前官方视频 00:09:30--00:09:41。}

读图:不是从左到右的“进化路线”

图中两端代表不同优化目标。若任务固定为图像分类且数据有限,convnet 的局部偏置可能更优;若输入结构变化频繁,Transformer/Perceiver 的统一接口可能降低开发成本。评价应同时包含质量、数据量、速度和跨域复用。

本章小结

Transformer 的通用性来自 non-local attention、位置特征化与共享矩阵计算,但 raw input self-attention 付出 \(M^2\) 成本。Perceiver 要解决的正是“保留接口,缩小昂贵工作空间”。

Perceiver:把大输入压入小 latent workspace

本节进入 Perceiver 的核心。它不在所有 raw inputs 上反复做 self-attention,而是维护 \(N\) 个 learned latents,其中 \(N\ll M\)。一次 cross-attention 让 latent queries 从大输入读取信息,后续深层 self-attention 只发生在小 latent array 内。

\lecturefigure{slide-08-perceiver-title.jpg}{Perceiver:通过 iterative attention 扩展 Transformer,同时保持较弱的领域假设。}{Stanford Online 当前官方视频 00:09:42--00:10:39。}

为什么 raw-input self-attention 不可承受

对高分辨率图像,若每像素都是 token,\(M=224\times224=50{,}176\),attention score 已有约 25 亿个元素;视频再乘时间帧数。ViT 通过 patching 减小 \(M\),但 patch 大小与二维卷积成为图像专用选择。Perceiver 选择保留细粒度输入,却用 latent 数量控制深层处理规模。

\lecturefigure{slide-09-self-attention-scales-poorly.jpg}{Self-attention 表达力强,但图像像素级输入导致二次计算与内存。}{Stanford Online 当前官方视频 00:10:40--00:16:15。}

线性输入 scaling 的前提

Perceiver 对输入长度线性,是在 latent 数 \(N\) 固定或增长很慢时成立。若为了更高容量让 \(N\)\(M\) 同比例增长,cross-attention 的 \(MN\) 与 latent self-attention 的 \(N^2\) 仍会变贵。

Cross-attention:用 N 个 queries 读取 M 个 inputs

令输入为 \(X\in\mathbb{R}^{M\times d_x}\),latent array 为 \(Z\in\mathbb{R}^{N\times d_z}\)。Cross-attention 使用 latent 生成 query、input 生成 key/value:

\[ Q=ZW_Q,\qquad K=XW_K,\qquad V=XW_V, \qquad Z'=\operatorname{softmax}\!\left(\frac{QK^\top}{\sqrt{d_k}}\right)V. \]

其中,\(QK^\top\) 形状为 \(N\times M\)\(M\) 是大输入长度,\(N\) 是较小 latent 数。Cross-attention 成本约为 \(\mathcal{O}(MNd)\),若 \(N\) 固定则对 \(M\) 线性;之后 latent self-attention 成本约为 \(\mathcal{O}(N^2d)\)

\lecturefigure{slide-10-cross-attention-linear-scaling.jpg}{Cross-attention 以小 query array 读取大 input array,使输入规模项从 \(M^2\) 变为 \(MN\)。}{Stanford Online 当前官方视频 00:16:16--00:18:59。}

Latent bottleneck 的三重作用

它既是计算瓶颈,也是信息压缩接口,还是模态无关的内部坐标系。输入多大、特征维度多少,都先通过 cross-attention 写入固定宽度 latent;模型深度主要花在 latent processing,而不是 raw input pairwise attention。

读图:三个复杂度模块要分开

输入投影和 value 聚合对 \(M\) 线性;attention map 是 \(N\times M\);latent Transformer 是 \(N\times N\)。因此不能只说“全部线性”:当 latent 很大或 decoder outputs 很多时,其他项会重新成为瓶颈。

完整 Perceiver:Encode、Process、Readout

原始 Perceiver 用 learned latent array cross-attend 输入,再在 latents 上重复 self-attention/MLP;最终通过 pooling 或紧凑 readout 完成分类。Latents 可以视为 learned queries 或共享工作寄存器,它们不是输入中的固定区域,也不保证每个 latent 对应可解释对象。

\lecturefigure{slide-11-perceiver-architecture.jpg}{原始 Perceiver:输入 cross-attention、latent Transformer 重复与紧凑输出。}{Stanford Online 当前官方视频 00:19:00--00:21:41。}

Perceiver encode/process/readout 的概念性伪代码。
def perceiver(inputs, latents, repeats):
    latents = cross_attention(query=latents, key=inputs, value=inputs)
    for _ in range(repeats):
        latents = latent_self_attention(latents)
        latents = latent_mlp(latents)
    return task_readout(latents)

\teachervoice{讲者说明 latent 是随机初始化并学习的,类似 learned recurrent state;部分重复模块可以共享权重。图中的 cross-attention 也包含 residual 和 MLP,不能把它误画成只有一个裸 \(QK^\top V\)。}

Latent 不是无损压缩保证

\(N\ll M\) 意味着模型必须把任务相关信息压入有限 workspace。若任务要求保留所有细节,瓶颈可能限制质量;Perceiver IO 通过 task-specific output queries 提高读取能力,但不会自动恢复编码阶段丢失的信息。

本章小结

Perceiver 用 \(N\) 个 learned latents 从 \(M\) 个输入读取信息,将深层处理从 \(M^2\) 移到 \(MN+N^2\)。线性输入 scaling 的条件是 latent 数受控,且 latent bottleneck 足以承载任务信息。

结构偏置的边界:ViT、Cross-attention、Fourier 与 ImageNet

有了 latent bottleneck,本节回答两个问题:Perceiver 与 ViT/已有 cross-attention 有何不同?它又如何在不依赖二维卷积的情况下获得位置?讲座并未声称所有结构先验都无用,而是通过对照和消融寻找“最少但足够”的输入信息。

与 ViT 对照:Patching 本身就是图像假设

前一节给出了 Perceiver 的统一瓶颈,本节先与最接近的视觉 Transformer 对照。ViT 把图像分成固定二维 patches,再用卷积或线性投影生成 tokens。这一方案对图像非常有效,却需要为不同网格、点云或传感器重新定义 patching。Perceiver 可以直接接收像素/数组元素,并把位置作为额外特征。

\lecturefigure{slide-12-contrast-vit.jpg}{ViT 通过二维 patch embedding 降低 token 数,Perceiver 避免把网格 patch 写进核心接口。}{Stanford Online 当前官方视频 00:21:42--00:22:55。}

读图:ViT 与 Perceiver 优化的瓶颈不同

ViT 先用 patch size 减少 \(M\),然后仍在 patch tokens 上 self-attend;Perceiver 保留更细输入,通过 latent queries 控制 workspace。前者通常更高效且成熟,后者更容易迁移到非网格或异构数组。

\teachervoice{Q&A 中老师给出明确立场:视觉领域的 convolution/attention hybrids 在图像问题上追求速度与质量的精确 Pareto 点,非常重要;Perceiver 团队追求的是尽可能 general、同时仍保持可用性能。两条路线不是互相否定。}

Cross-attention 不是 Perceiver 独有

DETR 用 object queries 从卷积特征图解码 bounding boxes;Slot Attention 用 learned slots 竞争性读取特征并形成对象中心表示。Perceiver 的新意在于把这类不对称 attention 提升为通用输入瓶颈,并反复在 latent workspace 中处理。

\lecturefigure{slide-13-cross-attention-detr.jpg}{DETR 与 Slot Attention 等视觉工作中的 cross-attention 先例。}{Stanford Online 当前官方视频 00:22:56--00:23:11。}

方法归属要准确

Perceiver 没有发明 cross-attention。其贡献是组合:大输入到小 learned latent 的不对称读取、latent 内部深度处理、弱模态假设,以及 Perceiver IO 的输出-query 解码。

Fourier positional features:用频率基函数表示坐标

为了在不硬编码局部连接的情况下表达细粒度位置,本节对二维坐标 \(p=(x,y)\) 构造多频率正弦/余弦特征:

\[ \gamma(p)=\big[\sin(2\pi f_1x),\cos(2\pi f_1x),\sin(2\pi f_1y),\cos(2\pi f_1y),\ldots\big]. \]

其中,\(f_k\) 是从低频到 Nyquist 附近的一组频率;\(x,y\) 是归一化坐标;\(\gamma(p)\) 与 RGB 或其他内容特征拼接。低频表达大尺度位置,高频帮助区分细粒度坐标。

\lecturefigure{slide-14-fourier-position-encodings.jpg}{二维 Fourier positional encodings:多频率坐标特征与 RGB 拼接。}{原始讲解 00:26:18--00:26:55;完整 progressive build 在当前官方视频 00:39:52 再次显示。}

\teachervoice{老师报告一个具体经验:在图像输入上,把 Fourier position 与 RGB concatenate 通常比先投影后相加更好。他并未给出确定机制,只猜测图像内容特征不像词 embedding 那样稀疏;这种“观察可靠、解释未定”的状态应被保留。}

Fourier features 仍然提供真实结构

模型虽然没有卷积邻域,但坐标编码明确告诉它每个像素位于二维平面的哪里。若称其“完全不使用图像结构”是不准确的;更准确的说法是结构以输入特征而非固定计算图提供。

Permuted ImageNet:排列不变不等于结构无用

接下来用一个反直觉实验检验位置特征是否真的替代了固定数组顺序。实验将图像像素顺序随机打乱,只要每个像素仍携带正确位置编码,Perceiver 仍取得相近 ImageNet top-1 结果。这个结果表明架构不依赖输入数组的内存顺序或局部扫描顺序;它不能证明位置、局部性或卷积偏置对数据效率无价值。

\lecturefigure{slide-15-imagenet-permuted-classification.jpg}{ImageNet 标准与 permuted 输入:正确位置特征使模型不依赖数组排列。}{Stanford Online 当前官方视频 00:29:34--00:33:47。}

读表:比较的是数组顺序,不是删除空间

Permuted 版本仍附带位置编码,因此模型可以学习哪些像素在空间上相邻。若同时打乱位置标签,任务会变成不同问题。表中结果支持 input-order robustness,而非“二维结构不存在”。

\teachervoice{Q&A 的重要提醒是:弱偏置模型可能需要更多数据才能自行恢复结构。对 ImageNet 这类大数据,通用性可以被训练出来;小数据场景仍是讲者明确承认的未解决瓶颈。}

本章小结

Perceiver 比 ViT 少写入 patch/grid 假设,但仍使用位置特征。Cross-attention 有丰富先例,贡献在于通用化组合。Permuted ImageNet 展示输入顺序鲁棒性,却不能推翻局部偏置的数据效率优势。

Perceiver IO:把 Output Query 变成通用任务接口

原始 Perceiver 很适合分类等紧凑输出,但图像重建、语言序列和 optical flow 需要大量结构化 outputs。Perceiver IO 在 latent processor 后加入 decoder cross-attention:每个 output query 从 latents 读取与自己任务、位置或模态相关的信息。

先统一 heterogeneous inputs

不同模态的 raw feature 维度和语义可以不同。视频 token 可能包含 RGB、\((x,y,t)\) 和 modality tag;音频 token 可能包含振幅、时间和 modality tag。通过投影、padding/拼接与位置/模态编码,它们被组成一个 input array,再由同一 latent set cross-attend。

\lecturefigure{slide-16-featurizing-multimodality.jpg}{多模态特征化:内容、位置、时间与 modality tag 组成统一输入数组。}{Stanford Online 当前官方视频 00:33:50--00:40:31。}

概念解释:把数据视为表格

每一行是一个输入元素,每列是内容或元数据特征。行数可随模态和分辨率变化,列数通过投影统一。这个视角适合任意有限数组,但不自动解决缺失值、不同采样率、时间对齐和模态不平衡。

\teachervoice{讲者在结尾 Q&A 直接说:Perceiver 有效地把任何输入当作 tabular data。这里的“表格”是统一数组接口,不等于传统小型 CSV 表格模型,也不意味着类别列、缺失值和因果结构无需专门处理。}

Basic Perceiver 与 Perceiver IO

本节把同一 latent processor 的两种输出接口并排比较。Basic Perceiver 编码大输入、处理 latents,再用平均池化和分类 head 产生一个紧凑输出。它对 ImageNet 分类合适,却无法自然表达“每个像素一个向量”或“每个字节位置一个 token 预测”。

\lecturefigure{slide-17-basic-perceiver-architecture.jpg}{Basic Perceiver:encode scales with input、process independent of input、compact readout。}{Stanford Online 当前官方视频 00:40:32--00:41:33。}

Perceiver IO 添加 output query array \(Y_q\in\mathbb{R}^{O\times d}\),由它查询 processed latents \(Z\)

\[ Y=\operatorname{softmax}\!\left(\frac{(Y_qW_Q)(ZW_K)^\top}{\sqrt{d_k}}\right)(ZW_V). \]

其中,\(O\) 是输出元素数;\(Y_q\) 编码输出位置、任务或模态;\(Z\) 是 latent array。Decoder cross-attention 成本约为 \(\mathcal{O}(ONd)\),所以输入可以很大,但极大输出仍需付出与 \(O\) 线性相关的成本。

\lecturefigure{slide-18-perceiver-io-architecture.jpg}{Perceiver IO:输入 cross-attention、latent processing 与 output-query decoder。}{Stanford Online 当前官方视频 00:41:34--00:41:55。}

Output query 是“问题”,不是空占位符

Query 可以包含坐标、模态、任务 ID 或语义标签。Decoder 回答的是:“对于这个输出位置/任务,从共享 latents 中应读取什么?”同一 latent state 可以被不同 queries 解码成图像像素、类别、文本标签或光流向量。

构造 queries:位置决定输出拓扑

为了把抽象 output query 变成具体任务接口,本节先看图像 autoencoding:它为每个目标像素建立一个带二维位置的 query。模型不需要在 latent workspace 中保留同样数量的 slots;只需在解码时让每个输出位置读取共享 latent。输出顺序可以通过 query coordinates 恢复。

\lecturefigure{slide-19-constructing-output-queries.jpg}{图像 autoencoding 的 output queries:每个像素位置查询共享 latent。}{Stanford Online 当前官方视频 00:42:04--00:42:59。}

任务化 output-query 构造的概念性伪代码。
def build_queries(task, positions, modalities):
    queries = []
    for position, modality in zip(positions, modalities):
        query = concat(
            task_embedding(task),
            modality_embedding(modality),
            fourier_position(position),
        )
        queries.append(query)
    return stack(queries)

多模态 autoencoding 可以为视频、音频、label 等输出分别使用不同 modality/task query。输入和输出的元素数可以不同,某些模态甚至只输出一个类别,另一些输出高分辨率网格。

\lecturefigure{slide-20-multimodal-query-construction.jpg}{多模态输出 query:按 modality、task 和 position 解码不同大小的输出。}{Stanford Online 当前官方视频 00:43:00--00:43:05。}

读图:共享的是 latent,不是所有 decoder head 参数

不同 queries 访问同一 processed latent state,但最后的 projection、loss 和输出通道仍可因任务不同而变化。统一 architecture interface 不要求分类 logits 与 RGB 像素使用完全相同的数值头。

ImageNet refinements:架构通用不代表超参数固定

Perceiver IO 的 ImageNet 表格展示若干训练与模型调整,例如更深网络、clipping、cutmix/mixup 等。它提醒我们:核心 encode/process/decode 接口可复用,但达到强结果仍需要任务训练 recipe,不能把“少领域假设”误读为“无需调参”。

\lecturefigure{slide-21-imagenet-results.jpg}{Perceiver IO 的 ImageNet 配置与结果。}{Stanford Online 当前官方视频 00:43:06--00:43:43。}

架构对照必须匹配训练 recipe

若 Perceiver 使用更长训练、数据增强或不同正则,而 baseline 没有,结果不能只归因于 latent bottleneck。报告应拆分 architecture、optimization、augmentation 与 compute。

本章小结

Perceiver IO 通过 output queries 将紧凑 latent state 解码为任意结构化输出。输入、处理与输出规模被分离,但 decoder 仍随 output count 线性增长,任务特定 query 和训练 recipe 仍是必要设计。

从 Bytes 理解语言:移除 Tokenizer 的代价与收益

前一节说明 output queries 可以产生序列,本节把统一接口应用到语言。常见 Transformer 先用 tokenizer 将字符串切成 subwords;这显著缩短序列,却写入词表、脚本和语言特定规则。Perceiver IO 借助 latent bottleneck,可以处理更长的 raw byte sequence,并尝试弱化 tokenizer 假设。

\lecturefigure{slide-22-language-tokenization.jpg}{语言、Transformer 与 tokenization:同一句话可被切成字符、bytes 或 subwords。}{Stanford Online 当前官方视频 00:43:44--00:45:13。}

什么是 byte-level input

文本先编码为 UTF-8 bytes,每个 byte 值位于 0--255。它对语言和脚本共享固定字母表,避免未知词;代价是一个字符可能占多个 bytes,序列比 subword tokenization 长得多。

为什么移除 tokenizer

本节把 tokenizer 当作一种可选择的语言偏置来审计。Tokenizer 的词表在高资源语言上有效,却可能把罕见语言、拼写、代码、emoji 或新词切得很碎。不同语言可能需要不同 vocabulary,跨语言系统还要处理归一化和预分词差异。Bytes 提供最低层统一符号,使模型自己学习边界。

\lecturefigure{slide-23-why-remove-tokenizers.jpg}{Tokenizer 的语言依赖与 UTF-8 byte 表示。}{Stanford Online 当前官方视频 00:45:14--00:45:37。}

\teachervoice{老师并没有说 tokenizer “错误”,而是强调它是人工加入的 inductive bias。Bytes 更通用,但将结构学习和长序列成本转移给模型;是否值得取决于数据规模、语言覆盖与计算预算。}

Token-free 不等于预处理为零

Unicode normalization、UTF-8 编码、padding、masking 和 byte position 仍是预处理选择。Byte vocabulary 固定只消除了 subword segmentation,不消除文本规范化和数据清洗。

Masked Language Modeling 与 GLUE fine-tuning

训练遵循 BERT 风格 masked language modeling:遮蔽一部分输入 bytes,decoder queries 在对应位置预测目标;之后在 GLUE 任务上增加 sentence/task queries 进行 fine-tuning。对被遮蔽集合 \(\mathcal{M}\),目标可写为:

\[ \mathcal{L}_{\text{MLM}}=-\sum_{t\in\mathcal{M}}\log p_\theta(b_t\mid b_{\setminus\mathcal{M}}). \]

其中,\(b_t\) 是位置 \(t\) 的真实 byte;\(b_{\setminus\mathcal{M}}\) 是未遮蔽上下文;\(p_\theta\) 是模型输出分布;\(\mathcal{M}\) 是 masked positions。

\lecturefigure{slide-24-masked-language-modeling.jpg}{Perceiver IO 的 byte-level masked language modeling。}{Stanford Online 当前官方视频 00:45:38--00:45:53。}

Fine-tuning 时,任务可通过额外 queries 解码 sentence、entailment、grammar 或 paraphrase logits。共享 encoder/latent processor 接受 bytes,输出 interface 随任务变化。

\lecturefigure{slide-25-glue-finetuning.jpg}{从 byte-level MLM 到 GLUE:不同 output queries 解码任务 logits。}{Stanford Online 当前官方视频 00:45:54--00:47:17。}

Latent bottleneck 为 bytes 提供什么

Byte sequence 很长,但 deep self-attention 只在固定 latents 上进行;输入 cross-attention 对 byte 数线性。模型用计算瓶颈换取统一 vocabulary,并把分词边界学习内化。

FLOP-matched 结果与 attention diagnostics

表格比较 BERT、CANINE 与不同深度/参数的 Perceiver IO。在相近 FLOPs 下,byte-level Perceiver IO 可达到有竞争力的 GLUE 分数;增加模型规模继续提升。正确解读应同时看 tokenizer、深度、参数、FLOPs 和训练数据,而非只挑一个分数。

\lecturefigure{slide-26-language-from-bytes-results.jpg}{直接从 bytes 理解语言:tokenized 与 token-free 模型的参数、FLOPs 和 GLUE 对比。}{Stanford Online 当前官方视频 00:47:18--00:47:59。}

读表:FLOPs 匹配仍不等于延迟匹配

长 byte sequence 会改变 memory access、cross-attention kernel 和 batch size。相同理论 FLOPs 在不同硬件上可能有不同 wall-clock;还应比较序列长度、吞吐、峰值内存和语言覆盖。

Attention 可视化显示模型对标点、大小写、词片段和重复 byte pattern 的关注。它说明模型能从低层符号发现结构,但 attention weight 不是因果解释,也不能证明某个 head “理解语法”。

\lecturefigure{slide-27-language-attention-patterns.jpg}{Byte-level Perceiver IO 的语言 attention pattern 诊断。}{Stanford Online 当前官方视频 00:48:00--00:48:43。}

\teachervoice{讲者把这些图作为“模型确实会关注可识别结构”的检查,而非完整 interpretability 结论。对 attention map 应同时做 ablation、counterfactual 和输出敏感性测试。}

Attention visualization 容易被过度叙事

颜色模式可以启发假设,却不能单独说明信息如何影响最终预测。多个 heads、residual 和 MLP 会共同作用;漂亮 pattern 可能与任务贡献很弱。

本章小结

Byte-level Perceiver IO 用长序列与更多结构学习换取跨语言统一 vocabulary。MLM/GLUE 结果证明方案可行,但 tokenizer 的数据效率与部署优势并未被普遍否定,attention map 也只是诊断证据。

Optical Flow:用 Output Queries 解码稠密运动场

语言输出仍是一维序列,optical flow 则要求对每个像素预测二维运动向量,是检验 structured output scaling 的强案例。模型输入两帧图像,输出 dense vector field;训练数据有限且真实标注昂贵,因此 synthetic-to-real transfer 与 inductive bias 尤其关键。

任务与指标

Optical flow \(F(x,y)=(u(x,y),v(x,y))\) 描述像素从第一帧到第二帧的水平与垂直位移。常用 end-point error(EPE)为:

\[ \operatorname{EPE}=\frac{1}{HW}\sum_{x,y}\sqrt{(u-\hat u)^2+(v-\hat v)^2}. \]

其中,\(H,W\) 是图像高宽;\((u,v)\) 是 ground-truth flow;\((\hat u,\hat v)\) 是预测;EPE 越低越好。颜色轮通常用 hue 表示方向、饱和度/亮度表示速度大小。

\lecturefigure{slide-28-optical-flow-definition.jpg}{Optical flow:对相邻帧的每个像素预测二维运动向量。}{Stanford Online 当前官方视频 00:48:44--00:49:15。}

读图:光流颜色不是物体类别

相似颜色表示相似运动方向和速度,而不是语义类别。物体内部颜色一致说明运动场平滑;边界突变可能对应遮挡、深度变化或独立运动。

Transfer protocol:只在 AutoFlow 训练

本节先固定数据协议,再阅读模型排名。讲座强调没有大规模真实 dense flow 数据。模型在 AutoFlow 合成场景训练,再不 fine-tune 地评估 Sintel clean/final 与 KITTI。这样测量的是跨渲染与真实驾驶域的 transfer,而不是在每个 benchmark 上拟合。

\lecturefigure{slide-29-optical-flow-transfer-task.jpg}{Optical-flow transfer:AutoFlow 训练,Sintel/KITTI 零 fine-tuning 评估。}{Stanford Online 当前官方视频 00:49:16--00:50:05。}

不同数据集的 EPE 不能混成一个数

Sintel clean/final 使用不同渲染复杂度,KITTI 来自驾驶场景与稀疏 LiDAR 约束。应分别报告三列,不能把平均值当作统一真实世界质量。

\teachervoice{Q&A 解释了 ground truth:Sintel 是开放 CGI 电影,可由场景状态计算像素对应;KITTI 使用 LiDAR 深度与相机运动估计对应。Dense optical-flow 标注非常昂贵,这也是 synthetic training 必要的原因。}

与 RAFT 对照:弱偏置为什么令人意外

RAFT 显式构造 all-pairs correlation volume,并通过多尺度或局部 gather 迭代更新 flow。它把 optical-flow 匹配结构写进架构。Perceiver IO 则把两帧特征编码进 input array,用 latent bottleneck 处理,再由每像素 output query 解码 flow。

\lecturefigure{slide-30-raft-comparison.jpg}{RAFT 的 correlation volume 与局部迭代更新:强 optical-flow inductive bias。}{Stanford Online 当前官方视频 00:50:06--00:50:31。}

讲者原本预计 Perceiver IO 会因弱偏置而过拟合 synthetic data,或无法学会 correspondence。实际模型“out of the box”获得有竞争力结果,说明大数据和 attention 可以学习部分匹配结构;但这不代表其速度或小数据效率优于 RAFT。

\lecturefigure{slide-31-perceiver-io-optical-flow.jpg}{Perceiver IO optical flow:双帧输入、latent processor 与每像素 flow queries。}{Stanford Online 当前官方视频 00:50:48--00:51:13。}

\teachervoice{这页最重要的是作者的先验被实验修正:他们预期弱 inductive bias 会严重过拟合,却发现模型直接可用。高质量结论应写成“比预期更能迁移”,而不是“领域偏置从此不需要”。}

Optical flow 如何映射到 Perceiver IO

Input rows 编码两帧像素、位置与帧 ID;latents 汇总跨帧全局信息;每个目标像素建立 output query;decoder 输出两个通道 \((\hat u,\hat v)\)。任务变化主要体现在输入 tags、output queries 和 loss。

定量与质性结果

结果表比较 PWCNet、RAFT 与 Perceiver IO 在 Sintel clean/final 和 KITTI 上的 EPE。读表时要先确认所有模型是否只在 AutoFlow 训练,以及是否使用 benchmark fine-tuning;讲座明确说这里不 fine-tune,避免小测试集过拟合。

\lecturefigure{slide-32-optical-flow-results.jpg}{AutoFlow 训练后在 Sintel clean/final 与 KITTI 的 EPE 对比。}{Stanford Online 当前官方视频 00:51:14--00:51:37。}

读表:EPE 越小越好,但平均误差不够

还应检查运动边界、小物体、快速运动、遮挡与纹理缺失区域。两个模型 EPE 接近时,错误分布和稳定性可能完全不同;真实应用还需要 latency 与置信度。

第一组质性图包含人物舞蹈和快速手部/物体运动。彩色 vector field 若在同一运动物体内部连续、在边界处切换,说明模型捕捉到区域运动;高亮空洞或颜色噪声则提示遮挡和细节失败。

\lecturefigure{slide-33-qualitative-optical-flow-animals.jpg}{真实场景 optical-flow 示例一:人物与快速局部运动。}{Stanford Online 当前官方视频 00:51:38--00:51:49。}

第二组展示远处快速运动与局部放大。小目标只占少量 pixels,对 latent bottleneck 是高压测试:全局压缩必须保留弱小但任务关键的 motion evidence,decoder query 才能重建。

\lecturefigure{slide-34-qualitative-optical-flow-skater.jpg}{真实场景 optical-flow 示例二:小目标、远距离与局部放大。}{Stanford Online 当前官方视频 00:51:50--00:52:19。}

质性图不能替代 benchmark

公开视频通常挑选可读案例,且颜色轮会掩盖小数值差异。应结合完整测试集 EPE、failure slices、置信度和视频时间一致性,而不是凭几张漂亮 flow map 下结论。

Very large outputs 与 multimodal autoencoding

Perceiver IO 可以为视频的每帧、每像素、每通道构造 queries,输出数可达数百万。输入先压成少量 latents,再由大量 queries 解码;这等价于用 latent 作为共享压缩表示。输出成本仍为 \(\mathcal{O}(ON)\),因此 decoder query batching 和内存是实际工程问题。

\lecturefigure{slide-35-decoding-very-large-outputs.jpg}{从固定 latent state 解码超大视频输出数组。}{Stanford Online 当前官方视频 00:52:20--00:53:05。}

若重建图像峰值为 \(I_{\max}\)、均方误差为 MSE,PSNR 定义为:

\[ \operatorname{PSNR}=10\log_{10}\left(\frac{I_{\max}^2}{\operatorname{MSE}}\right). \]

其中,PSNR 越高表示像素误差越小;它不完全对应感知质量。表格同时报告 compression ratio、video/audio PSNR 与分类准确率,用于观察 latent 数减少后重建和语义任务如何退化。

\lecturefigure{slide-36-quantitative-autoencoding.jpg}{Multimodal autoencoding 的压缩率、视频/音频 PSNR 与 top-5 accuracy。}{Stanford Online 当前官方视频 00:53:06--00:56:13。}

读表:压缩比是共享瓶颈的压力测试

减少 latents 会提高 compression ratio,但可能降低像素/音频重建;分类准确率可能下降更慢,因为语义任务不需要保留全部细节。这揭示 latent representation 对不同任务的信息需求不同。

本章小结

Optical flow 展示 Perceiver IO 能解码每像素结构化输出,并在 synthetic-to-real transfer 中取得竞争结果。EPE、质性 flow、output-query 成本和 compression tradeoff 必须一起解释,弱偏置的成功不等于强专用模型失去价值。

结论边界:General Fallback,而不是 Universal Winner

前面跨越图像、bytes、multimodal autoencoding 和 optical flow,本节回到正确的适用范围。讲者把 Perceiver 定位为:当我们不知道正确结构、希望快速接入新数据形态或需要共享多模态接口时,一个很强的 general fallback。若结构已知、数据少或 latency 极严,专用偏置仍可能更优。

\lecturefigure{slide-37-general-perception-summary.jpg}{讲座总结:线性输入 scaling、drop-in Transformer interface、多模态与结构化输出。}{Stanford Online 当前官方视频 00:56:14--00:56:21。}

读图:把总结改写成条件句

Perceiver 对 input size 线性,是在 latent count 固定时;可替换 Transformer,是指 attention-based interface,而非所有训练 recipe 不变;多模态统一,是架构层面可共享,而非本讲已完成所有任务联合训练。

\teachervoice{结尾 Q&A 给出最重要的负面边界:团队还不擅长 small-scale data,因为弱偏置需要从数据中恢复结构;真正把多种模态和任务联合训练也仍是未来工作。}

相关工作页把方法放回历史:multimodal learning、efficient attention、tokenization-free language、optical flow、Transformer 与 iterative attention 都贡献了组件。阅读这些来源可以避免把 Perceiver 当作凭空出现的单一技巧。

\lecturefigure{slide-38-references.jpg}{讲座相关工作:multimodal、efficient attention、language、optical flow 与 iterative attention。}{Stanford Online 当前官方视频 00:56:22--00:58:49。}

选择架构的决策顺序

先问输入/输出结构是否已知,再问数据量是否足以学习结构,然后比较 domain-specific baseline、Perceiver 的 latent/output query 配置、真实硬件速度与跨域复用成本。不要从“统一”二字直接跳到替换全部专用模型。

最后一页给出 Perceiver 和 Perceiver IO 两篇核心论文及共同作者。它不仅是致谢页,也是复现入口:架构图说明接口,原论文补齐训练细节、数据、ablation 和任务实现。

\lecturefigure{slide-39-thank-you-and-papers.jpg}{两篇 Perceiver 核心论文、共同作者与讲座结束页。}{Stanford Online 当前官方视频 00:58:50--00:58:55。}

两个最常见的过度结论

第一,“linear scaling”不等于端到端永远线性或更快;第二,“any data as a table”不等于任务结构和数据治理消失。Latent 数、output 数、训练数据、位置编码和硬件 kernel 仍决定可用性。

本章小结

Perceiver 是结构不明确、新模态和统一接口场景的强起点;在已知领域、小数据和严格延迟场景,专用偏置仍占优势。它的研究价值在于把 generality-speed tradeoff 变成可调的 latent/query interface。

总结与延伸

Perceiver 的思想可以压缩成一句话:不要让巨大 raw input 在每层彼此两两注意,而是让少量 learned latents 读取输入、在内部深度计算,再用 task-specific output queries 解码需要的结构。这个重排让 attention 更容易扩展到像素、bytes、音视频与稠密向量场,也把架构设计问题转化为 latent capacity、position/modality features 和 query construction。

  1. 研究动机是系统可扩展性:逐模态 handcraft 无法覆盖所有传感器与科学数据;
  2. Transformer 的通用性来自弱连接假设:non-local attention 与 position-as-feature 易迁移,但 raw self-attention 昂贵;
  3. Latent bottleneck 改写复杂度:输入处理从 \(M^2\) 变为 \(MN\),深层计算主要是 \(N^2\)
  4. 线性 scaling 有条件:latent 数固定、output decoder 可承受,且瓶颈没有丢失任务关键信息;
  5. Perceiver 与 ViT 优化不同目标:ViT 用 image patch prior 换效率,Perceiver 用较弱假设换跨域接口;
  6. 位置没有被删除:Fourier/learned position 仍提供真实结构,只是不硬编码局部连接;
  7. Output queries 定义任务:位置、模态和 task embedding 告诉 decoder 应从共享 latents 读取什么;
  8. Bytes 弱化 tokenizer 假设:统一 vocabulary 的代价是更长序列和更多结构学习;
  9. Optical flow 检验 structured output:每像素 query 解码二维向量,synthetic-to-real transfer 展示弱偏置的潜力;
  10. 质性与定量必须并用:EPE、PSNR、压缩率、吞吐和 failure slices 分别回答不同问题;
  11. Generality 与 speed 是 Pareto tradeoff:已知领域和小数据下,convnet/RAFT 等专用模型仍可能更优;
  12. 未完成方向很明确:small-data learning、hierarchical cross-attention、联合多模态训练与更高效输出解码。

课程作业:构建一个统一输入/输出实验

选择两种结构差异明显的数据,例如图像 patches 与时间序列。固定 latent 数,使用共享 Perceiver processor,但分别设计 position/modality features 和 output queries。比较:专用 baseline、ViT/Transformer、Perceiver、不同 latent 数与去掉位置编码。报告质量、训练数据曲线、wall-clock、峰值内存、输入/输出长度 scaling 和 failure cases。

最终自检:六个不能混为一谈的结论

弱偏置不等于无偏置线性输入复杂度不等于线性端到端成本input permutation robustness不等于空间结构无用byte-level不等于零预处理attention pattern不等于因果解释统一架构接口不等于单一联合模型已训练完成

拓展阅读

建议按“Transformer 基线—Perceiver 输入瓶颈—Perceiver IO 输出接口—领域对照”的顺序阅读:

{

  • Attention Is All You Need:QKV attention 与标准 Transformer 基线。
  • Perceiver:latent bottleneck、iterative attention、ImageNet 与多模态实验。
  • Perceiver IO:output queries、bytes、optical flow 与 structured outputs。
  • Vision Transformer:image patching 与视觉 Transformer 对照。
  • DETRSlot Attention:视觉 cross-attention / learned queries 的重要前身。
  • Fourier Features:高频坐标编码的理论与实验背景。
  • CANINEByT5:tokenization-free / byte-level language 路线。
  • RAFTAutoFlow:optical-flow 架构偏置与 synthetic training 数据。

}