【AI大模型】提示工程:核心原则、思维链CoT、少样本/零样本提示、角色设定
文章目录
提示工程
提示工程(Prompt Engineering)是通过优化输入文本(提示词),引导大语言模型(LLM)精准、高效、符合预期完成任务的技术体系,是实现人机对齐、解决LLM输出偏差、逻辑断层、幻觉风险、任务偏离的核心抓手。其底层逻辑是:LLM的生成本质是基于上下文的Token概率预测,提示工程通过上下文约束,将模型的输出概率分布引导至用户期望的区间。
本文围绕核心原则、角色设定、零样本/少样本提示、思维链CoT四大核心模块,构建全链路、可落地的系统性知识体系。
一、提示工程核心原则
核心原则是所有提示技巧的底层逻辑,贯穿提示词设计的全流程,分为基础通用原则和进阶对齐原则两大维度。
1.1 基础通用原则(所有场景必须遵守)
| 原则 | 核心定义 | 实操标准 | 反面误区 |
|---|---|---|---|
| 指令清晰明确 | 杜绝模糊表述,让模型无歧义理解任务目标 | 必须明确「任务目标、约束条件、输出格式、评价标准」4要素,比如不说“写个文案”,要说“写300字面向宝妈的婴儿辅食机种草文案,突出安全无异味、一键操作2个核心卖点” | 用“好看的”“专业的”“大概”等模糊词汇,无明确标准 |
| 上下文完整充分 | 给足完成任务必须的背景信息,消除信息差 | 任务依赖的背景、原文、数据、规则必须完整放入提示词,避免模型依赖预训练旧知识或编造信息 | 仅说“总结我的报告”,不提供报告原文 |
| 输出格式结构化 | 提前指定输出范式,约束模型的输出结构 | 明确要求markdown、JSON、分点、表格等固定格式,复杂输出需提前定义层级结构 | 不指定格式,任由模型自由输出,导致内容不可复用 |
| 正向指令优先 | 以肯定性表述定义输出要求,规避否定性指令 | 用“用口语化、朋友聊天的语气撰写”替代“不要写得太官方”,LLM对正向描述的权重远高于否定表述 | 大量使用“不要”“禁止”等否定词,反而强化模型对违规内容的记忆 |
| 任务拆解分层 | 复杂任务拆解为可执行的子任务,分步执行 | 把“写一份商业计划书”拆解为市场分析、产品定位、财务规划等多个子任务,逐个引导模型完成 | 单条提示词堆砌多个不相关任务,导致模型处理过载、逻辑混乱 |
1.2 进阶对齐原则(高阶效果与风险管控)
- 人机意图对齐原则:穿透字面需求,锚定用户真实诉求。比如区分用户要的是“方案框架”“可执行步骤”还是“预算明细”,避免答非所问。
- 幻觉抑制原则:通过多维度约束减少虚假输出,包括要求标注信息来源、强制引用原文、设置“信息不足请直接说明,禁止编造”的兜底规则。
- 安全对齐原则:通过提示约束,规避模型生成违规、有害、偏见性内容,确保输出符合法律法规与伦理规范。
- 迭代优化原则:提示工程是闭环过程,需基于模型输出的反馈,针对性调整提示词模块,而非一次性设计。
二、角色设定(Role Prompting):提示工程的基础框架
角色设定是通过给LLM分配明确的身份、人设、能力边界与行为准则,约束模型的输出视角、专业度、语气与逻辑框架的提示技术,核心是激活模型预训练中对应身份的专业语料分布,让输出快速贴合预期。
2.1 角色设定的核心四要素(缺一不可)
- 身份定位:具象化的职业/角色,越细分效果越好。比如“10年经验的阿里巴巴Java高并发架构师”,远优于泛泛的“IT专家”。
- 能力边界:明确角色具备的核心能力,以及禁止触碰的领域。比如“你具备Java内存泄漏排查与优化能力,不涉及前端开发相关内容”。
- 行为准则:定义角色的语气、输出规范、做事原则。比如“必须用零基础小白能听懂的语言讲解,每个知识点配1个生活案例,避免专业术语”。
- 任务目标:与角色强绑定的核心任务,确保身份与需求完全匹配。
2.2 角色设定的分类与实操模板
2.2.1 基础单角色设定(通用场景,90%场景适用)
标准可复用模板:
# 角色设定
你是【XX领域的XX专家/职业】,拥有【X年相关经验】,深耕【XX细分领域】。
# 能力与边界
你擅长:1.XXX 2.XXX 3.XXX
你需要规避:【禁止输出的内容/不具备的能力】
# 行为准则
1. 语气要求:【正式/口语化/严谨/亲切等】
2. 输出规范:【格式要求、内容约束】
3. 核心原则:【比如:所有方案必须可落地、不编造信息】
# 核心任务
请你基于以上设定,完成【具体、清晰的任务描述】
2.2.2 多角色联动设定(复杂多视角任务)
适合产品需求评审、方案可行性分析、多立场辩论等场景,设定多个互补角色,让模型从不同视角输出内容,比如同时设定产品经理、开发工程师、测试工程师、用户代表4个角色,完成需求评审。
2.2.3 动态角色设定(多轮对话场景)
适合长期多轮对话,设定角色可根据对话深度动态调整,比如“随着对话深入,你可根据我的需求,从Java入门讲师切换为进阶架构师角色”。
2.3 进阶技巧与常见误区
- 进阶技巧:人设具象化,给角色增加真实背景(如“主导过双11核心系统高并发改造”),比空泛的专家设定效果提升显著;角色权限约束,明确“只有建议权,无决策权”,避免模型越权输出。
- 常见误区:角色设定空泛、与任务脱节、堆砌过多无关角色导致信息过载,模型抓不住核心约束。
三、零样本/少样本提示:基于上下文学习的核心技术
零样本/少样本提示是LLM上下文学习(In-Context Learning, ICL)能力的核心应用,通过给模型提供示例(或仅靠指令),让模型快速学习任务的模式与规则,无需微调即可适配自定义任务。
3.1 零样本提示(Zero-Shot Prompting)
核心定义
不提供任何任务相关示例,仅通过清晰指令让模型直接完成任务,是最基础、使用成本最低的提示方式。
适用场景
模型预训练中已充分学习的通用简单任务:文本翻译、摘要、通用文案撰写、常识问答、简单分类。
标准模板与示例
模板:【清晰任务指令】+【约束条件】+【输出格式】
示例:“请把下面的中文句子翻译成西班牙语,要求口语化,适合日常旅行场景:我想去附近的地铁站,请问怎么走?”
优劣势与误区
- 优势:使用成本低,无需准备示例,适合快速完成简单任务;
- 劣势:复杂任务、小众自定义规则任务、严格格式要求任务效果差,易偏离预期;
- 核心误区:指令模糊,无明确约束,指望模型自行猜测需求。
3.2 单样本提示(One-Shot Prompting)
核心定义
给模型提供1个完整的输入输出示例,再引导模型完成任务,介于零样本与少样本之间,平衡效果与成本。
适用场景
任务有明确格式/规则,但示例准备成本高,或1个示例即可覆盖核心规则的场景:特定格式文案生成、简单标签分类、固定格式数据提取。
标准示例
示例:
输入:这款手机续航很强,拍照清晰,就是机身偏重。
输出:{"好评点": ["续航强", "拍照清晰"], "差评点": ["机身偏重"]}
---
请你严格按照上面的示例,处理下面的文本:
输入:这家酒店位置很好,出门就是地铁,房间干净,但是早餐种类太少。
输出:
3.3 少样本提示(Few-Shot Prompting)
核心定义
给模型提供2-10个(通常3-5个效果最佳)完整的输入输出示例,让模型学习任务的规则、格式、风格与判断标准,是上下文学习的核心形态。
适用场景
- 有严格格式要求的任务(JSON输出、固定模板、结构化数据提取);
- 小众自定义规则、模型预训练未覆盖的任务;
- 复杂分类、推理、需要统一风格的内容生成任务。
核心设计原则
- 一致性:所有示例的输入输出格式、规则、风格完全统一,无矛盾;
- 代表性:示例覆盖任务的常见场景、边界情况、易混淆案例;
- 简洁性:示例精准聚焦核心规则,无冗余信息干扰模型学习。
标准模板
【任务总指令】:请你严格按照下面的示例,完成【具体任务描述】,遵循【XX约束规则】
---
示例1:
输入:XXX
输出:XXX
---
示例2:
输入:XXX
输出:XXX
---
示例3:
输入:XXX
输出:XXX
---
【目标任务】
输入:【用户的目标输入】
输出:
进阶技巧与常见误区
- 进阶技巧:结合RAG实现动态少样本,根据用户输入召回最相关的示例,而非固定示例,效果提升显著;加入正反对比示例,明确告知模型“什么是对的,什么是错的”,提升准确率。
- 常见误区:示例规则矛盾、无代表性、冗余信息过多、与目标任务脱节,示例宁少勿滥,质量优先。
四、思维链提示(Chain-of-Thought, CoT):复杂逻辑任务的核心解决方案
思维链提示是让LLM模拟人类思考过程,将复杂推理任务拆解为多个连续、可解释的中间推理步骤,最终得到答案的提示技术,核心是“让模型把思考过程说出来”,彻底解决LLM在复杂逻辑、数学计算、多步推理任务中的表现短板。
4.1 底层逻辑
LLM单步直接输出时,对复杂任务的Token概率预测极易出错;而思维链将复杂任务拆解为多个模型可轻松处理的简单子步骤,同时中间推理过程为模型提供了更多上下文引导,大幅提升推理准确率,同时实现输出的可解释、可校验。
4.2 核心分类与实操方法
4.2.1 零样本思维链(Zero-Shot CoT)
- 核心定义:无需提供推理示例,仅通过一句触发语引导模型输出完整推理过程,再生成答案。
- 经典触发语:“让我们一步步来思考(Let’s think step by step)”,进阶变种:“请你先一步步分析推理过程,说明每一步的依据,不跳步,再给出最终答案”。
- 标准模板:
【任务指令】+【思维链触发语】+【输出格式要求】 - 适用场景:通用逻辑推理、数学计算、常识判断、简单问题分析,零成本提升模型逻辑能力。
4.2.2 少样本思维链(Few-Shot CoT)
- 核心定义:给模型提供多个包含「输入、完整推理过程、最终答案」的示例,让模型学习推理的逻辑与步骤,是CoT效果最优的核心形态。
- 核心要求:示例中的推理过程必须逻辑连贯、步骤完整、无跳步,完全贴合人类的思考路径。
- 标准模板:
【任务总指令】:请你严格按照下面的示例,先一步步推理分析,再给出最终答案,推理过程要完整清晰,不能跳步。
---
示例1:
问题:XXX
思考过程:
步骤1:明确问题核心是XXX,已知条件为XXX,需求解的目标是XXX。
步骤2:根据已知条件,先计算XXX,得到结果XXX。
步骤3:基于步骤2的结果,分析XXX,得出XXX结论。
步骤4:综合以上推理,最终答案是XXX。
最终答案:XXX
---
示例2:【同结构完整推理示例】
---
【目标问题】:XXX
思考过程:
最终答案:
- 适用场景:复杂数学计算、多步逻辑推理、代码调试、法律案例分析、医疗诊断、商业决策等需要严谨推理的任务。
4.3 进阶变种与高阶技巧
- 自洽性思维链(Self-Consistency CoT):让模型生成多条不同的推理路径,投票选择出现次数最多的最终答案,解决单条思维链易出错的问题,复杂推理任务准确率可提升20%以上。
- 思维树(Tree-of-Thought, ToT):将线性思维链升级为树状结构,让模型先生成多个思考分支,评估后剪枝错误分支,保留正确分支继续深入推理,适合多解规划类任务(编程、方案设计、复杂策略制定)。
- 反思式思维链(Reflexion CoT):让先生成初步推理与答案,再自行对结果进行反思、校验、纠错,迭代优化后输出最终答案,适合复杂写作、代码开发、方案设计类任务。
- 分治思维链(Divide-and-Conquer CoT):将复杂大问题拆解为多个独立子问题,逐个解决后综合结果得到最终答案,适合超复杂系统工程任务(商业计划书、大型系统架构设计)。
4.4 能力边界与常见误区
- 能力边界:CoT只能优化模型已有能力的表现,无法让模型获得预训练中没有的知识,未知专业知识需结合RAG技术补充。
- 不适用场景:简单常识问答、翻译、摘要等无需推理的任务,使用CoT反而增加冗余、降低效率。
- 常见误区:推理过程跳步、冗余信息过多、所有任务强行使用CoT、示例推理逻辑错误、只给推理过程无明确最终答案。
五、四大模块的组合应用全链路框架
实际落地中,四大模块并非孤立使用,需根据任务复杂度组合适配,以下是通用可复用的全链路提示词框架,覆盖99%的业务场景:
# 一、角色设定层(激活专业语境,约束输出边界)
你是【具体职业/身份】,拥有【X年相关经验】,深耕【XX细分领域】,具备【XX核心能力】。
## 行为准则
1. 语气要求:【XXX】
2. 输出规范:【XXX】
3. 核心原则:【XXX】
4. 能力边界:【XXX】
# 二、任务与规则层(锚定核心目标,明确约束条件)
## 核心任务
请你基于以上设定,完成【清晰、无歧义的任务描述】
## 约束条件
1. 内容约束:【字数、核心要点、禁止内容等】
2. 格式约束:【markdown/JSON/表格/分点等】
3. 其他要求:【XXX】
# 三、示例与模式层(零样本删除此模块,少样本补充)
---
示例1:
输入:XXX
输出:XXX
---
示例2:
输入:XXX
输出:XXX
---
# 四、推理与逻辑层(简单任务删除此模块,逻辑任务补充)
请你先一步步拆解问题,详细说明思考过程与推理依据,不跳步,再给出最终结果。
# 五、校验与兜底层(全场景通用,风险管控)
1. 若信息不足,请直接说明,禁止编造虚假信息。
2. 所有输出严格遵循国家法律法规与伦理规范,不生成违规内容。
3. 若对任务有疑问,请先向我确认,不自行猜测需求。
不同场景的组合策略
| 任务场景 | 最优组合方案 |
|---|---|
| 通用简单场景(翻译、摘要、普通文案) | 角色设定 + 零样本提示 + 核心原则 |
| 格式严格场景(数据提取、JSON输出、固定模板) | 角色设定 + 少样本提示 + 核心原则 |
| 逻辑推理场景(数学、代码、专业分析) | 角色设定 + 少样本CoT + 核心原则 |
| 复杂系统任务(方案设计、商业计划、架构设计) | 角色设定 + 分治CoT + 少样本示例 + 反思式CoT + 核心原则 |
六、落地最佳实践与避坑指南
6.1 落地最佳实践
- 迭代优化闭环:先写基础提示词跑通测试,根据输出问题针对性优化(格式不对补示例、逻辑不对加CoT、专业度不够优化角色),形成闭环。
- 模块化设计:将提示词拆分为角色、任务、示例、推理、兜底5个独立模块,方便修改与复用。
- 上下文权重管理:核心指令放在提示词的最开头和最结尾(LLM对首尾信息权重最高),控制提示词长度,避免占用过多上下文窗口。
- 幻觉抑制组合拳:角色设定专业边界 + 少样本示例 + 要求标注来源 + 兜底规则,多维度降低幻觉风险。
- 模型适配:闭源大模型(GPT-4、Claude)对复杂提示词支持更好,开源小模型更适合简洁指令+少样本的组合。
6.2 高频避坑红线
- 提示词冗余:堆砌无关信息,导致模型抓不住核心指令,提示词核心是精准,而非越长越好。
- 否定指令过载:大量使用否定词,反而强化模型对违规内容的记忆,优先用正向指令替代。
- 任务过载:单条提示词堆砌多个不相关任务,导致模型输出混乱,坚持“一个提示词对应一个核心任务”。
- 忽略模型边界:指望提示词让模型获得预训练中没有的知识,提示词只能优化能力表现,无法新增知识,需结合RAG补充外部信息。
- 示例质量失控:示例规则矛盾、逻辑错误,导致模型学习到错误模式,示例宁少勿滥,质量优先。
七、能力边界与补充说明
- 核心边界:提示工程的本质是“引导”,而非“改造”,只能优化LLM已有能力的表现,无法突破模型本身的知识与能力上限。
- 技术协同:提示工程需与其他技术组合才能发挥最大价值,包括RAG(检索增强生成,解决知识更新与幻觉问题)、Agent(智能体,解决复杂多步任务执行问题)、模型微调(解决垂直领域深度适配问题)。
- 发展趋势:提示工程正从人工撰写向自动提示工程(Auto Prompt Engineering)发展,同时随着模型基础能力的提升,基础提示门槛持续降低,但高阶结构化提示技术,依然是挖掘LLM最大价值的核心抓手。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)