【Pytorch神经网络理论篇】 36 NLP中常见的任务+BERT模型+发展阶段+数据集

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 是一种类似于卷积思想的网络。它通过矩阵相乘,计输入向量与目的输出之间的相似度,进而完成语义的理解。

同学你好!本文章于2021年末编写,获得广泛的好评!


故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现


Pytorch深度学习·理论篇(2023版)目录地址为:


CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录


本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,设计人工智能的各个领域,是经过一年时间打磨的精品专栏!

https://v9999.blog.csdn.net/article/details/127587345


欢迎大家订阅(2023版)理论篇

以下为2021版原文~~~~

103b746101d146cd93357daedb91d512.png



1 NLP发展阶段


深度学习在NLP上有两个阶段:基础的神经网络阶段


1.1 基础神经网络阶段


1.1.1 卷积神经网络


将语言当作图片数据,进行卷积操作。


104a0cad58064d5a982a9c0a420ef8b9.png


1.1.2 循环神经网络


按照语言文本的顺序,用循环神经网络来学习一段连续文本中的语义。


1.1.3 基于注意力机制的神经网络


是一种类似于卷积思想的网络。它通过矩阵相乘,计输入向量与目的输出之间的相似度,进而完成语义的理解。


1.2 BERTology阶段


通过运用以上3种基础模型,不断地搭建出拟合能力越来越强的模型,直到最终出现了BERT模型。


1.2.1 BERT的发展


BERT模型几乎在各种任务上都优于其他模型, 最终演变出多种BERT的预训练模型 :


1.引入BERT模型中双向上下文信息的广义自回归模型XLNet;


2.改进BERT模型训练方式和目标的RoBERTa和SpanBERT模型;


3.结合多任务和知识蒸馏强化 BERT 模型的MT-DNN模型


1.2.2 关于BERT模型的疑问


试图探究BERT模型的原理及其在某些任务中表现出众的真正原因。BERT模型在其出现之后的一个时段内, 成为NLP任务的主流技术思想。这种思想也称为BERT学。


2 NLP常见的任务


NLP可以细分为自然语言理解(Natural Language Understanding, NLU) 与 自然语言生成(Natural Language Generation,NLG) 两种情况。


1cbabe559ab54bee8123c241e3d4afa8.png


2.1 基于文章处理的任务


2.1.1 含义


主要是对文章中的全部文本进行处理,即文本挖掘。该任务的文章为单位,模型会对文章中的全部文本进行处理,得到该篇文章的语义。当得到语义之后,便可以在模型的输出层,按照具体任务输出相应的结果。


2.1.2 基于文章处理任务的细分


  • 序列到类别:如文本分类和情感分析。


  • 同步序列到序列:是指为每个输入位置生成输出,如中文分词、命名实体识别和词性标注。


  • 异步序列到序列:如机器翻译、自动摘要。


2.2 基于句子处理的任务/序列级别任务


主要包括句子分类任务(如情感分类)、句子推断任务(推断两个句子是否同义)及句子生成任务(如回答问题、图像描述)等。


2.2.1 句子分类任务及相关数据集


句子分类任务常用于评论分类、病句检查等场景,常用的数据集如下:


1.SST-2(Stanford Sentiment Treebank):这是一个二分类数据集,目的是判断一个句子(句子来源于人们对一部电影的评价)的情感。


2.CoLA(Corpus of Linguistic Acceptability):这是一个二分类数据集,目的是判断一个英文句子的语法是否正确。


2.2.2 句子推断任务及相关数据集


句子推断任务(又称基于句子对的分类任务)的输入是两个成对的句子,其目的是判断两个句子的意思是蕴含、矛盾的,还是中立的。常用在智能问答,智能客服及多轮对话中。常见数据集如下:


1.MNLI:这是GLUEDatasets数据集中的一个数据集,是一个大规模的、来源众多的数据集,目的是判断两个句子语义之间的关系。


