![](https://img-blog.csdnimg.cn/c2a8da84783248be8a9024525b1a320d.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
NLP自然语言处理
文章平均质量分 63
自然语言处理NLP,从基础到实战
AI生成曾小健
"AI生成曾小健2"是该号副号。AI生成式技术,计算机博士;llama3、Baichuan2、Qwen、GLM-4等等项目贡献人(ArtificialZeng)。这个博客的主题主要是AI生成式技术、AI相关技术、机器/深度学习论文或科研前沿、GNN图神经网络、神经网络,包括人工神经网络和生物神经网络,及其大脑演化,智能和认知的产生,通用人工智能;
如果需要看商科/金融相关的请移步CSDN: 量化交易曾小健(金融号)
展开
-
分层注意力变换器(Hierarchical Attention Transformers, HATs)在高效处理长文档分类问题中的应用
这篇论文探讨了分层注意力变换器(Hierarchical Attention Transformers, HATs)在高效处理长文档分类问题中的应用。作者提出了预训练的HAT模型,这些模型首先在段落级别进行编码,然后是跨段落编码,并将其与Longformer模型和部分预训练的HATs进行了比较。原创 2024-04-09 18:48:22 · 239 阅读 · 0 评论 -
大模型开发 - 一文搞懂Encoder-Decoder工作原理
通过计算Decoder的隐藏状态与Encoder输出的每个词的隐藏状态的相似度(Score),进而得到每个词的Attention Weight,再将这些Weight与Encoder的隐藏状态加权求和,生成一个Context Vector。:第一个子层是一个带掩码的多头自注意力子层,第二个子层是一个多头注意力子层(编码器到解码器),第三个子层是一个前馈全连接子层。编码器(Encoder):使用一个循环神经网络(RNN)作为编码器(Encoder),读取输入句子,并将其压缩成一个固定维度的编码。原创 2024-04-06 20:34:29 · 1296 阅读 · 0 评论 -
超详细图解Self-Attention
一年之前,初次接触。当时只觉得模型复杂,步骤繁复,苦读论文多日也没有完全理解其中道理,只是泛泛地记住了一些名词,于其内部机理完全不通,相关公式更是过目便忘。是最核心的思想,最近几日重读论文,有了一些新的感想。由此写下本文与读者共勉。笔者刚开始接触时,最大的不理解的地方就是QKV三个矩阵以及我们常提起的Query查询向量等等,现在究其原因,应当是被高维繁复的矩阵运算难住了,没有真正理解矩阵运算的核心意义。因此,在本文开始之前,笔者首先总结一些基础知识,文中会重新提及这些知识蕴含的思想是怎样体现在模型中的。原创 2023-08-21 17:26:38 · 132 阅读 · 0 评论 -
NLP领域有哪些国际顶级会议?
以产品视角,关注智能问答、对话系统、聊天机器人等领域。已关注84 人赞同了该文章如今在人工智能时代,一项新技术的出现往往能够颠覆某个产品甚至是某个行业,从而诞生新的独角兽公司甚至是行业巨头企业,比如国内近几年计算机视觉领域火热的CV四小龙(商汤、旷视、依图、云从)。而NLP领域,由于技术、商业应用场景等诸多因素的限制,目前还没有出现独角兽级别的公司。但这并不意味着NLP没有发展前景,正如比尔盖茨所言“NLP是人工智能皇冠上的明珠”,是一项非常值得人们all in的事业。原创 2023-07-29 20:16:10 · 1064 阅读 · 0 评论 -
HowNet知网 义原 简介 Sememe,即最基本的、不宜再分割的最小语义单位
OpenHowNet源自在中文世界有巨大影响力的语言知识库——知网(HowNet)。知网的构建秉承还原论思想,即所有词语的含义可以由更小的语义单位构成,而这种语义单位被称为“义原”(Sememe),即最基本的、不宜再分割的最小语义单位。知网构建了包含2000多个义原的精细的语义描述体系,并为十几万个汉语和英语词所代表的概念标注了义原。知网最早由董振东和董强先生在20世纪90年代设计和构建,至今已有近30年历史,期间不断迭代更新。OpenHowNet首次将知网的核心数据开源。原创 2023-07-08 08:57:16 · 642 阅读 · 0 评论 -
NLP:词义分布的空间维度——从文本符号到词向量表征
具体方 法为利用词和上下文的关系,通过算法将原本离散式的词向量嵌入到一个低纬度的连续向量 空间中,最终把词表达成一个固定长度④的短向量。每 个单词可以分别表示成一个维度为八的向量,根据单词在词表中所处的位置来计算,具体如 下:{“never”: [1 0 0 0 0 0 0 0]}、{“trouble”: [0 1 0 0 0 0 0 0]}、…其次是“维度灾难”,随着词表规模的增加(视语料大小,一般会达到十万以 上),词向量的维度也会随之变大,向量中的 0 也会越来越多,这种维度的激增会使得数据。原创 2023-06-16 14:11:46 · 757 阅读 · 0 评论 -
Transformer详解,中文版架构图
2.2.1 “编码器-解码器”架构Seq2Seq 思想就是将网络的输入输出分别看作不同的序列,然后实现序列到序列的映射,其经典实现结构就是“编码器-解码器”框架。编码器-解码器框架如图 2.7 所示。图2.7 编码器-解码器的基本框架在 Seq2Seq 思想应用于自然语言处理之初,编码器解码器主要使用的是 RNN 及其变体。针对输入,编码器会先遍历输入序列,根据循环神经网络的特性,每一层的输入都包含了当前层的输入和前一层的隐藏状态,而。原创 2023-06-15 10:02:31 · 11955 阅读 · 3 评论 -
Multi-headed Self-attention(多头自注意力)机制介绍
在Transformer及BERT模型中用到的Multi-headed Self-attention结构与之略有差异,具体体现在:如果将前文中得到的。以上便是对Transformer及BERT模型中用到的多头自注意力机制的简要介绍,接下来的文章将介绍Transformer及BERT模型。,在Multi-headed Self-attention中,我们会将这里得到的。对于序列中的其他输入也是同样的处理过程,且它们共享这些网络的参数。整体看做一个“头”,则“多头”即指对于特定的。),然后通过线性转换(即不。原创 2023-06-15 09:45:08 · 2416 阅读 · 0 评论 -
Towards Fully 8-bit Integer Inference for the Transformer Model
讲述Transformer的量化,一开头提到Softmax和LayerNorm层如果使用低精度会造成精度损失,所以这些层目前都还是用的高精度(浮点)。因此量化主要着重在MatMul的量化上,如下是在Tensorflow中如何量化MatMul及其数据流动图,使用最大最小值的方案进行量化,发现精度下降大于0.5。Abstract8-bit integer inference, as a promising direction in reducing both the latency and stor原创 2021-08-19 14:13:58 · 284 阅读 · 0 评论 -
torch.nn.MarginRankingLoss文本排序
创建一个标准,用于测量给定输入 x1、x2、两个 1D 小批量或 0D 张量以及标签 1D 小批量或 0D 张量 y(包含 1 或 -1)的损失。如果 y = 1,那么它假定第一个输入的排名应该比第二个输入更高(具有更大的值),反之 y = -1=。小批量中每对样本的损失函数为:对于包含N NN个样本的batch数据 D ( x 1 , x 2 , y ) D(x1,x2,y)D(x1,x2,y), x 1 x1x1, x 2 x2x2是给定的待排序的两个输入,y yy代表真实的标签,属于{ 1 ,原创 2022-06-14 15:33:07 · 753 阅读 · 0 评论 -
tsv文件删除带中文的行,awk命令
awk -F "[\t$]" '{if (substr($2, i, 1) > "\177"){}else{print $0}}' train.tsv >result.tsvawk -F "[\t$]" '{if (substr($2, i, 1) > "\177"){}else{print $0}}' train.tsv >result.tsv原创 2021-11-25 14:42:05 · 432 阅读 · 0 评论 -
BERT 详解
抛弃了传统的RNN和CNN,通过Attention机制将任意位置的两个单词的距离转换成1,有效的解决了NLP中棘手的长期依赖问题。Transformer的结构在NLP领域中已经得到了广泛应用,并且作者已经发布在TensorFlow的tensor2tensor库中。海量的语料的基础上运行自监督学习方法为单词学习一个好的特征表示,所谓自监督学习是指在没有人工标注的数据上运行的监督学习。在以后特定的NLP任务中,我们可以直接使用BERT的特征表示作为该任务的词嵌入特征。所以BERT提供的是一个供其它任务迁原创 2021-11-20 21:43:31 · 6740 阅读 · 0 评论 -
多头注意力比单头好在哪?
多头的本质是多个独立的attention计算,作为一个集成的作用,防止过拟合;从attention is all your need论文中输入序列是完全一样的;相同的Q,K,V,通过线性转换,每个注意力机制函数只负责最终输出序列中一个子空间,即1/8,而且互相独立;...原创 2021-11-20 20:15:32 · 26380 阅读 · 3 评论 -
预训练语言模型,bert,RoFormer-Sim又称SimBERTv2
RoFormer-Sim,又称SimBERTv2,是我们之前发布的SimBERT模型的升级版。原创 2022-06-22 15:57:09 · 806 阅读 · 0 评论 -
Ernie-gram, 显式、完备的 n-gram 掩码语言模型,实现了显式的 n-gram 语义单元知识建模。
从 ERNIE 1.0 起,百度研究者们就在预训练中引入知识增强学习,通过掩码连续的词、phrase、named entity 等语义知识单元,实现更好的预训练学习。本次开源的通用语义理解模型 ERNIE-Gram 更进一步,提出的显式、完备的 n-gram 掩码语言模型,实现了显式的 n-gram 语义单元知识建模。ERNIE 多粒度预训练语义理解技术作为自然语言处理的基本语义单元,更充分的语言粒度学习能帮助模型实现更强的语义理解能力:ERNIE-Gram 多粒度预训练语义理解技术,在预训练 (pre-t原创 2022-06-30 17:09:17 · 736 阅读 · 0 评论 -
RocketQA:通过跨批次负采样(cross-batch negatives)、去噪的强负例采样(denoised hard negative sampling)与数据增强(data augment
传统的开放域问答主要采用级联的检索式问答系统,包含了段落检索、段落排序、答案定位等多个步骤。随着近些年预训练语言模型的发展,研究人员开始探索基于深度语义表示的对偶式检索模型(dual-encoder),希望其能够替代传统的检索式问答系统中级联的检索和排序等模块,与基于机器阅读理解模型的答案定位一起实现“端到端问答”。不同于传统的级联式问答系统,“端到端问答”摒弃了传统系统中繁杂的构件,系统复杂性大大降低,并且其中每个模块(段落检索和答案定位)都是可学习的,这样的设计能够让整个系统实现端到端训练。这意味着问答原创 2022-06-30 10:32:32 · 775 阅读 · 0 评论 -
双塔模型:ERNIE-Gram预训练精排Matching
基于ERNIE-Gram训练Pair-wise模型。Pair-wise 匹配模型适合将文本对相似度作为特征之一输入到上层排序模块进行排序的应用场景。双塔模型,使用ERNIE-Gram预训练模型,使用margin_ranking_loss训练模型。(1)采用 AUC 指标来评估排序模型的排序效果。效果评估环境依赖以下是本项目主要代码结构及说明:样例数据如下:...原创 2022-06-09 14:53:40 · 689 阅读 · 1 评论 -
双塔模型-语义索引策略 [In-batch Negatives]
语义索引(可通俗理解为向量索引)技术是搜索引擎、推荐系统、广告系统在召回阶段的核心技术之一。语义索引模型的目标是:给定输入文本,模型可以从海量候选召回库中快速、准确地召回一批语义相关文本。语义索引模型的效果直接决定了语义相关的物料能否被成功召回进入系统参与上层排序,从基础层面影响整个系统的效果。在召回阶段,最常见的方式是通过双塔模型,学习Document(简写为Doc)的向量表示,对Doc端建立索引,用ANN召回。我们在这种方式的基础上,引入语义索引策略 [In-batch Negatives](https原创 2022-06-09 14:42:36 · 2019 阅读 · 0 评论 -
层次化文本分类Hierarchical Multi-Label Classification Networks
常见的文本分类任务中类目之间通常是正交的,即不存在包含关系。而层次分类则是一类特殊的文本分类任务,即类目之间存在层次结构关系,一般可以表示为树形或者无向图。在这类任务中,一条样本的标签会同时包括层次结构中的父类和子类目。更复杂的情况下,一条样本会同时包含层次结构中多条路径,这类任务则称为层次多标签任务(HMC,Hierarchical Multi-Classification), 也是本文主要讲述的内容。层次多标签分类的常用的方法主要分为两类,Local(局部方法)和global(全部方法),区别在于从原创 2022-05-30 16:54:12 · 2666 阅读 · 0 评论 -
PaddleNLP召回模块:SimCSE
2.2.2 召回模块召回模块需要从千万量级数据中快速召回候选数据。首先需要抽取语料库中文本的 Embedding,然后借助向量搜索引擎实现高效 ANN,从而实现候选集召回。我们针对不同的数据情况推出三种语义索引方案,如下图所示,您可以参照此方案,快速建立语义索引:⭐️无监督数据 ⭐️有监督数据 召回方案 多 无 SimCSE 无 多 In-batch Negatives 有 有 SimCSE+ In-batch Negatives..原创 2022-05-30 14:46:54 · 1003 阅读 · 0 评论 -
SimCSE: Simple Contrastive Learning of Sentence Emb
SimCSE主要解决的是Sentence Embedding的问题,也就是句向量。传统方式中,大部分句向量是通过词向量求和而成(词向量通常是由word2vec等方法训练而成)。显然这样的方法比较简单粗暴,而且直接加和的方式并没有利用到词与词之间的交互信息。取而代之的则是以Bert为基础的各类模型。在Bert中,通过堆叠Transformer encoder,能够捕捉到一个句子中深度双向的词与词之间的信息,并以输出层中的[CLS] token的向量来表示整个句子的向量。(关于Bert的细节问题请移步相关文章)原创 2022-05-30 14:20:10 · 359 阅读 · 0 评论 -
PaddleNLP Taskflow
PaddleNLP TaskflowPaddleNLP Taskflow 介绍 任务清单 用法 查看使用示例 中文分词 词性标注 命名实体识别 文本纠错 句法分析 情感分析 文本相似度 『解语』- 词类知识标注 『解语』- 名词短语标注 生成式问答 智能写诗 开放域对话 FAQ ...原创 2022-01-07 18:25:25 · 1271 阅读 · 0 评论 -
NLP之:百度SKEP
SKEPSKEP是百度研究团队提出的基于情感知识增强的情感预训练算法,此算法采用无监督方法自动挖掘情感知识,然后利用情感知识构建预训练目标,从而让机器学会理解情感语义。SKEP为各类情感分析任务提供统一且强大的情感语义表示。百度研究团队在三个典型情感分析任务,句子级情感分类(Sentence-level Sentiment Classification),评价对象级情感分类(Aspect-level Sentiment Classification)、观点抽取(Opinion Role Labeli原创 2022-01-07 16:59:35 · 1250 阅读 · 0 评论 -
BERT CLS
[CLS]就是classification的意思,可以理解为用于下游的分类任务。主要用于以下两种任务:单文本分类任务:对于文本分类任务,BERT模型在文本前插入一个[CLS]符号,并将该符号对应的输出向量作为整篇文本的语义表示,用于文本分类,如下图所示。可以理解为:与文本中已有的其它字/词相比,这个无明显语义信息的符号会更“公平”地融合文本中各个字/词的语义信息。语句对分类任务:该任务的实际应用场景包括:问答(判断一个问题与一个答案是否匹配)、语句匹配(两句话是否表达同一个意思)等。对于该..原创 2021-12-17 09:40:26 · 1145 阅读 · 0 评论 -
XLNET详解
xlnet作为bert的升级模型,主要在以下三个方面进行了优化采用AR模型替代AE模型,解决mask带来的负面影响 双流注意力机制 引入transformer-xl 排列语言模型PLM在下文中,我将会为大家详细介绍这三个优化点集成Transformer-XL除了上文提到的优化点,作者还将transformer-xl的两个最重要的技术点应用了进来,即相对位置编码与片段循环机制。我们先看下片段循环机制。片段循环机制transformer-xl的提出主要是为了解决超长序列的依赖转载 2021-08-26 17:24:02 · 813 阅读 · 0 评论 -
XLNet 和BERT的区别是什么?
XLNet 和BERT的区别是什么?与AR语言模型不同,BERT被归类为自动编码器(AE)语言模型。AE语言模型的目的是从损坏的输入中重建原始数据。损坏的输入意味着我们使用在训练前阶段将原始token替换为[MASK]。我们的目标是预测into来得到原来的句子。AE语言模型的优点是它可以在向前和向后两个方向上看到上下文。但是AE语言模型也有其不足之处。它在预训练中使用了[MASK],但是这种人为的符号在finetune的时候在实际数据中时没有的,导致了预训练 — finetune..转载 2021-08-26 17:11:20 · 366 阅读 · 0 评论 -
2021-08-26BERT: Pre-training of Deep Bidirectional Transformers forLanguage Understanding
图 1:BERT 的整体预训练和微调程序。 除了输出层,相同的架构用于预训练和微调。 相同的预训练模型参数用于为不同的下游任务初始化模型。 在微调期间,所有参数都被微调。 [CLS] 是在每个输入示例前添加的特殊符号,[SEP] 是特殊的分隔符标记(例如分隔 问题/答案)Figure 1: Overall pre-training and fine-tuning procedures for BERT. Apart from output layers, the same archit...原创 2021-08-26 16:48:45 · 269 阅读 · 0 评论 -
2021-08-25Prompt
简介常规NLP做文本分类时常用Transfer Learning的方式,在预训练bert上加一个分类层,哪个输出节点概率最大则划分到哪一类别。而基于Prompt的MLM文本分类是将文本分类任务转化为MLM( Masked Language Modeling)任务,通过[MASK]位置的输出来判断类别。例如通过文本描述判定天气好坏,类别【好、坏】:常规方式:今天阳光明媚! 【好】基于Prompt的MLM: 天气[MASK],今天阳光明媚!【天气好,今天阳光明媚!】Prompt的设定可以有多种方式原创 2021-08-25 15:14:39 · 613 阅读 · 0 评论 -
Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context
AbstractTransformers have a potential of learning longer-term dependency, but are limited by a fixed-length context in the setting of language modeling. We propose a novel neural architecture Transformer-XL that enables learning dependency beyond a fixed原创 2021-08-24 18:08:22 · 128 阅读 · 0 评论 -
Transformer-XL 2
MotivationTransformer最大的问题在于没有办法建模超过最大长度的序列,例如base bert其支持的序列最大长度是512,超过了该长度的序列需要进行截取,再把截取后的片段分别用bert进行编码,该方法虽然可行,但是存在上下文碎片化的问题,也就是说每个片段是单独建模的,互相之间没有上下文信息,并且,不同的片段位置编码都是从0开始,明显是有问题的。可见Transformer对于较长的序列建模能力有限,如何解决该弊端就该Transformer-XL大显身手了。Transformer-X原创 2021-08-24 16:57:04 · 89 阅读 · 0 评论 -
Transformer-XL、Vanilla Transformer
论文想要解决的问题:如何赋予编码器捕获长距离依赖的能力。目前在自然语言处理领域,Transformer的编码能力超越了RNN,但是对长距离依赖的建模能力仍然不足。在基于LSTM的模型中,为了建模长距离依赖,提出了门控机制和梯度裁剪,目前可以编码的最长距离在200左右。在基于Transformer的模型中,允许词之间直接建立联系【self-attention】,能够更好地捕获长期依赖关系,但是还是有限制。2. Vanilla TransformerVanilla Transformer是Transf原创 2021-08-24 16:32:53 · 1206 阅读 · 0 评论 -
2021-08-24XLNET 语言模型
2 . 2 . 3 XLNET 语言模型在 XLNET 语 言 模型 出 现之 前 , 预训 练模 型可 以 大致分为 以 下两种类型 :自 回 归 语 言 模 型 ( Aut oregre s s i ve Language Mode l , ARLM) 和自 编 码 模 型 ( Aut oenc odi ng Language Mo del , AELM) [ 5 2 ] 。自 回 归 语言模型 是单 向 语言模型 , 其基本思想 为根据 上 文 内 容来预测 下 一 个可能跟随 的 单原创 2021-08-24 14:37:59 · 254 阅读 · 0 评论 -
ELMo ,LM:一串词序列的概率分布probability distribution over sequences of words
语言模型(Language Model),语言模型简单来说就是一串词序列的概率分布。Language model is a probability distribution over sequences of words.GPT与ELMo当成特征的做法不同,OpenAI GPT不需要再重新对任务构建新的模型结构,而是直接在transformer这个语言模型上的最后一层接上softmax作为任务输出层,然后再对这整个模型进行微调。他们额外发现,如果使用语言模型作为辅助任务,能够提升有监督模型的原创 2021-08-24 13:53:59 · 201 阅读 · 0 评论 -
2021-08-24自然语言处理预训练模型的研究综述 - 知网论文
语言模型可以看作是一串词序列的概率分布,因此 在早期,研究人员提出了 N-gram 模型[3] ,它是基于统计 语言模型的算法,但是这种做法只能通过概率统计进行 判断,会使数据出现严重的稀疏性,无法考虑词内部的 关联。 随着深度学习技术的迅速发展,词嵌入正式登上历 史的舞台,Bengio 等人在 2003 年提出 NNLM 模型[4] ,随 后出现了一系列词向量技术(如 Word2Vec[5] 、Glove[6] 、 FastTest[7] 等)为文本提供了一种数值化的表示方法,但 是无法解决一词多义的问题原创 2021-08-24 13:40:58 · 460 阅读 · 0 评论 -
2021-08-24面向自然语言处理的预训练技术研究综述 -知网论文
摘 要近年来,随着深度学习的快速发展,面向自然语言处理领域的预训练技术获得了长足的进步。早期的自然语言处理领 域长期使用 Word2Vec等词向量方法对文本进行编码,这些词向量方法也可看作静态的预训练技术。然而,这种上下文无关的 文本表示给其后的自然语言处理任务带来的提升非常有限,并且无法解决一词多义问题(+OOV)。ELMo提出了一种上下文相关的文 本表示方法,可有效处理多义词问题。其后,GPT和 BERT等预训练语言模型相继被提出,其中 BERT模型在多个典型下游任 务上有了显著的效果提升,极大地推原创 2021-08-24 13:22:45 · 639 阅读 · 0 评论 -
2021-08-24fine-tuning 模型
fine-tuning 模型的三种状态状态一:只预测,不训练。 特点:相对快、简单,针对那些已经训练好,现在要实际对未知数据进行标注的项目,非常高效;状态二:训练,但只训练最后分类层。 特点:fine-tuning的模型最终的分类以及符合要求,现在只是在他们的基础上进行类别降维。状态三:完全训练,分类层+之前卷积层都训练 特点:跟状态二的差异很小,当然状态三比较耗时和需要训练GPU资源,不过非常适合fine-tuning到自己想要的模型里面,预测精度相比状态二也提高不少。2. 微调时候.转载 2021-08-24 10:36:03 · 624 阅读 · 0 评论 -
NLP Prompt范式,两种主要类型:填充文本字符串空白的完形填空(Cloze)prompt,和用于延续字符串前缀的前缀 (Prefix) prompt。
从 2017-2019 年开始,NLP 模型发生了翻天覆地的变化,这种全监督范式发挥的作用越来越小。具体而言,研究重点开始转向预训练、微调范式。在这一范式下,一个具有固定架构的模型通过预训练作为语言模型(LM),用来预测观测到的文本数据的概率。由于训练 LM 所需的原始文本数据需要足够丰富,因此,这些 LM 都是在比较大的数据集上训练完成。之后,通过引入额外的参数,并使用特定任务的目标函数对模型进行微调,将预训练 LM 适应于不同的下游任务。在这种范式下,研究重点转向了目标工程,设计在预训练和微调阶段使用的原创 2021-08-06 14:27:25 · 2988 阅读 · 0 评论 -
PaddlePaddle Transformer encoder 源码解析 v1.7
Transformer的每个Encoder子层(bert_base中包含12个encoder子层)包含 2 个小子层 :Multi-Head Attention Feed Forward(Decoder中还包含Masked Multi-Head Attention)class 有如下几个:PrePostProcessLayer 用于添加残差连接、正则化、dropout PositionwiseFeedForwardLayer 全连接前馈神经网络 MultiHeadAtte原创 2021-07-28 11:55:16 · 242 阅读 · 0 评论