Transformer 架构主要由编码器(Encoder)和解码器(Decoder)两大部分组成。
编码器可以将自然语言转换成向量文本,其内部参数包含了原始信息以及序列内元素间的相互关系。例如,输入“我喜欢猫”,会将自然语言转换成词嵌入向量,如“我”对应[1,0],“喜欢”对应[0,1],“猫”对应[1,1],然后通过自注意力机制输出一个表示对输入句子理解的向量序列。
解码器基于编码器的输出和之前生成的输出逐步生成目标序列,将向量文本重新转化成自然语言。例如生成中文句子“我喜欢猫”,解码器接收开始符号[0,0],然后逐步根据编码器输出和已生成的词决定生成后续的词。
Transformer 是一种使用注意力机制的编码器解码器模型,其模型架构使得它可以利用多元化的优势,同时处理大量数据,有助于提高机器翻译等应用程序的性能。
此外,Transformer 架构能够并行处理大量数据吞吐,且满足 scaling law,在各个模态和技术栈具有优势,被 OpenAI 广泛使用。使用同样的架构可以复用模型的参数来引导不同技术栈的训练,以及使用一套 infra 框架训练不同的模型。
Transformer模型主要由两大部分组成:编码器(Encoder)和解码器(Decoder)。每个部分都是由多个相同的层堆叠而成,每层包含了多头注意力机制(Multi-head Attention)和位置全连接前馈网络。[heading2]编码器(Encoder)[content]可以理解为将自然语言转换成向量文本,以模型内的既有参数表示。这些参数包含了原始信息,同时也融合了序列内元素间的相互关系。举个例子:输入:“我喜欢猫”将自然语言转换成词嵌入向量:我->[1,0]喜欢->[0,1]猫->[1,1]自注意力机制(这个后面详细讲)输出:编码器输出一个序列的向量,表示对输入句子的理解。[1,0],[0,1],[1,1][heading2]解码器(Decoder)[content]基于编码器的输出和之前生成的输出逐步生成目标序列,也就是把向量文本重新转化成自然语言。同样举例:目标:生成中文句子"我喜欢猫"。初始输入:解码器接收一个开始符号,用[0,0]来表示。第一步生成'我':考虑到编码器的输出和当前已生成的词,解码器决定生成[1,0],这在我们的简化模型中对应"我"。第二步生成'喜欢':现在,解码器考虑编码器的输出[1,0],[0,1],[1,1]和当前已生成的词[1,0]("我"),决定生成[0,1],对应"喜欢"。第三步生成'猫':考虑到之前的所有信息,解码器生成[1,1],对应"猫"。这是一个简单的复现概念,当模型得到匹配度高的参数时,它就会一个词一个词地判断需要输出的语言文本。
你好。我是Sanjana Reddy,是Google高级解决方案实验室的机器学习工程师。生成式AI和所有新的进步,包括即将出现的新顶点AI功能,令人兴奋不已。例如Gen AI Studio、Model Garden、Gen AI API。我们在这个简短的会议中的目标是让您在一些基本概念上打下坚实的基础。[heading2]语言建模的进展[content]语言建模已经发展了多年。过去十年的最新突破包括使用神经网络用于表示文本的方法,例如2013年的Word2Vec和N-grams。2014年,序列到序列模型(例如RNN和LSTM)的开发帮助提高了ML模型在NLP任务上的性能,比如翻译和文本分类。[heading2]注意力机制的兴起[content]2015年,注意力机制和基于它构建的模型令人兴奋,例如Transformers和Bert模型。今天要讲的是Transformer模型。[heading2]Transformer模型的特点[content]Transformer基于2017年发表的一篇名为《Attention Is All You Need》的论文。尽管Transformers之前的所有模型都能够将单词表示为向量,但这些向量并不包含上下文。单词的用法会根据上下文而变化。例如,在注意力机制出现之前,"bank"和"river bank"与"bank robber"中的"bank"可能具有相同的向量表示。[heading2]Transformer的架构[content]Transformer是一种使用注意力机制的编码器解码器模型。它可以利用多元化的优势,也可以同时处理大量数据。由于其模型架构,注意力机制有助于提高机器翻译应用程序的性能。Transformer模型由编码器和解码器组成。编码器对输入序列进行编码并将其传递给解码器,解码器解码相关任务的表示。编码组件是一堆相同数量的编码器。介绍Transformers的研究论文将六个编码器堆叠在一起。六不是一个神奇的数字。它只是一个超参数。编码器在结构上都是相同的,但具有不同的权重。
通用模型还是专用模型能用到更多数据?显然是通用模型。而通用模型也减少了OpenAI的技术栈,因为一个模型能解决更多问题。这也导致之前提到的OpenAI解决各种问题时更倾向于用同一种模型,而不是做非常多不同的定制。可以预见,OpenAI未来可能会继续走通用模型的道路,降低finetuning等特化的需求,继续增加模型的context length。推论4:用一个模型为另一个模型提供标注。由于当前技术限制,OpenAI仍然无法用一个模型完成所有的任务,这样一个的模型收到数据就变少了。然而,我们可以用一个模型给另一个模型提供标注的形式,来间接实现数据供给。OpenAI的Dall E和Sora都用到了大量可能来自于GPT vision的数据标注。这样OpenAI的各个技术栈都可以连通起来。可以预见,OpenAI未来可能会继续加强各个模型的连接,比如将来用Sora反向给GPT vision给数据都是可能的;用一个已有模型去构造更多数据也会是一个重要的方向(比如backtranslation,data distillation等等)。推论5:Transformer架构。我们需要一种能够并行处理大量数据吞吐,且满足scaling law的架构。transformer架构充分证实它在各个模态和技术栈的优势,特别在复杂任务中,因而被OpenAI广泛使用。使用同样一个架构的好处在于可以复用模型的参数(比如tokenizer,embeddings,以及部分权重)来bootstrap不同技术栈的训练,以及可以用一套infra框架训练不同的模型。可以预见,将来新的模型如果要取代传统的transformer架构,还需要通过scaling law的检验。推论6:稀疏模型。