图解OpenAI的秘密武器GPT-2:可视化Transformer语言模型

ChatGPT 的结构:Encoder-Decoder ChatGPT 模型基于 encoder-decoder 模型架构进行建模。ChatGPT 模型采用核搜索、温控搜索结合的方式生成输出结果,并基于 temperature 调节生成结果的随机性,值越大,随机性越强,值越小,生成的内容越固定。ChatGPT 主要采用Mask 掩码的方式,屏蔽掉不参与注意力计算的 token 位置。 阅读详情

大数据文摘出品

来源:github

编译:小七、池俊辉、Andy


今年,我们见识了许多令人眼花缭乱的机器学习的应用成果。其中OpenAI训练的GPT-2模型就展示出了惊艳的能力,它能够撰写出连贯而富有激情的论文,比当下其他所有的语言模型写的都好。


GPT-2其实并不是一种特别新颖的架构,它的架构非常类似于Transformer模型的Decoder结构。然而,GPT2是一个非常大的基于Transformer的语言模型,需要基于大量数据集进行训练。在这篇文章中,我们将介绍什么样的结构能够让模型产生好的结果,深入研究模型中的self-attention层,此外,我们将研究除语言建模之外的Transformer模型Decoder结构的应用。


我写本文主要是为了补充我之前的“图解Transformer模型”系列。


系列链接:

https://jalammar.github.io/illustrated-transformer/


通过图解的方式更直观地解释Transformer模型的内部工作原理,以及它们自发布以来的演变过程。我希望通过这种图形示例能够更容易地解释后来基于Transformer的模型,毕竟它们的内部工作原理是在不断发展的。


本文主要从以下几方面展开阐述


第一部分:GPT2和语言建模

语言模型的含义

用于语言建模的Transformers模型

与BERT的区别

Transformer 架构的演变

速成课程:探索GPT-2内部工作原理

深入了解内幕

GPT-2小结


第二部分:图解Self-Attention(自我关注)模型

自注意力(Self-Attention,不加mask)

  1. 创建查询向量、键向量和值向量

  2. 打分

  3. 求和

图解Masked Self-Attention

GPT-2的Masked Self-Attention

你做到了!


第三部分:语言建模番外

机器翻译

生成摘要

迁移学习

音乐生成


结论


第一部分 GPT2和语言模型


那么究竟什么是语言模型呢?


语言模型的含义


在The Illustrated Word2vec中,我们研究了语言模型是什么,它是能根据一个句子前半部分的单词预测出下一个单词的机器学习模型。最著名的语言模型是智能手机键盘,可以根据您当前键入的内容建议出下一个单词。


The Illustrated Word2vec:

https://jalammar.github.io/illustrated-word2vec/



从这个意义上讲,我们可以说GPT-2基本上是键盘应用程序的下一个单词预测功能,但它比你手机上的键盘输入法具有更大更复杂的功能。GPT-2是基于一个名为WebText大型数据集进行的训练,这个数据集大约有40G,是OpenAI研究人员为了研究从互联网上爬下来的。就存储大小来说,我使用的键盘应用程序SwiftKey占用了78MB的空间。训练出来的GPT-2的最小变体,占用500MB的存储空间来存储其所有参数。GPT-2的最大变体是最小变体的13倍,因此它可能需要占用超过6.5 GB的存储空间。



使用AllenAI GPT-2 Explorer来进行GPT-2建模是一个很好的方法,它使用GPT-2显示10个对下一个单词的预测结果,以及它们的概率分数。您可以选择其中一个单词,然后再查看下一个预测列表,循序渐进,持续不断地写下去。


用于语言建模的Transformers模型


正如我们在“图解Transformer模型”中看到的那样,原始的 transformer模型由encoder和decoder组成,每个都是我们称之为 transformer 架构的堆栈。这种架构是合理的,因为该模型解决了机器翻译问题——过去encoder-decoder结构解决的问题。



在随后的许多研究工作中,这种架构要么去掉了encoder,要么去掉了decoder,只使用其中一种transformer堆栈,并尽可能高地堆叠它们,为它们提供大量的训练文本,并投入大量的计算机设备,以训练其中一部分语言模型,这一研究需要花费数十万美元,就像在研究AlphaStar时也投入了数百万美元的资金。



那么我们可以将这些块堆叠多高呢?事实证明,堆叠的高度是不同的GPT2模型之间大小有别的主要影响因素之一。



与BERT的区别


GPT-2是基于 transformer模型的decoder架构构建的。而BERT则是基于 transformer模型的encoder结构构建的。我们将在以下部分中研究两者的差异。两者之间的一个关键区别是,GPT2与传统语言模型一样,一次输出一个token。接下来让我们来举例说明,经过训练的GPT-2是如何背诵机器人第一定律(First Law of Robotics)的。



这些模型实际工作的方式是在生成每个token之后,添加到输入序列中,而新序列将成为下一步模型的输入。这就是“自回归(auto-regression)”的思想。但这种想法也使得RNN的效率大打折扣。



GPT2以及一些后来的模型如TransformerXL和XLNet本质上都是自回归的。而BERT不是,它是一种权衡。在失去自回归的过程中,BERT可以获得两边的单词,以结合上下文去获得更好的结果。而XLNet既使用了自回归,同时也找到了根据两边单词融合上下文的替代方法。


Transformer架构的演变


一个是encoder结构,如下图所示:



来自原始 transformer论文的encoder模块可以输入直到某个最大序列长度(例如512个token)。如果输入序列短于此限制,我们可以填充序列的其余部分。


另一个是decoder结构,这个结构与encoder具有较小的体系结构差异——多了一层用于关注encoder中的特定片段:



