Transformer两大发展方向——GPT系列及BERT(一)

news/2024/12/28 21:14:40/文章来源:https://www.cnblogs.com/xiaxuexiaoab/p/18409860

前面介绍了Transformer,随着其发展在NLP领域应用越来越多,在其基础上主要有两篇影响非常大的文章,一篇是GPT,另一篇是BERT。OpenAI提出的GPT采用Transformer解码器结构,一路更新迭代到了现在有了GPT-4,而Google提出的BERT采用Transformer的编码器结构。大体时间线如下图所示。这里对几篇文章的一些主要内容和发展脉络进行记录,其他更加细节的东西可以查看下面给出的论文原文或者资料里面的视频讲解。

一、相关论文

GPT1: Improving Language Understanding by Generative Pre-Training
GPT2: Language Models are Unsupervised Multitask Learners
GPT3: Language Models are Few-Shot Learners
GPT4: GPT-4 Technical Report
BERT: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

二、相关资料

GPT,GPT-2,GPT-3 论文精读【论文精读】
GPT-4论文精读【论文精读·53】
李沫讲BERT
李宏毅ELMO、BERT、GPT
OpenAI GPT4精简

三、GPT(Generative Pre-Training)

PDF: Improving Language Understanding by Generative Pre-Training

3.1 背景及思想

在CV领域,由于存在存在标注好的大型数据集,如ImageNet,因此在这些数据集上训练好一个模型,然后在到下游子任务中依据少量数据进行微调就可以得到一个不错的效果,这也使其应用非常广泛。但在CV领域缺少大规模标注好的数据,因此没法按照上述思想进行训练。GPT基于此问题采用半监督思路,现在无标签数据集上训练得到一个预训练模型,然后再到子任务上基于标注好的数据进行监督学习。

3.2 相关内容

  • 无监督学习
    训练的目标是对于给定序列,在前面k个词出现的情况下使得预测第i个词的概率最大化。

    其中语言模型采用的是Transformer的Decoder结构,也就是带掩码的注意力。

  • 监督学习

    目标是对于标注好的数据进行训练,保证正确的标签y在输入x的情况下其概率最大,文中也举了几个具体的任务。

分类问题:采用Extract提出的特征在接一个Linear
蕴含:把两个句子用分隔符拼接,然后接一个Linear来预测
判断是否相似:把文本用分隔符拼接
多选:把问题和答案用分隔符拼接,然后每个答案都接一个Linear,最后预测对应的概率。

可以看到可以把不同类型的任务都转换成文本作为输入,进而不改变预训练模型的结构,只是后续接入的Linear层不一样。

3.3 网络结构

采用的是Transformer的解码器,每一个解码器输入和输出维度是一致的,GPT中采用12层,维度是768。

3.4 效果

预训练的数据集采用的是BooksCorpus dataset数据集,大约800M个词。可以看到其在不同任务上都具有不错的效果。


四、BERT

PDF: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

4.1 背景及思想

GPT发布后不久,Google就提出了BERT,从结构上来看应该借鉴了GPT的部分思想,也是在一个没有标注的大数据集上训练一个预训练模型,然后在子任务上进行微调。另外还借鉴了一篇前期的工作是ELMo:Deep contextualized word representations,其大体思想是采用两层双向的LSTM来基于上下文给每个单词一个Word Embedding,这样就很大程度上缓解了词在不同句子中歧义的发生。BERT可以看成是ELMo和Transformer的结合,由于要上下文信息,因此BERT选择的是Transformer中的编码器来代替LSTM。

4.2 相关内容

  • 预训练
    提出来两种训练策略。第一种是对输入句子中进行挖空(有15%的概率),相当于完形填空。

    另外一种预测下一句,就是给BERT两个句子,判断这两个句子是否是邻近的。两个句子中间用特殊标记符SEP进行隔开,然后开头也引入一个标记符,其输出用于做分类。这里CLS其实放在任何位置都可以,因为内部采用的是自注意力机制。

    文中训练采用两种策略一起,训练的数据集在GPT采用BooksCorpus(800M words)的基础上还增加了English Wikipedia(2500M words)其输入如下:

  • 微调
    这一步和GPT类似,依据前面训练好的模型,然后根据特定的子任务,再接一个Linear层,得到对应任务的输出。在不同任务上微调:

4.3 网络结构

采用的是Transformer的编码器结构,每一个编码器输入和输出维度是一致的,BERT有两个版本,BERT_Base版本和GPT一样采用12层,维度是768,参数大小约110M,BERT_Large采用24层,维度选择1024。这里Base版本估计是为了和GPT比较,而后面Large应该是对应的数据集更大而设大的。

