单位 4 / 11

系统提示和模型参数

收益:

  • 可以设计系统提示如何引导模型完成整个对话
  • 了解适应性思维和工作参数的作用和成本影响
  • 实现输出控制,例如 max_tokens、停止序列和结构化输出

同一型号的两种不同产品的行为可能完全不同。区别不在于模型本身,而在于给予它的系统提示和参数。系统提示为模型的“工作合同”,参数为“工作设置”。在本单元中,您将学习如何设计强大的系统提示、现代模型中的思维和努力设置的作用以及如何控制输出的格式/长度。正确设置这些设置可以让您同时管理质量和成本。

系统提示:模型永久指令

系统提示是适用于整个对话的高级指令。无论用户输入什么内容,这些规则都仍然有效。一个好的系统提示包括以下几个部分:

  1. 角色/身份:模特是谁? (“你是一名公司支持助理。”)
  2. 范围和边界:它做什么和不做什么? (“仅基于所提供的政策文件。”)
  3. 格式规则:输出应该是什么样子? (“最多 3 篇文章,官方语言。”)
  4. 不确定时的行为:当不确定时,一个人会做什么? (“没有信息的,补上,转给相关单位。”)
  5. 安全/隐私:不想要什么? (“请求个人数据。”)
提示:保持系统提示固定。不要嵌入随每个请求而变化的信息(当前日期、用户名、会话 ID)。这既破坏了一致性,又使单元 6 上的提示缓存无效。将变量信息放入用户消息中。

过于激进的教学陷阱

现代模型非常严格地遵循指令。诸如“必须”、“总是”、“一定要这样做”等激进的短语在旧模型中有效,现在会导致过度触发:模型在不需要代理或运行不必要的长时间时调用代理。软化规则:“如果答案不在对话中,则使用搜索工具”比“必须使用搜索工具”更准确。

模型参数:思想和努力

经典法学硕士有一个温度参数:较低的值产生更具体/一致的输出,较高的值产生更多变化/创造性的输出。现代模型(例如 Opus 4.8、Sonnet 5)用两种更强大的机制取代了这种方法,并且不再接受温度等采样参数。

  • 适应性思维:模型在做出反应之前在其“头脑”中逐步推理。该模型根据任务的难度来决定思考的程度。显着提高复杂、多步骤问题的准确性;他想得更少,以避免在简单的问题上造成不必要的拖延。
  • Effort:高级旋钮,用于调整模型深入执行任务的深度以及总共花费的代币数量。典型级别:低、中、高和以上。高强度的努力可能会提高质量,但也会增加延迟和成本;省力带来速度和节省。

设置

什么是

思考/低努力

快速、廉价、肤浅

分类简单、响应时间短、延迟敏感的任务

适应性思维+中等努力

平衡的质量/成本

最通用的任务

适应性思维+高度努力

最高准确度

复杂推理、编码、远程代理工作

注意:“无论如何都要付出最大努力”的本能反应会增加成本。根据任务调整努力;在简单的任务中,较少的努力通常可以以便宜得多的价格获得相同的准确结果。在需要关键精度的地方走高点。

输出控制:格式、长度、结构

除了参数之外,您还可以控制输出本身:

  • max_tokens:输出的硬上限(第一个和第三个单元)。
  • 停止序列:当模型看到某个字符串时停止模型。对于在结构化生产中设置断点很有用。
  • 结构化输出:强制模型的响应符合您提供的 JSON 架构。它确保输出可通过编程进行解析且有效。这比提示说“只返回 JSON”更可靠。

{ "output_config": { "format": { "type": "json_schema", "schema": { "type": "object", "additionalProperties": false, "properties": { "category": { "type": "string", "enum": ["invoice", "technical", "return", "other"] }, "urgency": { "type": "string", “enum”:[“低”,“中”,“高”] } },“必需”:[“类别”,“紧急程度”] } } }}

可复制的系统提示模板

# 公司支持助理您是公司支持助理。- 仅依赖所提供的政策文件;如果文档中没有,请说“我没有此信息”。 - 用最多 3 句话给出正式且清晰的答案。 - 要求提供个人数据(TC ID 号、卡号),并且不要在回答中重复。 - 如果您不确定,请勿猜测。

# 结构化输出强制分类器你是一个需求分类器。输入是客户消息。只返回请求的字段,不写注释。如果您不确定,请使用“其他”。

# 具有明确的站在不确定性中的行为的分析师你是一名数据分析师。仅从提供的表格中得出可验证的推论。永远不要做出数据中不存在的结论。如果推论不清楚,请写“数据不足”。

