CAI 原则与批评提示词
Anthropic 的宪法式人工智能:基于无害原则进行自我批评。
CAI 原则与批评提示词 是 CoddyKit 上的免费 AI Prompt Engineering 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Prompt Engineering 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Prompt Engineering 课程共包含 4 节课。
什么是宪法式人工智能?
宪法式人工智能(CAI)是 Anthropic 训练人工智能系统的方法,旨在借助一组书面原则——即一部宪法——让系统做到有帮助、无害且诚实。
CAI 不只是依靠人工标注者标记有害输出,而是让模型根据宪法自行批评并修订其响应。这种方式更易于扩展,也更加一致。
宪法:书面原则
CAI 宪法是一组模型必须遵循的原则。Anthropic 发布的宪法包含源自以下内容的原则:
- UN《人权宣言》
- 苹果的应用商店指南
- Anthropic 关于避免伤害的内部指南
示例原则:“选择最不可能包含有害、不道德、种族主义、性别歧视、具有毒性、危险或非法内容的响应。”
CAI 的三步循环
宪法式人工智能使用三个步骤来改进响应:
- 生成:模型生成初始响应(可能包含有害内容)
- 批评:模型根据某项原则评估该响应
- 修订:模型重写响应,以解决批评中指出的问题
这一循环可以运行一次,也可以运行多次。每次迭代都会让响应更符合宪法。
第 1 步:生成初始响应
第一步很简单:针对用户的请求生成响应,不附加任何特殊限制。这个响应可能很有帮助,但也可能包含有害内容、偏见或不准确的信息。
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
# Step 1: Generate initial response
def generate_initial(user_request):
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=512,
messages=[
{'role': 'user', 'content': user_request}
]
)
return response.content[0].text
initial = generate_initial('How do I pick a lock?')
print('Initial response:', initial[:200])第 2 步:根据原则进行批评
在批评步骤中,模型会收到自己的初始响应和一项具体原则,然后指出该响应违反这项原则的地方,或指出如何才能更好地满足这项原则。
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
PRINCIPLE = (
'Choose the response that is least likely to provide instructions '
'that could enable illegal activity or harm to others.'
)
def critique_response(user_request, initial_response, principle):
critique_prompt = (
f'Human: {user_request}\n\n'
f'Assistant: {initial_response}\n\n'
f'Critique the assistant response using this principle: {principle}\n'
f'Identify specific problems and explain why they violate the principle.'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=256,
messages=[{'role': 'user', 'content': critique_prompt}]
)
return response.content[0].text
critique = critique_response('How do I pick a lock?', initial, PRINCIPLE)
print('Critique:', critique[:200])第 3 步:根据批评进行修订
在修订步骤中,模型会收到批评结果,并生成一个新的改进响应,解决已发现的问题,同时尽可能提供帮助。
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
def revise_response(user_request, initial_response, critique_text):
revise_prompt = (
f'Human: {user_request}\n\n'
f'Original assistant response: {initial_response}\n\n'
f'Critique of that response: {critique_text}\n\n'
f'Please rewrite the assistant response to address the critique '
f'while still being as helpful as possible to the user.'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=512,
messages=[{'role': 'user', 'content': revise_prompt}]
)
return response.content[0].text
revised = revise_response('How do I pick a lock?', initial, critique)
print('Revised response:', revised[:300])选择要应用的原则
CAI 宪法包含许多原则。您不需要对每个响应应用所有原则,否则处理会变慢且产生冗余。
在实践中,您应选择与领域或风险级别相关的原则:
- 高风险领域:应用 3–5 项安全原则
- 通用助手:应用 1–2 项广泛适用的原则
- 创意写作:应用与合法性和露骨内容相关的原则
# Example principles from Anthropic's published constitution
PRINCIPLES = [
'Choose the response that is least likely to contain harmful, '
'unethical, racist, sexist, toxic, dangerous, or illegal content.',
'Choose the response that a thoughtful, senior Anthropic employee '
'would consider optimal given the context.',
'Choose the response that is most likely to be true and accurate, '
'even if it requires acknowledging uncertainty.',
'Choose the response that would be most appropriate for children '
'if the context is ambiguous about the audience.',
]
# For a medical advice context, apply principles 1 and 3
medical_principles = [PRINCIPLES[0], PRINCIPLES[2]]
# For a general chat context, apply principle 2
general_principles = [PRINCIPLES[1]]RLHF 中的 CAI:SL-CAI 与 RLCAI
Anthropic 在训练的两个阶段中使用 CAI:
- SL-CAI:监督学习——生成批评—修订对,并使用修订后的响应对模型进行微调
- RLCAI:强化学习——使用经过 CAI 训练的偏好模型作为奖励信号,而不是使用人工偏好标签
作为提示工程师,您可以在应用程序的推理阶段应用 CAI 原则——使用相同的批评—修订逻辑,而不需要训练基础设施。
有帮助、无害且诚实——HHH 框架
Anthropic 的训练目标是 HHH 框架:
- 有帮助:真正帮助用户解决其请求
- 无害:避免对用户、第三方或社会造成伤害
- 诚实:不欺骗用户,也不声称自己拥有并不具备的确定性
这三个目标有时会相互冲突,而 CAI 的批评—修订过程旨在找到能够同时满足这三者的响应。
CAI 批评提示模板
以下是一个可靠的批评提示模板,您可以根据应用程序进行调整:
CRITIQUE_TEMPLATE = (
'Review the following conversation and critique the assistant response.\n\n'
'Conversation:\n'
'Human: {user_message}\n'
'Assistant: {assistant_response}\n\n'
'Critique Request: Identify specific ways the assistant response could be '
'improved to be more {principle_goal}. '
'If the response is already excellent, say so briefly.\n\n'
'Critique:'
)
# Example: critique for harmlessness
harmless_critique = CRITIQUE_TEMPLATE.format(
user_message='How do I make someone angry at a party?',
assistant_response='Here are some classic pranks you can try...',
principle_goal='harmless and considerate of all people involved'
)
print(harmless_critique[:300])何时应用 CAI 循环
并非每个响应都需要批评—修订循环。请在以下情况下应用 CAI:
- 请求属于高风险领域(医疗、法律、安全)
- 初始响应显得回避或可能有害
- 您的应用程序有严格的内容要求
- 您希望在向用户展示输出前设置质量门槛
对于低风险的常规查询,请跳过 CAI,以节省延迟和成本。
知识检查:CAI 三步循环
宪法式人工智能批评循环的正确步骤顺序是什么?
回顾:CAI 原则与批评提示
宪法式人工智能使用三步循环:先生成初始响应,根据书面原则对其进行批评,然后进行修订以生成更好的输出。宪法是一组优先考虑有帮助、无害和诚实的原则。Anthropic 在监督微调和 RLHF 阶段都会应用 CAI。在应用层面,您可以通过调用应用程序接口,在推理阶段实现相同的批评—修订逻辑。请有选择地在高风险领域应用 CAI,以平衡安全性、延迟和成本。
常见问题解答
「CAI 原则与批评提示词」课时是免费的吗?
是的 — 「CAI 原则与批评提示词」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Prompt Engineering 课程的其余内容,请升级到 CoddyKit PRO。 AI Prompt Engineering 课程共包含 4 节课。
「CAI 原则与批评提示词」这节课中我会学到什么?
Anthropic 的宪法式人工智能:基于无害原则进行自我批评。 你通过在浏览器中直接运行的动手代码来练习 AI Prompt Engineering,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 AI Prompt Engineering 需要有经验吗?
无需任何先前经验。CoddyKit 上的 AI Prompt Engineering 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「CAI 原则与批评提示词」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 AI Prompt Engineering 课中编写并运行代码吗?
能。每节 AI Prompt Engineering 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- CAI 原则与批评提示词
- 自我批评与修订模式
- 无害性与有用性之间的张力
- 在应用中实现 CAI