P-tuning v2开源项目简介

GitHub链接:https://github.com/THUDM/P-tuning-v2

源代码和数据

优化的提示调整策略实现了与微调小型/中型模型和序列标记挑战相当的性能。

找到我们以前的版本P-tuning v1用于知识探索和少镜头 SuperGLUE。您亲切地为我们的 repo 加注星标可以极大地鼓励我们更加努力地工作 :)

您可能也对我们最近的工作GLM-130B:一个开放的双语预训练模型 (2022-10-06)感兴趣。它是一个开源的 LLM,在各种基准测试中表现优于 GPT-3 175B。仅使用4 * RTX 3090 或 8 * RTX 2080 Ti 免费获取模型权重、进行推理和 P-Tuning v2 !

P-tuning v2 利用deep prompt tuning,即对预训练变压器的每一层输入应用连续提示。Deep prompt tuning 增加了连续提示的能力,并缩小了跨各种设置进行微调的差距,特别是对于小型模型和艰巨的任务。

感谢@rainatam为发布重新组织代码的共同努力!

常见问题

  1. 一些读者注意到SuperGLUE 中 P-tuning (v1) 和 P-tuning v2 之间的“不匹配”:这是因为在 P-tuning 的 SuperGLUE 实验中,为了与 PET 进行公平比较,我们遵循其实验设置,其中 backbone 预训练模型参数与连续提示嵌入联合调整;而在 P-tuning v2 中,我们遵循 Prefix tuning 和 Lester 等人的参数有效设置,其中骨干预训练模型参数被冻结。

重现提示

由于我们论文中报告的实验都是在 NVIDIA DGX-A100 服务器(可能很难获得)上进行的,因此我们在 BERT-large/RoBERTa-large 上重新实现 P-tuning v2 的结果:

  • 配备 NVIDIA GeForce RTX 3090 (24G) GPU 的 Ubuntu 服务器
  • 库达11.1
  • 具有特定版本的软件包(在下面提供)

我们注意到最佳超参数可能对您的服务器环境和包版本敏感。如果您没有完全相同的环境,我们强烈建议您根据我们在search_script和结果收集脚本search.py​​ 中的示例超参数搜索脚本在您的环境中运行超参数搜索。

设置

我们用 Anaconda3 进行实验。如果你已经安装了Anaconda3,那么创建P-tuning v2的环境:

conda create -n pt2 python=3.8.5
conda activate pt2

在我们设置基本的conda环境之后,通过以下方式安装pytorch相关包:

conda install -n pt2 pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch

最后,安装我们需要的其他python包:

pip install -r requirements.txt

数据

对于 SuperGLUE 和 SQuAD 数据集,我们从 Huggingface 数据集 API(嵌入在我们的代码中)下载它们。

对于序列标记(NER,SRL)数据集,我们在这里准备了一个非官方的打包。下载后,将压缩包解压到项目根目录。请您自己承担风险使用。

训练

在run_script中运行训练脚本(例如,用于 RTE 的 RoBERTa):

bash run_script/run_rte_roberta.sh

实施成果

目前,我们已经发布了对以下任务和数据集的重新实现。更多实施将很快发布。

在 BERT-large 上发布结果

布尔Q美洲杯即食即食无线网络世界超级杯CoNLL04OntoNotes 5.0CoNLL12
结果74.377.080.175.168.384.586.485.3
总纪元10080608080403045
最佳纪元5812305617332443

在 RoBERTa-large 上发布结果

布尔Q美洲杯即食即食无线网络世界超级杯CoNLL03CoNLL04OntoNotes 5.0CoNLL12CoNLL05 华尔街日报CoNLL05 棕色小队 1.1小队 2.0
结果84.092.086.673.764.491.888.490.184.789.483.988.1/94.281.3/84.7
总纪元10012010050103080604515-3010
最佳纪元867865313个2845593713-249

其他超参数请参考训练脚本。如果你不能在最好的 epoch 达到报告的结果,可能是环境不匹配,需要超参数搜索。

引用

如果您觉得我们的工作有用,请引用我们的论文:

<span style="color:#1f2328"><span style="background-color:#ffffff"><span style="color:var(--color-fg-default)"><span style="background-color:var(--color-canvas-subtle)"><code>@article{DBLP:journals/corr/abs-2110-07602,
  author    = {Xiao Liu and
               Kaixuan Ji and
               Yicheng Fu and
               Zhengxiao Du and
               Zhilin Yang and
               Jie Tang},
  title     = {P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally
               Across Scales and Tasks},
  journal   = {CoRR},
  volume    = {abs/2110.07602},
  year      = {2021},
  url       = {https://arxiv.org/abs/2110.07602},
  eprinttype = {arXiv},
  eprint    = {2110.07602},
  timestamp = {Fri, 22 Oct 2021 13:33:09 +0200},
  biburl    = {https://dblp.org/rec/journals/corr/abs-2110-07602.bib},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}</code></span></span></span></span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值