ELMO、BERT、ERNIE、GPT

2024-03-14 11:50
文章标签 gpt bert ernie elmo

本文主要是介绍ELMO、BERT、ERNIE、GPT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这一讲承接了上一讲关于Transformer的部分,依次介绍了基于Transformer的多个模型,包括ELMO、BERT、GPT

因为上述的模型主要是应用在NLP中,因此首先我们必须清楚如何将离散的文本数据喂给模型,即如何用向量的方式来表征输入到模型的中的文本数据。最简单的一种方式就是one-hot向量,假设现在文档中只有apple、bag、cat、dog、elephant五个单词,那么就可以使用维度为5的向量对它们进行唯一的表示,如 a p p l e = [ 1 , 0 , 0 , 0 , 0 ] 、 b a g = [ 0 , 1 , 0 , 0 , 0 ] 、 c a t = [ 0 , 0 , 1 , 0 , 0 ] 、 d o g = [ 0 , 0 , 0 , 1 , 0 ] 、 e l e p h a n t = [ 0 , 0 , 0 , 0 , 1 ] apple = [ 1,0,0,0,0]、bag = [ 0,1,0,0,0]、cat = [ 0,0,1,0,0]、dog = [ 0,0,0,1,0]、elephant = [ 0,0,0 ,0,1] apple=[1,0,0,0,0]bag=[0,1,0,0,0]cat=[0,0,1,0,0]dog=[0,0,0,1,0]elephant=[0,0,0,0,1]。但是这样的表示方式不仅在数据量很大时十分稀疏,浪费大量的内存资源,而且无法表示出单词之间的关系,因为每两个词向量的内积都是零。另一种方法是word class,它将相同类别的词归到一起,用相同的词向量进行表示,例如dog、cat、bird都属于动物,理论可以使用一个词向量表示动物这个类别。这样的表示方式虽然抓住了词之间一定的关联,但仍处于十分宽泛的概括,难以捕获词之间其他细微特征的差别。现在使用的最多的便是word embedding的方法,例如word2vec、glov……它们可以使用更具有表示意义的词向量对每一个词唯一的表示。如果它们的嵌入空间降维后,我们可以发现,语义相似的词往往在嵌入空间中相近的位置。


在这里插入图片描述

但是在自然语言中,一个词在不同的上下文环境中往往具有不同的意思。例如bank在下面的四个句子中就表示为三个意思,第1,2句表示“银行”;第3,4句表示‘’岸‘,最后一句又可以表示为“库”的意思。因此如何根据单词所在的上下文来判断单词的准确意思就变得十分重要。


在这里插入图片描述

具体来说假设现在有一个contextualized word embedding的模型,我们希望将上面的句子输进去后,不同的词义应该可以得到不同的词嵌入向量。


在这里插入图片描述


ELMO

ELMO 是一个芝麻街中的人物


在这里插入图片描述

而NLP中的ELMO(Embeddings from Language Model )出自Matthew E. Peters, Mark Neumann等人发表在 NAACL 2018上的《Deep contextualized word representations》,它是一种基于RNN的语言模型。例如当我们给模型一个句子“潮水退了就知道谁没穿裤子”,希望看到的标记后输入潮水,然后下一时刻根据前一时刻的输出”潮水“输出“退了“”,依次往复,最后就可以训练得到一个词嵌入向量。通常使用的是双向的RNN,因此每一个方向都可以得到一个词嵌入向量,将它们拼接起来就可以得到一个更好的词向量。


在这里插入图片描述

当然我们可以将模型做的很深,在每一层中都会产生一个词向量,那么我们应该选择哪一个呢?ELMO的做法就是:我全都要!


在这里插入图片描述

假设每一层得到的词向量为 e 1 , e 2 , . . . , e m e_{1},e_{2},...,e_{m} e1,e2,...,em,ELMO就使用一种加权的方式 e = α 1 e 1 + α 2 e 2 + . . . + α m e m e=\alpha_{1}e_{1}+\alpha_{2}e_{2}+...+\alpha_{m}e_{m} e=α1e1+α2e2+...+αmem将它们组合起来得到最后的此嵌入向量。而其中的参数 α i \alpha_{i} αi是需要模型学习的。


在这里插入图片描述


BERT

BERT是Bidirectional Encoder Representations from Transformers的缩写,它好巧不巧也是芝麻街的人物,没错正是?


在这里插入图片描述

source:https://muppet.fandom.com/wiki/Bert

NLP中的BERT出自Jacob Devlin, Ming-Wei Chang的《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》一文中,它可以看做是Transformer的Encoder,使用大量无标注的文本数据进行学习。例如上面给出的例子”潮水退了就知道谁没穿裤子“,将其输入到BERT中,每一个词都会给出一个相应的词向量


在这里插入图片描述

那我们应该如何训练BERT呢?在原始的paper中,作者提出了两种不同的训练方式,第一种为Masked LM 。它将属于语句中的某些词标记为MASK,然后使用一个线性的多分类器来判别mask掉的是哪一个词


在这里插入图片描述

第二种方式称为Next Sentence Prediction ,顾名思义就是给定一个句子,预测出它的下一句应该是什么。这里需要使用到一些标记符号,例如CLS表示输出分类结果的位置,SEP表示两句话的边界……。例如我们将“醒醒吧”和“你没有妹妹”作为输入,经过训练得到的词向量就需要通过一个线性的二分器判别它们是否是上下句的关系。


在这里插入图片描述

因为Transformer中每个词的词向量都是在看过句中的所有词后得出的,因此选择哪一个输入到分类器中并没有本质上的区别。

