BERT烹饪之法:fintune 的艺术.doc
《BERT烹饪之法:fintune 的艺术.doc》由会员分享,可在线阅读,更多相关《BERT烹饪之法:fintune 的艺术.doc(8页珍藏版)》请在三一文库上搜索。
1、BERT烹饪之法:fintune 的艺术BERT 预训练模型就如宰好待烹的猪,则 finetune 便是烹饪之法,猪头能用来做成香糯浓醇的烧猪头肉,猪蹄能用来做成劲道十足的红烧猪蹄,身上的梅花肉,五花肉,里脊肉也各有各的做法。于是对于 Bert finetune,也就有各种料理之法。序言自去年 BERT 论文发出,正巧半年,不光各大榜单上尽是 BERT 之名,最近公布 NAACL 最佳长论文也给了 BERT,正所谓实至名归。正巧在读 BERT 相关论文, 顺便总结下,给大家介绍 BERT 论文发出半年后的今天,大概都有哪些与 BERT finetune 相关的研究。先来简单介绍 BERT,再进
2、入正题。何谓 BERT,全称 Bidirectional Encoder Representations from Transformers(Transformer 双向编码器特征),缩写为芝麻街的主角之一 BERT。取名的恶趣味,导致之后微软,百度的改进模型,都叫 Big-Bird 和 ERNIE,俨然走错片场,进入了芝麻街的世界。BERT 最主要是开创性地提出同时用 Masked Language Model (掩语言模型) 和 Next Sentence Prediction(下句预测)两个任务,加上大量的数据,来预训练出一个大型的 Transformer 模型。而这个模型,也就是今天的
3、主角 BERT。BERT 主要部件既然要各自 finetune,那便得先了解 BERT 这头大肥猪的主要部位。首先是最关键的输入部分,之后大部分 finetune 和这部分联系很大。自上向下一一可知,BERT 输入最主要组成部分便是,词(token 这里姑且理解为词)向量、段(segment)向量、位置向量。词向量很好理解,也是模型中关于词最主要信息所在;段向量是因为 BERT 里有下句预测任务,所以会有两句拼接起来,上句与下句,上句有上句段向量,下句则有下句段向量,也就是图中A与B。此外,句子末尾都有加SEP结尾符,两句拼接开头有CLS符;而位置向量则是因为 Transformer 模型不能
4、记住时序,所以人为加入表示位置的向量。之后这三个向量拼接起来的输入会喂入BERT模型,输出各个位置的表示向量。Finetune 标准四法关于 Finetune,这里定义 BERT 论文上提到的四种方法为标准法,而此外各种方法,则定义为花式。而如果只是对标准法轻微改动,也归入标准。标准四法第一法,双句分类任务。很简单就像 BERT 的设定一般,两句拼起来,加上CLS和SEP,直接取CLS位置输出向量预测,进行 finetune。标准四法第二法,单句分类任务。和双句不同的是,直接拿单句,前面加入CLS输入,之后同样取CLS位置输出来预测,进行 finetune。标准四法第三法,问答(QA)任务。将
5、问题和答题所需上下文分别作为上句与下句,加入CLS和SEP特殊符,之后通过在上下文部分预测答案所在位置开头(Start)与结尾(End),进行 finetune。标准四法第四法,单句标注任务。之前单句分类,先加入CLS,但是最后取其他位置输出,预测相应标注,进行 finetune。Finetune 之标准篇先来介绍论文中用到标准法的。双句分类标准法的双句分类,在类似文档检索任务中,将query与文档作为上下句,拿CLS的输出来预测,finetune。有这两篇论文:Simple Applications of BERT for Ad Hoc Document RetrievalPassage R
6、e-ranking with BERT如果说这样的文档检索主要有三步:第一,先用工具或算法(BM25等)获得最初候选;第二,用方法对query与候选匹配重新打分,按照分数重新排序;第三,最上面多少条作为所需。这里最主要是对第二步处理。Simple Applications of BERT for Ad Hoc Document Retrieval主要测试了两个任务,首先是 Microblog 的句级别检索匹配,用 Anserini IR toolkit 工具先根据 query 召回1000条候选,然后候选和 query 拼接喂入 BERT 得到分数,之后取 BERT 分数和 Anserini
7、分数的线性插值,作为结果分数,重新排序。然后在 newswire 上长片段检索,文档长度拼接 query 会大于 BERT 预训练模型最大长度512个token。其实大体步骤与句级别相同,不过会先在句级别 finetune,之后,计算文档分句后各句分数,取top n加权,再和 Anserini 的分数插值,重新排序。Passage Re-ranking with BERT大体和上篇类似,数据集有些不同,也是先第一步用 BM25 算法,获得1000篇相关候选,然后把 query 作为上句候选作为下句,BERT 打分,最后对候选重新排序。和上面做法不同的是,对于 query 超过64个token部
8、分截断,以及 query 和候选拼接总长超过512部分截掉。训练时,拿1000个中相关的作为正例,不相关作为负例,取CLS向量二分类 finetune。单句标注Google 公开的 BERT 预训练模型,根据语言,可分为英文,中文,多语言(104种语言)。这里介绍的大部分论文都是拿英文模型直接 finetune,而中文没有,这一篇是唯一一篇用多语言 finetune 的。75Languages,1Model:ParsingUniversalDependenciesUniversally这篇论文用到的是斯坦福的 Universal Dependencies 数据集,里面包含了多达75种语言的语料
9、,任务和标注也涵盖了从形态学,到POS,再到依存关系等等多级任务。最早入门 NLP,本人拿来第一个练手的数据集也是这个,深知这个数据集的困难,诸多语言有些闻所未闻,里面还有各种设定(无标注,低资源),多任务训练如何设定.而这篇文章,直接用 BERT 多语言预训练模型在所有语言上,所有任务上,进行 finetune。首先,多语言里一个大问题是如何将词分开,因为如此多语言,词表会非常大,这里作者用 BERT 自带 WordPiece 直接分词,然后用分完后第一个子词位置的输出向量来预测。关于多任务,对 UPOS,UFeats 是直接各位置softmax输出,Lemmas 也类似标注任务,不过会有后
10、处理,Deps 则是用了Manning组提出的 “graph-based biaffine attention parser“。最后 finetune 时,直接拿单句加上CLS输入,但要注意的是,这里拿的不是最上一层的输出,而是用到一个可学习各层权重的Layer Attention来对不同层加和。如此操作是因为之前多个研究表面,低层任务(比如POS)特征主要在网络底层,而高层任务特征(比如依存)主要在高层。之后结果也表明这一点,如下图。为避免过于依赖某层,还加入 Layer Dropout,训练中随机会不用某层输出。结果在依存任务上超过之前 SOTA,其他任务达到匹敌程度。还有在低资源 fin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BERT烹饪之法:fintune 的艺术 BERT 烹饪 fintune 艺术
链接地址:https://www.31doc.com/p-3249992.html