文 | 王启隆
出品丨AI 科技大本营(ID:rgznai100)
本文由 CSDN 编辑整理,未经授权禁止转载,违者必究。
近日,由前 OpenAI 员工创立的人工智能公司 Anthropic 公开发布了其最新 Claude AI 模型的系统提示词。这一罕见举动让用户得以一窥其大语言模型(LLM)的内部运作机制,使 Anthropic 成为世界上第一家公开了自己“独家秘方”的 AI 公司。
系统提示词通常被视为专有信息,对塑造 AI 的行为和能力至关重要。这次发布包含了 Claude 3.5 Sonnet、Claude 3 Opus 和 Claude 3 Haiku 模型的详细指令。这些提示词概述了模型行为的具体指南,包括禁止面部识别和访问链接,此外还要让 AI 模型以 Anthropic 认为客观的方式处理有争议的话题。
由于字数比较多,我们会在文末放出完整的提示词。
在国外的论坛上,网友们对这些 AI 透明化的工作都表示赞扬,但也有些眼尖的人吐槽系统提示词中存在着一些“废话”,比如下面这段提示词:
Claude responds directly to all human messages without unnecessary affirmations or filler phrases like “Certainly!”, “Of course!”, “Absolutely!”, “Great!”, “Sure!”, etc. Specifically, Claude avoids starting responses with the word “Certainly” in any way.
Claude 会直接回复所有人的消息,且不会使用诸如 “Certainly!”“Of Course!”“Absolutely!”“Great!”“Sure!” 等不必要的肯定表述或填充性短语。特别地,Claude 无论如何都避免以 “Certainly” 这个词开头进行回复。
由于笔者平时就使用 Claude,所以去看了下历史记录,发现这段系统提示词真的没生效。比如下图,我让 Claude 帮忙检查文稿中的错误,而 Claude 第一句就回答我:“Certainly!”(当然!)
无论如何,Anthropic 愿意公开他们“调教” AI 模型的方式,肯定是一件好事。他们与 OpenAI、xAI 甚至开源模型的 Meta 都不同,这些大公司都对其系统提示词保密。但在今年早些时候,曾有黑客泄露 ChatGPT 内部就有一个庞大的 1700 字提示词。
另外,就在今天,Anthropic 正式为所有 Claude.ai 用户(包括免费版、专业版和团队版计划)推出了 Artifacts 功能。免费用户终于不会遇到 Artifacts 一会儿不出来的情况了,可喜可贺。
今年六月,Anthropic 在最新的 Claude 3.5 Sonnet 模型上推出了这项功能,简而言之就是在界面弹出一个额外的窗口,让你可以即时查看、迭代和构建 Claude 创作的文字作品或是代码。后面又推出了分享功能,让用户之间可以分享彼此创建的 Artifacts。根据官方透露,用户至今已创建了数千万个 Artifacts。
如果你还是不知道这个功能有啥用,可以看看官方发布的最新视频:
如何编写更好的提示词?
言归正传,继续聊一聊官方分享的这套系统提示词。早在今年 3 月的时候,Anthropic 的 AI 总监 Amanda Askell 就在社交平台 X(前身为 Twitter)上分享了 Claude 3 早期版本的系统提示词。她还解释了这种条件设置背后的原因:
「为什么我们要使用系统提示词?首先,它们让我们能够给模型提供『实时』信息,比如日期。其次,它们让我们能够在训练后进行一些定制,并在下一次微调之前调整行为。这个系统提示词实现了这两点。」她在 Twitter 上的一个帖子中说道。
Anthropic 系统提示词的公开不仅帮助用户了解聊天机器人的工作原理,还能帮助人们理解 LLM 的思考方式,以及用户如何通过更好的输入来引导它们的思考过程。LLM 的核心本质上是高度复杂的文本预测器,每个词都会影响后续内容的生成。
因此,更精心设计的提示词可以帮助用户增强模型的能力,从与 AI 模型的互动中获得更准确、更符合上下文和更有针对性的结果。
上下文丰富至关重要
提供丰富的上下文对于引导 AI 模型生成更精确和相关的回应至关重要。Anthropic 的提示词就示范了详细的上下文信息在塑造 AI 行为方面的重要性。
以下节选自 Anthropic 公开的系统提示词:“助手 Claude 是由 Anthropic 公司开发的 AI。当前日期是 {}。Claude 的知识库最后更新于 2024 年 4 月。在回答 2024 年 4 月之前和之后的事件问题时,Claude 会像一个身处 2024 年 4 月的见多识广的人与上述日期的人交谈一样,并在适当的时候告知用户这一点。”
Anthropic 很好地向 Claude 解释了它必须如何回答问题。因此,这套提示词的语言、语气和知识将模仿 2024 年现代人的正常写作方式,而不是像文言文或者戏剧一样掉书袋。
在明确的上下文中构建任务,包括相关的背景信息,有助于模型生成更符合特定用户需求的回应。这种方法避免了泛泛而谈或偏离目标的答案。通过提供丰富的上下文,用户使模型能够更好地理解任务要求,从而产生更好的结果。
例如,用户可以要求模型生成一个恐怖故事,那模型通常就会生成一个很简单的恐怖寓言故事。然而,如果进一步提供恐怖风格的详细特征,则可以显著提高输出质量。那些添加所需写作风格或内容类型示例的人,往往可以细化模型对指令的理解并改进生成的结果。
分解复杂查询
Anthropic 的提示词还揭示了系统地处理复杂任务的重要性,将任务分解成可管理的部分,而不是像用户倾向于在与喜爱的聊天机器人互动时那样一次性解决所有部分。
以下节选自 Anthropic 公开的系统提示词:“遇到数学题、逻辑题或其他需要系统思考的问题时,Claude 会一步步思考后再给出最终答案。如果用户要求完成一个无法在单次回复中完成的长任务,Claude 会建议分步骤完成,并在完成每个部分后征求用户的反馈。”
对于多方面的任务,指示模型逐步解决问题可以产生更集中和准确的回应。这种分段允许根据每个任务阶段的反馈进行改进。
然而,理想的方法是使用多步骤技术,如思维链或思维骨架,引导 LLM 完成一系列相互关联的任务。这种方法通过调节任务之间的思考过程来降低产生幻觉的概率。
笔者在翻译文章的时候,很喜欢使用宝玉(@dotey)老师分享的思维链实践,即将翻译任务拆成三步:直译 - 反思 - 意译,该模式和吴恩达提出的「多智能体」有异曲同工之妙。当前的大语言模型,本就有相当不错的直译能力,如果再让它自己审查一遍直译的结果,随后加入一步意译的过程,便能在三步之内生成一段文采飞扬的译文。这种多轮技术涉及用户与模型进行不同提示词的互动,引导过程朝着令人满意的最终输出。
然而,没有时间或耐心处理多次互动的用户,则可以采取次优方案,提示模型在提供最终答案之前阐明其推理过程。这可以提高输出质量,模型自身的推理输出会影响其最终回应的质量。虽然不如直接让用户指导模型有效,但这种方法作为提高回应质量的折衷方案是很好的。
使用直接和有主旨的语言
Anthropic 的提示词是一个很好的例子,说明在 AI 互动中使用清晰、明确的语言有多重要。
以下节选自 Anthropic 公开的系统提示词:“Claude 会在结束回应时提醒用户:尽管它试图表达准确,但在回答这类问题时可能会产生幻觉。它使用'产生幻觉'这个术语来描述这一点,因为用户会理解这个意思。
Claude 会直接回复所有人的消息,且不会使用诸如 “Certainly!”“Of Course!”“Absolutely!”“Great!”“Sure!” 等不必要的肯定表述或填充性短语。特别地,Claude 无论如何都避免以 “Certainly” 这个词开头进行回复。”
虽然第二点没能完全实行,但道理肯定是对的:使用直接、明确的语言有助于避免误解,确保模型的回应直截了当且有目的性。这种方法消除了 AI 输出中不必要的复杂性或模糊性。这些提示词通过提供明确的指南来解决潜在的模糊性,指导模型如何处理特定情况。指定所需的语气和风格确保回应符合预期的沟通方式。
就像 Stable Diffusion 曾依赖负面提示词来不生成图像中的元素一样,AI LLM 如果被用户告知不要做什么和避免做什么,也可以工作得更好。
通过指示模型保持特定的语气并避免不必要的短语,用户可以增强 AI 回应的清晰度和专业性。这个指令引导模型专注于提供实质性内容,而不使用多余的语言。
如果负面指令阻止模型采取特定的推理路径,它也可以帮助模型更好地推理。
用标签分隔你的指令
在官方展示的系统提示词里,Anthropic 频繁使用了 XML 标签——例如,以 开始,以 结束。这看起来可能感觉很奇怪,难道是程序员在炫技吗?普通人也能用到这个技巧吗?
但其实这真的很有用,它能帮助 AI 模型理解更长的提示词,并使聊天机器人更能理解它正在分析提示词的哪个部分。
XML(可扩展标记语言)标签为内容提供了清晰的层次结构,允许更精确地控制 AI 如何解释和利用提示词的不同部分。Anthropic 使用 XML 标签在提示词中建立不同的“模块”,每个模块在引导 Claude 的行为和回应方面都有特定的目的。
将一些指令包裹在标签内有助于模型分离特定的文本块,并理解它是关于什么的。例如,你可以使用像
热门跟贴