NLP

(Paper Weekly03) GPT Understands, Too: P-tuning
GPT Understands, Too (什么,GPT也可以拿来做NLU?) 本文提出了一种全新的fine-tune方法:P-tuning,并比大小接近的BERT模型上取得了相近甚至更好的表现。P-tuning的motivation其实很简单,既然可以通过离散的prompt来做NLU任务,那么连续的prompt是不是能达到更好的效果。 两个motivation如下: finetune大模型非常困难。大模型的迁移泛化能力(transferbility)很差,而且当模型过大时,显存开销是个很大的问题。P-tuning并不需要对参数进行更新,真正会被训练到的参数大概只有预训练模型的1% 人工编写的prompt准确率无法保证,一般来说任何人造的prompt能提取到的知识都是预训练模型中知识的下界。 之前的工作中,针对prompt的生成方法有两种: Mining-based生成:利用中间词或使用依存树分析 Paraphasing-based生成:利用back-translation Ranked Ensemble P-tuning 传统的prompt会根据人工选择的词将其映射到对应的词向量上,而p-tuning的做法是直接优化隐状态。 这里的e(x)是通过embedding层得到的vector表示,h代表的是可训练的embedding向量。作者在优化一节中详细描述了得到h的过程。 如果h的初始化使用简单的独立随机采样,那么可能在优化中可能表现不佳,作者认为这是由SGD带来的,隐向量可能只在初始化附近小幅度的变化,很容易落到local minima中。 此外,还需解决不同的隐状态向量之间的依赖关系。本文采用bi-LSTM进行建模,相较transformers引入的overhead较小。 此外,作者还发现在prompt中加入一些anchor词的embedding可以改善模型在NLI部分benchmarks上的表现。 Experiments 本文在两个task上进行了实验。 Task 1 Knowledge Probing 由于bert和GPT的词汇表不太一样,作者重新构造了一个新的数据集LAMA-29K,在这个数据集上对于各种模型使用P-tuning都能带来不小的改进;在模型参数量过大以至于无法进行fine-tune的MegatronLM模型上使用P-tuning达到了新的SOTA。 Task 2 SuperGLUE 第二个TASK作者使用了superGLUE(不知道为什么不用GLUE),并使用参数量接近的GPT2-base和BERT-base作对比,可以发现P-tuning对GPT的提升幅度是比较显著的,虽然和MP相比提升不是特别明显。吐槽:70出头的avg score可以说是baseline中的baseline了,目前superGLUE的SOTA都在90+,差距还是比较明显。当然superGLUE并不是最契合p-tuning的情景,所以苛求表现好像也不太公平。
(Paper Weekly02) Adversarial NLI: A New Benchmark
总体流程图: 最大限度利用标注者作为对抗攻击来源,进行多轮反复迭代,最大限度地暴露模型的“弱点”。可以避免数据集被“吃透”。 具体流程 给定context与预先设定好的label,标注者被要求写出符合该label的hypothesis,并努力诱导模型对其产生错误分类。如果模型确实产生了错误,那么还需要将相应的数据交给第三方verifier(另一位或多位人类)进行判断。 当一轮数据搜集完成后,构造新的训练集。其中,test set的构成被局限在:1.之前没有为训练集标注过训练样本的标注者所标注的数据 2. 按照标签的类别和种类进行平衡。 标注细节: 借助Mechanical Turk(可以理解为人工智能小黑工平台),给标注者提供context与label,标注者给出hypothesis后再将模型的probability feedback提供给标注者。如果不能成功欺骗模型,则标注者进行第二、三、四…次标注(第一轮最多重写5次,之后10次)。 R1用的是Bert-Large,R2转而使用在SNLI,MNLI、FeverNLI和第一轮得到的训练数据A1上训练的Roberta。在第二轮中训练多个roberta构成ensemble,每次随机挑选一个模型,避免标注者过度利用单一模型的vulnerability。 第三轮训练中使用了来源更加广泛的文本,包括新闻、小说、正式演讲文本等等,并且再加入第二轮得到的训练数据A2。 和其他的数据集进行比较: 首先从设计思路上,ANLI就比之前的任何数据集更难… 其次,ANLI依然继承了MNLI的一些问题,比如context非常的短,从直观上来说,更长的context有助于生成更难的例子。 之前的一些研究表明,模型可能会利用hypothesis中的spurious bias,ANLI数据集经过测试后表明这种情况不并严重。