如今,自然语言处理(Natural Language Processing, NLP)应用已经变得无处不在。自然语言处理应用能够快速增长,很大程度上要归功于通过预训练模型实现迁移学习的概念。在本文中,我将介绍一些顶级的预训练模型,你可以用它们来开始你的自然语言处理之旅,并复制该领域的最新研究成果。
为什么要使用预训练模型?
- 基准模型设计:作者已尽其所能设计了基准模型。我们可以在自己的自然语言处理数据集上使用预训练模型,而不是从头构建模型来解决类似的自然语言处理问题。
- 节省资源:尽管仍然需要进行一些微调,但它已经为我们节省了大量的时间和计算资源。
对于想要学习或过渡到自然语言处理的初学者来讲,它也堪称完美。这一突破,使得每个人都能够轻松地完成任务,尤其是那些没有时间、也没有资源从头开始构建自然语言处理模型的人们。
预训练模型分类
本文介绍的预训练自然语言处理模型根据应用,将预处理模型分为三类:
- 多用途自然语言处理模型
- ULMFiT
- Transformer
- Google BERT
- Transformer-XL
- OpenAI GPT-2
- 词嵌入
- ELMo
- Flair
- 其他预训练模型
- StanfordNLP
多用途自然语言处理模型
多用途模型是自然语言处理领域的热门话题。这些模型为机器翻译、问答系统、聊天机器人、情绪分析等我们感兴趣的自然语言处理应用提供了动力。这些多用途自然语言处理模型的核心组件是语言建模的概念。
简单来说,语言模型的目的是预测序列中的下一个单词或字符。我们在这里看到每种模型时,都会理解这一点。
ULMFiT
ULMFiT 由 fast.ai 的 Jeremy Howard 和 DeepMind 的 Sebastian Ruder 提出并设计。你可以说 ULMFiT 是启动迁移学习派对的发行版。
正如我们在文中所述,ULMFiT 使用新的自然语言生成技术实现了最先进的结果。该方法包括在 Wikitext 103 数据集上训练的预处理语言模型进行微调,使其不会忘记以前所学的内容,从而将其微调为一个新的数据集。
在文本分类任务方面,ULMFiT 的性能优于许多最先进的技术。它只需要很少的例子就可以产生令人印象深刻的结果,让像你我这样的人更容易理解,并在我们的机器上实现它。
Transformer
Transformer 架构彻底改变了自然语言处理领域。它完全基于注意力机制,摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN)。Transformer 允许并行化处理序列数据,极大地提高了训练效率。
其核心组件包括多头自注意力机制(Multi-Head Self-Attention),这使得模型能够同时关注输入序列的不同部分,捕捉长距离依赖关系。Transformer 是后续许多模型的基础架构。
Google BERT
BERT(Bidirectional Encoder Representations from Transformers)是由 Google 提出的预训练模型。与之前的单向语言模型不同,BERT 采用了双向上下文表示。
它通过掩码语言模型(Masked Language Model, MLM)任务进行预训练,即随机掩盖输入句子中的一些词,让模型根据上下文预测被掩盖的词。这种双向性使得 BERT 在理解上下文语义方面表现卓越,广泛应用于文本分类、问答系统等任务。
OpenAI GPT-2
GPT-2(Generative Pre-trained Transformer 2)是 OpenAI 开发的生成式预训练模型。它是 GPT 系列的第二代版本,拥有更大的参数量和更复杂的架构。
GPT-2 主要采用自回归的方式,即根据前面的词预测后面的词。它在文本生成、续写、摘要等方面表现出色。虽然最初发布时未公开所有权重,但后续开源版本展示了其在零样本学习(Zero-shot Learning)上的强大能力。
ELMo
ELMo(Embeddings from Language Models)是一种深层双向语言模型生成的词向量。与静态词向量(如 Word2Vec)不同,ELMo 生成的词向量是根据输入句子的上下文动态调整的。
这意味着同一个词在不同的语境下会有不同的向量表示。ELMo 通过堆叠双向 LSTM 层来捕获上下文信息,显著提升了下游任务的性能。


