1.AI - NLP - 解析npy/npz文件 Java SDK
2.分享10篇最新NLP顶级论文,文文章有研究竟提出:给大型语言模型(LLM)增加水印
3.NLP预训练模型3 -- 预训练任务优化(ERNIE、章生SpanBERT等)
4.基于梯度的成源NLP对抗攻击方法
5.基于PaddleNLP搭建评论观点抽取和属性级情感分析系统
6.信息抽取UIE——基于prompt的信息抽取模型(附源码)
AI - NLP - 解析npy/npz文件 Java SDK
在NumPy中,提供了多种文件操作函数,生成允许用户快速存取nump数组,源码使得Python环境的文文章vs省份源码使用极为便捷。然而,章生如何在Java环境中读取这些文件?此Java SDK旨在演示如何读取保存在npz和npy文件中的成源Python NumPy数组。
SDK提供了名为NpyNpzExample的生成功能示例。运行此示例后,源码命令行应显示以下信息,文文章表示操作成功完成。章生
NumPy提供了多种文件操作函数,成源用于对nump数组进行存取,生成操作简便高效。源码本节将介绍如何生成和读取npz、npy文件。
使用**np.save()**函数,可以将一个np.array()数组存储为npy文件。
若需存储多个数组,**np.savez()**函数则更为适用。此函数的第一个参数是文件名,随后的参数为待保存的数组。若使用关键字参数为数组命名,非关键字参数传递的数组将自动命名为arr_0, arr_1, 等。
欲了解更多详情,请访问官网获取更多资源。
对于开源爱好者,Git仓库提供了项目源代码,欢迎访问以下链接进行探索:Git链接
分享篇最新NLP顶级论文,有研究竟提出:给大型语言模型(LLM)增加水印
新整理的最新论文又又来了,今天继续分享十篇今年最新NLP顶级论文,其中主要包括模型水印添加、状态空间模型在语言建模中的应用、指令元学习、大型模型训练效率提升、大模型到小模型推理能力转移、大模型简化、对话模型合规检测等。
模型添加水印:
大型语言模型 (LLM) 如 ChatGPT 可以编写文档、创建可执行代码和回答问题,通常具有类似人类的能力。然而,这些系统被用于恶意目的的风险也越来越大,因此检测和审核机器生成文本的使用能力变得关键。本文提出了「一个为专有语言模型加水印的框架」,以减轻潜在的危害。该水印对于人类是不可见,但可以通过算法检测的方式嵌入到生成的文本中,对文本质量的影响可以忽略不计,并且可以在不访问模型 API 或参数的情况下使用开源算法进行检测。
状态空间模型:
本文研究了「状态空间模型(SSM)在语言建模中的应用」,并将其性能与基于Attention的模型进行比较。作者发现,SSM在回调序列较早的nat穿透 java源码Token以及在整个序列中做Token对比的时候存在困难。为解决这两个问题,他们提出了一种新的SSM层,称为H3,其在语言合成上与Attention模型相匹配,并接近于Transformer在OpenWebText上的性能。他们还提出了一种名为FlashConv的方法,提高了SSM在当前硬件上的训练效率,同时也让它们可以扩展到更长的序列。
指令元学习:
本文提出了一个「应用于指令元学习(instruction meta-learning)的大型基准」,该基准将8个现有基准的任务类别合并,总计包含了个自然语言处理(NLP)任务。作者评估了不同决策对性能的影响,例如:指令调整基准的规模和多样性、不同任务采样策略、有无示范的微调、使用特定数据集对推理和对话进行训练以及微调目标等。他们使用该基准来训练两个经过指令调指OPT的版本(为OPT-IML B和OPT-IML B),结果显示,这两个版本在四个不同的评估基准上表现出更好的泛化能力,优于普通的OPT模型。
训练效率提升:
本文提出了「一种名为 Cuation in Training (CiT) 的方法,旨在提高大型视觉语言模型的训练效率」,以方便更多机构的进行使用。CiT 自动选择高质量的训练数据来加速对比图文训练,并且不需要离线数据过滤管道,从而允许更广泛的数据源。该算法由两个循环组成:一个管理训练数据的外循环和一个使用管理的训练数据的内循环,这两个循环由文本编码器进行连接。 CiT 将元数据用于感兴趣的任务,例如类名和大量图像文本对,通过测量文本嵌入和元数据嵌入的相似性来选择相关的训练数据。实验表明,「CiT 可以显着加快训练速度,尤其是当原始数据量很大时」。
从大模型到小模型:
本文探索了「一种通过知识蒸馏将推理能力从大型语言模型转移到小型模型的方法」。作者指出,利用较大的“教师”模型的输出微调较小的“学生”模型可以提高一系列推理任务的性能,例如算术、常识和符号推理。论文中的实验表明,这种方法可以显着提高任务性能,例如,当在 PaLM-B 生成的思维链上进行微调时,将名为 GSM8K 的数据集上的较小模型的准确性从 8.% 提高到 .%。本文探索了「一种通过微调将推理能力从大型语言模型转移到较小模型的方法」并提出了“Fine-tune-CoT”,这是一种利用超大型语言模型(例如 GPT-3)的能力来生成推理样本并教授较小模型的方法。
大模型简化:
本文提出了「一种名为 SparseGPT 的新型模型简化方法」,它能够将大型生成预训练 Transformer (GPT) 模型中的权重数量至少减少%,并且无需进行任何再训练,并且精度损失最小。作者通过将 SparseGPT 应用于最大的开源模型 OPT-B 和 BLOOM-B ,在几乎没有增加复杂度的情况下,模型权重数量减少了 % 。该方法不仅还与权重量化方法兼容,简易个人网页源码并且可以推广到其他模式。
模型压缩对并行性的影响:
针对大规模Transformer 模型,本文「研究了不同模型压缩方法对模型并行性的有效性」。作者在当前主要流行的 Transformer 训练框架上使用三种类型的压缩算法进行了实证研究:基于修剪的、基于学习的和基于量化的。在 多个设置和 8 个流行数据集上评估这些方法,同时考虑了不同的超参数、硬件以及微调和预训练阶段。该论文提供了模型并行性和数据并行性之间差异的见解,并为模型并行性压缩算法的未来发展提供了建议。
对话模型合规发布判定:
本文工作「为从业者提供了一个框架,来判定end-to-end神经对话Agent的发布是否合规」。作者出发点是:对话式 AI 领域的最新进展以及从互联网上发布的基于大型数据集训练的模型可能产生的潜在危害。他们调查了最近的相关研究,强调了价值观、潜在的积极影响和潜在的危害之间的紧张关系。他们提出了一个基于价值敏感设计原则的框架,以帮助从业者权衡利弊,并就这些模型的发布做出符合规范的决策。
推荐阅读:
- [1] NLP自然语言处理:生成式人工智能(Generative AI)是 “未来” 还是 “现在” ?
- [2] 「自然语言处理(NLP)」 你必须要知道的 “ 十二个国际顶级会议 ” !
- [3] 年!自然语言处理 大预训练模型
- [4] NLP自然语言处理:分享 8 篇NLP论文,有研究惊奇发现:大语言模型除了学习语言还学到了... ...
- [5] 超详细!一文看懂从逻辑回归(Logistic)到神经网络(NN)
- [6] 北大 |一种细粒度的两阶段训练框架(FiTs)(开放源码)
- [7] NLP自然语言处理:NLP不断突破界限, 十篇必读的顶级NLP论文!
- [8] 颠覆传统神经网络!个神经元驾驶一辆车!
NLP预训练模型3 -- 预训练任务优化(ERNIE、SpanBERT等)
前面一篇文章中,我们从模型结构、实现源码、实验结果等角度,分析了预训练语言中大名鼎鼎的BERT模型。BERT大幅刷新的GLUE得分,提高了7.7个点之多,甚至有些中文NLP任务上达到了人类水平。那是不是在预训练模型方面就没法进行其他创新了呢,答案显然是否定的。前文中我们也提到了BERT存在的很多缺点,从预训练任务、模型结构、语料数据、模型轻量化等方面我们都可以进行深度优化。本文我们就先从预训练任务的优化讲起。
BERT是一个multi-mask任务,包括mask language model和next sequence prediction两个任务。两个任务有哪些缺点和改进点呢,主要有
过去的年,关于BERT改进的文章层出不穷,目前已经有+ PLMs了。每篇文章从多个不同角度进行了优化,可能既包括预训练任务优化,又包括数据优化。我们按照文章主要出发点来进行归类,通过源码找附件但不代表他们就仅仅针对单个点。预训练任务优化方面,我们主要分析ERNIE(百度那篇)和SpanBERT。
2 ERNIE
论文信息:年4月,百度
论文地址
预训练模型和GitHub地址
2.1 主要贡献
文章提到主要有三个贡献
2.2 主要创新
主要创新有
2.2.1 知识融合和MLM任务
ERNIE 将实体(Entity-Level)和短语(Phrase-Level)进行mask,让预训练模型学习到外部知识,从而不需要通过knowledge embedding来引入外部知识。这种方法可以让模型隐式地学到实体知识、实体与实体关系、语义依赖等 ERNIE的模型结构和BERT基本相同,
MLM方面,采用了三种mask策略
文章也对三种mask方式进行了消融分析,加入短语级别和实体级别后,ACC不断提升。如下图。
2.2.2 添加更多优质中文语料
ERNIE添加了中文维基百科、百度百科、百度新闻、百度贴吧语料,分别包括的sentences数目为M, M, M, M。
文章也对这些语料进行了消融分析,可见三种不同的语料均对模型performance提升至关重要。
2.2.3 DLM
对于Dialog对话,ERNIE针对对话角色进行了Dialog embedding。如下
如上图,Dialog Embedding添加了对话角色信息,从而使模型可以提升在多轮对话中的performance。
2.3 实验结果
在5个中文NLP任务上进行了实验,均超过BERT,有些甚至提升1%以上。如下
3 SpanBERT
论文信息:年7月,Facebook & 华盛顿大学
论文地址
预训练模型和GitHub地址
3.1 主要创新
3.1.1 span Maskingmask方法
随机挑选span分为两步。
最终仍然保持总共%的token被mask,并按照% % %的方式进行[mask]替换、随机替换和保持不变。策略和BERT相同,只不过token level改为了span level。span masking例子如下。
mask效果对比
文章也对不同的mask方式做了对比分析,主要有单个subword mask,整词mask,实体mask,短语mask和span mask几种方式。可见大部分任务上,span masking均是最优的。
3.1.2 Span Boundary Objective (SBO)
SpanBERT认为span边界词对理解span中的词语意义重大,故提出了一个新的训练目标,也就是SBO。它利用两个边界词的encoding和当前词的position,来预测当前词。实现方式为
3.1.3 Single-Sequence Training
SpanBERT认为BERT的NSP反而会降低模型的performance,原因有二
3.2 实验结果
3.2.1 抽取式QA、指代消解、关系抽取等与span相关的下载官网源码任务
SpanBERT学习span信息,对抽取式QA、指代消解、关系抽取等与span相关的任务上帮助很大。下面为在抽取式QA SQuAD上的结果
其中
可见
3.2.2 span相关度不大任务
文章也在span关联度不大任务上进行了实验,比如GLUE,发现大部分任务效果仍然比BERT好。平均得分提高了2.4个百分点,效果还是杠杠的。
3.2.3 消融实验
文章也分析了三个创新点各自的作用。如下图所示
以GLUE任务为例,去掉NSP可以提高0.4个百分点,加入SBO可以提高0.2个百分点。三个创新点均能带来效果的提升。
4 其他预训练任务优化方法
针对BERT预训练任务的改进,也有其他思路和文章。比如
其他更多的优化方法,就不一一列举了。从训练任务角度来优化预训练模型,还是十分关键和有效的。在我们自己的业务场景中,很多时候训练任务也不一定是很清晰的,我们也一定要注意训练任务的建模方式。
系列文章,请多关注
基于梯度的NLP对抗攻击方法
Facebook的研究团队在EMNLP上发布了一项名为“Gradient-based Adversarial Attacks against Text Transformers”的NLP通用攻击策略,源代码可在facebookresearch/text-adversarial-attack获取。
首先,研究者定义了模型,其中输入集[公式]和输出集[公式]。对于测试样本[公式],如果预测标签为[公式],则目标是找到与[公式]相近的对抗样本[公式],使其预测结果变为[公式]。通过定义函数[公式]来量化两者的接近程度,如果对抗样本[公式]满足[公式],则认为两者非常接近。
寻找对抗样本的过程转化为优化问题,如在分类问题中,使用margin loss作为对抗损失,公式为[公式]。当损失为0时,模型在超参数[公式]的影响下会预测错误。margin loss在年的研究中证明了对抗图像的有效性。
优化目标是通过梯度方法实现,给定对抗损失[公式],对抗样本生成的优化问题可以表述为[公式],通过引入可微的约束函数,如[公式],进行优化。
论文解决了文本数据中应用[公式]的困难,通过概率分布[公式],每个token独立采样。目标是优化参数矩阵[公式],使得[公式]成为对抗样本,优化目标函数[公式],可以包含对抗损失如margin loss。
文章还探讨了如何将概率向量输入模型,通过Gumbel-softmax进行平滑估计,引入梯度。同时,加入了流畅性和语义相似性约束,如因果语言模型和BERTScore,以生成更自然和语义连贯的对抗样本。
实验结果显示,作者的方法可以有效降低模型准确率至%以下,同时保持高语义相似度。消融实验揭示了流畅性约束对结果的影响。
尽管我最初误以为是关于Adversarial训练的内容,但实际研究的是Attack技术,这与我的研究领域不直接相关。
基于PaddleNLP搭建评论观点抽取和属性级情感分析系统
基于PaddleNLP搭建评论观点抽取和属性级情感分析系统旨在实现对带有情感色彩的主观性文本进行深入分析与处理,广泛应用于消费决策、舆情分析、个性化推荐等领域。百度工程师将带来直播讲解,深入解读情感分析等系统方案,并带来手把手项目实战,详情请点击课程直通车。本项目源代码全部开源在PaddleNLP中。
情感分析任务包括语句级情感分析、评论对象抽取和观点抽取。其中,语句级别的情感分析在宏观上分析整句话的感情色彩,粒度较粗。而属性级别的情感分析则针对某一产品或服务的多个属性进行评论,能提供更具体、细致的分析结果。例如,关于薯片的评论“这个薯片味道真的太好了,口感很脆,只是包装很一般。”可以看出,顾客在味道和口感两个方面给出了好评,但在包装上给出了负面评价。这种细粒度的分析,对于商家改进产品或服务具有重要意义。
项目提出细粒度的情感分析能力,首先进行评论观点抽取,然后分析不同观点的情感极性。评论观点抽取采用序列标注方式,利用BIO的序列标注体系拓展标签,包括B-Aspect、I-Aspect、B-Opinion、I-Opinion和O。在抽取评论观点后,对评论属性和观点进行拼接,并与原文拼接作为独立训练语句,最终传入SKEP模型进行细粒度情感倾向分析。
评论观点抽取模型通过序列标注完成,训练、评估和测试数据集包含标签词典,数据集格式包含文本串和序列标签。数据加载、转换成特征形式,构造DataLoader后,基于SKEP模型实现评论观点抽取功能,进行文本数据输入和向量序列产生,基于CLS位置的输出向量进行情感分析。训练配置包括环境配置、模型参数定义等。
属性级情感分类模型同样基于SKEP模型实现,将处理好的文本数据输入SKEP模型进行编码,使用CLS位置对应的输出向量进行情感分类。训练配置、训练与测试定义完成后,模型训练与测试进行评估,模型效果最好的模型将被保存。在完成模型训练与测试后,可以使用全量数据训练好的评论观点抽取模型和属性级情感分类模型进行全流程情感分析预测。
基于PaddleNLP开源的PP-MiniLM实现属性级情感分类模型,利用模型蒸馏技术蒸馏出6层小模型,效果好、运行速度快。PP-MiniLM数据集在7项CLUE任务上的平均值表现良好。模型量化操作后,与SKEP-Large、PP-MiniLM进行性能和效果对比,展现出显著的性能提升。
加入PaddleNLP的QQ技术交流群,一起学习NLP技术,获得更多关于情感分析的信息。
信息抽取UIE——基于prompt的信息抽取模型(附源码)
信息抽取是NLP任务中的一个常见模块,旨在从自然文本中提取关键信息结构。通过例子理解,例如从"新东方烹饪学校在成都"中提取"新东方烹饪学校"与"成都"作为实体。
命名实体识别(NER)是提取词语级别的实体任务,而关系抽取(RE)则更进一步,关注实体之间的关系。序列标注(Sequence Labeling)方法通过为文本中的每个词分配类别标签,来实现信息抽取。
序列标注面临实体重叠问题,指针网络(Pointer Network)通过为每个实体单独预测解决此问题。它设计多头网络,为每个实体分别预测起始和结束位置,确保实体重叠问题得到解决。
UIE(基于prompt的指针网络)旨在提供更灵活的信息抽取方式。它通过引入prompt参数,允许模型在输入时激活与特定实体类型相关的参数,从而实现不同实体的抽取任务。此方法解决了模型结构随实体类型变化而变化的问题,同时可以高效处理实体关系抽取任务。
UIE的实现相对简洁,主要包含构建起始层和结束层,以及计算损失函数(BCE Loss)以优化模型。通过这种机制,UIE不仅简化了模型结构的调整,还提高了任务处理的灵活性和效率。
完整源码可供查阅,实现了一个高效且灵活的信息抽取解决方案,UIE展示了在信息抽取领域的创新与进步。
郑立峰NLP课程是什么?
郑立峰,国际级NLP导师,华人中极少数和NLP创始人理查德.班德勒共同签发国际最高级别文凭的NLP塔尖精英,为您带来的精彩的执行师国际文凭课程,让您成为NLP高手,帮助您拥有健康、幸福、成功的人生。
NLP是被称为人类行为的源代码,和人类的沟通密码,人类智慧DNA,人脑使用说明书,是一门可以让人拥有轻松满足成功快乐人生的学问,是一门从根本上解决您的问题,帮助您实现人生梦想的学问。
NLP--神经语言程式学,NLP研究三方面内容:
Neurology(神经学)--大脑的运作和如何思考;
Linguistics(语法)--我们如何应用语言,语言如何影响我们;
Programming(程式)--我们如何用行动来完成目标。
心世界网可以了解更多相关内容。
NLP修炼系列之Bert(二)Bert多分类&多标签文本分类实战(附源码)
在NLP修炼系列之Bert(二)的上一篇文章中,我们对Bert的背景和预训练模型进行了深入讲解。现在,我们将步入实战环节,通过Bert解决文本的多分类和多标签分类任务。本文将介绍两个实际项目,一个是基于THUCNews数据集的类新闻标题分类,另一个是我们公司业务中的意图识别任务,采用多标签分类方式。 1.1 数据集详解多分类项目使用THUCNews数据集,包含万个新闻标题,长度控制在-个字符,共分为财经、房产等个类别,每个类别有2万个样本。训练集包含万个样本,验证集和测试集各1万个,每个类别条。
多标签任务数据集来自公司业务,以对话形式的json格式存在,用于意图识别。由于隐私原因,我们无法提供,但网上有很多公开的多标签数据集,稍加调整即可适用。
1.2 项目结构概览项目包含Bert预训练模型文件、配置文件和词典等,可以从Huggingface官网下载。
datas 目录下存放数据集、日志和模型。
models 包含模型定义和超参数配置,还包括混合模型如Bert+CNN等。
run.py 是项目入口,负责运行训练。
train_eval.py 负责模型训练、验证和测试。
utils 提供数据预处理和加载工具。
2. 项目流程和环境要求 通过run.py调用argparse工具配置参数。安装环境要求Python 3.8,项目中已准备好requirements.txt文件。 3. 项目实战步骤 从构建数据集到模型定义,包括数据预处理、数据迭代器的创建、配置定义以及训练、验证和测试模块的实现。 4. 实验与总结 我们尝试了以下实验参数:num_epochs、batch_size、pad_size和learning_rate。在fine-tune模式下,Bert表现最佳,否则效果不佳。项目代码和数据集可通过关注布尔NLPer公众号获取,回复相应关键词获取多分类和多标签分类项目源码。预训练模型与种常见NLP预训练模型
探索NLP预训练模型的奥秘:十种关键模型解析 在人工智能的领域中,预训练模型如璀璨的星辰,照亮了自然语言处理(NLP)的广阔天空。本文将带你深入理解种常见的NLP预训练模型,从自回归与自编码的起点,到Transformer的革新,领略它们的特性和优势。自回归与自编码的较量:GPT与BERT
GPT,OpenAI的自回归语言模型,以其生成能力见长,单向处理使得信息流动受限,适用于文本生成任务。
BERT,Google的杰作,双向处理技术使得它能捕捉上下文,但Mask标记的使用影响了预训练和Fine-tuning的效率。
BERT的创新与深度剖析
BERT基于Transformer的Encoder,通过无监督训练,包含Masked LM和Next Sentence Prediction任务,展示了强大的语义理解。
尽管参数众多,它关注word embedding、position embedding和segment embedding,展现了复杂结构下的性能提升。
预训练任务的艺术:MLM与NSP
Masked Language Model挑战模型预测被隐藏的词,促使模型依赖上下文而非孤立词语。
Next Sentence Prediction任务,通过[CLS]和[SEP]标记,将理解任务转化为二分类,增强了模型的序列理解能力。
ALBERT的轻量化革命
ALBERT继承BERT的框架,创新在于参数分解、共享和移除NSP,采用SOP,虽未详述实验结果,但稳定性和效率提升显著。
RoBERTa的优化与超越
RoBERTa通过增大训练数据、调整batch size和动态掩码,进一步提高了性能,摒弃了NSP任务。
预训练策略的多样性
BERT的mask策略包括静态和动态,以及不同组合方式的NSP训练,为模型适应性提供了多样性。
从ELMO和XLNet的自回归视角,ELMO解决了多义词难题,XLNet通过双流注意力机制扩展了可能性。T5模型则将NLP理解与生成结合,展示了预训练方法的创新。 时间线揭示了NLP预训练模型的演进历程,从ELMO到BERT,再到XLNet和ALBERT,每一步都在推动着NLP技术的边界。这些模型各具特色,有的专攻文本生成,有的聚焦语义理解,共同推动着NLP领域的进步。 总结来说:Token的角色分化:query和content,分别承载位置和内容信息,为模型决策提供关键支撑。
从GPT到GPT-2的迭代,展现了Transformer技术的不断优化与规模的扩张。
T5的统一框架,展示了NLP预训练在语言理解和生成任务中的融合创新。
每个模型都是NLP之旅中的重要里程碑,它们的结合与竞争,共同推动着NLP技术的不断进化。深入理解这些模型,无疑将为你的NLP项目提供强大的工具和灵感。想要了解更多细节,不妨参考原著论文和源代码,那里有无尽的智慧与洞见。