Solo-Performance-Prompting(SPP)简介
Solo-Performance-Prompting(SPP)是由伊利诺伊大学的研究人员提出的一种新型提示工程方法。该方法通过指导大语言模型(LLM)召唤多个角色并让它们协同工作来解决任务,从而释放LLM的认知协同效应,提高其解决复杂问题的能力。
SPP的核心思想是让LLM动态识别并模拟多个与任务相关的角色,这些角色会根据各自的专长对问题进行讨论和分析,最终达成共识得出解决方案。例如,在编写科幻小说大纲的任务中,SPP可能会生成小说家、科学家和核物理学家等角色,让它们进行对话直到达成一致的输出。
官方资源
- 论文: Unleashing Cognitive Synergy in Large Language Models: A Task-Solving Agent through Multi-Persona Self-Collaboration
- GitHub仓库: Solo-Performance-Prompting
主要特点
-
多角色协同: SPP让LLM模拟多个角色进行协作,充分利用不同角色的专长。
-
动态角色识别: SPP可以根据具体任务动态识别合适的角色,无需预先定义。
-
迭代协作过程: 角色之间进行多轮讨论,不断修改和完善解决方案。
-
适用性广: SPP在知识密集型和推理密集型任务中都表现出色。
-
无需微调: SPP可以直接应用于预训练的LLM,无需额外的模型微调。
实验结果
研究人员在三种不同类型的任务上对比了SPP与标准提示和思维链(Chain-of-Thought, CoT)提示的效果:
- 琐事创意写作(知识密集型)
- Codenames协作游戏(知识+推理)
- 逻辑网格谜题(纯推理密集型)
实验结果显示,SPP在所有任务中都优于标准提示和CoT提示。特别是在10道琐事问题的测试中,SPP比CoT的表现高出23%。
快速上手
要使用SPP,您需要:
- 安装依赖:
pip install -r requirements.txt
- 设置OpenAI API密钥:
在
config_template.sh
中配置您的API密钥,然后运行:
source config_template.sh
- 运行实验脚本:
- 琐事创意写作:
bash scripts/trivia_creative_writing.sh
- Codenames协作:
bash scripts/codenames_collaborative.sh
- 逻辑网格谜题:
bash scripts/logic_grid_puzzle.sh
提示模板
SPP的提示结构包含以下几个部分:
- 角色识别: 识别多个与任务相关的角色(包括一个领导角色:AI助手)
- 开场发言: 每个角色根据自身专长对任务进行初步分析
- 多角色迭代协作: AI助手提出初步方案,咨询其他角色的反馈,并不断修改答案
系统原则: "面对任务时,首先识别将参与解决任务的角色。然后开始多轮协作过程,直到达成最终解决方案。参与者在必要时会提出批评性意见和详细建议。"
完整的提示模板可以在PromptHub上找到。
总结
Solo-Performance-Prompting为提示工程领域带来了新的思路。通过模拟多角色协作,SPP能够显著提升LLM解决复杂任务的能力。该方法适用于各种类型的任务,且无需对模型进行微调,具有很高的实用价值。研究人员和开发者可以基于官方代码库进行进一步的探索和应用。
SPP与标准提示的工作流程对比
如果您对SPP感兴趣,可以查看上述资源深入学习,并尝试将其应用到您自己的项目中。随着提示工程技术的不断发展,我们期待看到更多创新方法的出现,进一步释放大语言模型的潜力。