2.QQP(Quora Question Pairs):这是一个二分类数据集,目的是判断两个来自Quora的问题句子在语义上是否是等价的。


3.QNLI(Question Natural Language Inference):这也是一个二分类数据集,每个样本包含两个句子(一个是问题,另一个是答案)。正向样本的答案与问题相对应,负向样本则相反。


4.STS-B(Semantic Textual Similarity Benchmark):这是一个类似回归问题的数据集,给出一对句子,使用1~5的评分评价两者在语义上的相似程度。


5.MRPC(Microsoft Research Paraphrase Corpus)这是一个二分类数据集,句子对来源于对同一条新闻的评论,判断这一对句子在语义上是否相同。


6.RTE(Recognizing Textual Entailment):这是一个二分类数据集,类似于MNLI数据集,但是数据量较少。


7.SWAG(Situations With Adversarial Generations):这是一个问答数据集,给一个陈述句子和4个备选句子,判断前者与后者中的哪一个最有逻辑的连续性,相当于阅读理解问题。


2.2.3 句子生成任务及数据集


句子生成任务:属于类别(实体对象)到序列任务,如文本生成、回答问题和图像描述。


典型数据集如下:


SQuAD数据集的样本为语句对(两个句子)。其中,第一个句子是一段来自某百科的文本,第二个句子是一个问题(问题的答案包含在第一个句子中)。这样的语句对输入模型后,要求模型输出一个短句作为问题的答案。


SQuAD2.0,它整合了现有的SQuAD数据集中可回答的问题和50000多个由公众编写的难以回答的问题,其中那些难以回答的问题与可回答的问题语义相似。它弥补现有数据集中的不足。现有数据集要么只关注可回答的问题,要么使用容易识别的自动生成的不可回答的问题作为数据集。


为了在SQuAD2.0数据集中表现得更好,模型不仅要在可能的情况下回答问题,还要确定什么时候段落的上下文不支持回答。


2.3基于句子中词的处理任务


基于句子中词的处理任务又叫作token级别任务,常用于完形填空(Cloze)、预测句子中某个位置的单词(或实体词)、对句子中的词性进行标注等。


2.3.1 token级别任务与BERT模型


token级别任务也属于BERT模型预训练的任务之一,即完形填空,根据句子中的上下文token,推测出当前位置应当是什么token。


BERT模型预训练时使用了遮蔽语言模型(Masked Language Model,MLM)。该模型可以直接用于解决token级别任务,即在预训练时,将句子中的部分token用[masked]这个特殊的token进行替换,将部分单词遮掩住。该模型的输出就是预测[masked]对应位置的单词。这种训练的好处是不需要人工标注的数据,只需要通过合适的方法,对现有语料库中的句子进行随机的遮掩即可得到可以用来训练的语料,训练好的模型就可以直接使用。


2.3.2 token级别任务与序列级别任务


在某种情况下,序列级别任务也可以拆分成token级别任务来处理。


SQuAD数据集是一个基于句子处理的生成式数据集。这个数据集的特殊性在于最终的答案包含在样本的内容之中,是有范围的,而且是连续分布在内容之中的。


2.3.3 实体词识别任务及常用模型


实体词识别(Named Entity Recognition,NER)任务也称为实体识别、实体分块或实体提取任务。它是信息提取的一个子任务,旨在定位文本中的命名实体,并将命名实体进行分类,如人员、组织、位置、时间表达式、数量、货币值、百分比等。


本质:对句子中的每个token标注标签,然后判断每个token的类别,可以用于快速评估简历、优化搜索引擎算法、优化推荐系统算法等。


常见的实体词识别模型包括:


1.SpaCy模型是一个基于Python的命名实体识别统计系统,它可以将标签分配给连续的令牌组。SpaCy模型提供了一组默认的实体类别,这些类别包括各种命名或数字实体,如公司名称、位置、组织、产品名称等。这些默认的实体类别还可以通过训练的方式进行更新。


