查看原文
其他

大语言模型LLMs技术精粹,稀疏变换器网络全解析:变则通,通则久——且看AI江湖基石

走向未来 走向未来 2023-08-31

本文是《迈向AGI:从效率革命到思维革命》系列文章中的一篇,此系列已发布的文章包括:

  1. 武林至尊,ChatGPT;Bard 不出,谁与争锋?且看人工智能江湖的倚天屠龙记

  2. ChatGPT所到之处硝烟弥漫,一文看遍各行业对ChatGPT的专业评估——且看AI江湖谁是屠龙刀下冤魂?

  3. ChatGPT是如何铸就的?且看屠龙刀ChatGPT现身AI江湖的故事

  4. 大语言模型LLMs技术精粹总纲:重剑无锋,大巧不工——且看AI江湖刀剑争锋的源流

  5. 大语言模型LLMs技术精粹,Transformer模型架构全解析:三生万物——且看AI江湖基石


对 通用人工智能 AGI、ChatGPT、Google Bard、文心等有兴趣的,欢迎关注:


1. 迈向AGI的观察  

Meta 发布650亿参数的大语言模型 LLaMA及相应的论文《LLaMA: Open and Efficient Foundation Language Models》。同时开放模型,允许非商用情况下使用或研究这个模型。这对于大量科研机构来说,可谓久旱逢甘霖,是个极大的好消息。相关信息可参阅参考文献[1]
提示工程师(prompt engineer)在国外外兴起,其工作方式像“AI心理学家”,通过研究类似 ChatGPT 、Stable Diffusion 等模型的特点,更好地控制模型的输出,来达到业务需求的预期。对提示工程师的工作感兴趣的,可以阅读“提示工程指南(Prompt Engineering Guide)”这个仓库[2],其内容非常丰富。
上周,著名科幻杂志Clarkesworld宣布暂停投稿,原因是大量人工智能生成的作品[3]。如何应对 AIGC是一个值得严肃探讨的问题。此外,在2月26日临港举办的“世界人工智能开发者先锋大会”的圆桌论坛上,我抛出了一个问题“人工智能真的没有创造性么?或者说,创造性怎么定义呢?”。
         

图1 著名科幻杂志Clarkesworld宣布暂停投稿

2. 稀疏变换器网络  

变换器网络效果非常好,在许多任务中都表现出色,进而开始攻城略地,很快就成了主流的神经网络。但其也不是没有缺点的,比如:
  • 效率问题,其时间和空间复杂度都是,如图2所示,在当前算力的限制下,限制了网络层数;
  • 长序列问题,当序列比较长时,会导致注意力分散,进而降低了效果;

图2 变换器网络的时间和空间复杂度

对变换器网络的进一步研究和优化,进而有了稀疏变换器(Sparse Transformer)这个原始的变换器网络的改进版本。相对应的,原始的变换器网络也被称为稠密变换器(Dense Transformer)。顺带说一下, 变换器网络的改进版本非常之多,都是致力于在不同的细节上进行优化。图3是一个汇总,稀疏变换器网络的位置也被标了出来。本文仅介绍了被 GPT-3所使用的稀疏变换器网络,稀疏变换器网络的其他变种,以及更多其他的变换器网络的改进版本,可参阅原始论文。图3有每一种变换器网络的出处文献。

图3 变换器网络的梳理与分类[4]

         

3. 稀疏注意力机制  

稀疏变换器网络的主要思想是通过在每层上有选择地关注仅输入序列的一小部分词元来提高效率和可伸缩性。这通过引入稀疏注意机制来实现的,使得网络在计算过程中,仅根据与当前任务相关性关注一小部分词元。这种有选择的稀疏注意力机制能够降低一次性关注所有输入序列的词元的计算成本,减少内存的使用,使其更加高效和可扩展到更长的序列。下图是 GPT-2的一个例子,这是一个自回归语言模型,其输入序列是“《知识图谱:认知智能理论与实战》详细解析数十个知识图谱前沿算法”,可以看出“谱”字跟此前的所有字的注意力都需要计算,但实际上有许多字的注意力很微弱,甚至为0。另一方面对所有字都计算注意力,也会导致“注意力分散”的问题,使得因注意力不集中会导致部分重要信息提取的失败。同样是这个序列,会发现每一层的每一头都关注了最开始的“《”。从大量的分析都可看出,许多词元都会特别关注序列输入的开头第一个字,以及许多无意义的标点符号等。“集中注意力”则能够使得重点和关键的信息不会被“冲散”。

