「Huggingface🤗NLP笔记系列-第2集」最近跟着Huggingface上的NLP tutorial走了一遍,惊叹居然有如此好的讲解Transformers系列的NLP教程,于是决定记录一下学习的过程,分享我的笔记,可以算是官方教程的精简版。但最推荐的,还是直接跟着官方教程来一遍,真是一种享受。
Transformer结构最初就是在大2017年名鼎鼎的《Attention Is All You Need》论文中提出的,最开始是用于机器翻译任务。
这里先简单回顾一下Transformer的基本结构:
encoder、decoder既可以单独使用,又可以再一起使用,因此,基于Transformer的模型可以分为三大类:
随后各种基于Transformer结构的模型就如雨后春笋般涌现出来,教程中有一张图展示了一些主要模型的时间轴:
虽然模型多到四只jio都数不过来,但总体上可以分为三个阵营,分别有三个组长:
对于Encoder-only的模型,预训练任务通常是“破坏一个句子,然后让模型去预测或填补”。例如BERT中使用的就是两个预训练任务就是Masked language modeling和Next sentence prediction。因此,这类模型擅长进行文本表示,适用于做文本的分类、实体识别、关键信息抽取等任务。
对于Decoder-only的模型,预训练任务通常是Next word prediction,这种方式又被称为Causal language modeling。这个Causal就是“因果”的意思,对于decoder,它在训练时是无法看到全文的,只能看到前面的信息。因此这类模型适合做文本生成任务。
而Seq2seq架构,由于包含了encoder和decoder,所以预训练的目标通常是融合了各自的目标,但通常还会设计一些更加复杂的目标,比如对于T5模型,会把一句话中一片区域的词都mask掉,然后让模型去预测。seq2seq架构的模型,就适合做翻译、对话等需要根据给定输入来生成输出的任务,这跟decoder-only的模型还是有很大差别的。
类型 | 架构 | Transformer组件 | Examples | Tasks |
---|---|---|---|---|
BERT-like | auto-encoding models | Encoder | ALBERT, BERT, DistilBERT, ELECTRA, RoBERTa | Sentence classification, named entity recognition, extractive question answering |
GPT-like | auto-regressive models | Decoder | CTRL, GPT, GPT-2, Transformer XL | Text generation |
BART/T5-like | sequence-to-sequence models | Encoder-decoder | BART, T5, Marian, mBART | Summarization, translation, generative question answering |
了解了Transformer一系列模型的来龙去脉,我们就可以更好地玩耍Transformer啦!下一集,我们会慢慢深入查看Huggingface transformers
库背后的细节,从而更灵活地使用。