推理最佳实践
AI translation, not an official translation. Refer to the original for technical details.
On this page
完整的文档索引,请参阅 llms.txt。在页面 URL 后附加
.md即可获取文档页面的 Markdown 版本。
OpenAI 提供两类模型:推理模型(例如 o3 和 o4-mini)以及 GPT 模型(如 GPT-4.1)。这两个模型系列的行为方式有所不同。
本指南涵盖以下内容:
- 推理模型与非推理 GPT 模型之间的区别
- 何时使用推理模型
- 如何有效地向推理模型提示
详细了解推理模型及其工作原理。
推理模型与 GPT 模型
与 GPT 模型相比,我们的 o 系列模型擅长不同的任务,也需要不同的提示方式。这两个模型系列并无优劣之分——它们只是各有侧重。
我们训练 o 系列模型("规划者")对复杂任务进行更长时间、更深入的思考,使其在制定策略、规划复杂问题的解决方案以及基于大量模糊信息做出决策方面表现出色。这些模型还能以高准确度和高精度执行任务,使其非常适合原本需要人类专家才能处理的领域——例如数学、科学、工程、金融服务和法律服务。
另一方面,我们延迟更低、成本效率更高的 GPT 模型("主力模型")专为直接执行任务而设计。一个应用程序可能使用 o 系列模型来规划解决问题的策略,并使用 GPT 模型来执行具体任务,尤其是在速度和成本比完美准确性更重要的情况下。
如何选择
对您的使用场景而言,什么最重要?
- 速度与成本 → GPT 模型更快,且往往成本更低
- 执行明确定义的任务 → GPT 模型能很好地处理明确定义的任务
- 准确性与可靠性 → o 系列模型是可靠的决策者
- 复杂问题求解 → o 系列模型能处理模糊性和复杂性
如果速度和成本是完成任务时最重要的因素,_并且_您的使用场景由简单、明确定义的任务组成,那么我们的 GPT 模型最适合您。但是,如果准确性和可靠性是最重要的因素,_并且_您面对的是非常复杂的多步骤问题,那么我们的 o 系列模型很可能正是您所需要的。
大多数 AI 工作流将同时使用两种模型——o 系列模型用于智能体规划和决策,GPT 系列模型用于任务执行。
我们的 GPT-4o 和 GPT-4o mini 模型对订单详情和客户信息进行分类,识别订单问题及退货政策,然后将所有这些数据点输入 o3-mini,以根据政策对退货的可行性做出最终决策。
何时使用推理模型
以下是我们从客户和 OpenAI 内部观察到的一些成功使用模式。这并非所有可能使用场景的全面综述,而是对测试 o 系列模型的一些实用指导。
1. 处理模糊任务
推理模型特别擅长获取有限信息或零散信息,并通过简单的提示理解用户意图,处理指令中的空白。事实上,推理模型通常会在进行无根据的猜测或尝试填补信息空白之前,先提出澄清性问题。
"o1 的推理能力使我们的多智能体平台 Matrix 在处理复杂文档时能够生成详尽、格式规范且细节丰富的回答。例如,o1 使 Matrix 能够仅凭基本提示,轻松识别信贷协议中受限支付条款下可用的篮子。没有任何以前的模型能达到如此高的性能。o1 在复杂信贷协议的密集提示中,有 52% 的提示产生了比其他模型更强的结果。"
—Hebbia,面向法律和金融领域的 AI 知识平台公司
2. 大海捞针
当您传入大量非结构化信息时,推理模型非常擅长理解这些信息,并仅提取最相关的内容来回答问题。
"为了分析一家公司的收购事项,o1 审阅了数十份公司文件——如合同和租约——以发现可能影响交易的棘手条款。该模型的任务是标记关键条款,在此过程中,它在脚注中识别出一项关键的"控制权变更"条款:如果该公司被出售,则必须立即偿还一笔 7500 万美元的贷款。o1 极致的细节关注能力使我们的 AI 智能体能够通过识别关键任务信息来支持金融专业人士。"
—Endex,AI 金融智能平台
3. 在大型数据集中发现关联与细微差别
我们发现,推理模型特别擅长对包含数百页密集非结构化信息的复杂文档进行推理——例如法律合同、财务报表和保险索赔。这些模型尤其擅长在文档之间找出相似之处,并根据数据中隐含的、未明言的真相做出决策。
"税务研究需要综合多份文件才能得出最终、连贯的答案。我们将 GPT-4o 替换为 o1,发现 o1 在对文件之间的相互关系进行推理、得出任何单一文件中均未明确呈现的逻辑结论方面表现得更为出色。因此,切换到 o1 后,我们的端到端性能提升了 4 倍——令人难以置信。"
—Blue J,面向税务研究的 AI 平台
推理模型同样擅长对细微的政策和规则进行推理,并将其应用于当前任务,以得出合理的结论。
"在金融分析中,分析师经常需要处理围绕股东权益的复杂场景,并需要理解相关的法律细节。我们用一个颇具挑战性但又十分常见的问题测试了来自不同提供商的约10个模型:一轮融资如何影响现有股东,尤其是当他们行使反稀释权时?这需要对融资前后的估值进行推理,并处理循环稀释问题——顶尖的金融分析师通常需要花费20至30分钟才能搞清楚。我们发现 o1 和 o3-mini 能够完美地完成这一任务!这些模型甚至还生成了一张清晰的计算表,展示了对一位持股10万美元的股东的影响。"
–BlueFlame AI,面向投资管理的AI平台
4. 多步骤智能体规划
推理模型对于智能体规划和策略制定至关重要。我们发现,将推理模型用作"规划者"——为问题生成详细的多步骤解决方案,然后根据每个步骤对高智能或低延迟的需求,选择并分配合适的GPT模型("执行者")——这种方式效果显著。
"我们在智能体基础设施中使用 o1 作为规划者,让它在工作流中编排其他模型以完成多步骤任务。我们发现 o1 非常擅长选择数据类型,并将大问题分解为更小的子问题,从而让其他模型专注于执行。"
—Argon AI,面向制药行业的AI知识平台
"o1 为Lindy(我们面向工作的AI助手)的众多智能体工作流提供支持。该模型通过函数调用从您的日历或邮件中获取信息,然后可以自动帮助您安排会议、发送邮件,并管理日常工作的其他事项。我们将所有曾出现问题的智能体步骤切换到了 o1,并观察到我们的智能体几乎在一夜之间变得近乎完美!"
—Lindy.AI,面向工作的AI助手
5. 视觉推理
截至今日,o1 是唯一支持视觉能力的推理模型。它与 GPT-4o 的区别在于,o1 能够理解最具挑战性的视觉内容,例如结构模糊的图表和表格,或图像质量较差的照片。
"我们为数以百万计的在线商品自动进行风险与合规审查,涵盖奢侈品仿制品、濒危物种和管制物质等类别。GPT-4o 在我们最难的图像分类任务上达到了50%的准确率。而 o1 在不对我们的流程做任何修改的情况下,达到了令人印象深刻的88%准确率。"
—SafetyKit,AI驱动的风险与合规平台
根据我们内部测试的结果,o1 能够从高度详细的建筑图纸中识别装置和材料,从而生成完整的材料清单。我们观察到的最令人惊喜的一点是,o1 能够跨不同图像建立关联——它能够读取建筑图纸某一页上的图例,并在未收到明确指示的情况下,将其正确应用于另一页。从下图可以看出,对于4x4 PT木柱,o1 根据图例识别出"PT"代表经过防腐处理(pressure treated)。
6. 审查、调试和提升代码质量
推理模型在审查和改进大量代码方面尤为有效,通常可在后台运行代码审查任务,这也契合这些模型较高延迟的特点。
"我们在GitHub和GitLab等平台上提供自动化AI代码审查服务。代码审查流程本身对延迟并不敏感,但确实需要理解跨多个文件的代码差异。这正是 o1 的优势所在——它能够可靠地检测到代码库中人工审查员可能忽略的细微变化。切换到o系列模型后,我们的产品转化率提升了3倍。"
—CodeRabbit,AI代码审查初创公司
尽管 GPT-4o 和 GPT-4o mini凭借其较低的延迟可能更适合编写代码,但我们也观察到 o3-mini 在对延迟要求稍低的代码生产场景中表现突出。
"o3-mini 始终能生成高质量、结论明确的代码,并且在问题定义清晰的情况下——即便是非常具有挑战性的编码任务——也能非常频繁地给出正确答案。其他模型可能仅适用于小规模、快速的代码迭代,而 o3-mini 则擅长规划和执行复杂的软件设计系统。"
—Windsurf,由Codeium打造的协作式智能体AI驱动IDE
7. 对其他模型响应进行评估与基准测试
我们还发现推理模型在对其他模型的响应进行基准测试和评估方面表现出色。数据验证对于确保数据集的质量和可靠性至关重要,在医疗等敏感领域尤为如此。传统验证方法依赖预定义的规则和模式,而 o1 和 o3-mini 等先进模型则能够理解上下文并对数据进行推理,从而实现更灵活、更智能的验证方式。
"许多客户在Braintrust的评估流程中使用LLM作为评判者。例如,一家医疗公司可能使用 gpt-4o 这样的主力模型对患者问题进行总结,然后再用 o1 评估摘要质量。某位Braintrust客户发现,评判模型的F1分数从使用4o时的0.12提升到了使用 o1 时的0.74!在这些使用场景中,他们发现 o1 的推理能力在针对最困难、最复杂的评分任务中发现补全结果之间的细微差异方面具有革命性的意义。"
—Braintrust,AI评估平台
如何有效地为推理模型编写提示词
这些模型在使用简洁明了的提示词时表现最佳。某些提示工程技巧,例如指示模型"一步一步思考",未必能提升性能(有时甚至会产生负面影响)。请参阅以下最佳实践,或从提示词示例开始上手。
- 开发者消息是新的系统消息:从
o1-2024-12-17开始,推理模型支持开发者消息而非系统消息,以与模型规范中描述的指挥链行为保持一致。 - 保持提示简洁直接:这些模型擅长理解并响应简短、清晰的指令。
- 避免思维链提示:由于这些模型在内部执行推理,因此无需提示它们"逐步思考"或"解释你的推理过程"。
- 使用分隔符提高清晰度:使用 Markdown、XML 标签和章节标题等分隔符来清楚地标示输入的不同部分,帮助模型正确解读各个章节。
- 先尝试零样本,必要时再使用少样本:推理模型通常不需要少样本示例即可产生良好结果,因此请先尝试编写不含示例的提示。如果你对期望输出有更复杂的要求,在提示中加入几个输入和期望输出的示例可能会有所帮助。但请确保示例与提示指令高度一致,两者之间的差异可能会导致较差的结果。
- 提供具体的指导方针:如果你明确希望以某种方式约束模型的响应(例如"提出一个预算低于 500 美元的解决方案"),请在提示中明确列出这些约束条件。
- 非常具体地说明你的最终目标:在你的指令中,尽量为成功的响应提供非常具体的参数,并鼓励模型持续推理和迭代,直到符合你的成功标准。
- Markdown 格式:从
o1-2024-12-17开始,API 中的推理模型将避免生成带有 Markdown 格式的响应。若要向模型表明你希望在响应中使用 Markdown 格式,请在开发者消息的第一行包含字符串Formatting re-enabled。
如何降低成本并提高准确性
随着 o3 和 o4-mini 模型的引入,Responses API 中持久化的推理项的处理方式有所不同。此前(对于 o1、o3-mini、o1-mini 和 o1-preview),即使推理项被包含在请求的输入项中,它们在后续 API 请求中始终会被忽略。对于 o3 和 o4-mini,部分与函数调用相邻的推理项会被包含在模型的上下文中,以在使用最少推理令牌的同时帮助提升模型性能。
为了从这一变更中获得最佳结果,我们建议将 Responses API 与设置为 true 的 store 参数配合使用,并传入来自先前请求的所有推理项(可使用 previous_response_id,或将旧请求的所有输出项作为新请求的输入项传入)。OpenAI 将自动在模型上下文中包含任何相关的推理项,并忽略任何不相关的推理项。在需要更精确地管理模型上下文内容的高级用例中,我们建议你至少包含最新函数调用与上一条用户消息之间的所有推理项。这样做将确保模型在你响应函数调用时无需重新开始推理,从而带来更好的函数调用性能和更低的总体令牌使用量。
如果你使用的是 Chat Completions API,推理项将永远不会被包含在模型的上下文中。这是因为 Chat Completions 是一个无状态 API。在涉及大量函数调用的复杂智能体场景中,这将导致模型性能略有下降,并增加推理令牌的使用量。在不涉及复杂多函数调用的情况下,无论使用哪种 API,性能均不应出现下降。
其他资源
如需更多灵感,请访问 OpenAI Cookbook,其中包含示例代码及第三方资源链接,或进一步了解我们的模型和推理能力:

