人工智能大语言模型起源篇(一),从哪里开始

news/2024/12/12 9:34:27/文章来源:https://www.cnblogs.com/jellyai/p/18601524

序言:许多人最初接触人工智能都是在ChatGPT火热之际,并且大多停留在应用层面。对于希望了解其技术根源的人来说,往往难以找到方向。因此,我们编写了《人工智能大语言模型起源篇》,旨在帮助读者找到正确的学习路径,了解大型语言模型的大致起源。本文将分为三个部分,介绍当前主流的大型语言模型架构Transformer(变换器)模型的起源及其发展历程。Transformer并非横空出世,而是人工智能领域研究者们在长期探索和实验中逐步发展起来的。

大型语言模型(LLM)早已经征服了当今的人工智能领域——这不是开玩笑。在短短五年多的时间里,大型语言模型——即变换器(Transformers)——几乎彻底改变了自然语言处理领域。而且,它们正在彻底改变计算机视觉和计算生物学等领域。

由于变换器对每个人的研究议程产生了如此大的影响,今天的这篇文章我想为那些刚刚入门的人工智能学习研究者和从业者整理一份简短的渐进式阅读清单。

建议按下面清单的先后顺序来阅读,这些则主要是专注于学术研究论文。当然,市场上还有很多其他有用的资源:

Jay Alammar 的《Illustrated Transformer》http://jalammar.github.io/illustrated-transformer/;

Lilian Weng 的《一篇更技术性的博客文章》https://lilianweng.github.io/posts/2020-04-07-the-transformer-family/;

Xavier Amatriain 汇总并绘制的《所有主要变换器的目录和家谱》https://amatriain.net/blog/transformer-models-an-introduction-and-catalog-2d1e9039f376/;

Andrej Karpathy 为了教育目的提供的《生成语言模型的最简代码实现》https://github.com/karpathy/nanoGPT;

Sebastian Raschka的《讲座》https://sebastianraschka.com/blog/2021/dl-course.html#l19-self-attention-and-transformer-networks和《书籍》https://github.com/rasbt/machine-learning-book/tree/main/ch16。

理解主要架构和任务

如果你是第一次接触变换器 / 大型语言模型,那么最好从头开始。

(1)Bahdanau、Cho 和 Bengio 于2014年发表的《通过联合学习对齐和翻译的神经机器翻译》(Neural Machine Translation by Jointly Learning to Align and Translate),https://arxiv.org/abs/1409.0473

如果你有几分钟的时间,我建议从上述论文开始。它介绍了一种用于递归神经网络(RNN)的注意力机制,以提高长序列建模能力。这使得RNN能够更准确地翻译更长的句子——这也是后来开发原始变换器架构的动机。


图片来源:https://arxiv.org/abs/1409.0473

(2)Vaswani、Shazeer、Parmar、Uszkoreit、Jones、Gomez、Kaiser 和 Polosukhin 于2017年发表的《Attention Is All You Need》,https://arxiv.org/abs/1706.03762

上面的论文介绍了原始的变换器架构,包括一个编码器和一个解码器部分,这两个部分后来会作为独立的模块变得非常重要。此外,这篇论文还介绍了一些概念,比如缩放点积注意力机制、多头注意力模块和位置输入编码,这些都成为了现代变换器的基础。


图片来源:https://arxiv.org/abs/1706.03762

(3)Xiong、Yang、He、K Zheng、S Zheng、Xing、Zhang、Lan、Wang 和 Liu 于2020年发表的《On Layer Normalization in the Transformer Architecture》,https://arxiv.org/abs/2002.04745

