原创智能优化,原创度检查,一键采集,文章组合(一下-learning框架来利用预训练模型解决各种NLP问题)
优采云 发布时间: 2022-01-19 11:16原创智能优化,原创度检查,一键采集,文章组合(一下-learning框架来利用预训练模型解决各种NLP问题)
大家好,我在说。
今天给大家推荐一下我校计算机系NLP实验室的最新成果:OpenPrompt开源工具包。有了它,初学者可以轻松部署 Prompt-learning 框架,使用预训练模型解决各种 NLP 问题。让我们来看看。
如何高效地使用*敏*感*词*预训练语言模型(PLM)是近年来 NLP 领域的核心问题之一。长期以来,传统的微调范式一直是驱动大模型的“基础操作”。在微调范式中,我们需要在预训练模型上引入额外的目标函数,以使大模型适应各种下游任务。
背景资料:即兴学习范式的兴起
最近,一种驱动大型模型的新范式在 NLP 社区受到了广泛关注。它是提示学习(prompt-tuning),它会根据模板对输入的文本进行特殊处理。任务被重构为“预训练任务”。例如,在一个情感分类任务中,我们需要判断“这部电影让我觉得浪费了我的生命”这句话的情感是“积极”还是“消极”,那么我们可以使用模板来转换分类问题变成了一个“手势”填空题:“这部电影让我感觉像是在浪费生命,真的是[MASK]”,这里的输出是“好”和“坏”来对应二进制分类。研究发现,即时学习在训练样本较少的情况下表现异常出色,可以有效地在预训练和模型适应之间架起一座桥梁。更重要的是,它是我们驱动非常大的模型(例如无法直接微调的1000亿参数的模型)的有效手段。
OpenPrompt:开源提示学习工具包
图 1 使用 OpenPrompt 对不同的 NLP 任务进行建模
如今,NLP学术界已经出现了一系列的快速学习方法,包括模板的构建和搜索、标签到字典的映射和优化、快速学习在各种下游任务中的适配等等。但是,当我们深入源码时,会发现没有统一的范式来实现prompt-learning。这些方法力求在现有的传统微调框架中做出微妙而有效的改变,以实现即时学习。可能导致可读性和再现性差。事实上,快速学习过程是预训练任务、当前任务、人类先验知识和模型架构的综合。我们在具体实现中可能会遇到各种细节,比如:应该使用什么类型的模型,传销还是 seq2seq?应该用什么参数级别的模型,是亿级,十亿级,还是百亿级以上的超级模型?我应该使用什么模板?是手动构造还是用软令牌随机初始化?如何构建标签到词汇表的映射?应该使用哪些训练方法?**近期,清华大学自然语言处理实验室团队发布了统一范式的提示学习工具包 OpenPrompt,**旨在让初学者、开发人员和研究人员能够轻松部署提示学习框架,以利用 pre-训练模型来解决各种 NLP 问题。它具有以下特点:还是百亿级别的超模?我应该使用什么模板?是手动构造还是用软令牌随机初始化?如何构建标签到词汇表的映射?应该使用哪些训练方法?**近期,清华大学自然语言处理实验室团队发布了统一范式的提示学习工具包 OpenPrompt,**旨在让初学者、开发者和研究人员能够轻松部署提示学习框架,以充分利用 pre-训练模型来解决各种 NLP 问题。它具有以下特点:还是百亿级别的超模?我应该使用什么模板?是手动构造还是用软令牌随机初始化?如何构建标签到词汇表的映射?应该使用哪些训练方法?**近期,清华大学自然语言处理实验室团队发布了统一范式的提示学习工具包 OpenPrompt,**旨在让初学者、开发者和研究人员能够轻松部署提示学习框架,以充分利用 pre-训练模型来解决各种 NLP 问题。它具有以下特点:清华大学自然语言处理实验室团队发布了统一的提示学习工具包 OpenPrompt 范式,**旨在让初学者、开发人员和研究人员轻松部署提示学习框架,以利用预训练模型解决各种 NLP 问题。它具有以下特点:清华大学自然语言处理实验室团队发布了统一的提示学习工具包 OpenPrompt 范式,**旨在让初学者、开发人员和研究人员轻松部署提示学习框架,以利用预训练模型解决各种 NLP 问题。它具有以下特点:
图2 OpenPrompt工具包*敏*感*词*
同时,开发团队利用 OpenPrompt 实现了一些具有代表性的提示学习任务。可以看出,在科学的模块设计下,这些任务都可以在OpenPrompt的统一框架下实现。
表 1 OpenPrompt 中实现的一些即时学习作业
更详细的使用方法和说明请参考项目链接。
入门教程:使用 OpenPrompt
OpenPrompt 的使用很简单,首先 git clone 项目并安装依赖:
在 OpenPrompt 中,PromptModel 由 Template 类、Verbalizer 和预训练模型组成。Template类主要负责模板的定义。在这里,它不仅支持从文件中直接读取手动定义的模板,还支持迭代搜索。Verbalizer 类负责定义标签词到词汇表的映射,也支持高级操作。
第 1 步:定义任务
Prompt-learning 范式几乎可以应用于任何 NLP 范式,所以第一步是定义当前任务,本质上就是定义类和 InputExample。这里我们以情感分类为例。
第 2 步:选择预训练模型
选择预训练模型的本质是选择预训练任务。不同的预训练模型也有不同的特点。在 OpenPrompt 的模块化和灵活性的支持下,我们鼓励开发者探索不同预训练语言模型的特点。OpenPrompt 与 Huggingface Transfomers 库兼容,可以一键调用。
第三步:定义模板(Template)
模板是即时学习中最重要的模块之一。它可以是文本或无意义的特殊字符,对原创输入进行修改和封装。
第 4 步:定义映射(Verbalizer)
Verbalizer 将标签映射到字典中的标签词,它也是提示学习的重要组成部分(但不是必需的,例如在生成任务中)。
第 5 步:定义 PromptModel
结合上面的模块,我们会得到一个PromptModel,虽然在当前的例子中,这些模块只是封装在一起,但在实践中,用户可以定义它们之间的许多高级交互。
是时候训练了!训练过程兼容传统的 PyTorch 范式,有关 OpenPrompt 的更多信息,请关注官方文档。
高级开发:使用 OpenPrompt 开发您自己的提示学习框架
OpenPrompt 提供了一些经典数据集的下载链接,用户也可以根据自己的需要使用数据集开发提示学习框架。由于提示学习在少样本学习中的出色表现,OpenPrompt 提供了 FewShotSampler 类进行少样本采样,用户可以轻松地对不同粒度的数据集进行采样,以验证自己的提示学习框架的有效性。
在用户实现的Template类中,需要继承prompt_base文件中的Template基类。这里定义了模板的基本属性。用户可以指定构建模板的具体方式,要训练哪些标记以及使用哪些标记。是一个不在词汇表中的新特殊字符(即软编码),您可以通过定义 wrap_one_example 方法来定义如何用模板包装输入数据。在 Verbalizer 类中,类似地,用户可以通过定义 label_words 来定义词汇表中哪些词需要标注,也可以设置如何提取和应用这些词的 logits。通过将 Template、Verbalizer 和模型本身结合起来,我们可以得到一个 PromptModel 类,在这个类中,我们可以定义它们之间的具体交互,
在定义了自己的 Prompt 之后,开发者还可以设置不同的优化方式,比如只优化 Prompt 本身而不改变模型参数进行具体训练。工具包默认提供了具体训练过程中的接口,例如指定需要截断哪些文本等,用户也可以根据自己的想法自由修改训练和评估过程。
参考
刘 P,袁 W,Fu J,等。预训练、提示和预测:自然语言处理中提示方法的系统调查[J]. arXiv 预印本 arXiv:2107.13586, 2021.
Han X, Zhao W, Ding N, et al. PTR:使用文本分类规则进行提示调整[J]。arXiv 预印本 arXiv:2105.11259, 2021.
Gao T, Fisch A, Chen D. 使预训练的语言模型更好的小样本学习者[J]. arXiv 预印本 arXiv:2012.15723, 2020.
丁 N,陈 Y,韩 X,等。细粒度实体类型的提示学习[J]. arXiv 预印本 arXiv:2108.10604, 2021.
Lester B,Al-Rfou R,Constant N. 参数高效快速调谐的尺度幂[J]。arXiv 预印本 arXiv:2104.08691, 2021.
Le Scoo T, Rush A M. 一个提示值多少数据点?[C]//计算语言学协会北美分会 2021 年会议论文集:人类语言技术。2021:2627-2636.
刘 X,郑 Y,杜 Z,等。GPT 也懂[J]. arXiv 预印本 arXiv:2103.10385, 2021.
Qin G, Eisner J. 学习如何提问:使用混合软提示查询 LMs[J]. arXiv 预印本 arXiv:2104.06599, 2021.
Schick T, Schmid H, Schütze H. 自动识别可作为小样本文本分类标签的词[J]. arXiv 预印本 arXiv:2010.13641, 2020.
Li XL, Liang P. Prefix-tuning: 优化连续提示生成[J]. arXiv 预印本 arXiv:2101.00190, 2021.
赵TZ,华莱士E,冯S,等。使用前校准:提高语言模型的few-shot性能[J]. arXiv 预印本 arXiv:2102.09690, 2021.
胡 S,丁 N,王 H,等。知识提示调优:将知识融入文本分类的提示词中[J]. arXiv 预印本 arXiv:2108.02035, 2021.
机器学习/深度学习算法交流群