随着2017年变压器网络的到来,自然语言处理(NLP)领域发生了根本性的变化。从BERT到XLNet、ALBERT和ELECTRA,巨大的神经网络现在在序列分类、问题回答和命名实体识别等任务的基准测试中获得了前所未有的分数。从文本到预测的管道仍然很复杂,但是像huggingface/transformer和huggingface/tokenizers这样的工具减轻了用户的大部分负担,提供了一个简单的API。本次演讲将重点讨论整个NLP管道,从文本到使用huggingface/tokenizers的令牌,从令牌到使用huggingface/transformer的预测。
大家好,今天我们要谈论的是最先进的MMP的管道,我的名字是安东尼。拥抱的脸,我是一个工程师的主要维护者符,和我的同事Lysandre也是一个工程师和维护者拥抱的脸变形金刚,我们将谈论NLP的管道,从拥抱我们如何使用工具来帮助你,你的反馈对我们很重要,别忘了率和评审会议,所以,在我们开始之前,我想很快引入拥抱的你,从来没有听说过我们,,自从开始当我们试图建立你的最好的朋友对话AI人工智能能够听你和与你谈论任何话题,如果你看过这部电影“她”你知道我在说什么,假设这是一个相当雄心勃勃的目标,但很多拍摄在试图实现它,我们开始开源工具我们沿途建一直很惊讶的收到的社区。bob下载地址
很快,我们把所有的时间都花在这些工具上,日复一日地使它们变得更好,然后我们就有了今天。变形金刚是我们最成功的项目,也是今天NLP最受欢迎的开源库,我们在GitHub上有近3万颗星,1000多篇研究论文提到了它,很多公司每天都bob下载地址在生产中使用它,我们现在正在追求一个新的目标,那就是帮助改进NLP,让每个人都能使用它,我们最近筹集了新一轮的资金来追求这个目标。
我们现在有多个开源项目,可以帮助你在NLPbob下载地址管道的许多不同步骤中工作,我们将向你展示其中的两个,所以今天的菜单将讨论NLP中的迁移学习以及它如何应用于变压器网络,然后我们将深入研究令牌化,然后是变压器模型,现在让我们开始,我的同事Lysander,我们将从迁移学习开始。
——好吧,谢谢你,安东尼,所以我们将看看转移学习,尤其是学习NLP转移,特别是适用于实现,所以在几句话,NLP带着一个巨大的将在2018年的到来变压器结构,所以它抵达2018脉管的变压器和GPT和伯特变压器到达后立即获得的结果在许多不同NLP的任务,所以,首先,我们潜水之前,变形金刚是如何工作的,迁移学习是如何使它们如此高效的,让我们花点时间,快速停顿一下来理解迁移学习到底是什么,以及它与传统机器学习的区别,传统机器学习,你会有多个任务和多个学习系统,我们都需要在特定的任务上学习,所以如果你有三个不同的任务,你就需要三个不同的学习系统,当时并没有真正的多任务系统,你不能同时把精力集中在不同的任务上,这是可行的。
好吧,但是,有些任务实际上可以利用不同任务之间的共享知识。举个例子,如果你在和文本技术打交道,两个不同的任务都来自文本,基本的原则是语言,所以如果你有一个任务理解语言,另一个任务理解语言,你当然可以使用已经获得的知识,并将其用于特定的任务,这正是迁移学习试图做的,所以你有一个或多个源任务,你训练你的学习系统,然后不是你的目标任务,但你的目标测试可能可以使用所需的知识使用这两个任务使用培训和这两个任务线程会得到很好的结果,用更少的数据,所以如何把它应用到NLP,学习顺序转移,这非常类似于我解释说,这是一个在两个步骤,第一步是前培训,第二步是适应或也叫做微调,前培训是一个非常计算密集型步骤,你有很多数据需要大量的计算,基本上,你尝试各种方法,试图把尽可能多的知识在不同的系统中,这些系统的范围可以从字嵌入的,像背或globey,或最近变压器网络,像GPT伯特,这个服务器,一旦你有一个通用模型,你要试着适应不同的任务,为了做到这一点,你需要更少的数据,因为你已经有了一个强大的知识库。
那么这如何应用于变压器网络呢?
变压器网络和几个词是非常非常大的神经网络,它们从几百万个参数发展到数十亿个参数,最大的变压器网络是GPT,它有最多的参数,上周发布的,它有1750亿个可训练的参数,所以有这么多的参数,你实际上有很大的容量,我们可以在非常大的数据集上训练这些非常大的神经网络。
然而,这方面的一个缺点是,它需要大量的计算训练,这就是转移学习真的踢,这是很有趣的地方,因为从一个基本模型,以获得一个通用语言模型中,一个特定于域的语言模型,假设一个文本或语言,但完全文本不可知论者,好吧,你需要成千上万和计算一个非常,非常大的语料库,几天甚至几周的训练,然而,为了达到这个阶段,一旦你有了预训练的语言模型,然后微调它以适应不同的任务实际上是非常容易的你只需要小的数据集,因为大部分知识已经在模型中了,所以你不需要你的基础模型来从整个数据集中了解语言,你完全依赖于之前的训练,只需要对特定的任务进行微调,所以迁移学习在变压器网络这样的大型模型中非常有用,这就是模型共享特别重要的地方,因为我们产生一个预训练是完全不切实际的,它成本很高,而且由于一般目的,它完全与任务无关,所以共享预训练模型非常重要,这样其他用户就可以使用它,并在他们的下游测试或他们自己的数据集上对它进行微调,这就是为什么这是我们感到骄傲的拥抱的脸,我们允许简单的检索和分布的模型完全免费,这样用户可以共享计算,所以现在让我们来看一个更深的转移的内在机制的学习管道,自然语言处理,前培训和微调的变压器结构,所以转移学习管道在NLP是由两个大的步骤中,第一部分是标记方面,安东尼稍后会讲到第二部分是预测方面
所以标记者的目标,不,标记者的目标是得到
一些输入,如序列或句子,转储文本并将其转换为模型可理解的输入。
一旦序列转换为可理解的输入,然后可以喂这些模型可以预测上的所以,培训前一个语言模型是如何工作的,有多种不同的方法来做,但最常见的最好的方法就是通过语言模型,学习预测文本给其他文本,这种方法的一个巨大的优势是,它不需要人工注释,因为之前的培训需要大量的数据,不需要人工注释是一件非常重要的事情,因为当您可以利用语言模型的自监督方面时,您就不必注释数百万个示例。
这对于只有少量数据的语言来说也很有趣,资源少,语言,没有资源的语言,因为这些语言中的这些语言,很难获得有足够注释数据的数据集,来执行预训练然而,获取文本转储足够容易,可以用来获得足够好的预训练模型,让我们看看如何语言建模操作在NLP现在当我们看两个目标,第一个被面具语言建模或传销,也称为亲密的任务,是一种非常古老的语言建模方法,我们要做的是面具的一些输入和问模型来预测相反的是什么面具,我们要让它填补面具,所以在传统的管道在传统的NLP管道,这将看起来像下面的。
你有一个句子,是最先进的自然语言处理的管道,你首先要把它标记化,然后把它转换成标记,然后你必须有这些标记。例如,这里的标记自然被掩盖,它被一个大量的标记取代,然后你要求模型替换那个掩码标记,例如,这里我们要求模型替换它,并给出它的五个最可能的答案,它们是自然,人工机器处理,和语音,在那个上下文中都是有意义的,所以这已经是预先训练好的模型,完成了这个完成。但一开始,当然,这个模型不会做出如此正确的预测,通过对它进行大量的训练,你就会得到一个语音和语言模型。第二个目标是CLM语言模型,这是CLM的目标,所以我们在这里不是屏蔽一些输入,而是希望模型预测下一个标记是什么。这很有趣,因为它实际上训练了模型来进行文本生成,因为它总是试图生成下一个标记,你可以改变它,在最后,它会生成一个已经引入的序列。仅从您首先放弃的上下文生成一个序列,这很有趣,但它只关注左侧的上下文,与我们之前看到的MLM目标相比,因为您屏蔽了一个可以在句子中间的标记,所以您可以访问右侧上下文和左侧上下文。而这里,你只能访问左context。所以通常CLM在下游任务上没有MLM的效果好。但是,它允许文本生成,这是一个非常有用的特性,现在我们让安东尼来演示标记化,这是自然语言处理的一个主要方面。-是的,让我们深入一点关于标记化,现在,我想从快速谈论标记化的作用开始。 So as we saw in NLP, our inputs, the data that we generally processes, basically some raw text, like in this example Jim Henson was a fifth year but our models obviously only work with numbers. So we need to find meaningful way to transform this world text these strings, numbers, that’s what the tokenizers do and there are a lot of different ways to do this, but our goal is generally to find the most meaningful representation, the one that makes the most sense for models and possibly the smallest one, so let’s see some examples of tokenization algorithm and questions we get to ask ourselves with this.
标记的第一种想到的只是基于单词,这是很容易建立一个消息是通常只是几句话,用充分的理由,在这种情况下,我们想单独的世界文本单词和为他们每个人找到一个数值表示,这通常需要分割文本在某种程度上,我们必须选择如何去做,我们想保持标点符号或者分离在家里的话令牌或者另一个角色,使用这种标记器,我们通常会得到一些相当大的词汇表。像dog这样的单词和像dogs这样的单词,它们最终会有不同的表示,同样的情况也适用于run和running,例如,所有这些不同的单词,在ID处得到一个消息,通常是静态的,从0开始,直到我们用来识别每个单词的词汇量的大小,所以我们拥有的单词越多,我们需要看到的ID就越多,词汇量就越大,这也意味着,我们通常需要一些令牌代表任何词并不在我们的词汇量,这就是我们所说的一个词汇的令牌,也被称为一个未知的令牌,现在,我们不喜欢这个令牌,因为这意味着我们不能存在的一些的话我们可能会看到可能会作为输入,我们正在失去信息,这就是我们想避免尽可能多的,所以,降低风险的一个方法的词汇的令牌是一层更深的我说的是性格基础分词器在这种情况下我们现在分手短信字符,最后的一个优势是我们小词汇表或少所以我们有很多词汇标记单词可以由这些人物对我们要问自己,同样,我们想保持空格和标点符号,有一件事是,直观地说,我们在信息方面看到了这种缺乏,因为每个字符单独表示的意思并不多,这对一些语言来说就不是这样,比如汉语,每个字符比拉丁语中包含更多的信息,但在英语中,例如,每个字符本身并没有意思。另一件需要考虑的事情是,通过使用这样的技术,我们的模型最终会处理大量的令牌,这可能会影响上下文携带的大小。
不,我们已经看到了这种标记器的一些好结果,所以考虑一些情况真的很有趣,我们也可以考虑另一种技术,它是建立在我们之前看到的关于单词的技术之上的。
然后作为一个后备,基于字符的标记化当这个词不在词汇表中,但实际上让我们看看比这个更好的东西,我说的是子词标记化,你可能听说过BPE或字节对编码在这个算法最初用于压缩之前,由Philip Gage在1994年介绍,在它被Rico Sennrich在2016年应用到NLP之前,带子词单元的稀有词神经机器翻译,该算法带来了一些非常有趣的改进。
BPE的想法是建立一个字母组成的unicode字符将作为基础词汇,然后我们开始构建新的最常见的双令牌对大多数,我们发现原来的语料库,或者举个例子,在英语中,字母T和H经常见面所以他们最终被合并在一个新的令牌,后来,我们可能会看到,实际上是经常看到下一个字母E,所以emoji令牌,然后继续建立越来越多的标记,直到一些目标,看看结果,因为我们从字符开始,建立到单词通常当一个单词不属于词汇表时,我们可以使用多个标记来表示它,在这个例子中,你可以看到标记化可以通过token和ization来表示。
同样会申请标准化例如,可以分裂成标准,所以这些子句进行最终也有很多意义和空间效率,我们可以有很好的报道也相对较小的词汇表和鲜为人知的令牌,也有明显的技术像BPE字节水平是非常有趣的它与GPT-2介绍了开放的AI和字节用作基础字母代替unicode字符,这意味着最初的词汇表适合256个不同的字符,这是由可以拥有的值的数量,是的,而不是10万个,超过10万个不同的建筑字符,所以也有单词和平,这是一种子单词标记化的形式,两个实际上非常类似于BPE工作的方式谷歌在模型中使用,如伯特,或者最近的unigram通常在句子中实现,这带来了一些改进,通过改进我们合并令牌的方式来拥有一个BPE,所以现在,知道了所有这些,我现在可以告诉你为什么我们决定构建一个令牌化库以及它是如何工作的,所以第一个原因只是为了性能,我们的模型通常使用PyTorch、张量流甚至onyx等框架运行。所有这些都提供了出色的表现。标记化从发生到定价,最终非常缓慢,有时是瓶颈,在NFT管道中,所以在实际训练模型之前必须预处理你的整个数据集,因为这意味着每当你想改变一些东西时,你必须重新开始,你会发现它真的很麻烦,所以我们肯定想改善这种体验,并提供我们甚至没有注意到的实时优化,这也是一个很好的场合,有各种各样的标记,在一个屋檐下的原因是一个共享的API,这使得实验方式更容易切换标记地铁,我们希望它很容易共享你的工作和访问其他人的工作,最后,我们也想让它很容易训练和标记器,例如,在新的语言,或新的数据集,或其他什么。
现在,让我们来看看我们是怎么做这个Tokenizer的,它实际上是一个管道,输入文本通过这个管道,最后,我们得到了一些东西,准备馈送给模型第一步是标准化,这是我们转换输入的地方,通常这是我们处理空白的地方,例如,所有小写的语言,不好意思,我们能从头开始吗?
好的,第一步是归一化,这就是我们
变换我们的输入,一般来说,这就是我们处理空白的地方,例如,全部小写,所有的东西,也许应用一些唯一的归一化,然后我们有预标记化。
在这一步中,我们要注意预先分割输入,在大多数情况下,这意味着简单地解释空白,例如,使用空白的语言,但我们可以是任何对我们特定用例有意义的东西,一旦所有这些都完成了,我们就准备应用实际的标记化算法,这就是BPE unigram单词级别或任何其他标记化算法发挥魔力的地方。最后一步是后期处理。
这里我们有一些特殊的标记比如CLS和set in birth,我们负责截断输入使其符合模型,等等。
现在让我们看到一些代码和如何构建自定义编译器,这第一个例子展示了如何构建一个字节级别BPE如你所见,我们首先构建和基于空BPE首先标记记号赋予器模型,我们附上一个标准化者在这种情况下,这是一个经典的unicode和如果正常化我们也附上我们的祷告记号赋予器在这里这是一个重要的事件将加速世界的照顾文本的话,如果可能,并将输入转换为正确的表示,这样我们就可以处理文本字节级别,这也意味着,我们现在需要一个解码器,这种人会照顾改变着令牌回读的unicode字符当我们想从IDs解码回文本,就是这样,我们的记号赋予器准备好了,我们现在可以训练的教练,训练,我们指定目标词汇量的大小,以及我们计划使用的空间令牌,我们给它一堆成堆,让它工作,训练步骤实际上火车模型训练完成后,它只是意味着我们的BPE模型不再空现在有一个词汇,我也想向你们展示记号赋予器的另一个例子,在这种情况下,一个字就像使用的一个字节,就像之前,这次我们初始化记号赋予器是一个空字,这一次我们使用序列作为主要标准化者,这是一个实用程序辅助,我们可以使用它来将多个规范化,在这种情况下,我们想带每个屏幕我们收到作为输入小写的一切,我们使用一个简单的空白pre-tokenizer用空白分隔和标点符号作为单独的令牌,我们设置解码器,在这种情况下,我们需要它来解码IDs虽然治疗两方面,这基本上是工作再一次,我们准备好了,不过,这里有一个最后一步是设置后置处理程序,如果你还记得,我们描述了管道。
这是实际添加空间标记的部分。现在我们在训练结束后定义它因为我们需要用一个令牌和一个令牌ID来初始化它用于set和CLS令牌,为了能够使用令牌ID方法和我们可以做的标记器,只有在它被染色之后所以现在在这些例子之后我们的令牌已经准备好使用了,如果你想,他还可以通过启用截断来指定最大值,这将确保模态的输入总是正确的大小,你也可以启用填充,例如,这样我们编码为批量的所有序列都具有相同的长度,在这种情况下,我们指定了我们想要使用的标记和ID。
我们可以说,这些tokenize我们之前定义的所有东西都将保存在这个文件中,规范化器,标记器,填充选项,所有的东西,这意味着无论何时我们想要使用这个标记器,我们只需要一行代码就可以从文件中利用它,准备好使用它。如果您想尝试另一个标记器,您的代码不会改变,只需从每个新的加载标记器更改文件。
现在,当然,每个记号赋予器可以用于编码输入文本,我们实际上支持多种类型的输入,我们可以编码单一序列,但也对序列,例如,如果你想做问答,你会编码序列的上下文作为一对问题您也可以批序列,编码两个手指和两个序列,甚至把这些相关的,我们甚至买前标记化的输入,例如,如果你想做一些实体提取,你的数据集是近距离数据。
在所有这些情况下,当你编码并返回编码时,这个编码包含了你可能需要的所有场景,比如id,当然,还有生成的标记如果你想检查它是什么样子的,这个例子向你展示了字节级的标记化是什么样子的。因为它的奇怪字符来自特征标记,这个字符实际上呈现了一个空白的白色级别,我们也为每个标记提供偏移量,这样你就可以在需要的时候从原始输入中提取文本,这在问题回答的情况下是非常有用的,例如,当你想从原始文本中提取答案时,可能会突出它,你还可以找到特殊的标记来掩盖注意力,掩码它们和很多其他的东西,它也让你发现,所以,是的,尝试一下,它就像使用pip安装标记或NPM,安装标记节点一样简单,我们将继续为新语言添加绑定,现在我让Lysander给你们讲讲变形器。
-好的,谢谢你安东尼,变形金刚是自然语言处理管道的另一个重要组成部分,因为它在标记化之后负责预测。
因此,自2018年以来,第一个变压器架构的到来,变压器的数量确实出现了爆炸式增长,仅举几个词,上周发布了GPT-3,在此之前,谷歌发布了Mina,过去几个月还有其他几个变压器架构,每个变压器架构都与之前的略有不同。例如,Bert使用词块标记化训练了掩码语言建模,并进行了下句预测。GPT-2使用字节级BPE标记化,并使用他们的因果语言模型进行训练,这是每个单独的变压器模型的情况,尽管它们非常相似,它们有一些内在的怪处和一些稍微不同的API,我们在变压器中尝试做的是提供所有这些变压器架构,使其在完全相同的API下非常简单地可用。虽然这样做我们试图使其能够访问尽可能的大多数用户,鉴于我们第一次开始在PyTorch只有提供我们的模型,现在他们所有可用PyTorch和TensorFlow自去年9月以来,自从上个月,我们前两个模型伯特和罗伯塔从谷歌在杰克的框架中,所有这些模型训练和在CPU上运行,GPU和TPU每个框架具体的优化,其XLA TensorFlow TorchScript PyTorch,和其他人,比如半精度和半精度,为了理解一个推理脚本使用变形金刚会是什么样子,它利用了两个抽象类,一个是预训练的标记器,它完全基于安东尼刚刚给你们介绍的拥抱脸标记器,另一个是预训练的模型,它是一个抽象类,可以压缩模型。执政官的记号赋予器和前训练模型提供相同的API,哪个模型你使用哪个模型记号赋予器对您选择使用,例如,如果您想要使用字节和写一个脚本,一个推理脚本,它将简单简单,只是改变单词GPT-2完全改变变压器,所以与变压器我们试图做的是,我们公开主机前训练记号赋予器词汇表和模型权重模型中心,这允许轻松地共享和使用预训练的模型和标记器,所以现在,我们有超过1600个模型标记器对,您可以非常简单地使用,如这里的解码示例所示,只使用预训练的标记器和预训练的模型。
另一个在变形金刚中可用的抽象是管道抽象,它处理标记化和预测,它使用合理的默认值,这意味着你可以得到最先进的结果和最先进的预测,而不需要调整设置,然而,它们仍然是非常可定制的,这意味着如果你想用英语以外的语言使用管道,您完全可以输入您想要使用的预训练模型和标记器对,它将自动从模型中心下载并使用您提到的对。让我们来看看几个用例,这就是它真正有趣的地方,这里我们有情感分析,这是一种序列分类,在接下来的三个例子中,我们将使用管道抽象,在最后一个例子中,我们将看看它在没有管道阻塞的情况下是什么样子,所以只使用变量,标记器和模型来看看管道内部到底发生了什么。举个例子,对于管道来说,情感分类非常简单,你可以先导入管道,然后用你想要完成的任务初始化它。这是情感分析,你可以称这个对象为NLP,你想要根据情感的积极或消极进行分类的序列?所以NLP“我恨你”的结果是一个负面标签,得分为99.9%,而NLP“我爱你”的结果是一个正面标签,得分为99.9%。现在我们的下一个任务是问题回答我觉得非常不可思议自然语言处理中的问题回答任务是给定一个上下文给定一个上下文和一个问题,它从上下文中提取一个答案来给出问题的答案,所以这里你会像之前的幻灯片一样用任务问题回答初始化管道然后定义一个上下文在这种情况下,我会大声读出来,所以提取性问答就是从给定的问题中提取答案的任务?问题回答数据集的一个例子是废弃数据集,它完全基于该任务。如果你想调整蹲任务模型,您可以利用人类的阵容,气脚本,然后你所说的NLP变量与一个问题,我刚读的上下文,例如,NLP是什么问答中提取给定的上下文,它返回一个结果与分数的开始和结束位置的答案在这种情况下,从教科书中提取答案的任务问题,这是完全正确的,第二个问题, what is a good example of a question answering data set? The answer is what data set which is correct as well. So for causal language modeling or text generation, which is the same thing as we’ve seen previously, and you will first initialize the pipeline as we’ve done previously with the text generation string, and then create a sequence that you would like to be completed so for example here the spark will say AI summit. We want the model to complete the sentence following that initial context, and so we do NLP sequence which results in the following generated text the spark will say AI summit was a special event held in January 2016 to celebrate the emergence of a major and enduring innovation, the spark plus the event open with a keynote by Dr. Stephen Hawking, creator of AI, although it still has many of et cetera. So you can see here that the text is syntactically coherent, even though it’s factually incorrect, right now is a an
在不依赖管道阻塞的情况下使用标记器和模型的例子,这里,我们要做序列分类,同样类似于情感分析,但我们要做一个不同的任务。正如您在代码示例中所看到的,我们正在加载标记器和模型检查点bert-base case来微调MRPC bert-base case意味着它是原始的bert base,其中包含由谷歌发布的案例词汇表,当时它是bert。最后,MRPC意味着我们在MRPC测试的检查点中找到,MRPC是微软研究院的意译语料库,它是一个数据集,它试图识别两个序列或两个句子何时是彼此的意译,所以这里我们从检查点初始化标记器和模型,然后当你找到
我们定义了三个序列,第一个是“拥抱脸”公司总部设在纽约,第二个是“苹果对健康特别有害”最后一个是“拥抱脸”公司总部设在曼哈顿。前10个序列完全不相关。所以肯定不是对彼此的意译,但是,第一个和最后一个序列实际上意思是一样的,所以它们可能不是意译,但它们彼此非常非常相似,所以我们希望我们的模型预测第一个和最后一个序列是意译,所以我们定义我们现在使用标记器来编码序列对,所以它
基本上是用模型的特殊标记将两个序列组合成一对,并构建张量,然后模型可以使用它来输出预测,这就是为什么我们有返回张量等于T的原因,这意味着我们想要返回张量,这里有两个包含PyTorch张量的字典,模型将使用它们来进行正确的预测,现在我们展开
释义词典和非释义词典在模型中分别得到第一个结果和第一个返回的模型。由于模型将返回三个输出,其中包含许多关于如何计算预测的不同数据,因此我们只想要第一个结果,即分类级别,因此意译分类块和非意译短语规范块。
现在,我们只是通过这些结果通过softmax去确保我们的结果在0和1之间的比例,我们可以做一个概率或那些我们打印结果,我们可以看到转述的结果应该是第一个和最后一个序列,所以结果不是转述10%和短语90%,却发现有两个序列非常相似,和第二种情况不应该被改写。这不是94%的意译,这是6%的意译。所以这里要确定哪个意译它确定了第一个和第二个序列不是彼此的意译。因此,使用模型和标记器仍然是非常容易和无缝的,因为我们提供了这些高级方法,允许将输入转换为更好的转换序列到模型输入非常简单,但变形金刚不只是这样
有限的推理,它也可以火车模型,我们提供相当多的例子脚本在我们图书馆TensorFlow和PyTorch几个任务都列在这里命名实体识别、序列分类、问题回答语言建模、微调和从头开始训练之前如果他想做一个语言模型和多个选择所有这些训练有素的TPU CPU和GPU,以及这个,因为我们的模型只是梗概,PyTorch和TensorFlow,你可以将它与各自的训练框架一起使用,例如,在PyTorch中,你可以将它与一个简单的训练组或PyTorch lightning一起使用,然后是TensorFlow,你可以将它与一个karass fit方法或TensorFlow估计器一起使用,我们还提供了一个训练器类,可以简单地用python重写,只是为了构建一个非常简单的针对NLP的训练,所以在这次演讲中,我们提出了变压器的表面,它提供了许多不同的可能性,仅举几个过去几周添加的例子,我们添加了ELECTRA模型和ELECTRA预训练方法,我们添加了非常高效的改革者,非常大的序列的Longformer,用于翻译和摘要的编码器-解码器架构,所以现在我们已经看到了完整的NLP管道的标记化和预测方面,但这真的是所有的东西吗,但这真的是涵盖NLP管道的所有东西吗,好吧,不是,因为仍然有数据部分和指标部分需要涵盖,因为只是获取数据并以内存友好的方式将数据提供给标记器,然后计算指标是两个不同的任务,好吧,我们创建了拥抱脸NLP库,这样它就提供了内存映射
自动计算度量,以及NLP
库将很快建立在Spark之上,Kersey提供了100多个不同的数据集,可以非常简单地由标记器和变压器块使用。以上就是目前使用hug Face和工具进行自然语言处理的全部流程,非常感谢您收听我们的演讲,您的反馈对我们非常重要。所以请不要忘记对课程进行评分和复习。
拥抱的脸
Lysandre Debut是hug Face的机器学习工程师,hug Face是一家领先的NLP初创公司,总部位于纽约和巴黎,从知名投资者那里筹集了超过2000万美元。该公司创建了发展最快的开源库transformer,使数千家公司能够利用自然语言处理,Lysandre是该库的维护者和核心贡献者。
拥抱的脸
安东尼·莫伊(Anthony Moi)是领先的NLP初创公司hug Face的技术主管,该公司总部位于纽约和巴黎,从知名投资者那里筹集了超过2000万美元。该公司创建了应用于自然语言处理的深度学习工具,即huggingface/transformer和huggingface/tokenizers。Ahthony是huggingface/tokenizers的主要维护者和贡献者