《 Transformers》
文章平均质量分 96
简要介绍了 NLP 的历史,提供了传统方法、深度学习模型(如 CNN、RNN 和 LSTM)与 Transformer 模型之间的比较。
Sonhhxg_柒
Save your heart for someone who cares. #愿岁月清净 抬头遇见皆是柔情#
展开
-
【Transformers】第 10 章 :从零开始训练 Transformer
在本书的开头段落中,我们提到了一个名为 GitHub Copilot 的复杂应用程序,它使用类似 GPT 的转换器来执行代码自动完成,这一功能在使用新语言或框架编程或学习编码或自动生成时特别有用样板代码。其他为此使用 AI 模型的产品包括和。后来,在中,我们仔细研究了如何使用 GPT 模型生成高质量的文本。在本章中,我们将结束循环并构建我们自己的类似 GPT 的模型来生成 Python 源代码!我们将生成的模型称为 CodeParrot。原创 2022-11-12 16:26:12 · 1855 阅读 · 8 评论 -
【Transformers】第 9 章 :处理很少或没有标签
有一个问题在每个数据科学家的脑海中根深蒂固,以至于他们通常在新项目开始时问的第一件事是:是否有任何标记数据?通常情况下,答案是“不”或“有一点点”,然后客户期望您团队的精美机器学习模型仍然表现良好。由于在非常小的数据集上训练模型通常不会产生好的结果,一个明显的解决方案是注释更多的数据。但是,这需要时间并且可能非常昂贵,特别是如果每个注释都需要领域专业知识来 验证。幸运的是,有几种方法非常适合处理很少或没有标签的情况!您可能已经熟悉其中的一些,例如零样本或少样本学习。原创 2022-11-11 12:33:31 · 1069 阅读 · 8 评论 -
【Transformers】第 8 章 :使Transformers高效生产
在前面的章节中,您已经了解了如何微调转换器以在各种任务中产生出色的结果。但是,在许多情况下,准确性(或您正在优化的任何指标)是不够的;如果最先进的模型太慢或太大而无法满足应用程序的业务需求,那么它就不是很有用。一个明显的替代方法是训练更快、更紧凑的模型,但模型容量的减少通常伴随着性能的下降。那么,当您需要一个快速、紧凑但高度精确的模型时,您能做些什么呢?在本章中,我们将探讨四种互补技术,可用于加速预测并减少 Transformer 模型的内存占用:知识蒸馏、量化、 修剪和使用开放神经网络交换 (ONNX)原创 2022-11-11 12:27:08 · 610 阅读 · 8 评论 -
【Transformers】第 6 章 :总结
有时,您可能需要总结一份文件,无论是研究文章、财务收益报告还是电子邮件。如果你仔细想想,这需要一系列的能力,例如理解长篇文章,推理内容,以及产生包含原始文档主要主题的流畅文本。此外,准确地总结一篇新闻文章与总结一份法律合同有很大的不同,因此能够做到这一点需要复杂程度的领域概括。由于这些原因,文本摘要对于包括转换器在内的神经语言模型来说是一项艰巨的任务。尽管存在这些挑战,文本摘要为领域专家提供了显着加快其工作流程的前景,并被企业用来浓缩内部知识, 等等。原创 2022-11-10 08:27:58 · 828 阅读 · 8 评论 -
【Transformers】第 5 章 :文本生成
在本章中,我们研究了文本生成,这是一项与我们之前遇到的 NLU 任务非常不同的任务。因此,即使只有 100 分之一或 1000 次的机会,如果我们进行数百次采样,也有很大的机会在某个时候挑选出不太可能的标记——并且在采样时选择这样的标记会严重影响生成文本的质量。不幸的是,没有普遍“最佳”的解码方法。它周围有一个高峰10-8和第二个较小的山峰10-4,随后急剧下降,只有少数令牌出现,概率介于 10-2和10-1. 看这张图,我们可以看到选择最高概率的代币的概率(孤立的柱子在10-1) 是十分之一。原创 2022-11-09 19:15:09 · 1986 阅读 · 9 评论 -
【Transformers】第 4 章 :多语言命名实体识别
到目前为止,我们已经应用了转换器来解决英语语料库上的 NLP 任务——但是当你的文档是用希腊语、斯瓦希里语或克林贡语编写时,你会怎么做?一种方法是在 Hugging Face Hub 中搜索合适的预训练语言模型,并根据手头的任务对其进行微调。然而,这些预训练模型往往只存在于“高资源”语言,如德语、俄语或普通话,其中有大量的网络文本可用于预训练。当您的语料库是多语言时,另一个常见的挑战会出现:在生产中维护多个单语模型对您或您的工程团队来说不会有任何乐趣。幸运的是,有一类多语言转换器可以提供帮助。原创 2022-11-09 08:42:10 · 710 阅读 · 8 评论 -
【Transformers】第 3 章:Transformers剖析
在中,我们看到了如何微调和评估变压器。现在让我们看看它们是如何在幕后工作的。在本章中,我们将探索变压器模型的主要构建块以及如何使用 PyTorch 实现它们。我们还将提供有关如何在 TensorFlow 中执行相同操作的指导。我们将首先专注于构建注意力机制,然后添加使转换器编码器工作所需的点点滴滴。我们还将简要介绍编码器和解码器模块之间的架构差异。在本章结束时,您将能够自己实现一个简单的变压器模型!虽然对于 Transformer 架构的深入技术理解通常不需要。原创 2022-11-09 08:41:54 · 2501 阅读 · 8 评论 -
【Transformers】第 2 章:文本分类
为了热身,让我们检索单个字符串的最后隐藏状态。我们需要做的第一件事是对字符串进行编码并将标记转换为 PyTorch 张量。这可以通过向标记器提供参数来完成,如下所示如我们所见,生成的张量具有形状。现在我们将编码作为张量,最后一步是将它们放在与模型相同的设备上,并按如下方式传递输入在这里,我们使用了上下文管理器来禁用梯度的自动计算。这对于推理很有用,因为它减少了计算的内存占用。根据模型配置,输出可以包含多个对象,例如隐藏状态、损失或注意,它们排列在类似于namedtuplePython 中的 a 的类中。原创 2022-11-08 08:26:49 · 642 阅读 · 9 评论 -
【Transformers】第 1 章 :Hello Transformers
2017 年,谷歌的研究人员发表了一篇论文,提出了一种用于序列建模的新型神经网络架构。被称为,这种架构在机器翻译任务上的表现优于循环神经网络 (RNN),无论是在翻译质量还是培训成本方面。同时,一种称为 ULMFiT 的有效迁移学习方法表明,在非常大且多样化的语料库上训练长短期记忆 (LSTM) 网络可以产生最先进的文本分类器,而标记数据很少。这些进步是当今最著名的两个变压器的催化剂:生成式预训练变压器 (GPT)和变压器的双向编码器表示 (BERT)。原创 2022-11-08 08:26:41 · 727 阅读 · 8 评论 -
【Transformers】第 11 章:注意力可视化和实验跟踪
在本章中,我们将介绍两个不同的技术概念,注意力可视化和实验跟踪,我们将通过exBERT和BertViz等复杂工具来实践它们。这些工具为可解释性和可解释性提供了重要功能。首先,我们将讨论如何利用这些工具将注意力的内部部分可视化。重要的是解释学习到的表示并理解 Transformer 中自注意力头编码的信息。我们将看到某些头部对应于语法或语义的某个方面。其次,我们将学习如何通过记录来跟踪实验,然后使用TensorBoard和权重和偏差( W&B )。这些工具使我们能够有效地托管和跟踪实验结果,例如损失或其他指标原创 2022-11-04 10:04:24 · 6037 阅读 · 6 评论 -
【Transformers】第 10 章:服务 Transformer 模型
您还学习了如何以更高级和更有效的方式为模型提供服务,例如使用 TFX。之后,您学习了 Docker 的基础知识以及如何以 Docker 容器的形式打包您的应用程序。到目前为止,我们已经探索了有关 Transformer 的许多方面,并且您已经学习了如何从头开始训练和使用 Transformer 模型。我们将使用它来负载测试为基于 Transformer 的模型提供服务的三种方法:仅使用 fastAPI、使用 dockerized fastAPI 和使用 fastAPI 的基于 TFX 的服务。原创 2022-11-04 10:03:58 · 657 阅读 · 6 评论 -
【Transformers】第 9 章:跨语言和多语言语言建模
共享标记的原因是共享标记在具有相似标记或子词的语言的情况下提供的标记较少,另一方面,这些标记可以在预训练过程中提供共享语义。对多语言模型的性能微调进行了评估,我们得出的结论是,一些多语言模型可以替代单语言模型,显着地将性能损失降至最低。然而,在如此广泛的语言上进行训练会增加模型的大小,这在 BERT 的情况下是不可避免的。两种语言的句子是相同的。目前,与单语模型相比,mBERT 模型在许多任务中的表现略逊一筹,并且可能无法替代经过良好训练的单语模型,这就是为什么单语模型仍然被广泛使用的原因。原创 2022-11-04 10:03:44 · 1723 阅读 · 6 评论 -
【Transformers】第 8 章:使用高效的 Transformer
到目前为止,您已经学习了如何设计() 架构,以使用转换器实现成功的任务性能。在本章中,您将学习如何使用蒸馏、修剪和量化从经过训练的模型中制作出有效的模型。其次,您还将获得有关高效稀疏转换器的知识,例如 Linformer、BigBird、Performer 等。您将看到它们在各种基准测试中的表现,例如内存与序列长度以及速度与序列长度。您还将看到模型尺寸缩小的实际用途。本章的重要性凸显出来,因为在有限的计算能力下运行大型神经模型变得越来越困难。原创 2022-11-05 07:36:54 · 2045 阅读 · 8 评论 -
【Transformers】第 7 章:文本表示
预训练的 BERT 模型不会产生高效且独立的句子嵌入,因为它们始终需要在端到端的监督设置中进行微调。这是因为我们可以将预训练的 BERT 模型视为一个不可分割的整体,并且语义分布在所有层中,而不仅仅是最后一层。如果没有微调,独立使用其内部表示可能是无效的。处理聚类、主题建模、信息检索或语义搜索等无监督任务也很困难。例如,因为我们必须在聚类任务期间评估许多句子对,这会导致大量计算开销。幸运的是,对原始 BERT 模型进行了许多修改,例如(SBERT),以导出语义上有意义和独立的句子嵌入。原创 2022-11-03 15:20:48 · 1226 阅读 · 10 评论 -
【Transformers】第 6 章:用于标记分类的微调语言模型
举个简单的例子,在给定的文本中,识别每个单词在名词、形容词、副词和动词类别中的作用被认为是 POS。令牌分类类别中的任务是 NER - 将每个令牌识别为实体与否,并识别每个检测到的实体的类型。在本章中,我们将针对以下任务微调 BERT:针对 NER 和 POS 等令牌分类问题微调 BERT,针对 NER 问题微调语言模型,以及将 QA 问题视为开始/停止令牌分类。正如您从前面的输出中看到的那样,在 128 个标记的窗口中,上下文的其余部分在输入 ID 的第二个输出中再次复制。原创 2022-11-03 10:13:02 · 1453 阅读 · 8 评论 -
【Transformers】第 5 章:微调文本分类的语言模型
在本章中,我们将学习如何为文本分类配置预训练模型,以及如何对其进行微调以适应任何文本分类下游任务,例如情感分析或多类分类。我们将使用众所周知的数据集,例如 GLUE,以及我们自己的自定义数据集。我们可以使用回归模型来解决这类问题,其中输出的类型是数字的,而不是分类的。总而言之,我们讨论并进行了使用 Trainer 的微调单句分类、使用本地 PyTorch 没有 Trainer 的情感分类、单句多类分类和微调句对回归。我们还将使用不同的数据集。但是,在本节中,我们将从头开始微调预训练模型,以了解幕后情况。原创 2022-11-03 08:26:27 · 2716 阅读 · 13 评论 -
【Transformers】第 4 章:自回归和其他语言模型
自动编码语言模型”中查看了自动() 语言模型的详细信息,并研究了如何从头开始训练 AE 语言模型。在当前章节中,您将看到() 语言模型的理论细节,并学习如何在您自己的语料库上对它们进行预训练。您将学习如何在您自己的文本上预训练任何语言模型,例如(),并将其用于各种任务,例如()。您将了解 A 的基础知识() 模型并在您自己的() 数据上训练(完成本章后,您将大致了解 AR 语言模型及其在应用程序中的各种用例,例如摘要、释义和机器翻译。技术要求使用 AR 语言模型变压器架构。原创 2022-11-03 08:25:48 · 3136 阅读 · 9 评论 -
【Transformers】第 3 章:自动编码语言模型
在上一章中,我们查看并研究了 HuggingFace 的 Transformer 如何使用典型的 Transformer 模型。到目前为止,所有主题都包括如何使用预定义或预构建的模型,而关于特定模型及其训练的信息较少。在本章中,我们将了解如何从头开始在任何给定语言上训练自动编码语言模型。该培训将包括模型的预培训和特定任务的培训。首先,我们将从有关 BERT 模型及其工作原理的基本知识开始。然后我们将使用一个简单的小型语料库来训练语言模型。之后,我们将看看如何在任何 Keras 模型中使用该模型。原创 2022-11-02 12:53:26 · 784 阅读 · 8 评论 -
【Transformers】第 2 章:主题的实践介绍
到目前为止,我们已经全面了解了使用基于() 的方法的()的演变。我们已经了解了有关 Transformer 及其各自架构的一些基本信息。在本章中,我们将更深入地了解如何使用变压器模型。标记器和模型,例如(),本章将通过动手示例更详细地描述技术细节,包括如何加载标记器/模型和使用社区提供的预训练模型。但在使用任何特定模型之前,我们将了解使用 Anaconda 提供必要环境所需的安装步骤。在安装步骤中,将介绍在 Linux、Windows 和 macOS 等各种操作系统上安装库和程序。() 和(原创 2022-11-02 10:33:12 · 680 阅读 · 12 评论 -
【Transformers】第 1 章:从Bag-of-Words到Transformer
在本章中,我们将讨论() 二十年来发生的变化。我们经历了不同的范式,最终进入了 Transformer 架构的时代。所有范式都帮助我们更好地表示单词和文档以解决问题。分布语义用矢量表示来描述单词或文档的含义,查看文章集合中的分布证据。向量用于解决有监督和无监督管道中的许多问题。对于语言生成问题,n-gram 语言模型多年来一直被用作传统方法。然而,这些传统方法有很多弱点,我们将在本章中讨论这些弱点。我们将进一步讨论经典的() 架构,例如(RNN)、前馈神经网络 ()卷积网络CNN)。原创 2022-11-01 18:06:05 · 786 阅读 · 8 评论