在实际的模型训练中,以上的两种方式是同时使用的。此外,在原始的paper中作者提供了四种使用BERT的场景。第一种是文本分类:将一个文本输入到BERT中,最近经过一个线性的分类器就会得到这个文本的类别。通常在不同类别的文本上训练,线性分类器的参数更新较多,而BERT部分只是做一些微调,所以训练的开销并不大。


在这里插入图片描述

第二种为类似于词性标注的任务,给定模型一个输入语句,最后输入每一个词的词性类别。


在这里插入图片描述

第三种是推理的任务,给定一个前提语句,判断另一个假设语句是真的、假的还是不确定。


在这里插入图片描述

第四种方式是QA,喂给模型一篇文章,然后给出一些文中已有答案的问题,看模型能否给出正确的答案。


在这里插入图片描述

在BER提出后,疯狂的刷新了各种NLP任务的记录


在这里插入图片描述


ERNIE

ERNIE居然也是芝麻街中的一个任务,强行凑梗。


在这里插入图片描述

ERNIE全称Enhanced Representation through Knowledge Integration ,它是由百度提出的一种知识增强的语义表示模型,通过对词、实体等语义单元的掩码,使得模型学习完整概念的语义表示。在语言推断、语义相似度、命名实体识别、情感分析、问答匹配等多项中文 NLP 任务上表现出色,有些甚至优于 BERT 在处理同类中文任务的结果。

例如下面的例子所示,BERT只能判断出缺失的是哪个字,而ERNIE可以做到知道缺失的是哪个词。


在这里插入图片描述


GPT

GPT全称Generative Pre-Training ,出自OpenAI的《Improving Language Understanding by Generative Pre-Training》一文,它是一个非常大的模型,到底有多大呢?ELMO的参数有94M,BERT的参数有340M,而GPT-2的参数就有1542M之多!所以官方一开始放出的只有GPT的小版本,不过前几天看到一个新闻,来自慕尼黑工业大学的Connor Leahy同学,在两个月的时间里,付出了200个小时的时间,花费了大约6000人民币,复现了GPT-2项目。

https://weibo.com/ttarticle/p/show?id=2309404381252827355401#_0

GPT的整个过程和Transformer是类似的,例如前面的例子:潮水退了就知道谁没穿裤子,当我们输入“潮水”后,希望模型经过计算可以给出下一个词为“退了”


在这里插入图片描述

当输入“退了”后,模型就会给出下一个词"就"


在这里插入图片描述

上面主要是对李宏毅老师课程的课后总结,以及对于ELMO、BERT、ERNIE、GPT基本原理的简单介绍,后面读过原论文后,希望可以总结的更好~

这篇关于ELMO、BERT、ERNIE、GPT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/808342

相关文章

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

BERT 论文逐段精读【论文精读】

BERT: 近 3 年 NLP 最火 CV: 大数据集上的训练好的 NN 模型,提升 CV 任务的性能 —— ImageNet 的 CNN 模型 NLP: BERT 简化了 NLP 任务的训练,提升了 NLP 任务的性能 BERT 如何站在巨人的肩膀上的?使用了哪些 NLP 已有的技术和思想?哪些是 BERT 的创新? 1标题 + 作者 BERT: Pre-trainin

8. 自然语言处理中的深度学习:从词向量到BERT

引言 深度学习在自然语言处理(NLP)领域的应用极大地推动了语言理解和生成技术的发展。通过从词向量到预训练模型(如BERT)的演进,NLP技术在机器翻译、情感分析、问答系统等任务中取得了显著成果。本篇博文将探讨深度学习在NLP中的核心技术,包括词向量、序列模型(如RNN、LSTM),以及BERT等预训练模型的崛起及其实际应用。 1. 词向量的生成与应用 词向量(Word Embedding)

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

MiniCPM-V: A GPT-4V Level MLLM on Your Phone

MiniCPM-V: A GPT-4V Level MLLM on Your Phone 研究背景和动机 现有的MLLM通常需要大量的参数和计算资源,限制了其在实际应用中的范围。大部分MLLM需要部署在高性能云服务器上,这种高成本和高能耗的特点,阻碍了其在移动设备、离线和隐私保护场景中的应用。 文章主要贡献: 提出了MiniCPM-V系列模型,能在移动端设备上部署的MLLM。 性能优越:

文本分类场景下微调BERT

How to Fine-Tune BERT for Text Classification 论文《How to Fine-Tune BERT for Text Classification?》是2019年发表的一篇论文。这篇文章做了一些实验来分析了如何在文本分类场景下微调BERT,是后面网上讨论如何微调BERT时经常提到的论文。 结论与思路 先来看一下论文的实验结论: BERT模型上面的

OpenAI澄清:“GPT Next”不是新模型。

不,”GPT Next” 并不是OpenAI的下一个重要项目。 本周早些时候,OpenAI 日本业务的负责人长崎忠男在日本 KDDI 峰会上分享了一场演讲,似乎在暗示一个名为 “GPT Next” 的新模型即将出现。 但OpenAI的一位发言人已向Mashable证实,幻灯片中用引号括起来的”GPT Next”一词只是一个假设性占位符,旨在表明OpenAI的模型如何随着时间呈指数级进化。发言人

AI跟踪报道第55期-新加坡内哥谈技术-本周AI新闻: GPT NEXT (x100倍)即将在2024推出

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/ 点击下面视频观看在B站本周AI更新: B 站 链接 观看: 本周AI

什么是GPT-3的自回归架构?为什么GPT-3无需梯度更新和微调

文章目录 知识回顾GPT-3的自回归架构何为自回归架构为什么架构会影响任务表现自回归架构的局限性与双向模型的对比小结 为何无需梯度更新和微调为什么不需要怎么做到不需要 🍃作者介绍:双非本科大四网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发,目前开始人工智能领域相关知识的学习 🦅个人主页:@逐梦苍穹 📕所属专栏:人工智能 🌻gitee地址:x