0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于训练阶段使用知识库+KNN检索相关信息辅助学习方法

深度学习自然语言处理 来源:圆圆的算法笔记 作者:圆圆的算法笔记 2022-10-09 17:33 次阅读

在prompt learning中一个核心问题是模型存在死记硬背现象。Prompt learnin主要应用在few-shot learning场景,先将训练数据转换成prompt的形式,在训练过程模型侧重于记忆训练数据,然后使用记忆的信息做预测。这个过程会导致模型缺乏泛化能力,一些长尾的case预测效果不好。

NIPS 2022中浙大和阿里提出使用检索方法增强prompt learning,利用训练数据构造知识库,在训练阶段使用知识库+KNN检索相关信息辅助学习,通过这种方式将需要记忆的信息从模型中拆分出来,直接输入到模型中。通过这种方式,可以让模型参数更侧重泛化信息的学习,而不是过拟合训练数据。下面为大家详细介绍一下这篇工作。

NLP Prompt系列——Prompt Engineering方法详细梳理

1 Prompt Learning回顾

Prompt learning主要面向的是训练数据较少的场景。首先需要一个预训练模型,然后将下游任务转换成完形填空的形式。对于分类问题,判断某个text属于哪个label,转换成如下的文本输入到预训练语言模型中:

0562950c-47b1-11ed-a3b6-dac502259ad0.png

利用预训练语言模型,预测出[MASK]对应的文本,后面接一个文本到label的映射函数,即可实现文本分类任务。Prompt learning的好处是可以充分利用预训练语言模型的知识,让下游任务和预训练任务更加适配,以提升样本量不足情况下的效果。我在之前的文章NLP Prompt系列——Prompt Engineering方法详细梳理详细介绍过prompt相关工作,感兴趣的同学可以进一步阅读。

虽然这种方法充分运用了预训练语言模型的知识,但毕竟finetune的数据少,模型更像在死记硬背训练prompt数据中的信息。这对于长尾样本或非典型的句子的预测效果不友好。为了解决上述问题,本文的核心思路是,如果我们把这些需要记忆的信息单独拿出来存储到一个知识库中,在需要的时候检索它们并作为模型额外输入,就能让模型参数没必要再死记硬背这些信息了,从而实现记忆和泛化更好的平衡,有点【好记性不如烂笔头】的感觉。下图是本文提出的基本框架示意图。

05700160-47b1-11ed-a3b6-dac502259ad0.png

2 从知识库中检索信息

实现上面的框架核心是从知识库中检索信息,这也就涉及到两个问题,一个是如何构造知识库,另一个是如何进行信息检索和利用

在知识库的构造上,文中构造的是一个{K, V}格式的数据,训练集中的每条样本对应一个{K, V}。K代表这个样本的prompt输入模型后[MASK]位置的隐向量,V代表这个样本的label对应的单词。由于K是模型输出的向量,因此每训练几轮,就会动态更新知识库中的Key,避免Key和模型最新参数隔代太多不匹配。

在信息检索和利用上,对于当前样本模型先得到其[MASK]位置的向量,然后用这个向量在知识库中进行KNN检索,每个类别的样本都取出topK个,检索的距离度量是向量内积。对于每个类别检索出的向量,使用内积做softmax后进行加权融合,得到这个类别最终向量,拼接到当前样本embedding后面输入到模型中:

05b0da96-47b1-11ed-a3b6-dac502259ad0.png

这部分检索出来的样本就是将需要记忆的知识直接引入到了当前样本中,不再需要模型参数去记忆了。此外,这种将向量引入而不是引入对应的token,可以让信息的扩展更方便,直接引入样本的token会拉长输入样本长度,导致模型性能下降,且长度也有上限。

05e3acf0-47b1-11ed-a3b6-dac502259ad0.png

3 使用KNN指导模型训练和预测

上面收的引入知识库+KNN的方法,缓解了模型参数需要强记忆训练样本的问题。此外,文中还通过KNN检索结果来指导模型的学习过程。KNN检索的好处是不需要模型训练,直接根据预训练的表示计算距离,利用邻居样本的label,就能预测当前样本的label。这对于模型来说是另一个维度的信息补充,文中通过区分难样本指导训练在inference阶段指导预测两个方面进一步指导模型的训练和预测。

KNN的检索结果可以用来区分难样本和简单样本。通过KNN检索以及检索邻居的label,可以得到当前样本各个类别的预测概率。这个KNN的预测结果可以作为是否是难样本的参考,如果模型预测预测结果和KNN结果不一致,就是难样本。对于难样本,加大其学习权重,通过将KNN预测概率引入到交叉熵损失中实现:

0611b294-47b1-11ed-a3b6-dac502259ad0.png

另一方面,在预测阶段,也直接将KNN的预测结果拿出来和模型对于[MASK]的预测结果做插值,得到最终的预测结果:

062a7b3a-47b1-11ed-a3b6-dac502259ad0.png

4 实验结果

文中在9个NLU数据集的few-shot和zero-shot learning上对比了效果,可以看到本文提出的方法对于效果的提升还是非常明显的。

063fd1a6-47b1-11ed-a3b6-dac502259ad0.png

此外,文中也对比了跨领域的效果,在source domain进行prompt learning,对比在target domain上的效果:

06658856-47b1-11ed-a3b6-dac502259ad0.png

5 总结

