六六导航站AI教程资讯 → 英伟达NLP公开课第1期:使用NeMo快速入门NLP、实现机器翻译任务,英伟达专家实战讲解,内附代码

英伟达NLP公开课第1期:使用NeMo快速入门NLP、实现机器翻译任务,英伟达专家实战讲解,内附代码

2025-07-21 11:54:17      小编:六六导航站      

对话式AI是当前AI领域最火热的细分领域之一,其中自然语言处理(NLP)是最为困难的问题之一。

那么,零基础、对会话式AI感兴趣的小伙伴们如何快速入门 NLP领域?

近日,英伟达x量子位发起的NLP公开课上,英伟达开发者社区经理李奕澎老师分享了【使用NeMo快速入门自然语言处理】,介绍了NLP相关理论知识,并通过代码演示讲解了如何使用NeMo方便地调用NLP函数库及NLP预训练模型,快速完成NLP各类子任务的应用。

直播回放:

以下为分享内容整理,文末附课程PPT&代码下载链接。

大家好,我是英伟达开发者社区经理李奕澎。今天的课程中,我将首先对自然语言处理(NLP)做出介绍,包括NLP的定义、发展历程、应用场景;然后带大家了解NLP的工作流程及原理;接下来将详细阐述从Word2Vec到Attention注意力机制、从Transformer到BERT模型的内部原理;最后,将通过代码实战介绍如何在NeMo中结合BERT模型,快速实现命名实体识别、机器翻译等任务。

自然语言处理(NLP)是对话式AI场景中的一个子任务。

对话式AI本质上是一个人机交互的问题,它让机器能够听懂人说的话、看懂人写的文字,同时机器写出人看得懂的句子、说出人听得懂的话。机器能够“听”的过程,是由自动语音识别(ASR)技术实现的,机器能够“说”的过程,是由语音合成(TTS)技术实现的。

本次课程中,我们将把重心放在如何让机器去理解、懂得人类的语言这一过程,即对话式AI的重中之重—自然语言处理(NLP)技术。

上图是维基百科对NLP的定义。简单来说,NLP是一个语言学、计算机科学、人工智能的交叉学科,其目标是实现人与机器之间有关语义理解方面的有效沟通。

NLP主要经历了5个重要的发展阶段。首先是基础阶段,在1950年从图灵测试发问“机器是否能够思考”开始,研究者就根据乔姆斯基语法,基于规则实现了第一个句法分析器。

1980年,由于基于规则系统的研究不断的发展,第一个基于大量的手写规则的自动问答系统就诞生了。

1990年,随着统计学习方法开始兴起,结合语料库的建设和大量机器学习算法不断的创新和迭代,革命性的应用相继出现。

到了2010年,随着深度学习的崛起、神经网络的复兴,包括文字表示学习、端到端设计等思想的进步,让NLP的应用在效果上得以进一步的提升。

此后,随着2013年Word2Vec算法的出现、2018年划时代的BERT模型的诞生,以及从BERT延伸出来的一系列更优秀的算法,NLP进入黄金时代,在工业界的应用领域、实用性和效果得到了大大的提升,实现了落地和产业化。

NLP的应用领域非常之多,比如文本检索、文本摘要、机器翻译、问答系统、文本分类/情感分析、对话系统、信息抽取、文本聚类、序列标注、知识图谱等,上图介绍了在不同领域的具体应用。

一般来说,当我们拿到一个NLP的项目,首先需要做的是数据预处理,尤其是文本数据预处理。数据的来源比较广泛,可以通过爬虫、开源数据集、各种合作渠道等获得原始的文本数据;我们需要对这些数据进行分词、清洗、标准化等预处理工作。

接下来,我们要让计算机认识这些文本,也就是文本向量化,把人类可读的文字转换成计算机可以认识的、数字化的过程。可以通过tf-idf、Word2Vec、Elmo、BERT等算法提取到文本的词向量。

最后再根据相似度计算、分类算法进行建模,训练模型,并进行推理测试、模型评估、应用部署等。

对于其实现原理,比较难理解的是“文本向量化”这一部分,我重点聊一下。俗话说“物以类聚、人以群分”,同样的,对文本进行向量化之后,能够发现属性相近的单词,在向量空间的分布上更加接近。

那么这些单词是怎么实现向量化的?

计算机只认识二进制的数据,因此我们需要给语料库中的每一个单词进行编码,从而让计算机可以认识不同的单词,并且进行相关的计算。

我们可以采用Onehot编码,如上图左侧,apple的第一维是1其它是0,bag的第二维是1其它是0,以此类推。但它有一些缺点,一是当语料库非常庞大时,比如100万个单词,这将导致每个单词都需要表示成100万维的向量,这种向量是很稀疏的,不利于计算。二是Onehot编码无法表达相似的单词之间的相似长度,比如说英文单词beautiful和pretty,二者意思相近,但是无法通过Onehot编码的方式表达出来。

为了解决这一问题,我们将Onehot编码作为输入,通过Word2Vec算法对它进行降维压缩,生成更加稠密的词向量,并投射到向量空间中。这样,表示动作的动词run和jump之间的向量位置会比较接近,dog、rabbit、cat等表述动物的名词会离得比较近。

也就是说,通过Word2Vec生成稠密的词向量后,便于我们计算单词间的相似度。

可以说,Word2Vec的出现是NLP领域中非常重要的一个节点,下面简单介绍下。

Word2Vec是连续词袋模型(CBOW)和跳字模型(Skip-Gram)两种算法的结合。

CBOW模型的主要思想是用周围的词、即上下文来预测中间词。比如上图左半部分,首先以pineapples、are、and、yellow这几个词的Onehot编码作为输入,与初始化的权重矩阵进行矩阵相乘,得到n维的向量;然后进行加权平均,把它作为隐藏层的向量h;再用向量h和另外一个初始化的权重矩阵进行矩阵相乘,最后再经过激活函数的处理,就可以得到一个v维的向量y。向量y当中的每一个元素代表了它相对应的每一个单词的概率分布,其中概率最大的元素所指的单词就是我们想要预测的中间词。

而Skip-Gram模型是通过中间词来预测上下文。如上图右半部分,首先是将spikey这个词的Onehot编码作为输入,与初始化的权重矩阵进行矩阵相乘,得到隐藏层的向量h;然后将h与每一个输出单元的初始化权重矩阵进行矩阵相乘,就可以得到输出词及相对的概率。

CBOW与Skip-Gram相结合就是Word2Vec算法,但这种算法也存在一定问题,比如无法解决一词多义的问题,也就是对上下文语义关系的理解还不够深入。

为了解决一词多义的问题,一些更先进的算法,如ELMO、BERT、GPT等算法就相继出现了。

BERT和GPT都是基于Transformer的结构,而Transformer的核心是注意力机制。

举个例子,人类

  • 猜你喜欢
  • 相关AI应用
  • 精选推荐