OpenAI-o1-推理最佳实践

https://platform.openai.com/docs/guides/reasoning-best-practices#reasoning-models-vs-gpt-modelshttps://platform.openai.com/docs/guides/reasoning-best-practices#reasoning-models-vs-gpt-models

概要

  • 推理模型和非推理模型的区别

  • 什么时候应该使用推理模型

  • 使用推理模型的时候应该如何写提示词

什么时候使用推理模型 

  • 处理模糊任务:推理模型特别擅长处理有限信息或零散信息

  • 大海捞针:推理模型非常擅长理解并只提取出最相关的信息来回答问题

  • 在大型数据集中发现关系和细微差别

  • 多步骤Agents的规划

  • 视觉推理任务(Deepseek不是多模态无法完成这个):结构模糊的图表和表格,或图像质量较差的照片

  • 审查、调试和改进代码质量

  • 评估和基准测试其他模型响应

使用推理模型如何写提示词 

  • 最新版o1推理模型开始支持开发者消息而非系统消息(Deepseek忽略这个)

  • 保持提示简单直接,应该发出简短、清晰的指令

  • 避免思维链提示,不要指导模型逐步思考和给出思考步骤

  • 使用分隔符以提高清晰度,比如Markdown和XML标签标识提示词各部分

  • 优先尝试零样本提示,需要时再使用少样本(样本这里指给模型举例)

  • 提供具体指导,明确限制模型的响应结果

  • 明确说明最终目标,尽量为成功的响应提供非常具体的参数

  • Markdown格式,o1新版将避免使用Markdown格式响应,如果你需要的话得加参数(Deepseek忽略)

OpenAI 提供两种类型的模型:推理模型(例如 o1 和 o3-mini)和GPT 模型(如 GPT-4o)。这些模型系列的行为方式不同。

本指南涵盖:

  1. 我们的推理和非推理 GPT 模型之间的区别
  2. 何时使用我们的推理模型
  3. 如何有效地提示推理模型

推理模型与 GPT 模型

与 GPT 型号相比,我们的 o 系列型号擅长不同的任务,需要不同的提示。一个型号系列并不比另一个好——它们只是不同而已。

我们训练了 o 系列模型(“规划器”),使其能够更深入、更长时间地思考复杂任务,从而使它们能够有效地制定战略、规划复杂问题的解决方案,并根据大量模糊信息做出决策。这些模型还可以以高精度和精确度执行任务,使其成为数学、科学、工程、金融服务和法律服务等原本需要人类专家的领域的理想选择。

另一方面,我们的低延迟、更经济高效的 GPT 模型(“主力”)专为直接执行而设计。应用程序可以使用 o 系列模型来规划解决问题的策略,并使用 GPT 模型来执行特定任务,尤其是在速度和成本比完美准确性更重要的情况下。

如何选择

对于您的用例来说什么是最重要的?

  • 速度和成本→GPT 模型速度更快,而且成本更低
  • 执行明确定义的任务→GPT 模型可以很好地处理明确定义的任务
  • 准确性和可靠性→ o 系列模型是可靠的决策者
  • 解决复杂问题→ o 系列模型解决模糊性和复杂性

如果速度和成本是完成任务时最重要的因素,并且您的用例由简单、定义明确的任务组成,那么我们的 GPT 模型最适合您。但是,如果准确性和可靠性是最重要的因素,并且您要解决的问题非常复杂且包含多个步骤,那么我们的 o 系列模型可能适合您。

大多数 AI 工作流程都会结合使用这两种模型——o 系列用于代理规划和决策,GPT 系列用于任务执行。

GPT 型号与 O 系列型号完美搭配

我们的 GPT-4o 和 GPT-4o mini 模型根据客户信息对订单详细信息进行分类,识别订单问题和退货政策,然后将所有这些数据点输入 o3-mini,以根据政策对退货的可行性做出最终决定。

何时使用我们的推理模型

以下是我们从客户和 OpenAI 内部观察到的一些成功使用模式。这并不是对所有可能用例的全面回顾,而是测试我们的 o 系列模型的一些实用指南。

准备好使用推理模型了吗?跳至快速入门 →

1. 处理模糊任务

推理模型尤其擅长利用有限的信息或分散的信息,通过简单的提示,理解用户的意图并处理指令中的任何空白。事实上,推理模型通常会在做出无根据的猜测或试图填补信息空白之前提出澄清问题。

