如何更好的为 DeepSeek R1 或 OpenAI o1 这样的推理模型写提示词?
导读:
去年 OpenAI 发布 o1 这样的推理模型,接着 DeepSeek 也发布了 DeepSeek R1 推理模型,推理模型和传统的生成式语言模型的差别在于,传统的生成式语言模型在收到 Prompt 后就会马上生成,如果生成出现错误或者质量不好,是没机会纠正的,只能继续生成下去或者后续纠正继续生成,但是推理模型可以在向用户输出内容之前,会先输出思维脸(Chain of Thought),对输入的 Prompt 思考验证完成后,再开始生成,这样可以保证有更好的质量,在 o1 中,OpenAI 因为怕别人偷了了他们的推理数据,所以可以隐藏了思维链的输出内容,但是 DeepSeek 的完整思考过程是可以直接看到的。
说回来提示词(Prompt),既然推理模型自己就会做思维链,这意味着以前在提示词中加入思维链的方式已经没必要了,因为大多数时候推理模型自己写的思维链质量就很好了。另外大部分时候也不需要复杂的角色扮演、示例,因为由于思维链的存在,推理模型的“智能”程度高了很多,不需要角色设置、示例也能很好的理解和跟随指令。
所以到了推理模型,已经不需要太复杂的提示词模板,大多数时候简单的提示词就可以很好的效果,但上下文(背景信息)依旧很重要。微软的工程师写了一篇文章,详细说明了在给推理模型写提示词应该注意的问题,推荐阅读。
为 OpenAI 的 O1 和 O3-mini 推理模型进行提示工程
概述
OpenAI 的 O1 和 O3-mini 是在处理提示与生成答案方面与基础版 GPT-4(常称为 GPT-4o)有所不同的高级“推理”模型。它们旨在在复杂问题上投入更多时间进行“思考”,模拟人类更细致的分析过程。
本部分将探讨 O1 和 O3-mini 与 GPT-4o 在输入处理、推理能力以及响应行为方面的差异,并总结相应的提示工程最佳实践,以充分发挥这些模型的性能。最后,我们会将这些最佳实践应用于法律案例分析的场景之中。
O1/O3-mini 与 GPT-4o 的区别
1. 输入结构与上下文处理
• 内置推理 vs. 需要提示激发的推理
O1 系列模型带有“内置的链式思考推理”功能,也就是说,它们在内部会自动进行多步推理,而无需在提示中特别引导。相比之下,GPT-4o 通常需要外部指令(例如“让我们一步步地思考”)来激发更深入的多步推理。如果使用 O1/O3,只要直接给出问题本身,模型就会自动进行深度分析。• 对外部信息的需求
GPT-4o 在某些部署中可能具备广泛的知识库和对工具的访问权限(如浏览、插件、图像识别等),能处理各种主题;相比之下,O1 模型在其训练焦点之外的知识面更窄。例如,O1-preview 在推理任务中表现出色,但却无法回答有关自身的问题,因为缺乏相关的知识上下文。因此,当你使用 O1/O3-mini 处理超出常识范围的任务时,务必在提示中包含必要的背景信息或上下文,不要假设模型知道小众领域的事实。GPT-4o 可能已经了解某个法律先例或冷门细节,但 O1 可能需要你提供这些文本或数据。• 上下文长度
这些推理模型拥有非常大的上下文窗口。O1 支持最长 128k 个 token 的输入,O3-mini 可接受最多 200k 个 token(且可输出高达 100k 个 token),这超过了 GPT-4o 的上下文长度。这样,你可以将更大规模的案例文件或数据集直接输入 O1/O3。在进行提示工程时,若输入非常庞大,应有条理地组织信息(使用章节、要点或标题),方便模型定位。虽然 GPT-4o 和 O1 都能处理长提示,但 O1/O3 更大的容量意味着你可一次性提供更详细的上下文——对复杂分析很有用。
2. 推理能力与逻辑推导
• 推理深度
O1 和 O3-mini 专门针对“方法性、多步推理”进行了优化,可以在回答之前进行更多层次的分析,从而在复杂任务上给出更精确的结果。例如,O1-preview 在一个较难的数学考试(AIME)中能够解对 83% 的题目,而 GPT-4o 仅能解对 13%,这反映了 O1 在特定专业领域中更出色的逻辑推导能力。这些模型会在内部执行链式思考并自我检查。GPT-4o 本身也很强大,但若不进行显式的逐步引导,对非常复杂的问题往往不会分析得那么深入,而 O1 则能更容易发现这种复杂性并做出正确推理。• 复杂任务 vs. 简单任务
由于 O1 系列模型默认会进行深度推理,因此在需要多步推理(如多方面分析、长论证)的复杂问题上,它们表现尤为出色。一些研究表明,当任务需要 5 步或以上推理时,O1-mini 或 O3 这类推理模型比 GPT-4 的准确率高出 16% 以上。然而,这也意味着对于非常简单的查询,O1 可能会“想得太多”。研究发现,在只需少于 3 步推理的简单任务上,O1 过度推理反而会拖累表现,GPT-4o 更可能迅速给出直接答案,而 O1 有可能产生不必要的冗长分析。换言之,O1 的优点在于更好地处理复杂度,而对于琐碎的问答,它在效率上可能稍逊。• 逻辑推导风格
在解谜、演绎推理或逐步分解问题时,GPT-4o 通常需要我们在提示里“强制”它逐步进行推理,否则它可能迅速跳到结论。O1/O3 则不然:它们在内部会模拟对话或“草稿思维”。对用户而言,O1 的最终答案往往更有理有据,不易出现逻辑漏洞,因为它在内部做了多步验证。就提示角度来说,一般不需要特意告诉 O1 “请解释或检查你的逻辑”,它会自动这么做;如果是 GPT-4o,你可能会在提示中加入“先列出假设,然后得出结论”一类的引导。对 O1 来说,这些指令往往是多余甚至会产生干扰。
3. 响应特征与输出优化
• 细节与冗长度
因为进行的是深入推理,O1 和 O3-mini 在回答复杂问题时常会生成细致且结构化的答案。例如,O1 可能将数学解题分解为多个步骤,或针对一个战略方案逐步阐述理由;而 GPT-4o 在默认情况下往往更简练,或只提供概览,除非在提示中要求它进一步展开。因此,在提示工程上,O1 的回答可能更长、更技术化。你可以通过指令来控制它的回答长度和形式——如果你希望它简明扼要,就要明确告知(对 GPT-4 也同理);如果你希望输出一步步的解释,GPT-4o 需要被特别指示,O1 通常只要被要求,就会开心地给出(而且事实上它内部总是在这么做)。• 准确性与自我检查
这些推理模型具备一定的自我事实核查机制。OpenAI 指出,O1 在生成响应的过程中更善于发现并纠正错误,因此在复杂回答上有更高的准确率。虽然 GPT-4o 一般也相当准确,但在没有提示的情况下,它有时会自信地给出错误信息或幻觉出事实;O1 通过“思维”过程减少了这一风险。实践表明,在棘手的问题上,O1 的回答通常更少出现明显错误,而 GPT-4o 往往需要一些提示技巧(例如让它批评或验证自己的答案)才能达到同样的把握度。因此,如果使用 O1/O3 直接提问,就可在复杂任务上获得更可靠的结果,而对 GPT-4o 则可能要加上类似“请检查答案是否与上述事实一致”的指令。不过,任何模型都非完美,对于关键性的答案仍需用户核实。• 速度与成本
O1 模型的一个显著区别在于:它的推理更深入,但响应速度更慢、费用更高。O1 Pro 甚至为长时间查询配备了进度条。而 GPT-4o 在处理一般查询时速度更快。O3-mini 则面向更快且更省成本的推理场景——它的每个 token 费用比 O1 或 GPT-4o 都要低,延迟也更短。但由于 O3-mini 的模型规模更小,虽然在 STEM 领域推理表现不俗,但在通用知识或极度复杂的推理上可能不及 O1 或 GPT-4。因此,在进行响应性能优化的提示工程时,需要在推理深度与速度之间做平衡:O1 可能答得更深入,但也更慢。如果延迟是重点、任务并不需要极度复杂的推理,O3-mini 或 GPT-4o 可能更合适。OpenAI 的官方建议是,GPT-4o 在大多数场景下依然是“最佳通用选择”,而 O1 则适合在诸如战略、数学、编程等高难度任务中发力。总之,要针对任务选择合适的模型;若你选择 O1,要心理准备它输出更慢,并相应调整用户预期或系统的超时时间。
最大化模型性能的提示工程技巧
要想有效地运用 O1 和 O3-mini,需要采用不同于 GPT-4o 的提示方法。以下是一些核心技巧和最佳实践,可帮助你从这些推理模型中获取最佳结果:
1. 保持提示简洁明确
使用简洁直接的指令。 由于 O1 和 O3 会进行深入的内部推理,它们更适合于专注且不含多余信息的问题或任务。OpenAI 及近期的研究都建议,对这些模型避免过于复杂或带有倾向性的提示。在实践中,只需简明扼要地陈述问题、并提供必须的细节即可;无需添加太多冗长的描述或重复性的询问。
例如,不必写成「“这个难题很有挑战性,请你仔细推理每一步并得出正确的解答,让我们一步步来……”」,只需写「“请解答以下难题 [附上题目] 并解释推理过程。”」即可。模型在内部已经会分步骤推理并给出解释,过多指令反而可能让模型思路变得冗杂——研究还发现对 O1 提供过多上下文或范例常常降低了它的表现。
要点: 对复杂问题先尝试零样例提示(只给问题描述),只有在结果不能满足需求时再添加额外指令或信息。对于 O1/O3,这种简洁提示通常能获得最佳表现。
2. 避免不必要的 Few-Shot 示例
在 GPT-3/4 时代,我们常借助少量示例(few-shot)来帮助模型学习;但对于 O1/O3 而言,少就是多。O1 系列明确训练时就不依赖示例驱动的提示,甚至在测试中发现,加入示例往往会降低它们的性能。
原因在于:O1 的内部推理机制在看到示例时容易受到限制或分心。OpenAI 也给出类似建议,最好尽量少提供示例或上下文。
因此,最佳实践是零样例或只在极少数情况下用一个示例。如果必须用示例,也要确保示例十分简洁且与任务高度相关。比如在法律分析场景里,你通常不需要在提示前置一整段示例案例,只需直接询问要分析的新案例;只有在模型无法遵循任务格式时,才给出一个简短示例作指导。否则,它自带的推理能力已经够用,无需过多干预。
3. 巧用系统/开发者指令设定角色与格式
通过 API 或对话式系统的“system message(系统消息)”等方式,你可以简短地给模型设定角色或风格。例如:
「你是一名资深科学研究员,回答问题时会逐步阐述解决思路。」
O1 和 O3-mini 会尊重这些角色设定,并根据其进行相应的推理。
然而,请记住它们已经能够处理复杂任务,所以这样的指令重点应当放在想要什么样的输出,而不是告诉它“怎么去想”。常见用法包括:
• 规定任务范围或人设:如「你是一名法律分析师」或「你是一名给学生讲解的数学教师」,从而影响回答的口吻和专业程度。
• 指定输出格式:如果希望答案是特定结构(如要点、表格、JSON),要在提示中明示,比如:「请用要点列出你的结论。」O1 尤其擅长遵循格式化要求,这在需要大量一致性输出时很实用。
• 设定边界:如「只根据给定信息作答,不要做超出信息范围的假设」或「分析内容请保持简要,不要展开与题无关的内容」。这能避免模型跑题或捏造事实。
在不同对话轮次中,如果你有固定要求(如角色或格式),记得每次都带上,以免模型在后续轮次中失去该上下文。
4. 用指令控制回答长度与深入程度
虽然 O1 和 O3-mini 天生会进行深度思考,但你可以决定输出要呈现多少分析。若你想要详细解释,就提示它(例如「请在答案中展示每个推理步骤」);模型本身并不需要提示就会执行链式推理,但若想看到过程,你得告诉它。如果你觉得模型回答过于冗长或过于专业,则可以告诉它尽量简洁,或者只聚焦于某些部分。
例如:「请用两三段文字简要概括最关键的要点」。模型一般会听从这类关于长度或侧重点的要求。别忘了,O1 默认倾向于给出尽可能详尽的分析——若你只想要精炼版,要直接说明。
对于 O3-mini,OpenAI 还提供了“推理努力程度(reasoning effort)”的可调参数(低、中、高),可以让你决定模型投入多少“思考”。如果通过 API 或其他方式能访问该参数,可以针对任务复杂度来调节:越高则答案更详尽但更耗时,越低则更迅速但可能不够精确。若你的系统不支持直接设置这个参数,你也能通过在提示中对模型做相似的暗示来实现,比如「给我一个快速回答,不必太深入分析」(相当于低努力),或「请尽可能详细且确保所有推理步骤正确,即便答案较长也没关系」(相当于高努力)。
5. 在复杂任务中确保准确性
要让模型在困难问题上给出最准确的回答,要善用其推理优势。由于 O1 会自我检查,你可以在提示里利用这一点:例如「综合所有事实,并再次确认结论与前述信息是否一致」。虽然 O1 默认也会这样做,但强化此类指令会让它更谨慎。
值得注意的是,O1 一般已经在内部进行事实核查,你大可不必像对 GPT-4o 那样专门写「请验证每一步」——那更适合后者。对 O1 来说,更重要的是提供完整且清晰的信息。如果题目或任务里可能存在歧义,你需要在提示里明确说明,或者指示模型先列出假设。这可以防止它做出错误猜测。
• 引用信息与数据:如果需要分析特定数据(如文档、数字等),请确保在提示中有条理地列出这些信息。O1/O3 会仔细使用你提供的数据。如果你的任务需要严格避免“臆造”(例如在法律环境下需要保证模型不能编造法条),可在提示里明确说明「只允许使用给定信息和常识,不得杜撰细节」。这些推理模型一般擅长遵守此类限制,且通过明确指令可以进一步降低幻觉风险。
• 多次验证与交叉检查:对于极为重要或高风险的任务(如复杂的法律推理或关键工程计算),一种提示工程策略是对模型的回答做“集成(ensemble)”或多次比对。具体做法可能是:多次询问模型(或请模型思考不同方案),再比较其输出是否一致。由于模型在每次对话时会存在一定的随机性,这样可以比较不同思路是否都指向相同结论;也可使用追问的方式「再检查一下,是否还有其他可能?」。这种方法对 GPT-4o 同样适用,但对 O1 尤其有效,以最大程度利用它的深度推理来提升准确度。
同时要记住,选择合适的模型也是提示工程的一部分:如果问题本身并不需要 O1 级别的推理复杂度,使用 GPT-4o 可能更划算并且足够准确。OpenAI 建议只在真正需要高难度推理时才使用 O1。换言之,在你决定用 O1 之前先评估一下问题的复杂度:若是简单场景,可以只用 GPT-4o 或仅对 O1 做简洁提示,以免它过度分析;若是复杂场景,则充分发挥 O1 的能力,上述技巧能帮助你获得更高质量的结果。
O1/O3 与 GPT-4o 在逻辑推理上的差异
这些推理模型在处理逻辑问题时与 GPT-4o 有根本不同,对应的提示方式也要做相应调整:
• 内部链式思考
O1 和 O3-mini 在解答问题时,实际上会在内部进行对话式或逐步的推理过程;GPT-4o 如果没有显式引导,则未必会全面展开每一步推理。比如,在解逻辑谜题或文字题时,GPT-4o 可能很快给出听起来可信但缺乏完整步骤的结论,而 O1 会自动把问题拆解、从多个角度审视,再得出答案,这就是它在逻辑强度测试中表现优异的原因。
对提示的影响:不要对 O1 说“请一步步思考”之类的话,除非你确实想在输出里看到所有步骤。对于 GPT-4o,我们常使用链式思考提示来提升推理质量,但对 O1 这属于冗余甚至可能导致混乱。你只需清晰描述问题,让 O1 自行推理即可。• 应对歧义
在逻辑推理中,如果题目信息不完备或存在不确定性,GPT-4o 往往会直接做出假设,而 O1 则倾向于首先指出这些不明确之处,或者同时考虑多种可能性。这是其更深层思考的结果。若你希望模型列出“存在哪些歧义,并说明解决路径”,在 GPT-4o 上你得特别要求,而 O1 大概率会在未被明确要求的情况下也会对不确定点保持谨慎。因此,对 O1,你可以写「如果存在任何不确定性,请列出后再解题」,它会更自然地遵守。相比之下,GPT-4o 需要更多这方面的引导。• 是否输出逐步推理
有时你可能需要完整的推理过程(如教学或透明度需求)。对于 GPT-4o,你必须显式提出“请展示所有推理步骤”;O1 在问题足够复杂时常常会自发展示一部分推理,但也不会列得太细,除非你要求。若想看 O1 的详细思路,只要提示里说「请显示你的推理步骤」就可以。与此同时,如果你并不想看到过多细节,只要告诉它「只给出最终答案」即可,这样就能避免冗长的过程描述。• 逻辑严谨与创造性
GPT-4(含 4o 版本)在一定程度上具备创意能力,有时在逻辑题中会“发散思维”或“想象场景”,这并不总是理想的;O1 更专注于严格的推理,不会轻易编造或发挥。如果你的任务结合了推理和创造性(比如破案类题目,需要既有演绎又有叙事),GPT-4 可能在编故事方面更灵活,而 O1 会在逻辑上更谨慎。如果想兼顾两者长处,你可以先用 O1 获得准确结论,再用 GPT-4 做润色。如果只用 O1/O3,也可以在提示中显式要求它添加创意元素,因为默认它会更倾向于逻辑和正确性。
简而言之,若要充分发挥 O1/O3 在逻辑推理中的优势,请直接提供完整、清晰的问题,让它们在内部推理即可。与 GPT-4o 相比,无需用“分步骤思考”这类提示去“哄”它展开推理。但在 GPT-4o 中,这些技巧反而可能必不可少。根据场景灵活选择、匹配提示风格,才能获得最佳输出。
提示工程最佳实践总结
以下是为 O1 或 O3-mini 设计提示时的操作要点清单,帮助你充分利用其推理特长:
1. 保证提示清晰且具体
明确说明你想让模型完成什么。避免不相关的信息。如果问题复杂,可直接简要陈述,不要同时抛出多个话题或做过多背景描述。2. 必要的上下文要提供,不相关的要省略
包含模型所需的领域信息或数据(如案例、事实),因为模型未必具备最新或小众知识;但别堆砌与任务无关的材料或一堆示例,以免干扰。3. 尽量零示例或极少示例
优先采用零示例模式。只有当模型理解有误或者格式不对时,才加入简短的示例作为演示。O1/O3 本身不需要像旧版 GPT 那样大量示例来引导。4. 使用 System/Developer 指令定位角色与风格
比如「你是一位法律分析师」,或「请做一名数学老师给学生讲解」,从而设置合适的专业度和语气;再如「请用条列式列出答案」,指定输出结构。5. 通过指令控制回答长度与详细程度
若要简短回答,就写「限一段话内给出结论」;若要详细分析,就写「请详述你的推理过程」。O1 默认会倾向详尽,但你可以覆盖该默认。6. 在 O3-mini 上使用“推理努力程度”参数
(若 API 允许)根据任务需求设置低/中/高,以在速度与准确性之间做平衡。7. 避免重复的“逐步思考”指示
不必告诉 O1/O3「让我们一步步思考」,因为它们已在内部做链式推理;这类指令对 GPT-4o 更有效。只有当你想要输出“所有中间步骤”时才额外声明。8. 测试和迭代
如果初始回答不理想,可以改变提示表述或更精确地说明需求。虽然 O1/O3 通常一次就能给出高质量解答,但微调提示仍能进一步提升可读性或输出形式。9. 对重要结论做验证
对于需要高可靠度的回答,可进行追问或多次查询,并对比不同答案或让模型自检,以增强对结果的信心。即便是 O1 也有可能出错,务必审慎使用。
通过这些方法,你能更好地发挥 O1 和 O3-mini 的长处,并获得最优质的答案。
在法律案例分析中的运用示例
最后,以法律案例分析为例说明如何运用上述提示工程原则。法律分析往往需要复杂的推理,是 O1 可大显身手的领域,但前提是我们要用好提示。
1. 组织输入
先将案件的主要事实、法律问题用简明扼要的方式列出,如用要点或简短段落描述,然后明确提出要解决的法律问题,例如「基于上述事实,判断 A 方是否违反了美国合同法?」。这种结构让模型易于提取关键信息,也不会漏掉重点。2. 提供相关法条或背景
如果涉及特定法条、判例或定义,请在提示中附上或简要引用。由于 O1 无法实时浏览信息,也不一定记得所有小众法律,如果你的分析依赖某项法规文本,请放进提示;如「根据[某法条摘要]……请将该法适用于本案。」3. 在 System 消息中设定角色
例如:「你是一名法律分析师,需要在论述中阐明法律与事实的适用过程。」这样能确保 O1 的语气和分析框架更贴近法律专业,引用事实时更严谨。4. 无需多个范例案例
不要像在 GPT-4o 提示中那样放一堆案例做参考。O1 不需要示例就能进行深入推理。不过你可以简单说明输出格式,如「请按照 IRAC(Issue, Rule, Analysis, Conclusion)结构陈述你的论点。」来保证回答的可读性。5. 控制答案长度
如果你想要完整又详细的意见,让 O1 自由发挥,它可能会写好几段,覆盖所有细节。如果嫌太长,可以说「请用简短的评述就此案做出总结。」如果初次答案太概括,就追问「请更详细地说明将法律如何应用于具体事实。」模型会基于已完成的深层推理,进一步展开。6. 确保准确性与逻辑一致
法律问题尤其注重严谨性。O1 在推理过程中倾向于自我纠错,但仍要核对关键引文和具体法律主张。可以在提示最后加一句「请确保在分析中没有遗漏任何与本案事实相关的要素,并再次确认结论与法律条款的一致性。」——因为 O1 擅长自检,这样会使它更加谨慎。7. 使用追问
在法律场景下,你很可能需要围绕一个结论进一步发问,比如「如果在合同中有另一条终止条款,会如何影响分析?」O1 可以持续保持对上下文的理解并给出扩展性的解答。只要在对话中维持相关背景信息不丢失,模型就能依照之前的推理基础展开细节。
通过这些方法,就能让 O1 或 O3-mini 在法律分析中展现其深度推理优势:明确地给出案件信息、设定所需的分析框架、无需多余示例或提示,只需补充与法条或判例相关的必要资料,就能得到结构化、层次分明、且相对精准的法律意见。与官方所说的 O1 在研究、战略等高难领域表现卓越相呼应,法律分析也是类似的高复杂度推理任务——只要理解并利用好 O1/O3 与 GPT-4o 的差异,就能收获更精准、条理清晰的结果。