Efficient Head Finetuning
1.0.0
EMNLP2022长论文的源代码:Parameter-Efficient Tuning Makes a Good Classification Head
arxiv
我们发现
- 使用参数高效的算法微调预训练的 LM。
- 通过将分类头初始化为 1 的权重来微调预训练的 LM。
通常比直接微调更好。
我们基于开源库 SwissArmyTransformers 来实现我们的方法。
步骤1。
下载 RoBERTa-Large 或 BERT-Large(由 SwissArmyTransformer 提供)的检查点并解压。
步骤2。
将检查点目录路径添加到 EH-FT/roberta/scripts/finetune.sh 中的第 5 行
步骤3.
cd EH-FT/roberta
python scripts/run_multiseed.py --number-gpu 1 --gpu-s 0 --seed-per-gpu 1 --dataset rte --finetune-type 2step+bitfit
步骤4。
cd EH-FT/roberta
python scripts/run_multiseed.py --number-gpu 1 --gpu-s 0 --seed-per-gpu 1 --dataset rte --finetune-type 2step+bitfit
该脚本将使用 gpu [gpu-s]、gpu [gpu-s+1]、...、gpu [gpu-s + number-gpu - 1] 启动 [number-gpu] 进程。每个进程都有不同的随机种子。
您可以更改数据集和微调类型。
数据集:rte、mrpc、boolq、wic、cb、copa、wsc、qnli、stsb
微调型 | 纸上的名字 |
---|---|
全部 | 传统微调 |
2步+头 | LP-FT |
2步+位拟合 | EH-FT(BitFit) |
2步+劳拉 | EH-FT(LoRA) |
2步+点 | EH-FT(PT) |
bitft/劳拉/pt | BitFit/LoRA/前缀调整 |
头 | 线性探测 |
孩子 | 儿童调音 |
混音 | 混音 |
步骤4。
使用张量板查看运行/中的结果。