自然语言处理 (NLP) 是 人工智能 最具影响力的领域之一,它已经催生了聊天机器人、语音助手、翻译器和大量其他日常实用工具等技术,最近火爆的 ChatGPT 就是基于自然语言处理相关算法搭建的!
其实,自然语言处理的研究在 1950 年代就已经开始了。最早的尝试是从俄语到英语的自动翻译,并为未来的研究奠定了基础。大约在同一时间,图灵测试也验证了机器可以发展出像人类一样行为,这些都为 NLP 的发展奠定了基础。
我们人类能够轻松理解对方说的话的含义,但大多时候并不清楚大脑是如何运作才达成这种效果的。但 NLP 基于大型的数据集进行训练,使这项复杂的任务变得容易很多。
在训练的过程中,会使用到很多种 NLP 模型,接下来,我们将了解 现如今顶级的NLP模型,其中包含了 ChatGPT 所使用的语言模型!
在此之前,让我们先了解什么是 NLP 模型。
什么是 NLP 的预训练模型?
经过大型数据集训练以完成某些 NLP 任务的深度学习模型被称为 NLP 预训练模型 (PTM)。当 PTM 在大型语料库上进行训练时,它们可以获得通用语言表示,这有助于下游 NLP 任务并避免从头开始训练新模型。
因此,预训练模型可以称为可重用的 NLP 模型,NLP 开发人员可以使用它来快速构建NLP 应用程序。Transformers 提供了一组预训练的深度学习 NLP 模型,适用于各种 NLP 应用,包括文本分类、问答、机器翻译等。
这些预训练的 NLP 任务可以免费使用,不需要任何 NLP 的先验知识。第一代的预训练模型被教导学习良好的词嵌入。
NLP 模型可以简单地加载到PyTorch、Tensorflow等 NLP 库中,并用于执行 NLP 任务,NLP 开发人员只需付出很少的努力。预训练模型越来越多地用于 NLP 工作,因为与定制模型相比,它们更易于安装、具有更高的准确性并且需要更少的训练时间。
NLP预训练模型是指在大规模文本语料库上进行预训练的模型,通常使用深度学习技术,能够捕捉自然语言中的语义、句法和上下文信息。这些模型通常具有数百万至数十亿个参数,使用多层神经网络结构进行训练,能够对自然语言进行深度的理解和处理,可以应用于多个NLP任务,如文本分类、命名实体识别、关系抽取、语义相似性计算、问答等。
预训练模型的训练通常分为两个阶段:无监督预训练和有监督微调。在无监督预训练阶段中,模型通过大规模的未标记文本数据进行训练,例如维基百科、新闻、社交媒体等。在这个阶段,模型使用自编码器、语言模型等方法进行训练,以学习文本中的语义和上下文信息。在有监督微调阶段中,使用少量有标记的数据对模型进行微调,以适应具体的任务。
顶级 NLP 模型有哪些?
BERT
BERT 是一种预训练模型,它使用单词的左右两侧来确定其上下文。BERT 预示着 NLP 的新时代,因为尽管它非常精确,但它建立在两个简单的概念之上。
预训练和微调是BERT中的两个关键过程。BERT 在模型的第一步中接受了具有多重训练挑战的未标记数据训练。这是通过执行两个无人值守的任务来完成的:
Masked ML:
为了避免正在处理的单词可以看到自己的循环,通过覆盖(屏蔽)一些输入标记来随机训练深度双向模型。
Next Sentence Prediction:
在此挑战中,每个预训练集有 50% 的时间被使用。当句子 S1 后面跟着句子 S2 时,S2 被归类为 IsNext。另一方面,如果 S2 是随机句子,则 S2 将被标记为 NotNext。
完成后,微调就可以开始了。使用标记数据,模型的所有参数都在这一步得到改进。“下游任务”提供了这个标记数据。每个下游作业都是一个独特的模型,具有自己的一组参数。
BERT 可用于多种任务,包括命名实体识别和问答。TensorFlow 或 PyTorch 是两个可用于实现 BERT 模型的工具。
GPT-3
GPT-3 是一种基于 transformer 的 NLP 模型,可以翻译、回答问题、作诗、解决完形填空以及执行需要即时推理的任务,例如解读单词。由于最近的进步,GPT-3 还用于撰写新闻故事和开发代码。
GPT-3能够处理单词之间的统计相互依赖性。它接受了超过 1750 亿个参数和从整个网络收集的 45 TB 文本的训练。它是可访问的最全面的预训练 NLP 模型之一。
GPT-3 在语言模型中的独特之处在于它不需要微调即可完成下游任务。得益于其“文本输入、文本输出” API ,开发人员可以使用指令对模型进行重新编程。
ChatGPT 就使用了此模型。
XLNet
XLNet 由谷歌和卡内基梅隆大学的学者团队创建。它的创建是为了处理标准的自然语言处理任务,包括情感分析和文本分类。
XLNet 是一种预训练的广义自回归模型,结合了 Transformer-XL 和 BERT 的最大特点。XLNet 利用了 Transformer-autoregressive XL 的语言模型和 BERT 的自动编码。
XLNet 的主要优势在于,它的创建是为了结合 Transformer-XL 和 BERT 的最佳功能而没有缺点。
双向上下文分析是 XLNet 的核心,就像在 BERT 中一样。这意味着它会同时考虑要分析的标记前后的词,以便猜测它可能是什么。XLNet 超越了这一点,它计算了一系列关于其可能排列的单词的对数似然。
XLNet 规避了 BERT 的缺点。因为它是一个自回归模型,所以它不受数据损坏的影响。实验表明,XLNet 在性能方面优于 BERT 和 Transformer-XL。
如果你希望在你的下一个项目中使用 XLNet,它背后的研究人员已经提供了一个官方的 Tensorflow 实现。XLNet 的 PyTorch 实现也可用。
RoBERTa
RoBERTa 是在 BERT 之上构建的自然语言处理模型,旨在提高其性能并克服其一些缺陷。RoBERTa 是 Facebook 人工智能与华盛顿大学合作的成果。
研究团队检查了双向上下文分析的性能,并发现了可以进行各种调整以提高 BERT 的性能,例如使用更大的新数据集来训练模型并消除以下句子预测。
RoBERTa 代表稳健优化的 BERT 方法,是这些变化的结果。以下是BERT与RoBERTa的区别:
- 可以使用更大的 160GB 训练数据集。
- 增加的数据集和 500K 次迭代导致训练时间更长。
- 该模型的下一句预测部分已被删除。
- 更改用于训练数据的 LM 掩码算法。
RoBERTa 实现作为 PyTorch 包的一部分在 Github 上作为开源发布。
ALBERT
另一个 BERT 修改模型是 ALBERT。在使用 BERT 时,谷歌研究人员发现预训练数据集的大小变大,影响了执行模型所需的内存和时间。
为了解决这些缺点,谷歌研究人员开发了 ALBERT,这是 BERT 的轻量级版本。ALBERT 提供了两种方法来处理 BERT 的内存和时序问题。这是通过考虑嵌入式参数化并跨层共享来实现的。
此外,ALBERT 没有在预训练阶段建立这一点,而是使用自我监督损失来进行下一句预测。这一步对于绕过 BERT 的句间连贯性约束是必要的。
如果您想试用 ALBERT,可以在 Github 上的 Google 研究存储库中找到由 Google 开发的原始代码库。TensorFlow 和 PyTorch 都可以与 ALBERT 实现一起使用。
最后,预训练语言模型的价值和好处是显而易见的。值得庆幸的是,开发人员可以访问这些模型,这使他们能够在创建AI 应用程序的过程中产生精确的结果,同时节省资源和时间。
这些顶级的NLP模型都是通过大规模的语料库训练得到的,具有强大的学习和推理能力,能够处理各种语言任务。这些模型在自然语言理解、生成、翻译、情感分析、问答等多个领域都有广泛的应用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:2023年最火爆的5 个NLP模型,ChatGPT也在用! - Python技术站