BERT

DynaBERT:动态伸缩训练

◇◆丶佛笑我妖孽 提交于 2020-08-11 18:16:31
本文首发于公众号「夕小瑶的卖萌屋」 神经网络模型除了部署在远程服务器之外,也会部署在手机、音响等智能硬件上。比如在自动驾驶的场景下,大部分模型都得放在车上的终端里,不然荒山野岭没有网的时候就尴尬了。对于BERT这类大模型来说,也有部署在终端的需求,但考虑到设备的运算速度和内存大小,是没法部署完整版的,必须对模型进行瘦身压缩。 说到模型压缩,常用的方法有以下几种: 量化 :用FP16或者INT8代替模型参数,一是占用了更少内存,二是接近成倍地提升了计算速度。目前FP16已经很常用了,INT8由于涉及到更多的精度损失还没普及。 低轶近似/权重共享 :低轶近似是用两个更小的矩阵相乘代替一个大矩阵,权重共享是12层transformer共享相同参数。这两种方法都在ALBERT中应用了,对速度基本没有提升,主要是减少了内存占用。但通过ALBRET方式预训练出来的Transformer理论上比BERT中的层更通用,可以直接拿来初始化浅层transformer模型,相当于提升了速度。 剪枝 :通过去掉模型的一部分减少运算。最细粒度为权重剪枝,即将某个连接权重置为0,得到稀疏矩阵;其次为神经元剪枝,去掉矩阵中的一个vector;模型层面则为结构性剪枝,可以是去掉attention、FFN或整个层,典型的工作是LayerDrop [1] 。这两种方法都是同时对速度和内存进行优化。 蒸馏

NLP免费直播 | 两周讲透图卷积神经网络、BERT、知识图谱、对话生成

流过昼夜 提交于 2020-08-11 13:55:43
大家好,我是贪心学院的小编。自从今年二月份举办的火爆的BERT、XLNet专题课以来,已经三个月没有跟大家见面了。这一次我们又给大家带来了重磅级的系列公开课, 由贪心学院和京东智联云联合打造,共四次公开课、为期两周时间, 感兴趣的朋友们可以 扫码加入。 ???? N L P公开课直播活动 ???? 这次的系列课程我们又选择了近几年NLP领域最火的话题, 包括GNN, GCN, Word2Vec, ELMo, GPT, BERT, 对话系统,个性化文本生成,知识图谱等内容。 作为一名NLP工程师,这些内容逐步在成为必修课。 在本次专题活动,我们会通俗易懂地讲解每一个核心知识点,让大家知道背后的原理,这也是贪心学院一贯的讲授风格。 本次的专题活动,我们有幸邀请到了 多位国内外NLP领域的专家, 均在各自领域中 发表过数篇顶会文章, 也有幸邀请到了京东相关领域的专家。我们希望通过本次活动,给大家带来一些认知上的提升,充实自我! 下 面 是 关 于 本 次 专 题 课 程 的 详 细 介 绍 以 及 安 排 , 你 可 以 通 过 扫 描 下 方 的 二 维 码 来 进 行 报 名 。 未 报 名 专 题直播活动 的 同 学 请 扫 描 下 方 二 维 码 ???? ???? ???? ???? 前 方 高 能 ???? 史 上 最 干 干 货 ! 来 咯 ! 本 次 直 播 分4 大 主

Chat with Milvus #12 :新版本、Postgres向量检索插件、比Faiss好用?

落爺英雄遲暮 提交于 2020-08-11 13:52:55
视频: 5分钟快速一览Milvus v.0.9.0 新功能 | Milvus Q&A 与文字实录 视频: Milvus问答#11- 分布式数据库与Milvus 分布式 Attendee= 参会者 Attendee A: 我现在只是属于试用阶段,还没有经过一个比较完整的使用场景的考验,所以现在主要就是说想学习一下,看看别人都是应用到什么样的场景。我们现在实际用的就是一个句子相似性的应用场景,只做了一个很小的测试,没有遇到很明显的问题。之前觉得检索的准确率不是很高,但是有一个人建议说我做向量的归一化,我还没有做测试,所以还不知道结果,就是这么一个情况。 顾老师@ Milvus: 所以您那边是一个自然语言处理的场景是吧? Attendee A: 对,第一步是自然语言处理,然后后面可能就是说会用句子来搜图,然后图搜句子的这样的也会尝试一下。 顾老师@ Milvus: 句子来搜图的话,您这边图片都是有标签的吗? Attendee A: 对,就是说就类似于那种表情图。一开始会试一些表情图。 顾老师@ Milvus: 明白了,所以你们主要是现在还是在搜索,先帮助大家去搜索表情包是吗? Attendee A: 对。 顾老师@ Milvus: 然后给这些表情包打上一些文字的这种标签,然后通过比如说用户给个句子,然后互相提取语义,然后去做匹配的搜索,是这样的一种效果是吧? Attendee A: 对。