4 自注意力的可视化,输入文本序列为“《知识图谱:认知智能理论与实战》详细解析数十个知识图谱前沿算法”

         
关于集中注意力的分析,稀疏变换器网络的原始论文[5]也给出了图像的例子,见图5和图6。在128 层 CIFAR-10 网络中的示例分析中,多个层学习出了注意力模式(白色突出显示),并且不同的层所学习出的注意力模式各不相同:
  • 有些层会了在维度上分离注意力(对于图像是两个维度——行和列),即每个像素只关注其中一部分,其余部分的注意力几乎为0。比如第19层关注当前行,而第20层则关注当前列。如图5。
  • 有些层则学习出了固定模式,跟输入值无关,如图6左边的第6层。
  • 有些层则学习出了高度依赖输入的注意力模式,如图6右边的第36层。

图5  第19层的注意力主要关注当前行的像素,第20层的注意力则只关注了当前列的像素

         

图6 第6层的注意力中,对任何输入像素都关注了相同的内容,即学习出了固定的模式;第36层的注意力则依赖于输入而关注了非常不同的点,即注意力高度依赖输入的像素

         
稀疏注意力就是在上述的分析上提出来的,并能够减少计算和内存的使用,进而能够使得变换器网络能够堆叠更多的层。另外,稀疏注意力也能过使得输入的序列更长,这在图像或文本生成中至关重要,比如 GPT-3就因此展现了其强大的能力。
在稀疏注意力机制中,每个输出位置仅计算输入位置子集的权重。当子集相对于整个输入集较小时(例如,k个元素代替 N个元素),即使对于非常长的序列,由此产生的注意力计算也变得易于处理,算法复杂度为O( 缩减到O(
下面介绍的稀疏注意力机制是 GPT-3中所使用的“locally banded sparse attention patterns in the layers of the transformer”,即每个词元的注意力仅最多关注此前的k 个词元(包括当前词元)。不过至今未找到 GPT-3所使用的 k 值。在GPT-Neo中使用了256。相比于自回归语言模型的掩码(如图7所示),稀疏注意力的掩码(如图8所示)也相当简单。相比较图7和图8,非常容易知道其中的差别。

图7稠密变换器网络的自回归语言模型的掩码示例

         

图8 GPT-3所使用的稀疏变换器网络的自回归语言模型的掩码示例

         

4. 稀疏注意力的代码实现  

         
原始的变换器网络中,其注意力的计算如图9所示。
         

图9  变换器网络解码器的多头注意力机制中的注意力计算方法

在稀疏注意力计算中,只要将上图Mask 框的掩码生成的部分,由图7的掩码改为图8的掩码模式即可。
进而,代码 实现也非常简单,将《大语言模型LLMs技术精粹,Transformer模型架构全解析:三生万物——且看AI江湖基石》Transformer 类的掩码生成的部分,改成如下函数即可:

def get_tgt_mask(self, tgt, raidus=4): tgt_pad_mask = (tgt != 0).unsqueeze(1).unsqueeze(2) tgt_length = tgt.shape[1] tgt_sub_mask = torch.tril(torch.ones((tgt_length, tgt_length), dtype=torch.int64)) if raidus is not None: tgt_sub_mask -= torch.tril(torch.ones((tgt_length, tgt_length), dtype=torch.int64), -raidus) tgt_sub_mask = tgt_sub_mask.bool() tgt_mask = tgt_pad_mask & tgt_sub_mask.to(tgt.device) return tgt_mask.to(torch.bool)
         

5. 稀疏变换器网络的总结

在变换器网络中,每个输出元素都连接到每个输入元素,并且它们之间的权重是根据情况动态计算的,这个过程称为注意力。稠密注意力存在计算复杂度高,注意力分散的问题。对此问题的优化,产生了稀疏注意力机制,以及相应的稀疏变换器网络。总结其优点如下:
  1. 提升效率:稀疏变换器网络比原始的变换器网络更加高效。这是由于对输入序列的每个词元来说,仅有选择地关注被设定的一小部分的词元,这降低了计算成本,这对大模型来说很重要,一方面降低了对算力的需求,更重要的是能够减少训练时间,进而在模型优化上更有优势。
  2. 更强的可伸缩性:稀疏变换器网络的稀疏注意机制使其能够更有效地处理比原始变换器网络更长的序列。一方面由于原始变换器网络是O(的复杂度,可能会在处理更长序列时遇到问题。上文介绍的稀疏变换器网络的复杂度是O(,设定合理的 k 值,能够将网络扩展到更长的输入序列。这点对于文本序列来说至关重要,也是 ChatGPT 能够处理非常长的上下文并保持逻辑一致的核心因素
  3. 效果的提升:稀疏变换器网络已被证明在各种自然语言处理任务上取得了最先进的性能。前面提到的输入序列过长会导致注意力分散,而设置合理的k 值能够改善文本语义的理解。在 GPT-3上这个参数未公开,但据估计,这个参数对最终效果的影响也挺大的。
  4. 增强灵活性:稀疏变换器网络有很多种,针对不同的场景,可以使用不同的稀疏变换器网络,进而使其能够更有效地适应不同类型的输入结构,例如稀疏、分层、时间等数据,这比原始变换器网络更灵活。
         

6. 以人为本 AGI  

         
“以人为本AGI” 就是以人类为中心的通用人工智能,也就是说人工智能是以服务人类为目的的,有名的“机器人三定律”说的也是这个。这个定义在前面几篇文章中重复了好几次了,最近又将其简化为“人本AGI” 或“人本智能体”。值得欣慰的是,这个定义与最近(2月24日) OpenAI在其官网发布的《Planning for AGI and beyond》[6]中的精神极为一致,比如“吾辈欲以人工智能为使,推动人类极致繁荣于宇宙之中(We want AGI to empower humanity to maximally flourish in the universe)”等。进而,“人本AGI”的公式为:
神经网络大模型 ⊕ 知识图谱 ⊕ 强化学习=人本AGI
其中,⊕表示了某种组合/融合的方法,并且:
  1. 神经网络大模型:连接主义发展至今的代表性成果,随着 AGI 的发展,大语言模型未必会是最终形态,比如多模态跨模态的神经网络大模型;对这个有兴趣的,建议学习花书《深度学习》深入了解其技术原理[7]。
  2. 知识图谱 :符号主义发展至今的代表性成果,随着 AGI 的发展,知识图谱本身也需要不断发展,目前这种知识图谱未必是最终形态,比如拥有更强表达能力、知识计算的计算、推理和规划能力的知识图谱;对知识图谱有兴趣的,建议学习珠峰书《知识图谱:认知智能理论与实战》深入了解知识图谱的构建、存储、规划和推理等技术原理[8]。
  3. 强化学习:行为主义发展至今的代表性成果,随着 AGI 的发展,强化学习本身也会不断发展,PPO 未必是最佳的形式。对强化学习有兴趣的,建议学习《强化学习(第2版)》深入了解强化学习的技术原理[9]。
人工智能发展至今,已经出现了能够将神经网络大模型、知识图谱 、强化学习三者融合的系统(产品),而这已经隐隐散发出一点 AGI 的曙光,或称之为婴儿期的AGI,或称之为 AGI 的幼芽。未来,通用人工智能的进一步发展,必将使得曙光上升为朝阳,婴儿茁壮成长成青壮年,幼芽长成参天大树。那时,人本 AGI不仅仅为人来带来效率革命,或将为人类来带来思维革命。这种变革可能从改造自然到改造自身,其影响深远程度可能远超此前所有三次工业革命的总和。也许,我们的后辈的形态,也是我们现在所无法想象的。         

7. 观点  

看到这里的一定是真爱,在此发一个非常非常非常有价值的观点,经济效益超过千亿的观点:
2月26日在“全球人工智能开发者先锋大会”上和智源人工智能研究院总工程师林咏华老师的交流中,林咏华老师提到曾经高大上、颇有难度和壁垒的“咨询”工作,也可能很快就被 AGI 所代替,这点对我很有启发。
经常用 ChatGPT 的可以知道,ChatGPT 对宏观框架的回复相当的好。通过合理的“提示工程”和持续多轮的迭代,能够从AGI(未来的 AGI 会远强大于现在的 ChatGPT)中获取足够好的咨询方案,再结合企业资深的数据,以及从市场上了解到的其他数据做支撑,企业内部的管理人员所能够设计的方案可能要远超咨询公司能够给到的(图10是一个非常粗浅的例子)。这种知识框架和方案的积累,原本是咨询公司的核心优势,但现在,大模型所具备的知识远超咨询公司,这对未来咨询公司所提供的服务是一个巨大的挑战。

图10 通过多轮迭代实现咨询方案的设计示例

         

8. 参考文献  

[1] Introducing LLaMA: A foundational, 65-billion-parameter large language model. Facebook.com. https://ai.facebook.com/blog/large-language-model-llama-meta-ai/. 2023
[2]Prompt Engineering Guide. Github. https://github.com/dair-ai/Prompt-Engineering-Guide. 2023.
[3] AI-generated fiction is flooding literary magazines — but not fooling anyone. The Everge. https://www.theverge.com/2023/2/25/23613752/ai-generated-short-stories-literary-magazines-clarkesworld-science-fiction. 2023.
[4]Yi Tay, Mostafa Dehghani, Dara Bahri, Donald Metzler. Efficient Transformers: A Survey. arXiv:2009.06732. 2022.
[5]Rewon Child, Scott Gray, Alec Radford, Ilya Sutskever. Generating Long Sequences with Sparse Transformers. arXiv:1904.10509. 2019.
[6]Planning for AGI and beyond. OpenAI. https://openai.com/blog/planning-for-agi-and-beyond/. 2023.
[7]Ian Goodfellow、Yoshua Bengio and Aaron Courville. 深度学习[M] //人民邮电出版社. 2017.
[8]王文广. 知识图谱:认知智能理论与实战[M] //电子工业出版社. 2022.
[9]RichardS.Sutton, AndrewG.Barto. 强化学习(第2版)[M] //电子工业出版社. 2019.
[10]          
         
进一步阅读

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存