2.Stanford NER模型是一个命名实体Recognizer,用Java实现。它提供了一个默认的实体类别,如组织、人员和位置等,可支持多种语言。

目录
相关文章
|
2月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
125 2
|
3月前
|
数据采集 自然语言处理 机器人
如何使用生成器来提高自然语言处理任务的性能?
如何使用生成器来提高自然语言处理任务的性能?
|
1月前
|
人工智能 自然语言处理 前端开发
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
Director 是一个构建视频智能体的 AI 框架,用户可以通过自然语言命令执行复杂的视频任务,如搜索、编辑、合成和生成视频内容。该框架基于 VideoDB 的“视频即数据”基础设施,集成了多个预构建的视频代理和 AI API,支持高度定制化,适用于开发者和创作者。
114 9
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
|
5月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 中的动态计算图:实现灵活的神经网络架构
【8月更文第27天】PyTorch 是一款流行的深度学习框架,它以其灵活性和易用性而闻名。与 TensorFlow 等其他框架相比,PyTorch 最大的特点之一是支持动态计算图。这意味着开发者可以在运行时定义网络结构,这为构建复杂的模型提供了极大的便利。本文将深入探讨 PyTorch 中动态计算图的工作原理,并通过一些示例代码展示如何利用这一特性来构建灵活的神经网络架构。
408 1
|
30天前
|
人工智能 搜索推荐 决策智能
不靠更复杂的策略,仅凭和大模型训练对齐,零样本零经验单LLM调用,成为网络任务智能体新SOTA
近期研究通过调整网络智能体的观察和动作空间,使其与大型语言模型(LLM)的能力对齐,显著提升了基于LLM的网络智能体性能。AgentOccam智能体在WebArena基准上超越了先前方法,成功率提升26.6个点(+161%)。该研究强调了与LLM训练目标一致的重要性,为网络任务自动化提供了新思路,但也指出其性能受限于LLM能力及任务复杂度。论文链接:https://arxiv.org/abs/2410.13825。
59 12
|
1月前
|
机器学习/深度学习 算法 PyTorch
基于Pytorch Gemotric在昇腾上实现GraphSage图神经网络
本文详细介绍了如何在昇腾平台上使用PyTorch实现GraphSage算法,在CiteSeer数据集上进行图神经网络的分类训练。内容涵盖GraphSage的创新点、算法原理、网络架构及实战代码分析,通过采样和聚合方法高效处理大规模图数据。实验结果显示,模型在CiteSeer数据集上的分类准确率达到66.5%。
|
3月前
|
机器学习/深度学习 存储 自然语言处理
从理论到实践:如何使用长短期记忆网络(LSTM)改善自然语言处理任务
【10月更文挑战第7天】随着深度学习技术的发展,循环神经网络(RNNs)及其变体,特别是长短期记忆网络(LSTMs),已经成为处理序列数据的强大工具。在自然语言处理(NLP)领域,LSTM因其能够捕捉文本中的长期依赖关系而变得尤为重要。本文将介绍LSTM的基本原理,并通过具体的代码示例来展示如何在实际的NLP任务中应用LSTM。
310 4
|
3月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
86 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
4月前
|
机器学习/深度学习
小土堆-pytorch-神经网络-损失函数与反向传播_笔记
在使用损失函数时,关键在于匹配输入和输出形状。例如,在L1Loss中,输入形状中的N代表批量大小。以下是具体示例:对于相同形状的输入和目标张量,L1Loss默认计算差值并求平均;此外,均方误差(MSE)也是常用损失函数。实战中,损失函数用于计算模型输出与真实标签间的差距,并通过反向传播更新模型参数。
|
3月前
|
机器学习/深度学习 数据采集 自然语言处理
【NLP自然语言处理】基于PyTorch深度学习框架构建RNN经典案例:构建人名分类器
【NLP自然语言处理】基于PyTorch深度学习框架构建RNN经典案例:构建人名分类器

热门文章

最新文章

相关产品

  • 自然语言处理