QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

BERT 的正确使用姿势

  • 2020-02-29
  • 本文字数:2043 字

    阅读完需:约 7 分钟

BERT的正确使用姿势

自 2018 年 google 发布开源预训练模型 BERT 之后,一时席卷业内十余项任务的 state-of-art,引得无数 NLPer 聚焦于此。对于自然语言处理领域而言,BERT 的出现,彻底改变了预训练词向量与下游具体 NLP 任务的关系,因此 BERT 被称为改变了 NLP 游戏规则的工作。然而,究竟如何最好的使用 BERT 呢?


一种自然的方法当然是改变 BERT 的预训练过程,从而造出更好的预训练语言模型。这种方法可以简单的引入更多的语料、采用不同的预训练任务、采用多任务学习、采用在特定领域的语料上进行 fine-tune 等等。然而,从头训练甚至 fine-tune BERT 均需要大量的算力才可实现。那么另一种自然而然的想法是,我们是否可以将已有模型(LSTM 或者 CNN)接入到 BERT 之上,从而发挥二者各自的优势呢?这是本文介绍的重点。

BERT 的基础使用方式

本文以是否 fine-tune 预训练模型和是否对上层模型进行训练作为两个参考指标,将 BERT 的应用方法大致划分为三类,如下表所示:



其中,方法 NFT-TM 是指在 BERT 模型的上层添加复杂的网络结构,在训练时,固定 BERT 的参数,仅单独训练上层任务模型网络。方法 FT-NTM 是指在在 BERT 模型后接一个简单的特定任务层(如全连接网络),在训练时,根据任务的训练样本集对 BERT 进行 fine-tune 即可。


就以上 NFT-TM、FT-NTM 两种方法,美国 Allen 人工智能研究所的 Matthew Peter 等人分别在 ELMo 及 BERT 两种预训练模型上对比了效果,希望能够得出到底哪个方式更适合下游任务,他们针对 7 项 NLP 任务给出实验结果。对于 ELMo 而言,使用上层网络进行特征提取效果更好,对于 BERT 而言,fine-tune 效果略胜一筹。最终该文得出结论,对于预训练模型,fine-tune 方法(即 FT-NTM)能够更好的将其应用于特定任务。

BERT 的高级使用方式

以上两种方法看上去有些片面,如果把特征抽取和 fine-tune 结合起来成为第三种模式,效果会怎样呢?在 BERT 出现之前,就有人在训练好语言模型之后,用后续网络(如 CNN,LSTM 等)对词嵌入进行微调的方法了。如果把预训练模型看作是一个词嵌入的强化版,那么在 BERT 时代,我们在追求其应用模式革新上也应该考虑到此方法,于是百分点认知智能实验室提出融合特征抽取及 fine-tune 的方法 FT-TM,其步骤如下:


  1. 在底层通过一个预训练模型,先训练一个可用的语言模型(视情况可停止训练);

  2. 针对具体下游任务设计神经网络结构,将其接在预训练模型之后;

  3. 联合训练包括预训练模型在内的整个神经网络,以此模式尝试进一步改善任务结果。


基于以上内容,我们对各种 BERT 应用方式选取了三个 NLP 典型任务进行实验,并通过实践证明,该方法在特定任务上均表现出色。


实验一:针对序列标注任务,我们选择了其子任务之一的命名实体识别任务(NER),并在 NER 的开源数据集 CoNLL03 上进行实验。该实验以仅对 BERT 进行 fine-tune(即方法 FT-NTM)的结果为 baseline,对比了在 BERT 基础上增加一个传统用于 NER 任务的 Bi-LSTM 网络(即方法 FT-TM)的效果,其实验结果如下图所示:



由图可得,结合 BERT 的 fine-tune 和上层神经网络的 FT-TM 方法在该任务上的 F1 值较 baseline 提升了近 7 个百分点。


实验二:针对文本分类任务,本次实验选取雅虎问答分类数据集,以原始 BERT 结果作为 baseline,对比了在其基础上分别连接了 HighwayLSTM 和 DenseNet 网络,并对其进行模型融合后的结果。实验结果由下图所示:



由实验看出,虽然模型融合后的效果并不十分明显,但也有一定的效果提升。


实验三:针对语义等价性任务,本实验选取包含了 40 万个问题对的“Quora-Question-Pair“数据集,根据句子对进行相似度的计算。本次实验将仅对 BERT 进行 fine-tune 的方法 FT-NTM 为 baseline,对比了在 BERT 之后接 BIMPM 网络的效果。同时以方法 NFT-TM 为 baseline,对比了两种改进 BIMPM 之后模型结构的效果(移除 BIMPM 中的第一层 Bi-LSTM 模型和将 BIMPM 的 matching 层与 transformer 相结合的模型)。注意,在模型训练时有个重要的 trick,考虑到预训练模型本身的效果和其与顶层模型的融合问题,在训练模型时,需要分两步进行:先固定预训练模型的参数,仅训练其上层特定任务网络,第二步再将整个网络联合训练。