文中也给出了几种方法的结构对比,GPT采用的是解码器,需要按顺序,所以图中只画出了前面的连接,和后面的是没有连接的。

4.4 效果

在不同数据集上进行测试,发现效果都霸榜了。



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

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

相关文章

RustPython简单使用

RustPython介绍 同CPython,Jpython,PyPy一样,RustPython,是使用Rust语言实现的Python解释器,支持Python3语法。 项目地址:https://github.com/RustPython/RustPython RustPython真正方便的是可以编译成Wasm文件,可以直接在浏览器中使用,示例网站:https://rustpython.g…

【解题报告】P8478 「GLR-R3」清明

我无可代替,哪怕来历已不神秘;麦克风接力,百万人就等我出席。P8478 「GLR-R3」清明 参考了出题人题解和 xcyyyyyy 大神的题解,强推前两篇。 拿到题完全没思路怎么办??? 人类智慧的巅峰,思维量的登峰造极。 换句话说就是非人题目,不过不得不说 GLR 的题是真的好,难度也…

Openwrt安装ddns-go

必备条件已刷好OpenWRT的路由 Openwrt已配置好网络根据CPU架构下载DDNS-go 我用的是迅雷赚钱宝1代,其CPU是arm7,所以要下载对应的arm7版本 https://github.com/jeessy2/ddns-go/releases 解压文件,将文件复制到openwrt 用WinSCP连接OpenWRT,复制ddns-go进去 WinSCP下载 如果…

python如何使用 秘钥证书 进行 SM2 加密

最近一个项目,需要使用sm2非对称加密,对方直接给的秘钥证书,python使用gmssl 进行加密,解密,加签,验签用的秘钥是这种格式 # Private Key秘钥 5aa03412c3051e1d4cf9d19cfbeeec70c28f388c9f82747cc912096c9cd44bea # Public Key 公钥 044291b381a039a8d7d02d7272d2d7c78a30d33e…

让小爱音箱播放电脑/NAS上歌曲,支持自动从哔哩哔哩/油管下载歌曲,无需刷机。支持语音控制和WebUI控制,docker部署多平台兼容,解决仅能播放试听版的苦恼

小米AI音箱很多人都有,但使用中播放歌曲时总是提示仅能播放试听版,不能完整听歌,很烦人。今天介绍的方法就是要彻底解决这个问题,实现让小爱AI音箱能够播放本地歌曲,本地没有的歌曲还能自动从网上搜索下载的功能。 已测试支持的设备:型号 名称L06A 小爱音箱L07A Redmi小爱…

Linux系统搭建性能测试监控体系

一.安装Grafana 1.Grafana介绍: Grafana是一个开源的监控和可视化工具,用于显示和跟踪各种指标,数据和日志,支持多种源,包括influxDB、prometheus、mango DB,Redis,Mysql,PostgreSQL等。它提供多种图标类型,饼图,支持设置预警机制,当监控指标超出预定阈值时,可以通过em…

公胶壳和母胶壳

公胶壳和母胶壳 在电子连接器领域,"公胶壳"和"母胶壳"是两种常见的术语,它们通常用来描述连接器的性别,即插头和插座。公胶壳:通常指的是连接器的阳性部分,也就是带有突出的针脚或插销的部分。这些针脚可以插入母胶壳中的相应孔洞,以完成电路的连接。…

2024秋软件工程个人作业(第二次)

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253这个作业的目标 要求使用Python编写一个“羊了个羊”风格的消除类小游戏。对开发过程进行实践,更加熟悉aigc工具学号 102202135…

PbootCMS网站apache伪静态规则

<IfModule mod_rewrite.c>Options +FollowSymlinksRewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php?p=$1 [QSA,PT,L]</IfModule>扫码添加技术【解决问题】专注中小企业网站建设、网站安全1…

PbootCMS网站nginx伪静态规则

nginx #请复制下面伪静态配置到nginx配置文件中: #规则适合PbootCMS V2.0+版本location / {if (!-e $request_filename){rewrite ^/(.*)$ /index.php?p=$1 last;} }扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、J…

记一次SSH无法远程

故障现象 主机无法使用ssh远程 输入密码之后报错如下# Permission denied (password,keyboard-interactive).原因 看起来好像是远端设置了不允许用户名和密码登录 其实是客户端设置问题 修复或者注释# ChallengeResponseAuthentication no

bluecms搭建和代码审计(SQL)

bluecms搭建 将bluecms的源码文件bluecms放在www目录下,进入bluecms/install/index.php目录安装bluecms填写数据库配置信息和管理员账号信息填写完上述信息后,会自动在bluecms数据库下创建这些文件返回主界面 http://127.0.0.1/bluecms后发现管理员不能从前台登录, 需要从ht…