大模型合规
合规是一个繁琐的过程,很多手续和流程。对工程来说,就是要通过规定的“考试”,对于文生文,文生图,图生文,文生视频,文上音频,文生万物都有一套题目等着被回答,通过回答这些问题来达到既定的法律要求,成为一个遵纪守法的“社会公民”。
合规是一个门槛,也是一个检验。在我看来,大模型确实要经过合规的考研,毕竟一个生成万物的AI,如果不经过考研,万一被错误的使用,那带来的可不仅仅是价值,也有可能是灾祸。
我想到了grok理念。grok里有个很猛的用法,就是可以生成黄色小说,据说已经有人开始用它来做生意了。grok认为大模型是一个知识仓库,它本身没有善恶,人们也无法定义它的善恶。
这个问题很有意思。大模型的善恶有谁来定义?这个问题的根本在于人类如何定义大模型。在漫长的人类发展过程中,人类定义了自己对自然的看法:工具,火,水,动物,植物,大海,天空,星星,月亮等等。人类的认识是一个漫长的过程,比如星星,不同的民族,不同的时间,人类对星星的看法和理解是不同的,远古时期人类认为星星是神明,现在人类开始科学的观察星星,甚至可以近距离观察火星和彗星。那么对于大模型性,人类该怎么认识它呢?
这个问题本身就是充满争议的,但是让大模型的输出遵守最基本的公秩良序和法律是底线,人类要保证的是大模型不能直接伤害到大部分人类。
关于大模型的脾气
这几天都在思考这个问题,大模型的脾气是怎么回事?这个话题是公司内部的一次分享上有所考虑。当时几天我正在研究agent的prompt的调优,大模型脾气的这个问题内核直接击中我要解决的问题内核之一。在我看来大模型提示词调优非常难以掌握,在固定指标下,认知框架、提示词框架、记忆、历史对话、LLM对结果的产生都有极大地影响。
当我分析很多agent的系统提示词时,它们都不相同,比如cline,cursor,claude,它们都是ai coding工具,为什么系统提示词不同呢?其设计人员依据什么来设计这些提示词的呢?提示词设计的通用哲学是什么?提示词设计的使用技巧有哪些?这些都是我想的而得不到的东西,大模型的脾气的这个说法给我一些指引,agent具有不同的个性,但是agent的个性如何和大模型的脾气搭配呢?好比一家公司的的董事长是大模型,CEO是Harness,他们之间的需要什么样的协作才能发挥最大的价值呢?这些都是现在的为思而不得的问题!
大模型的“脾气”并非玄学,而是一套可被理解、工程化的系统特性。让我们来看几个问题:
解码“脾气”:大模型的“性格”从何而来?
大模型的“脾气”,是其在预训练阶段通过海量数据学习到的统计规律、知识模式和潜在价值取向的综合体现。它不是有意识的情绪,而是一种可预测的行为倾向。这种“脾气”主要受三个层面影响:
“出厂设置” (预训练与微调):模型的底层能力与“人格底色”在此时奠定。例如,Anthropic为Claude植入“欧陆哲学(Continental Philosophy)”,让它更关注语境和意义,避免成为只讲逻辑的“杠精”。这个过程靠的是一份被称为“灵魂文档(Soul Doc)”的、长达14,000个token的指令集。
“行为准则” (系统提示词):这是我们在应用层直接塑造模型“脾气”的主要工具。通过系统提示词,我们可以为模型设定角色、价值观和行为边界。比如,研究显示,较低的“护栏”(guardrail)设置会使模型更容易被提示词的语气影响。
**“即时状态” (对话历史与上下文):在单次对话中,模型会根据之前的交流内容调整输出。用户的语气会显著影响模型的表现。甚至有研究发现,在某些模型上,使用“粗鲁”或“命令式”的提示词,准确率能提升约4%**。
提示词设计的通用哲学:从“指令”到“协作”
理解了“脾气”,设计提示词就有了方向。其通用哲学不再是简单的命令,而是引导与协作。核心是将大模型视为一个 “才华横溢但有些健忘的新员工” 。基于此,有几个核心原则:
- 清晰是首要美德:哲学训练的核心是清晰、准确地表达思想。同样,提示词也需要做到语义明确,避免歧义。
- 上下文是灵魂:模型缺乏你的背景知识,必须提供详尽的场景、角色和风格要求。
- 实验是必经之路:好的提示词是“试”出来的。通过不断与模型对话、观察输出并迭代,才能打磨出最佳方案。
- 哲学思维是罗盘:提示词的本质是人类意图与机器输出之间的“中介” 。思考“如何传递意义”这一哲学问题,能帮你设计出更精妙的提示词。
提示词设计的实用工具箱
在哲学指导下,可以运用以下技巧:
- **角色先行 (Role Prompting)**:明确告诉模型“你是一位资深Python工程师”。
- **示例驱动 (Few-shot Prompting)**:给出2-3个输入输出的例子,让模型“照猫画虎”。
- **任务分解 (Chain-of-Thought)**:让模型“一步步思考”来解决复杂问题。
- 结构化输出:要求模型按JSON或Markdown格式输出。
- 明确评价标准:在提示词中写明什么是“好”的回答。
- 参数调节:调整温度(Temperature) 控制创造性,或调整Top-p控制多样性。
大模型与Agent的“协作”之道
“董事长与CEO”的比喻非常贴切,大模型是“董事长”,提供核心智能;Agent是“CEO”,负责具体执行。两者高效协作的关键在于“因材施教”,即根据“董事长”的“脾气”来为“CEO”制定策略。不同的AI编程工具,其系统提示词设计差异正源于此:
| 工具 | 系统提示词机制 | 特点 |
|---|---|---|
| Claude Code | CLAUDE.md文件 |
支持层级、引用,约200行,灵活性高 |
| Cursor | .cursorrules文件 |
约500行,纯Markdown,无层级 |
| Cline | 扩展设置中的System Prompt | 约4000字符,纯文本 |
| GitHub Copilot | settings.json中的工作区指令 |
每条仅256字符,能力非常有限 |
这些差异源于它们对“大模型脾气”的考量:
- Claude 被设计为善于理解和遵循复杂指令,所以Claude Code可采用更复杂的
CLAUDE.md。 - Cursor 追求简洁通用,因此采用简单的
.cursorrules。 - Cline 作为VS Code插件,受限于界面,系统提示词长度被限制在4000字符左右。
- GitHub Copilot 定位是轻量级代码补全,因此指令能力非常有限。
因此,在设计Agent时,开发者需要深刻理解底层大模型的特性,为其“量身定制”一套行为准则,让“CEO”的决策能充分发挥“董事长”的潜力。大模型的“脾气”是其内在特性的外在表现。优秀的提示词工程,就是建立在对这种“脾气”深刻理解之上的、一门融合了哲学思辨与工程实践的技艺。它要求我们将模型视为一个需要引导的合作伙伴,通过清晰、结构化的沟通,激发其最大的潜能。Agent Prompt调优,正是在探索这门技艺的核心。这个过程本身就是一场与AI的深度对话,每一次尝试都会让你对它的“脾气”有更深的理解。