当前位置: 首页 > news >正文

【AI大模型】BERT GPT ELMo模型的对比

目录

🍔 BERT, GPT, ELMo之间的不同点

🍔 BERT, GPT, ELMo各自的优点和缺点

🍔 小结

学习目标

  • 理解BERT, GPT, ELMo相互间的不同点
  • 理解BERT, GPT, ELMo相互比较下的各自优点和缺点

🍔 BERT, GPT, ELMo之间的不同点

  • 关于特征提取器:

    • ELMo采用两部分双层双向LSTM进行特征提取, 然后再进行特征拼接来融合语义信息.
    • GPT和BERT采用Transformer进行特征提取.
    • 很多NLP任务表明Transformer的特征提取能力强于LSTM, 对于ELMo而言, 采用1层静态token embedding + 2层LSTM, 提取特征的能力有限.
  • 单/双向语言模型:

    • 三者之中, 只有GPT采用单向语言模型, 而ELMo和BERT都采用双向语言模型.
    • ELMo虽然被认为采用了双向语言模型, 但实际上是左右两个单向语言模型分别提取特征, 然后进行特征拼接, 这种融合特征的能力比BERT一体化的融合特征方式弱.
    • 三者之中, 只有ELMo没有采用Transformer. GPT和BERT都源于Transformer架构, GPT的单向语言模型采用了经过修改后的Decoder模块, Decoder采用了look-ahead mask, 只能看到context before上文信息, 未来的信息都被mask掉了. 而BERT的双向语言模型采用了Encoder模块, Encoder只采用了padding mask, 可以同时看到context before上文信息, 以及context after下文信息.

🍔 BERT, GPT, ELMo各自的优点和缺点

ELMo: * 优点: * 从早期的Word2Vec预训练模型的最大缺点出发, 进行改进, 这一缺点就是无法解决多义词的问题. * ELMo根据上下文动态调整word embedding, 可以解决多义词的问题. * 缺点: * ELMo使用LSTM提取特征的能力弱于Transformer. * ELMo使用向量拼接的方式融合上下文特征的能力弱于Transformer.

GPT: * 优点: * GPT使用了Transformer提取特征, 使得模型能力大幅提升. * 缺点: * GPT只使用了单向Decoder, 无法融合未来的信息.

BERT: * 优点: * BERT使用了双向Transformer提取特征, 使得模型能力大幅提升. * 添加了两个预训练任务, MLM + NSP的多任务方式进行模型预训练. * 缺点: * 模型过于庞大, 参数量太多, 需要的数据和算力要求过高, 训练好的模型应用场景要求高. * 更适合用于语言嵌入表达, 语言理解方面的任务, 不适合用于生成式的任务.

🍔 小结

学习了BERT, GPT, ELMo之间的区别: * 三者所选取的特征提取器不同. * BERT采用的是Transformer架构中的Encoder模块. * GPT采用的是Transformer架构中的Decoder模块. * ELMo采用的双层双向LSTM模块.

  • 三者所采用的语言模型单/双向不同.
    • BERT采用的是最彻底的双向语言模型, 可以同时关注context before和context after.
    • GPT采用的是单向语言模型, 即Transformer中的Decoder, 由于采用了mask机制, 所以未来信息context after都不可见.
    • ELMo表面上被认为是双向语言模型, 但实际上是左右两个单向LSTM模型分别提取特征, 在进行简单的拼接融合.

http://www.lryc.cn/news/520414.html

相关文章:

  • qt 快捷功能 快速生成 setter getter 构造函数 父类虚函数重写 成员函数实现 代码框架 查看父类及父类中的虚函数
  • 【计算机网络】深入浅出计算机网络
  • springMVC---resultful风格
  • 汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2)
  • IntelliJ IDEA 主题插件
  • 2025最新JAVA面试八股文【基础篇】
  • element plus 使用 el-tree 组件设置默认选中和获取所有选中节点id
  • 高级java每日一道面试题-2025年01月09日-数据库篇-视图是什么?
  • python学习整理
  • Qt 5.14.2 学习记录 —— 십이 QLineEdit、QTextEdit
  • 【LC】2270. 分割数组的方案数
  • 【办公类-99-01】20250103用“课题阶段资料模版“批量制作“7个课题档案袋“
  • Objective-C语言的面向对象编程
  • 有限元分析学习——Anasys Workbanch第一阶段笔记(11)横梁中点挠度仿真结果与计算结果对比
  • GO语言实现KMP算法
  • 【2024年华为OD机试】(A卷,100分)- 打印机队列(Java JS PythonC/C++)
  • SQL语言的面向对象编程
  • android分区和root
  • WebScoket-服务器客户端双向通信
  • 如何在QT中保证线程是安全的?
  • Lock接口
  • 02——变量
  • MonacoEditor在vue3 element-plus的tabs非默认激活标签页中无法正常显示的问题
  • 【RedisStack】Linux安装指南
  • 说一说mongodb组合索引的匹配规则
  • Maven核心插件之maven-resources-plugin
  • C++ 鼠标轨迹算法 - 防止游戏检测
  • 网络学习记录6
  • 【数学】概率论与数理统计(四)
  • 小结:华为交换机常用的操作指令