keras 模型部署——TensorFlow Serving/Docker

橙三吉。 提交于 2020-08-11 08:30:48
今天笔者想记录一下深度学习模型的部署,不知道大家研究过没有,tensorflow模型有三种保存方式: 训练时我们会一般会将模型保存成: checkpoint文件 为了方便python,C++或者其他语言部署你的模型,你可以将模型保存成一个既包含网络结构又包含权重参数的: PB文件 为了方便使用TensorFlow Serving 部署你的模型,你可以将模型保存成: Saved_model文件 笔者是keras(tensorflow )的深度用户,经常把模型保存成HDF5格式。那么问题来了,如何把keras的模型转化成PB文件 或者 Saved_model文件供生成部署使用。今天笔者就是来介绍一下如何将Keras的模型保存成PB文件 或者 Saved_model文件。 定义BERT二分类模型 下方函数定义的是一个标准的BERT做文本二分类的图结构。 from keras.models import Model from keras.layers import * from keras import backend as K import tensorflow as tf from keras_bert import get_model,compile_model def load_bert_model_weight(bert_model_path): b_model = get

肝了1W字!文本生成评价指标的进化与推翻

孤者浪人 提交于 2020-08-11 07:44:12
     本文首发于知乎 https://zhuanlan.zhihu.com/p/144182853   作者 | 林镇坤   编辑 | 丛 末    1    前言   文本生成目前的一大瓶颈是如何客观,准确的评价机器生成文本的质量。一个好的评价指标(或者设置合理的损失函数)不仅能够高效的指导模型拟合数据分布,还能够客观的让人评估文本生成模型的质量,从而进一步推动text generation 商业化能力。   然而由于语言天生的复杂性和目前技术限制,我们目前还没有一个完美的评价指标。   本文就三方面对文本生成的评价指标介绍:   介绍了以BLEU为代表的基于统计的文本评价指标   就 data to text 和 image caption 进一步介绍了其特有的评价模式   基于BERT等预训练模型的文本评价指标    2    基于词重叠率的方法    1、机器翻译 & 摘要 常用指标   基于词重叠率的方法是指基于词汇的级别计算模型的生成文本和人工的参考文本之间的相似性,比较经典的代表有BLEU、METEOR和ROUGE,其中BLEU和METEOR常用于机器翻译任务,ROUGE常用于自动文本摘要。    1)BLEU   BLEU (Bilingual Evaluation Understudy,双语评估辅助工具)可以说是所有评价指标的鼻祖

Automatic Extraction of Personality from Text Challenges and Opportunities 阅读笔记

守給你的承諾、 提交于 2020-08-11 04:57:12
Automatic Extraction of Personality from Text Challenges and Opportunities 阅读笔记 论文地址 https://ieeexplore.ieee.org/document/9005467/ 摘要 在这项研究中,我们研究了从文本中提取人格特质的可能性。我们通过让专家在来自多个在线来源的大量文本中注释个性特征来创建了一个大数据集。从这些带注释的文本中,我们选择了一个样本,并进行了 进一步的注释 ,得到了两个数据集 ( 一个是大型低可靠性的数据集, 另一个是小型高可靠性的数据集 )。然后我们使用这两个数据集来训练和测试几种机器学习模型,以从文本中提取个性。最后,我们对来自不同领域的野生数据集进行了评估。我们的结果表明,基于小型高可靠性数据集的模型比基于大型低可靠性数据集的模型表现更好。而且基于小型高可靠性数据集的语言模型的性能要优于随机Baseline方法。最后,结果表明,在野生数据集测试时, 我们最好的模型的性能没有比随机基准更好 。我们的结果表明,从文本中确定人格特征仍然是一个挑战,并且在野生数据集测试之前无法对模型性能做出明确的结论。 1. 介绍 THE BIG FIVE 模型, 把人的个性分为5种类型: 开放性(openness):具有想象、审美、情感丰富、求异、创造、智能等特质。 责任心

使用 Amazon SageMaker 运行基于 TensorFlow 的中文命名实体识别

你说的曾经没有我的故事 提交于 2020-08-11 03:51:32
  一、背景   利用业内数据构建知识图谱是很多客户正在面临的问题,其中中文命名实体识别(Named Entity Recognition,简称NER)是构建知识图谱的一个重要环节。我们在与客户的交流中发现,现有的NER工具(比如Jiagu)对于特定领域的中文命名实体识别效果难以满足业务需求,而且这些工具很难使用自定义数据集训练。因此客户迫切想使用业内最先进的算法在行业内数据集上进行训练,以改进现有NER工具的不足。本文将介绍如何使用Amazon SageMaker运行基于TensorFlow的中文命名实体识别。   命名实体识别,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。命名实体识别是信息提取、问答系统、句法分析、机器翻译、知识图谱等应用领域的重要基础工具。   英语中的命名实体具有比较明显的形式标志(即实体中的每个词的第一个字母要大写),所以实体边界识别相对容易,任务的重点是确定实体的类别。和英语相比,中文命名实体识别任务更加复杂,而且相对于实体类别标注子任务,实体边界的识别更加困难。   二、中文命名实体识别算法   NER一直是自然语言处理(NLP)领域中的研究热点,从早期基于词典和规则的方法,到传统机器学习的方法,到近年来基于深度学习的方法,NER研究进展的大概趋势大致如下图所示。      早期的命名实体识别方法基本都是基于规则的