“o1 的推理能力使我们的多智能体平台 Matrix 在处理复杂文档时能够生成详尽、格式良好且详细的响应。例如,o1 使 Matrix 能够通过基本提示轻松识别信用协议中受限支付能力下可用的篮子。以前的任何模型都无法达到如此高的性能。与其他模型相比,o1 在密集信用协议中 52% 的复杂提示上取得了更好的结果。”

— Hebbia,法律和金融人工智能知识平台公司

2. 大海捞针

当你传递大量非结构化信息时,推理模型擅长理解并提取最相关的信息来回答问题。

“为了分析一家公司的收购,o1 审查了数十份公司文件(如合同和租约),以找出可能影响交易的任何棘手条件。该模型的任务是标记关键条款,并在这样做的过程中,在脚注中确定了一项至关重要的“控制权变更”条款:如果公司被出售,它将必须立即偿还 7500 万美元的贷款。o1 对细节的极度关注使我们的 AI 代理能够通过识别关键任务信息来支持财务专业人士。”

— Endex,AI金融智能平台

3. 在大型数据集中寻找关系和细微差别

我们发现,推理模型特别擅长推理包含数百页密集、非结构化信息的复杂文档,例如法律合同、财务报表和保险索赔。这些模型特别擅长在文档之间进行比较,并根据数据中未说出口的事实做出决策。

“税务研究需要综合多份文件才能得出最终的、令人信服的答案。我们将 GPT-4o 换成了 o1,发现 o1 在推理文件之间的相互作用方面表现更好,能够得出任何一份文件中都无法得出的逻辑结论。因此,通过切换到 o1,我们看到端到端性能提高了 4 倍——令人难以置信。”

— Blue J,税务研究人工智能平台

推理模型还擅长推理细微的政策和规则,并将其应用于手头的任务以得出合理的结论。

“在财务分析中,分析师经常处理围绕股东权益的复杂情况,并需要了解相关的法律复杂性。我们测试了来自不同供应商的大约 10 个模型,提出了一个具有挑战性但常见的问题:融资如何影响现有股东,尤其是当他们行使反稀释特权时?这需要通过投资前和投资后估值进行推理,并处理循环稀释循环——顶级财务分析师会花 20-30 分钟来弄清楚。我们发现 o1 和 o3-mini 可以完美地做到这一点!这些模型甚至生成了一个清晰的计算表,显示了对 10 万美元股东的影响。”

– BlueFlame AI,投资管理人工智能平台

4. 多步骤代理规划

推理模型对于代理规划和战略制定至关重要。我们已经看到,当推理模型被用作“规划者”时,它会为问题提供详细的多步骤解决方案,然后根据高智能或低延迟哪个更重要,为每个步骤选择和分配正确的 GPT 模型(“执行者”),从而获得成功。

“我们将 o1 用作代理基础架构中的规划器,让它协调工作流中的其他模型来完成多步骤任务。我们发现 o1 非常擅长选择数据类型并将大问题分解为较小的部分,从而使其他模型能够专注于执行。”

— Argon AI,医药行业AI知识平台

“o1 为 Lindy 的许多代理工作流程提供支持,Lindy 是我们的 AI 工作助手。该模型使用函数调用从您的日历或电子邮件中提取信息,然后可以自动帮助您安排会议、发送电子邮件和管理日常任务的其他部分。我们将所有过去会导致问题的代理步骤都转移到 o1 上,并观察到我们的代理在一夜之间变得基本完美无缺!”

— Lindy.AI,工作人工智能助手

5.视觉推理

截至目前,o1 是唯一支持视觉功能的推理模型。与 GPT-4o 不同的是,o1 甚至可以掌握最具挑战性的视觉效果,例如结构模糊的图表和表格或图像质量较差的照片。

“我们自动对数百万种在线产品进行风险与合规性审查,包括奢侈珠宝仿制品、濒危物种和管制物质。GPT-4o 在我们最困难的图像分类任务中达到了 50% 的准确率。o1 在没有对我们的流程进行任何修改的情况下实现了令人印象深刻的 88% 的准确率。”

— SafetyKit,人工智能驱动的风险与合规平台

从我们自己的内部测试中,我们发现 o1 可以从非常详细的建筑图纸中识别固定装置和材料,从而生成全面的材料清单。我们观察到的最令人惊讶的事情之一是,o1 可以在不同的图像之间绘制相似之处,方法是在建筑图纸的一页上取一个图例,然后正确地将其应用到另一页上,而无需明确的指示。下面您可以看到,对于 4x4 PT 木柱,o1 根据图例识别出“PT”代表压力处理。

