在《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模型。
1 纯Encoder分支
纯Encoder模型通常是通过遮掩句子中的任意词语,让模型进行预测,它通常比较适用于理解整个句子语的任务比如句子分类、命名实体识别、情感分析。在预测的时候是可以看到所有输入词。
2 纯Decoder分支
纯 Decoder 模型的预训练通常围绕着预测句子中下一个单词展开。纯 Decoder 模型适合处理那些只涉及文本生成的任务。在生成的下一个词的时候,只能看到当前以及前面的词。
3 Encoder-Decoder 分支
Encoder 的注意力层都可以访问初始输入句子中的所有单词,而 Decoder 的注意力层则只能访问输入中给定词语之前的词语。
模型可以使用 Encoder 或 Decoder 模型的目标来完成预训练,但通常会包含一些更复杂的任务。例如,T5 通过随机遮盖掉输入中的文本片段进行预训练,训练目标则是预测出被遮盖掉的文本。Encoder-Decoder 模型适合处理那些需要根据给定输入来生成新文本的任务,例如自动摘要、翻译、生成式问答。
4 Transformers库
上面表格中的模型只是冰山一角,在最新的2023年《Transformer models: an introduction and catalog》论文有提到更多关于Transformer家族成员,并且提供了相关发布时间以及说明,有兴趣大家可以下载去看看。
是不是被这么多模型吓坏了?幸运的是,Hugging Face开发了Transformers 库, 是当下最热、最常用的自然语言处理工具包。 实现了大量的基于Transformer架构的主流训练模型, 不仅仅是自然语言处理模型,包括图像、音视频以及多模态模型。就像java做web应用一样,学会spring boot框架,上手事半功倍。 作为一个大模型小白想要实操,这个库是必学的。
5 Transformers及相关库作用
Transformers: 核心库,模型加载、模型训练、流水线等.
Tokenizer: 分词器,对数据进行预处理,文本到token序列相互转换。
Datasets: 数据集库,提供了数据集的加载和处理等方法。
Evaluate: 评估函数,提供各种评价指标的计算函数。
PEFT: 高效微调模型库, 提供了几种高效微调的方法。
Accelerate:分布式训练,提供分布式训练解决方法, 包括大模型加载与推理解决方案。
Optimum: 优化加速库,支持多种,如Onnxruntime、OpenVino等。
Gradio:可视化部署库,几行代码快速实现基于web交互的算法演示系统。