该任务的实验结果如下图所示:



由实验结果可得,Bert+Sim-Transformer 结合 fine-tune Bert 的效果相较仅对 BERT 进行 fine-tune 的方法 FT-NTM,准确率提升了近 5 个百分点。


因此,从上面一系列的实验结果可以看出,我们提出的结合上层复杂模型和 fine-tune 的方法 FT-TM 是有效的,并且在某些任务中优于 fine-tune 的方式。同时在 BERT 预训练模型上面集成的神经网络模型好坏也会影响到最终的任务效果。


参考材料


[1]Matthew Peters, Sebastian Ruder, and Noah A Smith. To tune or not to tune?adapting pretrained representations to diverse tasks. arXiv preprintarXiv:1903.05987, 2019.


论文地址https://arxiv.org/abs/1907.05338


本文转载自公众号百分点(ID:baifendian_com)。


原文链接


https://mp.weixin.qq.com/s/1OajAJx9vP81AQ7WCf4OFA


2020-02-29 14:083409

评论

发布
暂无评论
发现更多内容

2023 MacBook Pro 与2021 Macbook Pro有哪些差别

互联网搬砖工作者

MacBook M1芯片 MacBook Pro M2芯片

DBA必备的Mysql知识点:数据类型和运算符

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

十问babel

虎妞先生

前端工程化 babel 前端‘’

倒计时2天:百度“文心一言”即将上线!

引迈信息

人工智能 低代码 AIGC ChatGPT 文心一言

Seata-go 1.1.0 发布,补齐 AT 模式支持

SOFAStack

开源 互联网 开发者 开发 Seata框架

vue项目中babel的最佳实践

虎妞先生

前端 Vue 3 vue cli babel

Sugar BI 增强分析能力全场景解析

Baidu AICLOUD

BI

我在京东做研发第五期:京东云自研服务器,如何将开发成本降低 60% 的同时还更低碳环保?

京东科技开发者

cpu 服务器 环保 节能 企业号 3 月 PK 榜

关于 SysOM 2.0 网络/存储相关诊断功能介绍及案例展示 | 第 72-73 期

OpenAnolis小助手

开源 直播 系统运维 技术分享 龙蜥大讲堂

实践Pytorch中的模型剪枝方法

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜

关于服务器数据迁移,介绍在服务器数据迁移计划中的7个步骤

镭速

办公要有新享法,「MIAOYUN生活梦想家」焕新升级!

MIAOYUN

搬迁公告 乔迁 办公升级

AREX-携程无代码侵入的自动化回归测试平台

AREX 中文社区

开源 自动化测试 回归测试

报名开启!KunlunBase今年首场线下MeetUP,期待与您的见面!

KunlunBase昆仑数据库

Meetup kunlunbase 内核技术

【云原生】k8s 环境快速部署(一小时以内部署完)

Java你猿哥

Java 学习 k8s Spring Boot ssm

DSC:数仓SQL脚本迁移的神奇工具

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

低代码平台的流程引擎设计指南

Baidu AICLOUD

低代码 爱速搭

Rust的安全性和稳健型

非凸科技

EFCore之CodeFirst

青柚1943

ORM SqlServer NET6 EFCore

功能强大的数据库管理工具:DBeaverEE 激活版

真大的脸盆

Mac 数据库管理工具 数据库管理 Mac 软件 数据库分析

MySQL创建用户与授权

源字节1号

软件开发 前端开发 后端开发 小程序开发

2023主流系统 固资管理助力转型升级一步到位

加入高科技仿生人

低代码 企业数字化转型 资产管理

3d建筑软件:Vectorworks 2023激活版

真大的脸盆

Mac Mac 软件 3D建筑动画

研发效能度量从 0 到 1 的『六脉神剑』

思码逸研发效能

研发效能 效能度量 研发效能度量

家电类投诉高居榜首,拿什么拯救“投诉了个寂寞”的消费者?

Openlab_cosmoplat

工业互联网 开源社区 家电

Tapdata Cloud 基础课:新功能详解之「授权系统自动分析」,一键定位任务报错原因,快速获取修复建议

tapdata

大数据

为什么CMS和G1都改用三色标记法,是可达性分析不香吗?

Java全栈架构师

Java 程序员 后端 JVM 架构师

工业数字孪生:西门子工业网络与设备虚拟调试案例

Openlab_cosmoplat

工业互联网 开源社区 数字孪生

Spring Boot 集成 Liquibase,数据库也能做版本控制!

Java你猿哥

Java spring Spring Boot java 编程

尚硅谷Node.js实战教程发布

小谷哥

BERT的正确使用姿势_开源_百分点认知智能实验室_InfoQ精选文章