OptiPrompt:优化提示法在事实探针任务中的实现
OptiPrompt 项目地址: https://gitcode.com/gh_mirrors/op/OptiPrompt
项目介绍
OptiPrompt 是一个基于 PyTorch 的实现,源自论文《Factual Probing Is [MASK]: Learning vs. Learning to Recall》。该方法提出了一种简单而有效的事实探针策略——OptiPrompt,通过优化输入的密集向量来提升模型在事实性探针任务上的表现。OptiPrompt 特别地利用手动设计的模板,并且允许添加额外的密集向量以增强表示能力(当不设置手动模板初始化时)。此项目提供了在 LAMA 基准数据集上运行实验的能力,包括使用预训练的 BERT 模型以及进行微调等功能。
项目快速启动
要快速启动 OptiPrompt,确保您已安装所有必要的依赖项。可以通过以下命令安装:
pip install -r requirements.txt
之后,运行提供的示例脚本来实验 OptiPrompt,以默认配置处理 LAMA 数据集中的一种关系(例如,P101):
bash scripts/run_optiprompt.sh
如果您希望自定义设置,比如更改输出目录、使用的模型或是否启用随机初始化,需要修改脚本中的变量。
应用案例和最佳实践
运行 OptiPrompt 在特定关系上
对特定关系执行训练或评估,如 P101,您可以按如下方式操作:
rel=P101
dir=outputs/$rel
mkdir -p $dir
python code/run_optiprompt.py \
--relation_profile relation_metainfo/LAMA_relations.jsonl \
--relation $rel \
--common_vocab_filename common_vocabs/common_vocab_cased.txt \
--model_name bert-base-cased \
--do_train \
--train_data data/autoprompt_data/$rel/train.jsonl \
--dev_data data/autoprompt_data/$rel/dev.jsonl \
--do_eval \
--test_data data/LAMA-TREx/$rel.jsonl \
--output_dir $dir \
--random_init none \
--output_predictions
微调语言模型
此外,OptiPrompt 还提供了用于微调特定关系的语言模型代码。例如,针对关系 P101:
rel=P101
dir=outputs/$rel
mkdir -p $dir
python code/run_finetune.py \
--relation_profile relation_metainfo/LAMA_relations.jsonl \
--relation $rel \
--common_vocab_filename common_vocabs/common_vocab_cased.txt \
--model_name bert-base-cased \
--do_train \
--train_data data/autoprompt_data/$rel/train.jsonl \
--dev_data data/autoprompt_data/$rel/dev.jsonl \
--do_eval \
--test_data data/LAMA-TREx/$rel.jsonl \
--output_dir $dir
典型生态项目
虽然直接从 OptiPrompt 的上下文中没有明确的“典型生态项目”描述,但可以推断任何旨在改进语言模型事实理解能力、探针任务或者自然语言处理(NLP)中促进模型解释性的研究项目,都可视为其生态的一部分。例如,其他事实探针框架、模型微调技术或文本表示学习工具,它们可能依赖于类似的数据集和方法论来验证或比较性能。
请注意,深入理解和利用 OptiPrompt 技术,开发者和研究者们可探索 NLP 领域的广泛应用场景,包括但不限于知识图谱增强、问答系统以及基于语言的任务自动化。
OptiPrompt 项目地址: https://gitcode.com/gh_mirrors/op/OptiPrompt
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考