项目介绍:PromptBench
PromptBench 是一个用来评估大型语言模型(LLMs)的统一库,基于 Pytorch 平台。该项目通过提供用户友好的API,使研究人员能够便捷地进行各种语言模型的评估。
项目功能
-
快速模型性能衡量: 提供简易的界面帮助用户迅速建立模型、加载数据集并评估模型的表现。
-
提示工程(Prompt Engineering): 提供多种提示工程方法,比如可以在少量示例下进行思考链的 Few-shot Chain-of-Thought、情感提示 Emotion Prompt 和专家提示 Expert Prompting 等。
-
**对抗性提示评估:**集成了对抗性提示攻击模拟工具,使研究人员可以评估模型在黑箱环境下的稳健性。
-
动态评估: 利用 DyVal 动态评估框架,在复杂性可控的情况下实时生成评估样本,减少潜在的测试数据污染。
-
**高效多提示评估:**借助于对少量数据评测后可预测 LLMs 表现的 PromptEval 方法,实现高效的多提示评估。
安装说明
通过 pip
安装
用户可以快速地通过以下命令安装 PromptBench:
pip install promptbench
要获取最新版的功能或进行开发,可以通过 GitHub 安装:
git clone git@github.com:microsoft/promptbench.git
cd promptbench
conda create --name promptbench python=3.9
conda activate promptbench
pip install -r requirements.txt
使用指南
PromptBench 的使用门槛较低,用户可以通过简单的代码熟悉并快速上手。目前提供的功能包括:
- 在现有基准上评估模型
- 测试不同提示技术的效果
- 检验提示攻击的稳健性
- 使用 DyVal 进行评估
- 使用 PromptEval 进行高效多提示评估
支持的数据集和模型
PromptBench 支持多种数据集和模型:
- 数据集: 包括像GLUE、MMLU、BIG-Bench Hard等语言数据集及多模态数据集如VQAv2、ScienceQA等。
- 模型: 包括开放源代码的如google/flan-t5-large、databricks/dolly-v1-6b,以及私有模型如GPT-3.5、GPT-4 等。
提醒工程与对抗攻击
项目实施了多种提示工程方案,包括:
- 思维链(Chain-of-thought)
- 情感提示(EmotionPrompt)
- 专家提示(Expert Prompting)
对抗性攻击包括字符级攻击(如DeepWordBug)、单词级攻击(如TextFooler)和句子级攻击等多种类型。
基准测试结果及感谢
PromptBench 提供了丰富的基准测试结果展示用户可在我们的官方网站查看。同时,我们感谢各个志愿者对提示攻击基准测试中语义保持实验的支持。
结语
如果您发现 PromptBench 对您的项目或论文有帮助,欢迎进行引用!贡献者也可以通过开源社区的方式为我们的项目提出改进意见或贡献代码。PromptBench 致力于提供高效便捷的解决方案,以帮助研究人员更好地理解和使用大型语言模型。