VLA1:思想萌芽期 (2022年以前) - “基础奠定”
1. 《Gato: A Generalist Agent》(DeepMind, 2022)
1. ViT(Vision Transformer) 中图像的序列化

\[z_0 = [x_{class}; x^1_pE; x^2_pE;\cdots; x^N_pE] + E_{pos}, E ∈ R^{(P 2 ·C)×D} , E_{pos} ∈ R^{(N +1)×D}
\]
2. tokenization和embedding
明确区分两个概念:tokenization(将文本转化为整数ID)和embedding(将ID转化为向量)
1. 第一阶段:分词与索引映射(Tokenization -> Index Mapping)
这个阶段就是论文中描述的过程,发生在数据预处理环节,是模型输入之前的步骤。
- 分词: 使用SentencePiece等分词器,将句子“I love cats.” 拆分成一系列的子词(Token),例如
["I", " love", " cats", "."]。 - 映射为整数: 根据一个预设的词汇表,将每个子词转换成一个唯一的整数ID(Index)。这个词汇表就像一本字典。
2. 第二阶段:嵌入查找(Embedding Lookup)
这个阶段是模型前向传播的一部分,是模型开始处理数据的第一步。
-
嵌入矩阵: 模型内部有一个可学习的参数,称为嵌入矩阵。这个矩阵的大小是
(V, D),其中:V是词汇表的大小(在Gato中是32000)。D是嵌入向量的维度(例如512、768、1024等,这是模型的一个超参数)。- 这个矩阵的每一行,就是一个对应于某个特定Token ID的
D维向量。
-
查找与替换: 模型接收到整数序列
[0, 1, 2, 3]后,会进行如下操作:- 对于整数
0,去嵌入矩阵的第0行,取出那个D维向量。 - 对于整数
1,去嵌入矩阵的第1行,取出那个D维向量。 - ...以此类推。
- 于是,整数序列
[0, 1, 2, 3]就被转换成了一个向量序列,其形状为[序列长度, D]。
- 对于整数
这个阶段的目的: 将毫无数学意义的“索引”,转化为富含语义信息的数学对象(向量)。在训练过程中,模型会不断调整嵌入矩阵中的数值,使得:
- 语义相近的词(如“猫”和“狗”),它们的向量在向量空间中的距离也更近。
- 一个词在不同上下文中的不同含义,也能通过其周边词的向量相互作用而体现出来。
流程:
原始文本 -> 分词器 -> 整数ID序列 -> 嵌入层 -> 向量序列 -> Transformer模型主体

浙公网安备 33010602011771号