[论文阅读笔记76]GPT Understands, Too(P-tuning)

2023-10-27

1. 基本信息

题目 论文作者与单位 来源 年份
GPT Understands, Too 清华大学

Citations, References

论文链接:https://arxiv.org/pdf/2103.10385.pdf

论文代码:

2. 要点

研究主题 问题背景 核心方法流程 亮点 数据集 结论 论文类型 关键字
微调大模型 采用传统微调的gpt在自然语言理解(NLU)方面未能取得良好的效果,所以提出了P-tuning. LAMA,SuperGlue P-tuning在少样本上,在bert,gpt都取得不错的效果。

3. 模型(核心内容)

3.1 模型例子

pCeDFvn.png

这里的模型思想是例如有一个模板T:The capital of [X] is [Y], 这里的X定义为上下文,Y定义为目标,其它字符表示prompt.

对于离散型,每一个prompt提示词都可以在V词典中查到,然后都可以经过预模型模型进行编码。

*** T = {*****[P_0:i ], x, *****[P_*****i+1:m], y}, [P_i ] *****∈ V, ***

pCesHCF.png

在p-tuning中p_i被看成是一个伪token,对应用的模板应该是这样的:

pCesoNT.png

这里的h_i是可以训练的的,通过训练可以获得列准确的prompt,这个prompt将会超过当前的prompt.

最后的损失函数为:

pCeyAKA.png

其它这个跟之前几篇思想是一样的。直接把离散的代替成了连续的。

优化时面临两个挑战:

Discreteness

如果h用随机分布初始化,优化器很容易落入局部极小值。

Association

嵌入的h应该是相互联系的,并不是独立的,在设计时应该把h的相关作用加入去。

解决这个方法: 把h隐变量建立成一个序列,采用一prompt编码器来进行编码,这个编码器采用小而轻的神经网络的完成。实际的实践中采用了lstm来完成。

pCey6Vx.png

4. 实验与分析

4.1 实验

任务1:LAMA (Petroni et al., 2019) knowledge probing

把三元组 (Dante, born-in, Florence) 变成cloze的句子:“Dante was born in [MASK].”,作为原始的样本。

pCe6Kdx.png

1) Manual Prompt(MP):使用LAMA的原始手工提示;

2)Fine-tuning(FT):通过主语与微调模型去预测宾语;

3) Manual Prompt with Fine-tuning(MP+FT):使用手工提示数据来微调语言模型;

4)P-tuning:使用连接提示(固定语言模型的参数)。

另外发现,LAMA-29k数据集中P-tuning比fine tuning还要好。

任务2:SuperGlue (Wang et al., 2019b)

BERT-base-case,GPT2-base,BERT-large-cased, GPT2-medium, 从这些实验结果来看,基本上是超过Fine-tuning的效果的。

pCe6qmR.png

pCe6L01.png

few shot中的提示的语义、格式、语法没有明显的相关性,其次,手动提示中的微小变化会导致巨大的性能差异。

pCecN3F.png

5. 总结

思想与之前的两篇的差不多,这篇也做了很多实验,效果大部分可与fine tuning进行比较了。挺好的。

7. 知识整理(知识点,要读的文献,摘取原文)

8. 参考文献

made by happyprince

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[论文阅读笔记76]GPT Understands, Too(P-tuning) 的相关文章

  • Vant 2 - 移动端 Vue 组件库 _ 问题记录

    目录 基础组件 Popup 弹出层 表单组件 DatetimePicker 时间选择 Field 输入框 Form 表单 Picker 选择器 Radio 单选框 Uploader 文件上传 展示组件 List 列表 导航组件 Tab 标签
  • Field

    Field f Counter class getField count 拿到Counter类的count 实例域 Counter c new Counter 一个Counter对象实例 Long l Long f get c 拿到对象实例
  • Windows系统安装Java开发环境配置

    一 下载Java Development Kit JDK JDK 是一个用于开发和测试 Java 编程语言编写的程序的软件开发环境 它包括在 Windows macOS 或 Linux 平台上构建 运行和调试应用所必需的工具和资源 下载地址
  • 03_ES6

    ES6 在js中进行操作 使用var声明变量的弊端 var 声明的变量有预解析 造成逻辑混乱 可以先使 后声明 undefined var 可以重复定义同 个变量 第二个会修改变量的值 var 在 for 循环条件中 造成 for 循环的污

随机推荐