
解锁 Openai O3-mini:开发人员提高模型性能的 5 项关键功能
模型低语
我记得是Michal Stanislawek创造了“模型低语”这个术语。我从对话中记得的是,模型低语是传递给模型的一个额外字段或参数,用于特定实例,以引导模型并在该特定实例中提供指导。
我发现**“模型低语”**这个概念是一个引人入胜的隐喻,用于描述那些在推理过程中微妙地引导或“操控”大型语言模型(LLMs),如OpenAI的GPT-4的技术。
虽然在AI文献中并不是一个官方术语,但它与提示工程、参数调整和隐藏上下文注入等新兴实践相一致,以改善模型行为。
开发者
有趣的是,OpenAI 在推出 o3-mini 时对开发者功能的关注。
o3-mini 是 OpenAI 首个 小型推理模型,支持高度请求的开发者功能,包括:
o3-mini 模型不支持视觉能力,因此最佳选择应为 OpenAI o1 进行视觉推理任务。
o3-mini 可在以下 API 中使用:
- 聊天完成 API,
- 助手 API,和
- 批处理 API。
该图显示了如何通过 Playground IU 访问模型。
开发者消息
在 o3-mini 中,messages
结构支持不同角色,每个角色在指导模型响应方面都有独特的目的。以下是您示例中三个角色的详细说明:
-
System: 该角色设置模型的行为和上下文。它定义了模型在交互过程中应遵循的总体指南。
-
User: 该角色代表终端用户的输入。模型将根据此角色提供的信息和问题进行响应。
-
Assistant: 该角色用于模型的响应。它根据系统和用户角色提供的上下文和输入生成输出。
示例结构
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Can you explain the different roles?"
},
{
"role": "assistant",
"content": "Sure! The roles are System, User, and Assistant."
}
]
}
该结构允许清晰的沟通,并确保模型理解其在对话中的角色。
Developer Role (“developer”)
此角色用于 在对话中嵌入开发者特定指令。
它提供了 额外的上下文,帮助开发者理解或调试系统。指令优先于用户消息,遵循指挥链。
系统角色
系统消息设定了规则,以指导助手的行为。它直接影响响应的风格、语气和限制。在这里,您定义了模型必须始终遵循的指令。
用户角色
这是用户的实际输入,代表他们的查询或请求。助手根据该输入做出响应,同时考虑任何系统指令。
它们是如何协同工作的
开发者角色 → 为开发者提供隐藏的元数据(用户看不到)。
系统角色 → 定义响应规则,引导助手如何回答。
用户角色 → 助手响应的实际提示。
代码示例
下面是您可以在笔记本中直接运行的 Python 代码,演示了一个简单的“开发者消息”。
您可以看到开发者、系统和用户角色。
消息角色可能帮助您获得更好的响应,特别是如果您希望模型遵循层级指令。它们并不是确定性的,因此使用它们的最佳方法是尝试不同的内容,看看哪些能给您带来好的结果。
以下是一个开发者消息的示例,它修改了模型在生成对 用户
消息的响应时的行为:
pip install openai
import openai
api_key = input("Enter your OpenAI API key: ").strip()
client = openai.OpenAI(api_key=api_key)
messages = [
{
"role": "developer",
"content": "You are a helpful assistant that answers programming questions in the style of somenone from New York City."
},
{
"role": "system",
"content": "Ensure responses follow the style and are helpful for programming inquiries."
},
{
"role": "user",
"content": "Are semicolons optional in JavaScript?"
}
]
try:
response = client.chat.completions.create(
model="o3-mini",
messages=messages
)
print("\nResponse from o3-mini:")
print(response.choices[0].message.content)
except openai.OpenAIError as e:
print(f"Error: {e}")
输出为…
来自 o3-mini 的响应: Alright, listen up. In JavaScript, semicolons are kind of optional because of this feature called Automatic Semicolon Insertion (ASI)
Supported values are: ‘system’, ‘assistant’, ‘user’, ‘function’, ‘tool’, and ‘developer’
质量、速度与成本
好的,我们甚至还没有真正进入这一年,但我们已经经历了DeepSeek时刻,随后世界似乎错过了Qwen-2.5-Max时刻。
然后在2025年1月31日,OpenAI宣布了o3-mini模型。
根据下面来自Artificial Analysis的三张图表,o3-mini在其质量指数中表现良好,超越了DeepSeek R1。
在推理速度方面也有显著提升,最后是价格。
在模型决策时,这三个指标:速度、质量和成本需要保持平衡。
最后
消息角色可以改善响应,特别是在引导模型通过分层指令时。
由于它们不是确定性的,最有效的方法是进行实验并观察什么能产生最佳结果。
首席布道者 @ Kore.ai | 我热衷于探索人工智能与语言的交叉点。从语言模型、AI代理到代理应用、开发框架及数据驱动的生产力工具,我分享关于这些技术如何塑造未来的见解和想法。