BERT

PaddlePaddle/PALM

可紊 提交于 2020-04-16 11:15:43
【推荐阅读】微服务还能火多久?>>> PaddlePALM English | 简体中文 PaddlePALM (PArallel Learning from Multi-tasks) 是一个灵活,通用且易于使用的NLP大规模预训练和多任务学习框架。 PALM是一个旨在 快速开发高性能NLP模型 的上层框架。 使用PaddlePALM,可以非常轻松灵活的探索具有多种任务辅助训练的“高鲁棒性”阅读理解模型,基于PALM训练的模型 D-Net 在 EMNLP2019国际阅读理解评测 中夺得冠军。 MRQA2019 排行榜 除了降低NLP研究成本以外,PaddlePALM已被应用于“百度搜索引擎”,有效地提高了用户查询的理解准确度和挖掘出的答案质量,具备高可靠性和高训练/推理性能。 特点: 易于使用 :使用PALM, 8个步骤 即可实现一个典型的NLP任务。此外,模型主干网络、数据集读取工具和任务输出层已经解耦,只需对代码进行相当小的更改,就可以将任何组件替换为其他候选组件。 支持多任务学习 : 6个步骤 即可实现多任务学习任务。 支持大规模任务和预训练 :可自动利用多gpu加速训练和推理。集群上的分布式训练需要较少代码。 流行的NLP骨架和预训练模型 :内置多种最先进的通用模型架构和预训练模型(如BERT、ERNIE、RoBERTa等)。 易于定制 :支持任何组件的定制开发(例如

覆盖40种语言:谷歌发布多语言、多任务NLP新基准XTREME

烈酒焚心 提交于 2020-04-15 12:53:02
【推荐阅读】微服务还能火多久?>>> 自然语言权威数据集 GLUE 一直是衡量各机构 NLP 预训练技术水平最重要的指标之一。近年来在其榜单之上实现更好的成绩,也成为了科技公司技术提升的体现。不过现有的大多数 NLP 基准仅限于英文任务,无法评价 NLP 模型在其他语言上的能力。 机器之心报道,参与:泽南、蛋酱、杜伟。 近日,来自 CMU、谷歌研究院和 DeepMind 的科学家们提出了覆盖四十种语言的大规模多语言多任务基准 XTREME,希望一举解决这个问题。 自然语言处理(NLP)所面临的其中一个关键性挑战是,构建的系统不仅要在英文中 work,而且要在世界范围内约 6900 种语言中也 work。幸运的是,虽然大多数语言呈现数据稀疏(data sparse)且没有充足可用的数据来自行训练鲁棒的模型,但其中的很多语言共享大量的底层结构。 此外,NLP 领域有很多方法在训练过程中利用到了多语言的共享结构,以克服数据稀疏的问题。但不足的是,大多数这些方法侧重于在多语言中执行特定任务。近几年,得益于深度学习的进展,有更多的方法试图学习通用的多语言表示(如 mBERT、XLM 和 XLM-R),这些方法旨在捕获跨语言间共享且对多任务有用的知识。但在实践中,这类方法的评估却大多侧重于一小部分任务以及相似的语言。 因此,为了鼓励人们在多语言学习领域开展更多研究,谷歌研究院联合 CMU

大规模计算时代:深度生成模型何去何从

给你一囗甜甜゛ 提交于 2020-04-14 11:14:35
【推荐阅读】微服务还能火多久?>>>    作者 |Chunyuan    编辑 | 丛末   人工智能的核心愿望之一是开发算法和技术,使计算机具有合成我们世界上观察到的数据的能力, 比如自然语言,图片等等。   每当我们建立一个模型来模仿这种能力时,该模型就称为生成模型 (Generative Models)。   如果该模型涉及深度神经网络,则该模型是深度生成模型(Deep Generative Models, 简称 DGMs)。   作为深度学习中自我监督学习 (self-supervised learning)技术的一个分支,DGM特别专注于刻画数据的生成过程。这篇文章回顾了DGM的历史,定义和现状,并分享最新的一些研究结果。最终希望启发大家去思考一个共同的主题:如何在大规模预训练时代推进或应用深度生成模型。    1   历史回顾和基础知识:   三种类型的深度生成模型和一个通用技巧   生成模型(Generatitve Models)在传统机器学习中具有悠久的历史,它经常与另外一个主要方法(判别模型,Discriminative Models)区分开。我们可以通过一个故事学到它们有何不同:有两兄弟,他们具有不同的特殊能力,一个具有深入洞察事物内在的能力,而另一个善于学习所见事物之间的差异。在故事里,前者代表生成模型,而后者代表区分模型,他们的特点总结为:   生成模型

BERT get sentence level embedding after fine tuning

南楼画角 提交于 2020-04-13 06:34:08
问题 I came across this page 1) I would like to get sentence level embedding (embedding given by [CLS] token) after the fine tuning is done. How could I do it? 2) I also noticed that the code on that page takes a lot of time to return results on the test data. Why is that? When i trained the model it took less time as compared to when i tried to get test predictions. From the code on that page, I didnt use below blocks of the code test_InputExamples = test.apply(lambda x: bert.run_classifier

大规模计算时代:深度生成模型何去何从

十年热恋 提交于 2020-04-12 17:04:25
©PaperWeekly 原创 · 作者|Chunyuan Li 单位|Microsoft Research Researcher 研究方向|深度生成模型 人工智能的核心愿望之一是开发算法和技术,使计算机具有合成我们世界上观察到的数据的能力, 比如自然语言,图片等等。 每当我们建立一个模型来模仿这种能力时,该模型就称为 生成模型 (Generative Models)。 如果该模型涉及深度神经网络,则该模型是 深度生成模型 (Deep Generative Models, 简称 DGMs)。 作为深度学习中自我监督学习 (self-supervised learning)技术的一个分支,DGM 特别专注于 刻画数据的生成过程 。这篇文章回顾了 DGM 的历史,定义和现状,并分享最新的一些研究结果。最终希望启发大家去思考一个共同的主题: 如何在大规模预训练时代推进或应用深度生成模型。 历史回顾和基础知识:三种类型的深度生成模型和一个通用技巧 生成模型(Generatitve Models)在传统机器学习中具有悠久的历史,它经常与另外一个主要方法(判别模型,Discriminative Models)区分开。我们可以通过一个故事 [1] 学到它们有何不同:有两兄弟,他们具有不同的特殊能力,一个具有深入洞察事物内在的能力,而另一个善于学习所见事物之间的差异。在故事里,前者代表生成模型

Tony老师解读Kaggle Twitter情感分析案例

≯℡__Kan透↙ 提交于 2020-04-11 17:08:21
今天Tony老师给大家带来的案例是Kaggle上的Twitter的情感分析竞赛。在这个案例中,将使用预训练的模型BERT来完成对整个竞赛的数据分析。 导入需要的库 import numpy as np import pandas as pd from math import ceil, floor import tensorflow as tf import tensorflow.keras.layers as L from tensorflow.keras.initializers import TruncatedNormal from sklearn import model_selection from transformers import BertConfig, TFBertPreTrainedModel, TFBertMainLayer from tokenizers import BertWordPieceTokenizer 读取并解释数据 在竞赛中,对数据的理解是非常关键的。因此我们首先要做的就是读取数据,然后查看数据的内容以及特点。 先用pandas来读取csv数据, train_df = pd.read_csv('train.csv') train_df.dropna(inplace=True) test_df = pd.read_csv('test.csv')

解密阿里云大规模深度学习性能优化实践

半城伤御伤魂 提交于 2020-04-11 11:52:04
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 作者 | 阿里云异构计算AI加速负责人 游亮 近日,斯坦福大学公布了最新的 DAWNBench 深度学习榜单,这是人工智能领域最权威的竞赛之一,是衡量深度学习优化策略、模型架构、软件框架、云和硬件等综合解决方案实力的标准之一。 在图像识别(Image Classification on ImageNet)榜单中,阿里云包揽了训练时间、训练成本、推理延迟以及推理成本四项第一。 DAWNBench 官方显示,阿里云异构计算服务训练 ImageNet 128 万张图片仅需 2 分 38 秒,基于含光 800 的 AI 服务识别一张图片仅需 0.0739ms,同时在训练成本和推理成本上也实现世界纪录的突破。 此次,阿里云创造四项纪录得益于阿里云自研加速框架 AIACC 及平头哥含光 800 芯片。 其中,AIACC 是阿里云自主研发的飞天 AI 加速引擎,首次实现了统一加速 Tensorflow、PyTorch、MxNet 和 Caffe 等主流深度学习框架,在相同的硬件平台下,AIACC 能够显著提升人工智能训练与推理的性能。 作为 AIACC 的研发负责人,我将在本文内与大家分享阿里云基于 AIACC 的大规模深度学习应用架构和性能优化实践。 大规模分布式训练是未来趋势

首篇严肃的“BERT学”研究,40+论文对比,解读BERT工作原理

為{幸葍}努か 提交于 2020-04-10 09:36:32
      作者 | 张景俊    编辑 | 丛 末   目前,不管是工业界还是学术界,基于 Transformer 的模型已经广泛应用于自然语言处理(NLP)任务中,然而很多人依然对这些模型的内部工作机制知之甚少。      论文链接:https://arxiv.org/abs/2002.12327   基于此背景,Anna Rogers等人对当前霸占各大NLP任务榜单的 BERT 模型进行了论述,分析了BERT模型工作机理,包括pre-training和fine-turning阶段。并且提出了一些改善BERT模型训练性能的新方法,此外,对未来BERT在NLP任务中的研究方向也进行了探索。   AI 科技评论对这篇文章内容作以简介,抛砖引玉。    1、简 介   自2017年Transformers提出以来,便迅速席卷了整个NLP领域,在众多Transformer-based模型中,毫无疑问最著名的非BERT莫属。本文是一篇综述性文章,概述了目前学术界对BERT已取得的研究成果,并且对后续的研究也进行了展望。    2、BERT 架构   BERT是基于multiple “heads”多头组成的Transformer编码器,它的全连接层采用了self-attention机制,其中每一个头部都用于进行key、value、query的计算。   BERT的常规工作流程分为两个阶段

BatchNorm在NLP任务中的问题与改进

柔情痞子 提交于 2020-04-10 07:33:27
众所周知,无论在CV还是NLP中,深度模型都离不开归一化技术(Normalization)。在CV中,深度网络中一般会嵌入批归一化(BatchNorm,BN)单元,比如ResNet;而NLP中,则往往向深度网络中插入层归一化(LayerNorm,LN)单元,比如Transformer。 为什么在归一化问题上会有分歧呢?一个最直接的理由就是, BN用在NLP任务里实在太差了(相比LN) ,此外, BN还难以直接用在RNN中[1] ,而RNN是前一个NLP时代的最流行模型。 虽然有大量的实验观测,表明NLP任务里普遍BN比LN差太多,但是迄今为止,依然没有一个非常严谨的理论来证明LN相比BN在NLP任务里的优越性。甚至,连BN自身为什么work的问题都一直存在争议。 早期对BN有效性的解释是其有助于缓解神经网络“ 内部协方差漂移 ”(Internal Covariance Shift,ICS)问题。即,后面的层的学习是基于前面层的分布来的,只有前面一层的分布是确定的,后面的层才容易学习到有效的模式,然而,由于前面的层的分布会随着batch的变化而有所变动,导致了后面的层看来“前面一直在动,我无法安心学习呀”。 而BatchNorm这类归一化技术, 目的就是让每一层的分布稳定下来 ,让后面的层可以在前面层的基础上安心学习知识。顾名思义,BatchNorm就是通过对batch

FastBERT:又快又稳的推理提速方法

末鹿安然 提交于 2020-04-10 07:22:45
自从BERT问世以来,大多数NLP任务的效果都有了一次质的飞跃。BERT Large在GLUE test上甚至提升了7个点之多。但BERT同时也开启了模型的“做大做深”之路,普通玩家根本训不起,高端玩家虽然训得起但也不一定用得起。 所以BERT之后的发展也比较清晰,一部分壕大佬们继续搞预训练提升效果,当你对BERT Large望而却步的时候,又出了GPT2,又双出了威震天Megatron-LM,又双叒出了T5,又双叒叕出了DeepSpeed。。。每次都是照着一个数量级去加,剩下的人只能默默观望,翻翻《 如何优雅地训练大型模型? 》看哪个trick可以用上。 另一部分大佬着力于给BERT瘦身提升速度。比如剪枝,剪掉多余的连接、多余的注意力头、甚至LayerDrop [1] 直接砍掉一半Transformer层;再比如量化,把FP32改成FP16或者INT8;还有蒸馏,用一个学生模型来学习大模型的知识,不仅要学logits,还要学attention score。。。 然而,大部分减肥方法都会带来精度的下降。剪枝会直接降低模型的拟合能力,量化虽然有提升但也有瓶颈,蒸馏的不确定性最大,很难预知你的BERT教出来怎样的学生。 但!是! 昨天刷到了一篇让我眼前一亮的文章《FastBERT: a Self-distilling BERT with Adaptive Inference Time》