微调BERT:序列级和令牌级应用程序

Fine-Tuning BERT for Sequence-Level and Token-Level Applications

为自然语言处理应用程序设计了不同的模型,例如基于RNNs、CNNs、attention和MLPs。当存在空间或时间限制时,这些模型是有用的,然而,为每个自然语言处理任务构建一个特定的模型实际上是不可行的。介绍了一个预训练模型,BERT,要求对各种自然语言处理任务进行最小的体系结构更改。一方面,在提出这个建议的时候,BERT改进了各种自然语言处理任务的现状。另一方面,如14.10节所述,原始BERT模型的两个版本都有1.1亿和3.4亿个参数。因此,当有足够的计算资源时,可以考虑为下游自然语言处理应用程序微调BERT。

现在,将自然语言处理应用程序的子集概括为序列级和令牌级。在序列层次上,介绍了在单文本分类和文本对分类或回归中如何将文本输入的BERT表示转换为输出标签。在令牌级别,将简要介绍新的应用程序,如文本标记和问答,并阐明BERT如何表示其输入并转换为输出标签。在“微调”过程中,不同的应用程序需要“完全连接”不同的层。在下游应用程序的监督学习过程中,外层的参数从零开始学习,同时对预训练的BERT模型中的所有参数进行微调。

1. Single Text Classification

单一文本分类以单个文本序列为输入,输出分类结果。除了在本章中研究的情感分析之外,语言可接受性语料库(CoLA)也是一个用于单个文本分类的数据集,用于判断给定句子在语法上是否可接受[Warstadt等人,2019]。例如,“应该学习”是可以接受的,但是“应该学习”则不是。

图1针对单个文本分类应用(如情感分析和测试语言可接受性)的微调BERT。假设输入的单个文本有六个标记。

描述了BERT的输入表示。BERT输入序列明确表示单个文本和文本对,其中特殊分类标记“<cls>”用于序列分类,特殊分类标记“<sep>”标记单个文本的结尾或分隔一对文本。如图1所示,在单个文本分类应用中,特殊分类标记“<cls>”的BERT表示对整个输入文本序列的信息进行编码。作为输入单个文本的表示,将被输入一个由完全连接(密集)层组成的小MLP,以输出所有离散标签值的分布。

2. Text Pair Classification or Regression

研究了自然语言推理。属于文本对分类,是一种对文本进行分类的应用程序。 以一对文本作为输入,输出一个连续值,语义文本相似度是一个流行的文本对回归任务。这个任务测量句子的语义相似性。例如,在语义-文本相似度基准数据集中,一对句子的相似度得分是一个从0(无意义重叠)到5(意义对等)的有序量表[Cer等人,2017]。目标是预测这些分数。语义-文本相似度基准数据集的示例包括(第1句、第2句、相似度得分):

· “A plane is taking off.”, “An air plane is taking off.”, 5.000;

· “A woman is eating something.”, “A woman is eating meat.”, 3.000;

· “A woman is dancing.”, “A man is talking.”, 0.000.

Fig. 2. Fine-tuning BERT for text pair classification or regression applications, such as natural language inference and semantic textual similarity. Suppose that the input text pair has two and three tokens.

与图1中的单个文本分类相比,图2中文本对分类的微调BERT在输入表示上有所不同。对于文本对回归任务(如语义文本相似性),可以应用一些微小的更改,例如输出连续的标签值和使用均方损失:在回归中很常见。

3. Text Tagging

现在让考虑令牌级别的任务,例如文本标记,其中每个令牌都分配了一个标签。在文本标注任务中,词性标注根据词在句子中的作用为每个词分配一个词性标记(如形容词和限定词)。例如,根据Penn Treebank II标记集,句子“John Smith的汽车是新的”应该标记为“NNP(名词,固有单数)NNP POS(所有格结尾)NN(名词,单数或质量)VB(动词,基本形式)JJ(形容词)”。

Fig. 3. Fine-tuning BERT for text tagging applications, such as part-of-speech tagging. Suppose that the input single text has six tokens.

图3说明了文本标记应用程序的微调BERT。与图1相比,唯一的区别在于在文本标记中,输入文本的每个标记的BERT表示被输入到相同的额外完全连接的层中,以输出标记的标签,例如词性标签。

4. Question Answering

问答作为另一个符号级应用,反映了阅读理解的能力。例如,斯坦福问答数据集(SQuAD v1.1)由阅读段落和问题组成,每个问题的答案只是问题所在段落中的一段文本(文本跨度)[Rajpurkar等人,2016年]。为了解释这一点,可以考虑这样一段话:“一些专家报告说,口罩的功效是不确定的。然而,口罩制造商坚持产品,如N95口罩,可以抵御病毒?”. 答案应该是文中的“口罩制造者”。因此,SQuAD v1.1的目标是在给定一对问题和一段文章的情况下,预测文章的开始和结束

Fig. 4. Fine-tuning BERT for question answering. Suppose that the input text pair has two and three tokens.

为了对BERT进行微调,在BERT的输入中,将问题和段落分别打包为第一和第二文本序列。为了预测文本跨距开始的位置,相同的附加全连接层将从位置通道转换任何令牌的BERT表示i变成标量分数si。所有通行令牌的这种分数通过softmax操作进一步转换成概率分布,使得每个令牌位置i有一个概率pi。作为文本跨度的开始。预测文本跨距的结束与上述相同,只是其附加的完全连接层中的参数与用于预测开始的参数无关。在预测终点时,任何位置的通行标志i由相同的完全连通层转换为标量分数ei。

