Perceiver AR 是对像 GPT - 2 这样的纯仅解码器 Transformer 的简单扩展。两者的核心构建块都是 解码器层,它由一个自注意力层和一个逐位置的多层感知机(MLP)组成。自注意力使用因果注意力掩码。
Perceiver AR 在其第一个注意力层中还会对输入序列的较长前缀进行交叉注意力操作。这一层是一个混合的自注意力和交叉注意力层。自注意力作用于输入序列的最后 n 个位置,并使用因果注意力掩码;交叉注意力从最后 n 个位置指向前 m 个位置。输入序列的长度为 m + n。这使得 Perceiver AR 能够处理比仅基于自注意力的解码器 Transformer 大得多的上下文。
图 1. Perceiver AR 中 m = 8 个前缀标记和 n = 3 个潜在标记的注意力机制。
混合注意力层的输出是与输入序列的最后 n 个标记相对应的 n 个潜在数组。这些数组会被一个由 L - 1 个解码器层组成的栈进一步处理,其中注意力层的总数为 L。最后一层(图 1 中未显示)会为每个潜在位置预测目标标记。最后一层的权重与输入嵌入层共享。除了对前缀序列的初始交叉注意力之外,Perceiver AR 在架构上与仅解码器的 Transformer 相同。
krasserm/perceiver - ar - sam - giant - midi 模型是从训练检查点创建的,代码如下:
from perceiver.model.audio.symbolic import convert_checkpoint
convert_checkpoint(
save_dir="krasserm/perceiver-ar-sam-giant-midi",
ckpt_url="https://martin-krasser.com/perceiver/logs-0.8.0/sam/version_1/checkpoints/epoch=027-val_loss=1.944.ckpt",
push_to_hub=True,
)
📄 许可证
本项目采用 Apache - 2.0 许可证。
📚 引用
@inproceedings{hawthorne2022general,
title={General-purpose, long-context autoregressive modeling with perceiver ar},
author={Hawthorne, Curtis and Jaegle, Andrew and Cangea, C{\u{a}}t{\u{a}}lina and Borgeaud, Sebastian and Nash, Charlie and Malinowski, Mateusz and Dieleman, Sander and Vinyals, Oriol and Botvinick, Matthew and Simon, Ian and others},
booktitle={International Conference on Machine Learning},
pages={8535--8558},
year={2022},
organization={PMLR}
}