使用BERT模型生成token级向量

拥有回忆 提交于 2020-08-11 00:58:36
本文默认读者有一定的Transformer基础,如果没有,请先稍作学习Transormer以及BERT。 相信网上有很多方法可以生成BERT向量,最有代表性的一个就是bert as service,用几行代码就可以生成向量,但是这样生成的是句向量,也就是说,正确的做法是输入一句句子: 我是一个中国人,我热爱着中国的每一个城市。 输出的是这句句子的向量,一个768维的向量(google预训练是这么做的),这个向量是具有上下文信息的,详细参考Transformer结构。但是网上有一些做法是用bert as service来生成词级向量,例如输入[‘我’,‘是’,‘一个’, ‘中国’, ‘人’],得到5个768维的向量,用来作为词向量,但这样做是错误的!具体原因参照我前面的描述,既然思想是错误的,也就不奇怪效果不好了,所以在这种情况下,请先别着急说BERT预训练模型不work。 BERT生成token级别的向量,这两篇文章理解的比较准确(我的代码有一部分参考第二篇博客): https://blog.csdn.net/u012526436/article/details/87697242 https://blog.csdn.net/shine19930820/article/details/85730536 为什么说是token级别的向量呢

一文彻底搞懂BERT

北战南征 提交于 2020-08-10 15:43:17
一文彻底搞懂BERT 一、什么是 BERT? 没错下图中的小黄人就是文本的主角 Bert ,而红色的小红人你应该也听过,他就是 ELMo 。 2018 年 发布的 BERT 是一个 NLP 任务的里程碑式模型,它的发布势必会带来一个 NLP 的新时代。 BERT 是一个算法模型,它的出现打破了大量的自然语言处理任务的记录。在 BERT 的论文发布不久后, Google 的研发团队还开放了该模型的代码,并提供了一些在大量数据集上预训练好的算法模型下载方式。 Goole 开源这个模型,并提供预训练好的模型 , 这使得所有人都可以通过它来构建一个涉及 NLP 的算法模型,节约了大量训练语言模型所需的时间,精力,知识和资源。 BERT 模型的全称是: BERT( B idirectional E ncoder R epresentations from T ransformers) 。 从名字中可以看出, BERT 模型的目标是利用大规模无标注语料训练、获得文本的包含丰富语义信息的 Representation 。 二、Bert模型原理 BERT 模型简介 BERT BASE: 与OpenAI Transformer 的尺寸相当,以便比较性能。 BERT LARGE: 一个非常庞大的模型,是原文介绍的最先进的结果。 BERT的基础集成单元是 Transformer的Encoder

【NLP】老司机带你入门自然语言处理

心已入冬 提交于 2020-08-10 11:53:38
自然语言处理是一门用于理解人类语言、情感和思想的技术,被称为是人工智能皇冠上的明珠。 随着深度学习发展,自然语言处理技术近年来发展迅速,在技术上表现为BERT、GPT等表现极佳的模型;在应用中表现为chatbot、知识图谱、舆情监控等基于NLP技术的产品在市场上的大规模出现。 基于此,各类公司开始出现NLP算法工程师的需求,待遇在软件工程师岗位中处于 相当 上游的 水平。 基于此,不少同学和工程师有学习NLP的愿望,本文对首先NLP做一个简单的介绍;然后,作为一个过来人,为初学NLP的同学提供一些必要的建议。 文末有我们的公众号的二维码,扫描关注,可以领取 系统的NLP资料。 作者&编辑 | 小Dream哥 1 NLP简介 每次与行外之人谈起自然语言处理(Natural Language Process,NLP),对方往往都是一片茫然。因此,常常感到很苦恼,如何跟一个从未接触过NLP的人,解释NLP到底是什么?毕竟这是一门这么重要的技术(学科),它的发展与应用,会极大的影响这个世界上的每一个行业,每一个人。 那么,到底什么是NLP呢?所谓自然语言处理,就是用计算机(或者其他计算单元,以下类似)来处理人类的自然语言。那么要理解NLP,首先要理解什么是自然语言。所谓“自然语言”,是相对于计算机语言(计算机能够理解的语言,如汇编、C语言等)而言的,人类日常使用的语言,例如我们都讲的中文