检索在NLP各类任务中的应用越来越多,本文也将检索用于分离可记忆的信息来提升模型的泛化能力,并取得了显著效果。检索通过信息记忆+查询的方式,引入了丰富的外部信息,能够让模型更多的容量服务于学习泛化性,而非简单的记住训练数据。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7006

    浏览量

    88945
  • KNN
    KNN
    +关注

    关注

    0

    文章

    22

    浏览量

    10803
  • 语言模型
    +关注

    关注

    0

    文章

    521

    浏览量

    10268

原文标题:不要让模型死记硬背—用检索增强Prompt Learning

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    学习STM32必备的知识库

    学习STM32必备的知识库包括STM32F103C8T6寄存器手册、STM32F103ZET6各IO口功能、STM32固件使用手册(中文版)、stm32学习方法,参考手册还有样品申请
    发表于 04-01 14:16

    使用KNN进行分类和回归

    ,这种学习器很少或根本不处理训练数据。与线性回归等积极学习的算法不同,KNN 不会估计在训练阶段
    发表于 10-28 14:44

    基于知识库的智能策略翻译威廉希尔官方网站

    提出基于知识库的策略翻译方法,设计策略翻译组成结构,分析策略知识及其表示形式,建立动态可扩展的策略知识库,开发可扩展的策略编译器和策略组装器。实例测试表明,该
    发表于 04-22 09:42 11次下载

    一种基于解释的知识库综合

    知识库的解释出发,对概念和概念间关系的解释进行了分析,定义了知识库系统的最小概念集合,设计了生成最小概念集合的方法,提出了基于解释的知识库综合算法,讨论了该
    发表于 05-07 20:44 16次下载

    领域知识库的研究与设计

    领域知识库的构建有利于知识检索和共享。分析了领域知识库应具备的条件,指出构建领域知识库的有效方法
    发表于 08-29 14:39 0次下载

    NXP NFC知识库

    NXP NFC知识库
    发表于 12-30 17:32 49次下载

    一种面向微生物领域的知识库构建方法

    一种面向微生物领域的知识库构建方法_陈航
    发表于 01-07 20:49 0次下载

    本体知识库的模块与保守扩充

    模块化是软件工程的一种方法,近年来被引入到本体领域,用以支持本体的重用和本体的整合。已有的工作没有讨论同时含有TBox和ABox的本体知识库的模块化的相关问题。在定义本体知识库的模块和
    发表于 11-24 09:58 0次下载

    虚拟仪器知识库文件的结构组成和知识库文件自动生成器的设计与应用

    在前几章中,重点介绍了VISA规范、仪器驱动程序规范及软面板规范,这些构成了虚拟仪器及系统设计的关键部分。为了将VXI产品更有效地集成到虚拟仪器系统中去,VXI总线即插即用系统联盟还定义了虚拟仪器知识库文件的结构。本章介绍了虚拟仪器知识库文件的结构组成,并重点介绍了
    发表于 12-05 14:21 2次下载
    虚拟仪器<b class='flag-5'>知识库</b>文件的结构组成和<b class='flag-5'>知识库</b>文件自动生成器的设计与应用

    如何使用Arduino KNN进行简单的机器学习

    除了像TensorFlow for Arduino这样强大的深度学习架构外,还有一些经典的ML方法适用于嵌入式设备上的较小数据集,这些方法有用且易于理解-最简单的方法之一就是
    的头像 发表于 04-01 10:07 3567次阅读
    如何使用Arduino <b class='flag-5'>KNN</b><b class='flag-5'>库</b>进行简单的机器<b class='flag-5'>学习</b>?

    复杂知识库问答任务的典型挑战和解决方案

    基于语义解析(基于SP)的方法和基于信息检索(基于IR)的方法。首先,我们形式化地定义了知识库问答任务并介绍了该任务下
    的头像 发表于 06-13 09:49 2413次阅读

    面向异质信息的网络表示学习方法综述

    面向异质信息的网络表示学习方法综述
    发表于 06-09 14:12 13次下载

    如何基于亚马逊云科技LLM相关工具打造知识库

    了解其核心组件、快速部署指南以及LangChain集成及其在电商的应用场景。 通用场景:基于企业内部知识库例如IT/HR信息的问答 制造行业:装备维保知识库问答和售后客服 金融行业:智能客服和智能报告生成 教育行业:面向学生和面
    的头像 发表于 11-23 17:53 1023次阅读
    如何基于亚马逊云科技LLM<b class='flag-5'>相关</b>工具打造<b class='flag-5'>知识库</b>

    无监督域自适应场景:基于检索增强的情境学习实现知识迁移

    本文对比了多种基线方法,包括无监督域自适应的传统方法(如Pseudo-labeling和对抗训练)、基于检索的LM方法(如REALM和RAG
    发表于 12-05 14:14 615次阅读
    无监督域自适应场景:基于<b class='flag-5'>检索</b>增强的情境<b class='flag-5'>学习</b>实现<b class='flag-5'>知识</b>迁移

    如何手撸一个自有知识库的RAG系统

    用于自然语言处理任务,如文本生成、问答系统等。 我们通过一下几个步骤来完成一个基于京东云官网文档的RAG系统 数据收集 建立知识库 向量检索 提示词与模型 数据收集 数据的收集再整个RAG实施过程中无疑是最耗人工的,涉及到收集、清洗、格式化、切分等过程。这里我们使用京东云
    的头像 发表于 06-17 14:59 573次阅读