MobileBERT-a Compact Task-Agnostic BERT for Resource-Limited Devices
在蒸馏之后对学生模型再进行微调,进一步提升能力。
随着NLP模型的大小增加到数千亿个参数,创建这些模型的更紧凑表示的重要性也随之增加。知识蒸馏成功地实现了这一点,在一个例子中,教师模型的性能的96%保留在了一个小7倍的模型中。然而,在设计教师模型时,知识的提炼仍然被认为是事后考虑的事情,这可能会降低效率,把潜在的性能改进留给学生。
此外,在最初的提炼后对小型学生模型进行微调,而不降低他们的表现是困难的,这要求我们对教师模型进行预训练和微调,让他们完成我们希望学生能够完成的任务。因此,与只训练教师模型相比,通过知识蒸馏训练学生模型将需要更多的训练,这在推理的时候限制了学生模型的优点。
如果在设计和训练教师模型的过程中,将知识的提炼放在首要位置和中心位置,会有什么可能呢?我们能否设计并成功地训练一个“假定”要被蒸馏的模型,蒸馏后的版本能否成功地在任何下游任务上进行微调?这是我们在本文中总结的MobileBERT: a Compact Task-Agnostic BERT for Resource-Limited Devices中提出的一些问题。据作者说目前还没有与任务无关的轻量级预训练模型 ...
Boundary Enhanced Neural Span Classification for Nested Named Entity Recognition
命名实体识别任务(NER)是NLP领域的一个研究热点。大部分使用序列标记框架来解决该问题,但是序列标记框架通常难以检测出嵌套的实体。基于Span的方法可以很容易地检测出不同子序列中的嵌套实体,因此适用于解决嵌套NER问题。然而,现有的基于Span的方法有两个主要问题。第一,对所有子序列进行分类识别在计算上很昂贵,而且在推理上效率很低。第二,基于Span的方法主要集中在学习Span表示,但缺乏明确的边界监督。针对上述两个问题,本文提出了一种边界增强型neural span 分类模型。除了对Span进行分类之外,还加入一个额外的边界检测任务来预测那些作为实体边界的单词。并在多任务学习框架下进行联合训练,在附加边界监督的情况下增强了跨度表示。此外,边界检测模型能够生成高质量的候选跨度,大大降低了推理过程的时间复杂度。
本文主要解决嵌套NER问题,如下所示:
数据集中每一个单词不再只有一个标签,可能存在多种标签。本文提出的BENSC模型的主要思想为:在给定一个句子,首先,对word进行语义编码,其次利用多任务学习思想联合训练边界检测模型和Span分类模型。边界检测模型主要预测每个词是否实体的 ...
聊聊工业界中如何求解NER问题
NER是一个已经解决了的问题吗?或许,一切才刚刚开始。
例如,面对下面笔者在工作中遇到的12个关于NER的系列问题,你有什么好的trick呢?不着急,让我们通过本篇文章,逐一解答以下问题:
Q1、如何快速有效地提升NER性能(非模型迭代)?
Q2、如何在模型层面提升NER性能?
Q3、如何构建引入词汇信息(词向量)的NER?
Q4、如何解决NER实体span过长的问题?
Q5、如何客观看待BERT在NER中的作用?
Q6、如何冷启动NER任务?
Q7、如何有效解决低资源NER问题?
Q8、如何缓解NER标注数据的噪声问题?
Q9、如何克服NER中的类别不平衡问题?
Q10、如何对NER任务进行领域迁移?
Q11、如何让NER系统变得“透明”且健壮?
Q12、如何解决低耗时场景下的NER任务?
工业界中的NER问题为什么不易解决?
众所周知,命名实体识别(Named Entity Recognition,NER)是一项基础而又重要的NLP任务,往往作为信息抽取、问答对话、机器翻译等方向的或显式或隐式的基础任务。或许在很多人眼里,NER似乎只是一个书本概念,跟句法分析一样存在感不强。 ...
产品级深度学习系统入门指南
部署产品级的深度学习模型充满挑战,其难度远远超过训练一个性能不俗的模型。为了部署一个产品级的深度学习系统,还需要设计和开发以下几个部分(见下图):
本文可以作为一篇工程指南去构建一个产品级的深度学习系统,并且该系统可以部署在真实的生产环境中。
本文借鉴了如下文章:
Full Stack Deep Learning Bootcamp (by Pieter Abbeel at UC Berkeley, Josh Tobin at OpenAI, and Sergey Karayev at Turnitin), TFX workshop by Robert Crowe, and Pipeline.ai’s Advanced KubeFlow Meetup by Chris Fregly.
Machine Learning Projects 机器学习项目
[译者注]原作者在文中既使用了Mechine Learning(机器学习),又使用了Deep Learning(深度学习,大部分工具可以两者都适用)
有趣的真相 :flushed: fact: 85%的AI项目会失败. 1 潜在的原因如 ...
地理文本处理技术在高德的演进
地图App的功能可以简单概括为定位,搜索,导航三部分,分别解决在哪里,去哪里,和怎么去的问题。高德地图的搜索场景下,输入的是,地理相关的检索query,用户位置,App图面等信息,输出的是,用户想要的POI。如何能够更加精准地找到用户想要的POI,提高满意度,是评价搜索效果的最关键指标。
一个搜索引擎通常可以拆分成query分析、召回、排序三个部分,query分析主要是尝试理解query表达的含义,为召回和排序给予指导。
地图搜索的query分析不仅包括通用搜索下的分词,成分分析,同义词,纠错等通用NLP技术,还包括城市分析,wherewhat分析,路径规划分析等特定的意图理解方式。
常见的一些地图场景下的query意图表达如下:
query分析是搜索引擎中策略密集的场景,通常会应用NLP领域的各种技术。地图场景下的query分析,只需要处理地理相关的文本,多样性不如网页搜索,看起来会简单一些。但是,地理文本通常比较短,并且用户大部分的需求是唯一少量结果,要求精准度非常高,如何能够做好地图场景下的文本分析,并提升搜索结果的质量,是充满挑战的。
整体技术架构
类似于通用检索的架构,地 ...
(转)组建技术团队的一些思考
68d4c704ab608d783d8a8a5d59eda75a87edb4142e54b5833dd4933ea86f97dfc57d4fccf0a24157a2245041e4c81ba0cab66c0cefce8e9167aaa5d4963ccad8f5454d1a12d66642fc27e7da97bacbbe738cf0161727b36d35eb66c63865f28dc90bf2f0c7f8fe85c485a71ca6c4f084c36a29f6f28e6a6b8d2201acdaf146d2738738c80cc37f917b7a13420b4afffad721fbb9ddc6ad49d2ba97ee44aad0aa665b019e6c15d9f5c2d187f1ac1ad6041e9b317af62117870b9ad064c0f4a1200c520ec53b5a018d6860fad37bb9ef426e58b251203159a3d5b63c65009faa6466380d127ae63ce72e64ce8a1d404e82d6d9bbc2ffcda4f28 ...
利用 GitHub+Actions 自动部署 Hexo 博客
3a325dc39ad404746d7c8526f2f7a082e343685b54a9c7fb3c42d6c3b33f10fba8d374db088f643c182a00234d17603d5bf9c3c506caa12c0ae31713ece6005b366634e84b2bada3d200c81e2ae763f39cf9a090af062b11f772eede9cd73c53d34738cb32e5db74c88342587052593d7711ffed03c9a80d365fc121443c8de78eb5bee354489060d7b8580df3489a5bded256b3e89ec32be93ddd5407b019c92152809e277e55aaf4e2a69d5c3fe33a0e7e4f4bd7882147bafe07e79ba7a14cd2ad373c7c82773917465eabb9a50ac6aa24f622bc456fbbab69f20377f506b7bdd34dca6eb4210ac476f060b182fb30158babf60b891e373 ...
Fine-Tuning Pretrained Language Models ,Weight Initializations, Data Orders, and Early
当前的预训练模型如BERT都分为两个训练阶段:预训练和微调。但很多人不知道的是,在微调阶段,随机种子不同会导致最终效果呈现巨大差异。本文探究了在微调时参数初始化、训练顺序和early stopping对最终效果的影响,发现:参数初始化和训练顺序在最终结果上方差巨大,而early stopping可以节省训练开销。这启示我们去进一步探索更健壮、稳定的微调方式。
论文地址: https://arxiv.org/pdf/2002.06305.pdf
介绍
当前所有的预训练模型都分为两个训练阶段:预训练和微调。预训练就是在大规模的无标注文本上,用掩码语言模型(MLM)或其他方式无监督训练。微调,就是在特定任务的数据集上训练,比如文本分类。
然而,尽管微调使用的参数量仅占总参数量的极小一部分(约0.0006%),但是,如果对参数初始化使用不同的随机数种子,或者是用不同的数据训练顺序,其会对结果产生非常大的影响——一些随机数直接导致模型无法收敛,一些随机数会取得很好的效果。
比如,下图是在BERT上实验多次取得的结果,远远高于之前BERT的结果,甚至逼近更先进的预训练模型。似乎微调阶段会对最终效 ...
NEZHA-Neural Contextualized Representation for Chinese Language Understanding
预训练模型在捕捉深度语境表征方面的成功是有目共睹的。本文提出一个面向中文NLU任务的模型,名为NEZHA(NEural contextualiZed representation for CHinese lAnguage understanding,面向中文理解的神经语境表征模型,哪吒)。NEZHA相较于BERT有如下改进:
函数式相对位置编码
全词覆盖
混合精度训练
训练过程中使用 LAMB 优化器
前两者是模型改进,后两者是训练优化。
NEZHA在以下数个中文自然处理任务上取得了SOTA的结果:
命名实体识别(人民日报NER数据集)
句子相似匹配(LCQMC,口语化描述的语义相似度匹配)
中文情感分类(ChnSenti)
中文自然语言推断(XNLI)
介绍
预训练模型大部分是基于英文语料(BooksCorpus和English Wikipedia),中文的预训练模型目前现有如下几个:Google的中文BERT(只有base版)、ERNIE-Baidu、BERT-WWM(科大讯飞)。这些模型都是基于Transformer,且在遮蔽语言模型(MLM)和下一句预测(NSP)这两 ...
pip下载python包,离线安装
pip download 和 pip install 有着相同的解析和下载过程,不同的是,pip install 会安装依赖项,而 pip download 会把所有已下载的依赖项保存到指定的目录 ( 默认是当前目录 ),此目录稍后可以作为值传递给 pip install --find-links 以便离线或锁定下载包安装。适合在离线服务器上继续安装python模块,主要步骤如下:
首先在联网的环境中安装相同python环境,可使用conda创建虚拟环境
1conda create -n envir_name python=3.7
在虚拟环境中进行pip download下载所依赖包
1pip download tensorflow==2.11.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/ -d ./tensorflow2/
将下载的包的名字输出到 requirements.txt中
1ls tensorflow2 > requirements.txt
离线安装
1pip install --no-index --f ...