self-attention层的一个关键区别在于它隐藏了未来的tokens,而不是像BERT那样,将单词更改为[mask(掩码)],而是通过干扰阻止了从正在计算的位置右侧的tokens中得到的信息进入到self-attention层计算。


例如,如果我们要强调位置#4的路径,我们可以看到它只允许参与当前和之前的tokens:



重要的是,BERT使用的self-attention和GPT-2使用的masked self-at

用Docker-Compose三节点部署生产级Doris集群:从配置文件到故障转移 本文详细介绍了如何使用Docker-Compose部署一个生产级的三节点Apache Doris集群。内容涵盖从核心架构理解、配置文件编写到集群初始化验证的全过程,并重点讲解了如何实现高可用、数据持久化、健康检查以及故障转移等生产级运维关键点,为中小团队提供了一种在容器化便利性与系统稳定性间取得平衡的可靠部署方案。 阅读详情

相关推荐

从手机到自动驾驶:MIPI-CSI2协议演进史与车规级改造要点

本文追溯了MIPI-CSI2协议从智能手机摄像头到自动驾驶核心传感器的演进历程。重点剖析了该协议在车规级改造中面临的严苛挑战,包括物理层稳定性、EMC防护、功能安全与数据可靠性等关键要点,并探讨了其在多传感器融合与高带宽实时传输中的工程实践。

weixin_28318011的博客 307

ArcGIS属性表汉字转拼音

接着我安装了一个编辑器“PyCharm Community Edition 2019.3.3\bin\pycharm64.exe”,在里面添加“pypinyin”包,然后将其设置为arcgis的编辑器和调试程序,还是失败;我在10.6的机器上折腾了上面几步,直到两周后脚本突然运行成功,我也不确定是哪一步导致pypinyin包配置成功,因此将心得体会写出来,如果过一段时间,打开10.2的机器运行脚本成功了,再写后续.......,按照“配置方法1:”进行尝试,显示配置失败。

2301_77413856的博客 1295

SPSS篇—卡方检验

今天依旧跟大家分享一个在SPSS中使用率比较高的分析方法:卡方检验。 在开始做分析之前,我们需要明白两件事情:卡方检验是什么?一般用来干什么?我们只有充分了解分析方法以后才能够正确的使用它。 卡方检验在百科中的解释是:卡方检验是用途非常广的一种假设检验方法,它在分类资料统计推断中的应用,包括:两个率或两个构成比比较的卡方检验;多个率或多个构成比比较的卡方检验以及分类资料的相关分析等。它的原理是...

小白数据营的博客 20万+

深入解析DMR协议中的4-CPFSK调制技术与实现

本文深入解析了DMR协议中采用的4-CPFSK调制技术。该技术凭借其连续相位、恒包络的特性,在有限的12.5kHz信道带宽内实现了稳健的通信,有效对抗干扰并提升功放效率,是DMR数字对讲机清晰、稳定通信的核心保障。文章详细阐述了其原理、实现细节及在协议栈中的协同作用。

weixin_29306875的博客 229

基于STM32的蓝牙智能药盒设计

本研究设计了一种基于STM32F103C8T6单片机的蓝牙智能药盒系统,针对老年人用药管理需求,集成了定时提醒、药量检测、环境监测等功能。系统通过LCD1602显示屏实时显示时间与用药信息,支持每日3次定时提醒及3种药物用量设置,采用DHT11温湿度传感器、HX711药量检测模块和红外传感器实现环境监控,并通过蓝牙模块实现远程用药提醒。测试结果表明,系统定时误差≤30秒,温湿度监测精度±2℃,药量检测误差<1g,各项功能运行稳定。该设计为解决老年人用药依从性问题提供了智能化解决方案,具有实用价值和应用前景。

3254968421的博客 542

金融领域强化学习在高频交易中的应用

强化学习(Reinforcement Learning,简称RL)是一种机器学习范式,通过智能体与环境的交互来学习策略,以最大化累计奖励。与监督学习和无监督学习不同,强化学习依赖于动态的反馈机制,智能体通过试错不断优化决策过程。高频交易(High-Frequency Trading,简称HFT)是指在极短时间内进行的大量金融交易,通常利用算法和计算机系统自动执行交易策略。高频交易依赖于高速的数据处理和决策能力,以捕捉市场中的微小价格波动。状态(State):环境在某一时刻的观测,反映了系统的当前情况。

AI天才研究院 889

arcgis计算栅格平均值

打开FC栅格数据和非水体矢量数据 利用矢量数据提取对应栅格的非水体部分 2.1打开空间分析工具à提取分析à按掩膜提取 输入对应栅格数据和矢量数据 2.2提取结果如下 进行计算FC平均值 3.1打开空间分析工具à多元分析à波段集统计 输入对应栅格和输出路径 3.2统计结果如下 ...

Z_W_H_的博客 5370

ABAP Secure Storage 在事务码 SM59 中的应用

系统管理人员在进行维护时,应关注相关日志信息,及时发现可能出现的安全异常,并针对不同安全等级的操作制定相应的备份与恢复策略,以降低潜在风险。该区域在设计上具备高度隔离性,仅允许经过授权的组件访问。保存后,系统会将密码存储在 Secure Storage 中,这种处理方式充分体现了 SAP 标准程序在安全设计上的考量。对于系统管理员而言,这种机制在日常维护与审计中提供了有力的支持,可以通过比对存储数据的哈希值或其他完整性校验手段,及时发现异常变动,保障系统长期稳定运行。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 669

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 10分钟,用TensorFlow.js库,训练一个没有感情的“剪刀石头布”识别器
下一篇: 脑机交互愈演愈烈,Neuralink的大脑植入技术或将成为催化剂
BigDataDigest
博客等级 码龄9年 448粉丝 500原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值