项目介绍:Prompt Tuning
Prompt Tuning是一个基于EMNLP 2021 论文"The Power of Scale for Parameter-Efficient Prompt Tuning"的项目,由Lester等人开发,用于通过参数高效的提示调优方法实现实验结果的复现。该项目基于T5X框架构建,运用了Flaxformer定义模型计算,Flax定义底层模型层次,及Jax实现实际的运算。
安装步骤
若要使用Prompt Tuning,首先需要创建一个云 TPU 虚拟机,并配置一个Google Cloud Storage (GCS)存储桶来存放数据集缓存、模型检查点和结果。在TPU VM实例的命令行界面上,克隆Prompt Tuning的代码库,并安装其库:
git clone --branch=main https://github.com/google-research/prompt-tuning
cd prompt-tuning
python3 -m pip install .[tpu] -f https://storage.googleapis.com/jax-releases/libtpu_releases.html
提示训练
Prompt Tuning的训练与通过T5X微调模型相似,但需要使用特定的配置文件来进行提示训练。项目提供了一个演示脚本示范如何进行训练。
对于需要使用的配置文件,可以通过--gin_file
在命令行中指定,以加载多个配置文件。培训还可以在TPU pod切片上进行,以便处理更大型的模型。
自定义依赖
用户可以根据需要训练自己的数据集或者定义自己的组件,具体细节可以依据T5X提供的自定义组件说明进行配置。
用提示进行推断
要进行推断,建议加载最初用来初始化模型的检查点及从文件加载提示。可以通过部分加载功能支持将部分模型参数加载为初始值。用户需提供一个PROMPT_FILE以便进行配置。
模型配置
项目使用gin文件进行配置,包括训练、评估、保存及恢复等多种操作。配置文件按用途进行分类,比如运行所用的文件、架构配置文件等。从而让每个部分的配置更加简洁明确。
提示初始化
Prompt Tuning中提供多种初始化提示参数的方法,比如随机均匀、词汇采样、类别标签、字符串等,甚至可以从文件中直接加载提示。不同的方法需要通过相应的gin配置文件进行设置。
发布的模型检查点及提示
Prompt Tuning项目发布了多种预训练的模型检查点和提示,可以满足不同的实验需求。用户可以根据需要选择相应的模型及配置文件来进行快速测试。
额外资源
项目提供了一些额外的资料,比如EMNLP会议的幻灯片、视频等等,这些资源有助于深入理解Prompt Tuning的工作原理和应用背景。
引用方式
如果使用了Prompt Tuning相关的工作,建议引用原论文,以便给予研究者应有的认可:
@inproceedings{lester-etal-2021-power,
title = "The Power of Scale for Parameter-Efficient Prompt Tuning",
author = "Lester, Brian and
Al-Rfou, Rami and
Constant, Noah",
booktitle = "Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing",
month = nov,
year = "2021",
address = "Online and Punta Cana, Dominican Republic",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2021.emnlp-main.243",
doi = "10.18653/v1/2021.emnlp-main.243",
pages = "3045--3059",
}
此项目并非Google官方支持产品。通过Prompt Tuning,研究者能够高效地进行模型的提示调优,节省模型参数空间,同时提升自然语言处理任务的处理能力。