虽然上面这张来自《Attention Is All You Need》(https://arxiv.org/abs/1706.03762)的原始变换器图是对原始编码器-解码器架构的有用总结,但图中层归一化(LayerNorm)的位置一直是一个备受争议的话题。

举个例子,《Attention Is All You Need》中的变换器图将层归一化放在残差块之间,这与原始变换器论文中附带的官方https://github.com/tensorflow/tensor2tensor/commit/f5c9b17e617ea9179b7d84d36b1e8162cb369f25(更新版)代码实现不一致。图中所示的变体被称为Post-LN变换器,而更新的代码实现默认使用的是Pre-LN变体。

《On Layer Normalization in the Transformer Architecture》https://arxiv.org/abs/2002.04745这篇论文指出,Pre-LN效果更好,能解决梯度问题,如下所示。许多架构在实践中采用了这一方法,但它可能会导致表示崩塌。

所以,虽然目前关于使用Post-LN还是Pre-LN的讨论仍在继续,但也有一篇新论文提出了利用两者优势的方案:ResiDual:带有双残差连接的变换器(https://arxiv.org/abs/2304.14802);它是否在实践中有用,仍有待观察。


图片来源: https://arxiv.org/abs/1706.03762(左和中)以及 https://arxiv.org/abs/2002.04745(右)

(4)Schmidhuber 于1991年发表的《Learning to Control Fast-Weight Memories: An Alternative to Dynamic Recurrent Neural Networks》,https://www.semanticscholar.org/paper/Learning-to-Control-Fast-Weight-Memories%3A-An-to-Schmidhuber/bc22e87a26d020215afe91c751e5bdaddd8e4922

这篇论文推荐给那些对历史细节以及与现代变换器(Transformers)原理上有相似性的早期方法感兴趣的人。

例如,在1991年,也就是大约在上述原始变换器论文(《Attention Is All You Need》)发布的二十五年半之前,Juergen Schmidhuber 提出了一个递归神经网络的替代方案,称为快速权重编程(Fast Weight Programmers,FWP)。FWP方法涉及一个前馈神经网络,通过梯度下降慢慢学习来编程另一个神经网络的快速权重变化。

这个与现代变换器的类比在这篇博客文章https://people.idsia.ch//~juergen/fast-weight-programmer-1991-transformer.html#sec2中是这样解释的:

在今天的变换器术语中,FROM 和 TO 分别被称为键(key)和值(value)。应用于快速网络的输入被称为查询(query)。本质上,查询通过快速权重矩阵处理,后者是键和值外积的和(忽略归一化和投影)。由于两个网络的所有操作都是可微的,我们通过加法外积或二阶张量积获得了快速权重变化的端到端可微的主动控制。[FWP0-3a] 因此,慢网络可以通过梯度下降学习在序列处理过程中快速修改快网络。这在数学上等价(除了归一化)于后来被称为具有线性自注意力的变换器(或线性变换器)。

正如上面博客摘录所提到的,这种方法现在被称为“线性变换器”或“具有线性化自注意力的变换器”,通过2020年在arXiv上发布的几篇论文《Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention》https://arxiv.org/abs/2006.16236和《Rethinking Attention with Performers》https://arxiv.org/abs/2009.14794进一步阐明了这一点。

2021年,论文《Linear Transformers Are Secretly Fast Weight Programmers》则明确展示了线性化自注意力和1990年代的快速权重编程之间的等价性。”


来源:基于https://people.idsia.ch//~juergen/fast-weight-programmer-1991-transformer.html#sec2的注释图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/851227.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

火焰监测识别摄像机

火焰识别摄像机是一种可以监测环境中火焰的摄像设备,具有广泛的应用场景,包括但不限于工业厂区、商业建筑、森林防火等领域。这种摄像机可以通过对火焰的热辐射进行识别和分析,及时发现火源并采取相应措施,可以有效减少火灾带来的损失,提高安全性和管理效率。火焰识别摄像…

【最优化方法】第六次要点整理

目录拟牛顿法的思想拟牛顿法的条件拟牛顿法的步骤校正矩阵的确定SR1 校正(对称秩 1 校正)DFP 校正BFGS 算法 拟牛顿法的思想 牛顿法的迭代方程为: \[d_k = - (\nabla^2 f(x_k))^{-1} \nabla f(x_k) \]牛顿法的优缺点:优点:局部二阶收敛,速度快。 缺点:每步都要计算 Hess…

抽烟监测识别摄像机

抽烟识别摄像机是一种利用计算机视觉和人工智能技术的设备,能够实时监测和识别吸烟行为。该摄像机通过分析人体姿态和动作,识别出可能的吸烟行为,并及时发出警告或报警。这种摄像机可以广泛应用于公共场所、办公场所、学校和医疗机构等地方,帮助管理者有效监控吸烟行为,及…

OpenAPI 与 国产 Solon 框架支持,Fast Request 2024.1.9 发布

Fast Request是一个类似于 Postman 的 IDEA 插件。它是一个强大的 restful api 工具包插件,可以根据已有的方法帮助您快速、自动生成 url 和 params。 Restful Fast Request = API 调试工具 + API 管理工具 + API 搜索工具。 它有一个漂亮的界面来完成请求、检查服务器响应、存…

EtherNet/IP 转 Modbus 网关作用下 AB PLC 控制变频器的案例呈现

在工业自动化控制系统中,常常会遇到不同品牌和通信协议的设备需要协同工作的情况。本案例中,客户现场采用了 AB PLC,但需要控制的变频器仅支持 Modbus 协议。为了实现 AB PLC 对变频器的有效控制与监控,引入了捷米特 JM-EIP-RTU 网关来完成 EtherNet/IP 与 Modbus 之间的协…

Qt编写RK3588视频播放器/支持RKMPP硬解/支持各种视音频文件和视频流/海康大华视频监控

一、前言 用ffmpeg做硬解码开发,参考自带的示例hw_decode.c即可,里面提供了通用的dxva2/d3d11va/vaapi这种系统层面封装的硬解码,也就是无需区分用的何种显卡,操作系统自动调度,基本上满足了各种场景的需要,这种方式很通用也便捷,但是一些特殊场景必须要用指定硬解码器名…

apisix~转发到某个静态页

路由转发(也称为请求转发或反向代理)是一个核心功能,它允许将客户端的请求转发到后端服务器。Nginx 广泛用于处理高并发的请求,并能够有效地分配流量和管理负载。以下是关于 Nginx 路由转发的一些基本理论和概念。 反向代理 通常作为反向代理服务器工作,接收来自客户端的请…

网络隔离不再是障碍:Ftrans跨网软件让数据流动更自由安全!

企业研发数据对企业而言具有至关重要的意义,特别是以研发为核心业务及定位的企业,如半导体 IC 设计、生物制药、科研单位等,研发数据就是其最核心的数据资产,研发成果就是其生命力的根本。 企业为保护网络安全和数据安全,使用网络隔离手段进行网络隔离,比如银行内部将网…

Ftrans国产FTP工具,让文件传输更快捷、更安全!

多个行业都存在国产FTP工具的替代需求,这主要源于对传统FTP工具在安全性、效率、管理便捷性等方面的不足的认识,以及对更高效、更安全、更易于管理的文件传输解决方案的追求。 传统FTP在安全性、效率、管理便捷性等方面的局限性: 1.安全性差:明文传输,漏洞频发,容易遭到…

macOS Sequoia 15.2 发布下载,带来 Apple 智能重大更新

macOS Sequoia 15.2 (24C101) 正式版 ISO、IPSW、PKG 下载macOS Sequoia 15.2 (24C101) 正式版 ISO、IPSW、PKG 下载 iPhone 镜像、Safari 浏览器重大更新和 Apple Intelligence 等众多全新功能令 Mac 使用体验再升级 请访问原文链接:https://sysin.org/blog/macOS-Sequoia/ 查…

MaxKB-MaxKB修改登录界面LOGO和隐藏用户“关于”选项

一、删除右上角图标MaxKB\MaxKB-main\ui\src\layout\components\top-bar\index.vue删除用户“关于”选项 MaxKB\ui\src\layout\components\top-bar\avatar\index.vue修改登录界面LOGO MaxKB\MaxKB-main\ui\src\assets\login.jpg MaxKB\MaxKB-main\ui\src\assets\ MaxKB-logo.sv…

Spring框架IoC核心详解

介绍 IoC(Inversion of Control:控制反转) 是一种设计思想,而不是一个具体的技术实现。IoC 的思想就是将原本在程序中手动创建对象的控制权,交由 Spring 框架来管理,由Spring容器管理bean的整个生命周期。通俗来说就是IoC是设计思想,DI是实现方式。 通过反射实现对其他对…