eiei. :numref:fig_bert-qa描述了用于问答的微调BERT。

对于问题回答,监督学习的训练目标与最大化地面真相起始和结束位置的对数可能性一样简单。在预测跨度时,可以计算得分si+ej,从位置开始有效跨距i到位置j(i≤j),输出得分最高的跨度。

5. Summary

· BERT requires minimal architecture changes (extra fully-connected layers) for sequence-level and token-level natural language processing applications, such as single text classification (e.g., sentiment analysis and testing linguistic acceptability), text pair classification or regression (e.g., natural language inference and semantic textual similarity), text tagging (e.g., part-of-speech tagging), and question answering.

· During supervised learning of a downstream application, parameters of the extra layers are learned from scratch while all the parameters in the pretrained BERT model are fine-tuned.

微调BERT:序列级和令牌级应用程序的更多相关文章

  1. 自然语言推理:微调BERT

    自然语言推理:微调BERT Natural Language Inference: Fine-Tuning BERT SNLI数据集上的自然语言推理任务设计了一个基于注意力的体系结构.现在通过微调BE ...

  2. 51nod图论题解(4级,5级算法题)

    51nod图论题解(4级,5级算法题) 1805 小树 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 她发现她的树的点上都有一个标号(从1到n),这些树都在空 ...

  3. Netty 100万级到亿级流量 高并发 仿微信 IM后台 开源项目实战

    目录 写在前面 亿级流量IM的应用场景 十万级 单体IM 系统 高并发分布式IM系统架构 疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之 -10[ 博客园 总入口 ] 写在前面 ​ 大家好 ...

  4. HTML块级、行级元素,特殊字符,嵌套规则

    如果介绍HTML网页基本标签的嵌套规则,首先要说的就是元素的分类.元素可以划分为块级元素和行级元素,块级元素是什么?它可以独占一行,可以设置宽高度,默认是100%:行级元素与之相反,它的内容决定它的宽 ...

  5. 操作系统学习笔记5 | 用户级线程 && 内核级线程

    在上一部分中,我们了解到操作系统实现多进程图像需要组织.切换.考虑进程之间的影响,组织就是用PCB的队列实现,用到了一些简单的数据结构知识.而本部分重点就是进程之间的切换. 参考资料: 课程:哈工大操 ...

  6. [数据库事务与锁]详解五: MySQL中的行级锁,表级锁,页级锁

    注明: 本文转载自http://www.hollischuang.com/archives/914 在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的 ...

  7. MySQL行级锁,表级锁,页级锁详解

    页级:引擎 BDB. 表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行 行级:引擎 INNODB , 单独的一行记录加锁 表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写 ...

  8. 行为级和RTL级的区别(转)

    转自:http://hi.baidu.com/renmeman/item/5bd83496e3fc816bf14215db RTL级,registertransferlevel,指的是用寄存器这一级别 ...

  9. CSS 各类 块级元素 行级元素 水平 垂直 居中问题

    元素的居中问题是每个初学者碰到的第一个大问题,在此我总结了下各种块级 行级 水平 垂直 的居中方法,并尽量给出代码实例. 首先请先明白块级元素和行级元素的区别 行级元素 一块级元素 1 水平居中: ( ...

随机推荐

  1. hdu2594 简单KMP

    题意:      给你两个串,问你s1的前缀和s2的后缀最长公共部分是多少. 思路:      根据KMP的匹配形式,我们求出s1的next,然后用s1去匹配s2,输出当匹配到s2的最后一个的时候的匹 ...

  2. Linux中的网络配置

    目录 网卡的配置 NetworkManager的使用 Team网卡绑定 Centos6.5.Redhat7.Kali网卡配置的不同 Kali桥接模式配置静态ip 网卡的配置 网卡命名的不同: Rhel ...

  3. 【python】Leetcode每日一题-不同的子序列

    [python]Leetcode每日一题-不同的子序列 [题目描述] 给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数. 字符串的一个 子序列 是指,通过删除一些(也可以 ...

  4. 去除腾讯视频logo水印

    打开F12,然后再console中输入下面代码,即可. document.querySelectorAll(".txp_waterMark_pic").forEach(functi ...

  5. Linux查看进程和查看端口占用

    查看进程 ps -ef|grep ****.jar 查看端口占用(如果出现命令找不到,安装一下工具即可) netstat -lnp|grep 端口号 (命令找不到解决办法) yum install n ...

  6. Mac终端使用tree命令查看目录结构

    使用brew管理tree扩展 brew search tree brew install tree tree

  7. 二、多线程之Thread中run 和start 区别

    Thread使用run 和start 区别 结论:run()方法将作为当前调用线程本身的常规方法调用执行,并且不会发生多线程. System.out.println("开始测试多线程&quo ...

  8. 设置vue全局配置

    全局配置 创建全局配置文件 vue.config.js 添加配置项

  9. [刷题] 283 Move Zeros

    要求 将所有的0,移动到vector的后面比如; [1,3,0,12,5] -> [1,3,12,5,0] 实现 第一版程序,时间.空间复杂度都是O(n) 1 #include<iostr ...

  10. echo "This is line $LINENO"返回行号

    echo "This is line $LINENO"返回行号 LINENO 变量LINENO返回它在脚本里面的行号. #!/bin/bash echo "This is ...