PromptSource 开源项目教程
1. 项目介绍
PromptSource 是一个用于创建、分享和使用自然语言提示的工具包。近年来,大量研究表明大型语言模型具有在新任务上进行零样本或少量样本泛化的能力。例如,GPT-3 展示了大型语言模型在零样本和少量样本学习方面的强大能力。FLAN 和 T0 进一步展示了在大量多任务预训练后,预训练语言模型的零样本性能得到了进一步增强。这些研究的一个共同点是提示的使用,这在 NLP 研究和工程领域引起了广泛关注。因此,PromptSource 作为一个新工具,应运而生,以满足创建、分享和使用自然语言提示的需求。
PromptSource 包含了一个不断增长的提示集合(称为 P3:Public Pool of Prompts)。截至 2022 年 1 月 20 日,P3 中有约 2000 个英文提示,适用于 170 多个英文数据集。
2. 项目快速启动
在开始使用 PromptSource 之前,需要安装相应的环境。以下是一个快速启动的步骤:
首先,安装 PromptSource:
pip install promptsource
如果需要创建新的提示,需要克隆仓库并本地安装:
git clone https://github.com/bigscience-workshop/promptsource.git
cd promptsource
pip install -e .
请注意,为了稳定性,最后一步需要 Python 3.7 环境。如果只是使用提示而不创建新提示,可以在 setup.py
中移除这个约束。
3. 应用案例和最佳实践
以下是一个如何使用 PromptSource 提示的示例:
from datasets import load_dataset
from promptsource.templates import DatasetTemplates
# 加载数据集
dataset = load_dataset("ag_news", split="train")
example = dataset[1]
# 加载该数据集的提示
ag_news_prompts = DatasetTemplates('ag_news')
# 选择一个提示
prompt = ag_news_prompts['classify_question_first']
# 应用提示到示例
result = prompt.apply(example)
# 打印输入和目标
print("INPUT:", result[0])
print("TARGET:", result[1])
输出示例:
INPUT: What label best describes this news article? Carlyle Looks Toward Commercial Aerospace (Reuters)
TARGET: Business
4. 典型生态项目
PromptSource 可以与 Hugging Face Datasets 库中的数据集配合使用,支持多种自然语言处理任务。它不仅可以帮助研究人员和工程师快速创建和迭代提示,还可以在模型的开发过程中提供标准化的数据输入格式,从而提高模型性能的可复制性。
通过 PromptSource,开发者可以更容易地分享和复现研究成果,促进了开源社区的协作和发展。此外,PromptSource 的 Web-based GUI 使得创建和可视化提示更加直观和便捷,为 NLP 领域的开源项目提供了一个强大的工具。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考