# 具有语气和长度控制的内容编写者您是一名内容编写者。使用温暖但专业的语气。将每个文本限制在 120 个字或更少。避免陈词滥调的营销语言。

弱提示/强提示

# 弱者乐于助人并给出好的答案。尽力而为。

# STRONGR角色:技术支持专家。范围:仅提供产品指南。格式:分步、编号列表,最多 5 个步骤。限制:推荐指南中未包含的解决方案;说“我在手册中找不到它。”隐私:不要重复用户在响应中共享的序列号。

强大版本;它分别确定了角色、范围、格式、边界和保密性。输出的一致性直接来自于这种清晰度。

三个迷你箱

案例 1——通过工作量调整降低成本。一个团队在执行所有任务时都高度努力+思考;即使是简单的电子邮件摘要也很昂贵且生成速度缓慢。他们将简单的任务分配给低工作量的总结,将合同分析分配给高工作量的任务。准确性得以保持,平均延迟减半,每月成本降低三分之一。

情况 2 — JSON 保证。运营团队要求提供分类输出,并提示“只需提供 JSON”,但模型偶尔会写“这是结果:”,解析器会崩溃。当我连接配置的输出模式时,输出每次都返回有效的 JSON;解析错误已被重置。

情况 3 — 激进的即时后坐力。助理提示说:“必须搜索每个问题”;即使对于它已经知道答案的简单问题,该模型也会进行不必要的搜索,从而减慢速度并增加成本。他们将规则放宽为“如果答案不在上下文中,则进行搜索”;不必要的呼叫减少了 70%,响应速度加快。

常见错误

  • 在系统提示中嵌入变量数据:破坏一致性并使缓存失效。
  • 过于激进的指令:现代模型中的过度触发和不必要的成本。
  • 每项任务都付出很大的努力:在简单的任务中浪费;根据任务调整努力。
  • 仅通过提示请求 JSON:偶尔会中断;如果关键,请使用结构化输出。
  • 未定义边界/模糊行为:模型通过制造(幻觉)填补了空白。
  • 旧的“温度”习惯:现代模型不接受这一点;及时、努力地指导行为。

更深入:像合同一样编写提示

经验丰富的团队将系统提示视为合同,而不是文学文本:明确的条款、可衡量的规则、明确的界限。这种方法具有三个具体好处。首先是一致性:相同的输入在不同的时间给出相似的输出。其次是可测试性:您可以用样本单独测试每个项目。第三是易于维护:如果某个行为出现错误,您知道要更换哪个项目。

一个好的做法是用积极的例子来引导。在现代模型中,提供一个示例来说明“这正是所需的输出的样子”比提供“不要这样做”的列表要有效得多。例如,在分类器中,将一两个预期 JSON 示例添加到提示中可显着减少格式错误。

另一种强大的技术是明确地编写不确定性行为。诸如“如果不确定,请勿猜测;说‘数据不足’”之类的子句会抑制模型用捏造(幻觉)来填补空白的倾向。这句话减轻了验证层的负担,我们将在第 11 单元中介绍这一点:一旦模型已经标记了不确定性,就更容易进行人工验证。

最后,一起考虑努力和提示。在高度努力的情况下,模型会探索更多,有时会做不需要的“额外工作”(不必要的解释、额外的建议)。在提示中说“只给出所需的输出,不要添加额外的注释”可以抵消这种付出巨大努力的副作用。

总之

系统提示符是模型的永久指令:它定义了角色、范围、格式、模糊行为和机密性。在现代模型中,行为是由适应性思维和努力参数而不是温度驱动的;根据任务调整工作量可以同时管理质量和成本。您可以使用 max_tokens、停止数组和结构化输出来保护输出。

应用任务

选择一个任务。 (1) 编写一个由五个组成部分(角色、范围、格式、歧义性、机密性)组成的系统提示。 (2) 说明您为此任务选择的努力程度以及原因。 (3) 如果输出应该是结构化的,请勾勒出一个小的 JSON 模式。 (4) 检查提示中是否存在过于激进的模式并软化它。

清单

  • [ ] 我可以说出一个好的系统提示符的五个组成部分。
  • [ ] 我可以解释适应性思维和努力参数的作用。
  • [ ] 我可以根据任务调整工作量来平衡质量/成本。
  • [ ] 我知道为什么结构化输出比通过提示请求 JSON 更安全。
  • [ ] 我可以认识到现代模型中过度激进指令的风险。