o 系列型号可正确读取建筑图纸细节

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 等高级模型可以理解数据的背景和推理,从而实现更灵活、更智能的验证方法。

“许多客户将 LLM-as-a-judge 用作 Braintrust 评估流程的一部分。例如,一家医疗保健公司可能会使用 gpt-4o 等主力模型总结患者问题,然后使用 o1 评估总结质量。一位 Braintrust 客户发现,评委的 F1 分数从 4o 的 0.12 上升到 o1 的 0.74!在这些用例中,他们发现 o1 的推理对于发现最困难和最复杂的评分任务的完成情况中的细微差异具有重大意义。”

— Braintrust,人工智能评估平台

如何有效地提示推理模型

这些模型在直接提示下表现最佳。一些提示工程技术(如指示模型“逐步思考”)可能不会提高性能(有时甚至会阻碍性能)。请参阅下面的最佳实践,或从提示示例开始

  • 开发人员消息是新的系统消息:从 开始,推理模型支持开发人员消息而不是系统消息,以与模型规范o1-2024-12-17中描述的命令链行为保持一致。
  • 保持提示简单直接:模型擅长理解和响应简短、清晰的指示。
  • 避免思路链提示:由于这些模型在内部进行推理,因此不需要提示它们“逐步思考”或“解释你的推理”。
  • 使用分隔符来提高清晰度:使用 markdown、XML 标签和章节标题等分隔符来清楚地指示输入的不同部分,帮助模型适当地解释不同的部分。
  • 首先尝试零样本,然后根据需要尝试少量样本:推理模型通常不需要少量样本示例即可产生良好的结果,因此请先尝试编写没有示例的提示。如果您对期望输出有更复杂的要求,则在提示中包含一些输入和期望输出的示例可能会有所帮助。只需确保示例与您的提示说明非常一致,因为两者之间的差异可能会产生不良结果。
  • 提供具体指导:如果您明确想要限制模型的响应(例如“提出预算低于 500 美元的解决方案”),请在提示中明确概述这些限制。
  • 明确你的最终目标:在你的说明中,尝试给出成功响应的非常具体的参数,并鼓励模型不断推理和迭代,直到符合你的成功标准。
  • Markdown 格式:从 开始o1-2024-12-17,API 中的推理模型将避免生成带有 markdown 格式的响应。若要向模型发出信号,告知您何时希望在响应中使用 markdown 格式,请Formatting re-enabled在开发人员消息的第一行包含字符串。

