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

Transformer家族

在《Transformer原理》中我们介绍了,现在很多大模型都是基于Transformer,其中最出名就是GPT和BERT模型,在GPT和BERT模型被提出来之后,NLP领域也出现了基于Transformer结构的模型,按照模型结构基本可以分为三类:

  • 纯Encoder模型(典型代表BERT,仅使用Transformer中的编码器),又称为自编码(auto-encoding)Transformer模型。

  • 纯Decoder模型(典型代表GPT,仅使用Transformer中的解码器),又称为自回归(auto-regressive)Transformer模型。

  • Encoder-Decoder模型(典型代表BART、T5),又称为Seq2Seq(sequence-to-sequence)Transformer模型。


    414c4b44af050bb41c53784b32c96bf5.jpeg


1 纯Encoder分支

纯Encoder模型通常是通过遮掩句子中的任意词语,让模型进行预测,它通常比较适用于理解整个句子语的任务比如句子分类、命名实体识别、情感分析。在预测的时候是可以看到所有输入词。

887f8532ab3674289a8fadc654d89a8a.jpeg


ee458bc6ca74280f544b1b84f7a95f81.jpeg

2 纯Decoder分支

纯 Decoder 模型的预训练通常围绕着预测句子中下一个单词展开。纯 Decoder 模型适合处理那些只涉及文本生成的任务。在生成的下一个词的时候,只能看到当前以及前面的词。

eb33837bb29a0c1f01ad81bce86dacf1.jpeg

e8f33d34eed7dbec4212d4692a5e1c7f.jpeg

3 Encoder-Decoder 分支

Encoder 的注意力层都可以访问初始输入句子中的所有单词,而 Decoder 的注意力层则只能访问输入中给定词语之前的词语。


模型可以使用 Encoder 或 Decoder 模型的目标来完成预训练,但通常会包含一些更复杂的任务。例如,T5 通过随机遮盖掉输入中的文本片段进行预训练,训练目标则是预测出被遮盖掉的文本。Encoder-Decoder 模型适合处理那些需要根据给定输入来生成新文本的任务,例如自动摘要、翻译、生成式问答。

57f33a2d6a2b9ffd8e5f3540af9786a7.jpeg

4 Transformers

上面表格中的模型只是冰山一角,在最新的2023年《Transformer models: an introduction and catalog》论文有提到更多关于Transformer家族成员,并且提供了相关发布时间以及说明,有兴趣大家可以下载去看看。

f05b42670b56ed18ce5b56c89ef622cc.jpeg



是不是被这么多模型吓坏了?幸运的是,Hugging Face开发了Transformers 库, 是当下最热、最常用的自然语言处理工具包。 实现了大量的基于Transformer架构的主流训练模型, 不仅仅是自然语言处理模型,包括图像、音视频以及多模态模型。就像java做web应用一样,学会spring boot框架,上手事半功倍。 作为一个大模型小白想要实操,这个库是必学的。


5 Transformers及相关库作用

  • Transformers: 核心库,模型加载、模型训练、流水线等.

  • Tokenizer: 分词器,对数据进行预处理,文本到token序列相互转换。

  • Datasets: 数据集库,提供了数据集的加载和处理等方法。

  • Evaluate: 评估函数,提供各种评价指标的计算函数。

  • PEFT: 高效微调模型库, 提供了几种高效微调的方法。

  • Accelerate:分布式训练,提供分布式训练解决方法, 包括大模型加载与推理解决方案。

  • Optimum: 优化加速库,支持多种,如Onnxruntime、OpenVino等。

  • Gradio:可视化部署库,几行代码快速实现基于web交互的算法演示系统。

相关文章:

  • 汽车IVI中控开发入门及进阶(十四):功能安全
  • Spring Boot+Vue前后端分离项目如何部署到服务器
  • 基于YOLOv8深度学习的野外火焰烟雾检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测
  • 2024年AI辅助研发:科技创新的引擎
  • 【C++ vector 类】
  • Selenium操作浏览器,弹出文件选择框,实现自动选定“目标文件”
  • 链表的简单概念
  • Python 单元测试
  • 3 模型评估
  • 设计模式 单例模式
  • idea远程服务器debug
  • 关于vue项目浏览器debugger失效问题
  • nginx stream四层加载多个子配
  • 关于应用程序自卸载能力的探讨
  • Java后端八股文之Redis
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • co.js - 让异步代码同步化
  • css系列之关于字体的事
  • go append函数以及写入
  • Javascript 原型链
  • Java基本数据类型之Number
  • Laravel 实践之路: 数据库迁移与数据填充
  • Promise面试题,控制异步流程
  • React-redux的原理以及使用
  • webpack项目中使用grunt监听文件变动自动打包编译
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 从setTimeout-setInterval看JS线程
  • 开源地图数据可视化库——mapnik
  • 利用DataURL技术在网页上显示图片
  • 聊聊flink的BlobWriter
  • 前端
  • 驱动程序原理
  • 探索 JS 中的模块化
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 系统认识JavaScript正则表达式
  • 一份游戏开发学习路线
  • 译自由幺半群
  • 再次简单明了总结flex布局,一看就懂...
  • AI算硅基生命吗,为什么?
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #100天计划# 2013年9月29日
  • #include<初见C语言之指针(5)>
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (分布式缓存)Redis分片集群
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (三)elasticsearch 源码之启动流程分析