如何更好地设计提示词(Prompt)一直是大家关注的焦点。最近,一个独特的研究视角引起了广泛关注:将LLMs视为“演员”,将提示词视为“剧本”,将模型输出视为“表演”。
这种新颖的思维方式不仅在概念上令人耳目一新,更重要的是,它在实践中展现出了显著的效果提升,在玩《纽约时报》的单词谜题游戏“Connections”中的表现任务中,采用“方法演员”提示架构可以提高 o1-preview 完美解决谜题的百分比,从 76%提高到 87%。这种方法为我们理解和使用LLMs提供了一个全新的工具,通过将模型的输出过程视作舞台上的表演,大家能够更好地引导模型的行为,从而实现精确和连贯的回应。
01
为什么需要一个新的思维模型?
现有方法的局限
目前主流的提示工程方法主要包括:
这些方法虽然各有特色,但都存在一个共同的假设:将LLM的输出视为“思维”的产物。这种假设导致了两个问题:
1.概念模糊:什么是LLM的“思维”?这个概念本身就难以定义和把握,使得我们在面对复杂任务时难以判断和理解模型的推理逻辑。
2.方法局限:这些方法过分关注“思维”过程,而忽略了LLM本质上是在模仿人类的语言表达。因此,当面对需要深刻理解或复杂背景的任务时,模型往往会表现出不一致或缺乏深度的现象。
演员类比的优势
将LLM比作演员有几个显著优势:
1.概念清晰:
- 演员不需要真实体验角色的情感,只需要准确地模仿和表现。这与LLM的本质非常契合:它们并不具备真正的理解能力,而是通过海量数据学习人类的语言模式和反应。
2.期望对齐:
- 通过将LLM看作演员,我们不再期待它们拥有“真实的思维”,而是关注它们输出的质量和一致性。通过这一视角,我们可以更明确地定义成功的标准,即模型能否在给定的场景中表现出预期的“表演”。
2.方法指导:
- 演员在演出前会经过大量的排练和练习,提示工程师也可以通过对提示词的精心设计和调整,帮助LLM更好地进入角色。表演艺术中的一些方法论,例如如何设置场景、如何通过情感驱动角色表现等,都可以借鉴到提示词的设计中。
02
Method Actor框架详解
核心原则
1.提示工程即编剧与导演
- 设定场景(Setting):首先要明确模型回答问题时的背景。通过设置明确的场景,提示工程师可以为模型提供丰富的上下文,帮助它更好地理解角色所处的环境。
- 定义角色(Character):明确模型的“角色”,这意味着为模型提供具体的身份或视角,例如专家、顾问、记者等,以帮助它更好地调节输出的风格和内容。
- 给出动机(Motivation):设定角色的动机是什么,例如帮助用户解决具体问题,或者提供详细解释。动机能够帮助模型更加精确地把握回答的深度和方向。
- 提供舞台指示(Stage Direction):给出明确的操作步骤或行动指示,帮助模型逐步地完成复杂的任务,确保逻辑连贯。
2.表演需要准备
- 对于复杂任务,可以将任务分解为多个小的子任务,逐步完成。例如,如果目标是写一篇深入的文章,模型可以先生成大纲,然后分部分地写作。
- 构建渐进式表演,确保每一步都是在理解的基础上进行的,保持上下文的连贯性和一致性。
3.复杂任务分解原则
- 将复杂任务分解为多个简单且可控的部分,并为每一部分设立清晰的验证标准,以确保每一步的结果都符合预期。
4.补充机制
- 当模型遇到难以完成的任务时,可以设计外部验证机制,例如引入人工审阅或使用其他系统进行结果验证,确保输出的准确性和一致性。
实现方法
“方法演员”模型的核心在于将LLMs视为“演员”,而不再只是单纯的工具。这意味着模型需要更好地理解场景,解析提示,然后在“表演”中提供响应。提示工程师可以通过精细化提示——即剧本——来指导模型如何“演出”不同的角色和场景。
例如,在面对一个关于政策问题的任务时,传统的LLMs可能会仅仅依赖训练数据给出一般性的回答,而“方法演员”模型则会通过理解更深层次的提示,考虑具体的场景和关系,从而给出更为契合的回答。这样的改进不仅仅是简单的输出变化,而是涉及模型如何通过不同的提示“进入角色”。
通过这种方式,提示工程师可以更精准地设计提示,使得LLMs在不同场景中有更好的适应能力。这种方法使得LLMs像真正的演员一样,根据不同的剧本深入理解并演绎不同的角色。
03
实验案例:Connections游戏
游戏介绍
Connections是《纽约时报》推出的一个文字谜题游戏,规则如下:
- https://connections.swellgarfo.com 这是文字谜题游戏网址,有兴趣可以玩玩。
实验设计
研究者设计了多组对照实验,以评估不同提示工程方法的效果:
1.基准方法:
- Chain-of-Thought (Scripted)(脚本化思维链)
2.Method Actor方法:
3.模型对比:
实验结果分析
性能对比
1.GPT-4测试结果:
方法解决率完美解决率Vanilla27%12%CoT41%20%CoT-Scripted56%24%Actor78%41%Actor-286%50%
2.o1-preview测试结果:
方法解决率完美解决率Oneshot-o179%72%Vanilla-o1100%76%Actor-o199%87%
一些发现
3.方法效果:
- Method Actor方法显著优于传统方法,尤其在完美解决率上表现突出,提升幅度显著。
- 与人工标注训练的结果相当,这意味着LLMs可以通过适当的提示达到接近人工的效果。
4.模型表现:
- o1-preview整体表现优于GPT-4,说明模型的架构改进对于提升性能有直接影响。
- Method Actor框架在提升模型应对复杂场景的表现上尤为有效,尤其在完美解决率方面,表现出明显的优势。
5.难度适应:
- 对于简单任务和复杂任务,Method Actor框架都表现出良好的泛化能力。即使任务难度增加,模型性能的下降程度也相对较小,展现了优秀的稳定性。
Prompt工程实践建议
提示词设计原则
1.场景设置
scene_template = """
背景:[具体情境]
角色:[专业身份]
动机:[紧迫性/重要性]
任务:[具体目标]
"""
2.角色定义
character_template = """
专业背景:[相关领域专长]
经验水平:[专业成就]
特殊能力:[独特优势]
"""
3.动作指示
direction_template = """
步骤1:[具体动作]
步骤2:[具体动作]
注意事项:[关键提醒]
"""
架构设计建议
1.任务分解
- 识别关键子任务,并将任务划分为可以独立解决的小步骤,确保模型能够逐步完成任务。
- 确定任务的依赖关系,保证每一步之间的逻辑性和连贯性。
- 为每个子任务设计验证机制,确保每一步的结果是符合预期的。
2.状态管理
- 维护任务执行过程中的上下文信息,确保模型能够保持对于当前情境的理解。
- 追踪任务的进度和结果,确保每一步的执行都符合目标要求。
- 当发生异常情况时,能够及时响应和处理,确保任务的连续性。
3.结果验证
- 设置清晰的验证标准,对于模型生成的每一步输出进行质量检查。
- 实施多重检查,尤其是在关键节点上进行多次确认,确保模型输出的可靠性。
- 建立纠错机制,当模型出现错误时,能够及时识别并纠正,避免错误的传播。
优化策略
1.性能优化
- 批量处理请求:尽可能将相似的请求批量处理,减少重复调用的时间和成本。
- 缓存中间结果:对一些通用的中间结果进行缓存,以便后续快速使用,减少计算开销。
- 并行化处理:对于可以并行执行的任务,采用并行处理来加快整体执行速度。
2.质量控制
- 设置质量指标:为模型的输出设定明确的质量指标,例如准确率、连贯性等。
- 监控异常模式:实时监控模型输出中的异常模式,及时发现潜在问题。
- 持续优化策略:根据模型的表现不断调整和优化提示词,确保模型能够始终处于最佳状态。
3.成本控制
- 优化API调用:减少不必要的API调用,优化调用频率,以控制总体成本。
- 合理设置阈值:为模型的输出设置合理的阈值,以便在保证质量的前提下减少不必要的计算。
- 平衡质量和成本:在确保输出质量的前提下,尽量降低计算资源的使用,以达到性价比最优的效果
应用场景
1.现有任务优化
- 提升准确率:在现有的任务中,通过使用Method Actor框架,可以显著提升模型的准确率。
- 降低成本:通过减少不必要的试错和API调用,降低使用LLMs的成本。
- 提高效率:优化模型在处理复杂任务时的效率,减少开发周期。
2.新场景探索
- 创意生成:在需要创意和创新的任务中,Method Actor框架能够帮助模型生成更多有趣且富有创意的内容。
- 决策支持:在需要多维度信息整合和分析的场景中,帮助提供更为全面的决策支持。
- 教育培训:在教育和培训领域,Method Actor框架能够通过精心设计的角色和场景,提供个性化的教学和学习体验。
3.产品集成
- 中间件:作为AI应用程序的中间层,帮助不同的系统之间进行自然语言交互。
- 开发框架:为开发者提供一个强大的框架,使他们能够快速构建和部署基于LLMs的解决方案。
“方法演员”模型为提示工程和大型语言模型的使用带来了新的视角和方法。通过将LLMs视为演员,通过精心设计的提示——剧本——来指导其行为,提示工程师能够更加有效地控制模型的输出质量和上下文契合度。这种方法显著提高了模型的推理能力,特别是在零样本推理场景中的表现。
文章来自于微信公众号 “AI修猫Prompt”,