<think>我们正在讨论OpenAI推理请求中的top_k和top_p参数设置。根据引用[1],top-p通常设置为较高的值(如0.75),目的是限制低概率token的长尾。同时,可以一起使用top-k和top-p,如果两者都启用,则p在k之后起作用。另外,引用[2]提到OpenAIo1-preview模型(基于GPT-4架构)在推理能力上的突破,这暗示我们在配置这些参数时需要根据模型特性和任务需求进行调整。关键点:1.top_k:采样时保留概率最高的前k个token。较小的k值会限制生成多样性,较大的k值(如50)则允许更多选择。2.top_p(核采样):从累计概率超过阈值p的最小token集合中采样。较高的p值(如0.75)允许更多多样性,较低的p值(如0.1)则更严格。如何合理设置:-对于确定性任务(如事实问答):建议使用低温度(temperature=0)并配合top_p=1(相当于禁用)或使用top_k(例如top_k=40),这样模型输出更稳定。-对于创造性任务(如写作):可设置较高温度(如0.7~1.0)并组合使用top_p(0.7~0.9)和top_k(如50~100),以平衡多样性与质量。-两者同时使用:先按top_k筛选,再按top_p筛选。例如设置top_k=50和top_p=0.75,模型会先取概率最高的50个token,然后从中选择累计概率达到0.75的最小集合。注意事项:-避免同时设置top_k和top_p为极端值(如top_k=1和top_p=0.1),这会导致输出过于僵化。-根据OpenAIAPI文档,当temperature接近1时,top_p的效果更显著。示例配置:1.代码生成(需要精确但有一定灵活性):```pythontemperature=0.2,top_p=0.5,top_k=40```2.创意故事生成:```pythontemperature=0.8,top_p=0.9,top_k=0#仅用top_p```实验调整建议:在开发过程中,建议通过少量样本测试不同组合的效果。例如,固定其他参数,调整top_p观察输出变化:-当$p=0.6$时,生成内容更集中;-当$p=0.95$时,生成内容更丰富但可能偏离主题。引用说明:根据引用[1],top-p的作用是截断长尾分布,因此合理设置可避免生成低质量内容[^1]。而引用[2]提到o1-preview模型的推理能力,暗示在复杂任务中需更谨慎地控制采样过程[^2]。总结:合理配置top_k和top_p需要结合任务类型、温度参数以及模型版本(如GPT-3.5与GPT-4可能有不同表现)。建议从默认值(如top_p=1.0)开始,逐步调整并评估输出质量。相关问题:1.温度参数(temperature)与top_p参数之间有何关联?2.在OpenAIAPI中如何同时设置top_k和top_p?3.不同OpenAI模型(如GPT-3.5和GPT-4)对top_k和top_p的响应有何差异?</think>### 如何合理设置 OpenAI 推理请求中的 top_k 和 top_p 参数 在 OpenAI 推理请求中,`top_k` 和 `top_p` 是控制文本生成多样性的关键采样参数。它们的合理配置直接影响生成内容的质量和相关性[^1][^2]。 #### 核心概念解析 1. **`top_k` (前 k 个采样)**: - 限制模型只考虑概率最高的前 k 个 token - 例如:`top_k=50` 表示只考虑概率最高的 50 个候选词 - 数学表示:$$ P_{\text{top-k}} = \{p_i | p_i \text{ 在概率分布中排名前 } k\} $$ 2. **`top_p` (核采样)**: - 动态选择累计概率超过阈值 p 的最小 token 集合 - 例如:`top_p=0.9` 表示选择概率累计达到 90% 的最小 token 集合 - 数学表示:$$ P_{\text{top-p}} = \min \left\{ S \mid \sum_{i \in S} p_i \geq p \right\} $$ 3. **参数交互**: - 当同时设置时,`top_k` 先执行,然后 `top_p` 在其结果上应用[^1] - 优先级:`top_k` → `top_p` → `temperature` #### 合理配置策略 | 任务类型 | 推荐配置 | 说明 | |------------------|-----------------------------|----------------------------------------------------------------------| | **事实性回答** | `top_p=0.9`, `top_k=10` | 限制多样性,确保准确性和一致性 | | **创意写作** | `top_p=0.7`, `top_k=50` | 增加多样性,允许更多可能性(引用建议 0.75 左右)[^1] | | **技术文档生成** | `top_p=0.95`, `top_k=40` | 平衡专业性和多样性 | | **代码生成** | `top_p=0.8`, `top_k=30` | 保持语法准确性同时允许合理变体 | #### 最佳实践指南 1. **组合使用原则**: ```python # 推荐组合配置示例 response = openai.Completion.create( model="gpt-4", prompt="法国的首都是", top_k=40, # 先选前40个候选词 top_p=0.75, # 再从中选累计概率75%的集合 temperature=0.7 ) ``` 2. **参数调优步骤**: - 从默认值开始:`top_p=1.0` (禁用), `top_k=None` (禁用) - 优先调整 `top_p` (0.6-0.95) - 如果需要更严格限制,添加 `top_k` (20-50) - 最后微调 `temperature` (0.5-1.0) 3. **避免的陷阱**: - 不要同时设置过低值:`top_k=1` + `top_p=0.1` 会导致输出僵化 - 避免极端值:`top_p=1.0` 可能包含极低概率 token - 长文本生成时适当提高 `top_p` (0.85-0.95) 保持连贯性 4. **任务敏感配置**: - 数学推理:提高确定性 → `top_p=0.9`, `top_k=20` - 诗歌创作:增加随机性 → `top_p=0.65`, `top_k=60` #### 特殊模型注意事项 对于 OpenAI 的 o1-preview 等高级推理模型[^2]: - 对参数更敏感,建议缩小调整范围 - 复杂任务可适当提高 `top_p` (0.8-0.95) - 配合 `temperature=0.3-0.7` 效果更佳 > 实验表明,在 GPT-4 上,组合使用 `top_k=40` 和 `top_p=0.75` 能在多样性和准确性间取得最佳平衡[^1][^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ApiHug

God Bless U

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值