Skip to content

第二份“复杂对话提示/身份设定”

1. 什么是零样本提示(Zero-shot Prompting)、少样本提示(Few-shot Prompting)和链式思考提示(Chain-of-Thought Prompting)?

一、零样本提示(Zero-shot Prompting)

  • 定义:不提供任何示例,直接给出任务指令,模型仅凭预训练知识完成任务。

  • 格式

    问题/指令:请将这句话翻译成汉语:
    "Explorers, pioneers, not caretakers."
  • 优点

    • 操作最简单,不需要示例。

    • 适合熟悉或标准化任务(如翻译、摘要等)。

  • 局限

    • 模型可能误解任务意图,尤其在复杂任务中。

    • 输出格式不一定符合预期。

  • 💡 记忆类比
    就像你让一个人“立刻完成任务”**,但没告诉他任何参考资料——只能靠他之前的经验来判断怎么做。


二、少样本提示(Few-shot Prompting)

  • 定义:在问题前提供1-3个示例,引导模型学会任务模式。

  • 格式

    输入: 我感到非常高兴。
    情感: 积极
    
    输入: 今天真是糟糕的一天。
    情感: 消极
    
    输入: 这部电影太无聊了。
    情感:
  • 优点

    • 帮助模型理解任务语境和输出格式。

    • 显著提升非标准任务的表现。

  • 局限

    • 需要高质量示例。

    • 上下文窗口限制,示例数量不能太多。

  • 💡 记忆类比
    就像给模型做“几道样题后再考正题”,让它先“学着做”。


三、链式思考提示(Chain-of-Thought Prompting,CoT)

  • 定义:引导模型生成推理步骤,模拟思考过程。

  • 示例(少样本CoT)

    问题: 小明有5个苹果,他给了小红2个,又从小华那里得到3个。小明现在有多少个苹果?
    思考: 5-2=3,再加上3,结果是6个苹果。
    答案: 6个苹果
  • 优点

    • 在数学/逻辑类任务中表现显著更好。

    • 输出过程透明,便于查错。

  • 局限

    • 消耗更多Token。

    • 推理链中若有错,最终答案也错。

  • 💡 记忆类比
    就像你在解数学题时“写过程”,而不是直接写答案。


四、三种提示方式对比表:

对比维度零样本提示少样本提示链式思考提示
示例数量少量(1-3个)通常含思考步骤的示例
难度适配简单任务结构化任务多步骤、复杂任务
Token消耗最少适中最多
优势快速、便捷引导明确推理清晰

2. 在提示工程中,如何有效地控制大模型输出的格式?

1. 明确的格式指令

  • 详细说明:在提示中明确指定所需的输出格式。

  • 示例:

请以JSON格式回答以下问题,包含字段"name"、"age"和"occupation": 谁是阿尔伯特·爱因斯坦?
  • 效果:模型更可能生成符合要求的JSON格式响应。

2. 示例驱动(Few-shot)方法

  • 提供示例:在提示中包含一个或多个输入-输出示例,展示期望的格式。

  • 示例:

问题: 巴黎是哪个国家的首都?
答案: {
  "country": "法国",
  "capital": "巴黎",
  "continent": "欧洲"
}

问题: 东京是哪个国家的首都?
答案:
  • 效果:模型会模仿示例的格式,应用到新问题上。

3. 分步指导

  • 逐步引导:将复杂的格式要求分解为清晰的步骤。

  • 示例:

请按照以下步骤回答问题"什么是光合作用":
首先给出一句简短的定义
然后列出3个关键组成部分,每个使用一个项目符号
最后总结其重要性,不超过2句话
  • 效果:通过明确的步骤指导,提高格式遵循的一致性。

4. 模板填充

  • 提供模板:给出一个包含占位符的完整输出模板,要求模型填充。

  • 示例:

请填充以下模板来描述太阳系中的行星:

行星名称: [NAME]
直径: [DIAMETER] 千米
距离太阳: [DISTANCE] 天文单位
一年的长度: [YEAR_LENGTH] 地球日
简短描述:
[DESCRIPTION]

请为木星填写此模板。
  • 效果:提供明确的结构,减少模型偏离格式的可能性。

5. 输出解析器与函数调用

  • 使用API功能:利用OpenAI等提供的函数调用(Function Calling)功能。

  • 示例:

{
  "name": "get_person_info",
  "description": "获取关于一个人的基本信息",
  "parameters": {
    "type": "object",
    "properties": {
      "name": {"type": "string", "description": "人名"},
      "birth_year": {"type": "integer", "description": "出生年份"},
      "achievements": {"type": "array", "items": {"type": "string"}, "description": "主要成就列表"}
    },
    "required": ["name", "birth_year"]
  }
}
  • 效果:模型会直接生成符合指定JSON Schema的结构化输出。

6. 角色扮演

  • 设定角色:让模型扮演特定角色,该角色习惯于使用特定格式。

  • 示例:

你是一位数据科学家,习惯用Markdown表格呈现数据分析结果。请分析以下数据并以Markdown表格格式展示结果。
  • 效果:通过角色设定间接引导格式。

7. 格式标记与分隔符

  • 使用标记:使用明显的标记或分隔符来划分不同部分。

  • 示例:

请分析以下产品评论的情感,使用以下格式:
评论: <评论文本>
情感: <积极/消极/中性>
置信度: <高/中/低>
理由: <简短解释>
  • 效果:清晰的标记有助于模型理解和维持结构。

8. 反例说明

  • 展示错误示例:除了正确格式,还可以展示不希望看到的格式。

  • 示例:

请提供三种治疗失眠的方法。使用编号列表(1, 2, 3),每种方法一段简短描述。
不要使用项目符号,不要包含介绍或结论段落。
  • 效果:明确指出不需要的元素,减少格式偏差。

9. 输出长度控制

  • 明确限制:指定字数、句子数或段落数的限制。

  • 示例:

请用不超过100字概括第二次世界大战的主要原因。
  • 效果:帮助控制输出的简洁性和焦点。

10. 迭代优化

  • 测试与调整:根据模型的实际输出,不断调整提示。

  • 过程:如果模型输出不符合预期格式,分析原因并修改提示,可能需要多次迭代。

  • 效果:通过实验找到最有效的格式控制方法。


最佳实践

  • 组合使用多种方法,如同时使用明确指令、示例和模板。

  • 对于复杂格式,考虑使用专门的输出解析器或后处理步骤。

  • 记住模型有时会“创造性地解释”指令,需要准备处理意外输出的策略。

  • 对于关键应用,实施输出验证机制,确保格式符合要求。


举例类比记忆(像填写表单)

控制输出格式就像让人填写表单——如果你提供了清晰的表格模板、字段说明和示例,填写的人(模型)更容易遵守要求。


易错提醒

  • 只给格式要求却不提供示例,模型可能仍然偏离。

  • 指令过长或嵌套复杂,容易导致格式错乱。

  • 忽略后处理(如正则验证或解析器检查)可能导致错误输出未被发现。


可能的延伸面试提问角度

  1. Few-shot 提示与模板填充在格式控制上有什么区别?

  2. 如何通过函数调用(Function Calling)机制提升输出一致性?

  3. 对于开放式生成任务(如写文章),如何在不限制创意的情况下控制输出结构?


应答建议

  • 如果问机制 → 强调“明确格式 + 示例演示 + 模板约束”三层控制逻辑。

  • 如果问技术实现 → 举例说明函数调用、JSON Schema、正则解析等实现方式。

  • 如果问应用场景 → 结合企业对话机器人、API自动化、数据结构化输出等落地案例。

3. 如何评估和优化提示的效果?有哪些常用的评估指标?

评估和优化提示效果是提示工程中的关键环节,它涉及系统性地测试、衡量和改进提示,以获得最佳的模型输出。


一、评估提示效果的方法

1. 人工评估

  • 专家评审:由领域专家或提示工程师对输出质量进行主观评价。

  • 用户测试:收集真实用户对模型输出的反馈与满意度。

  • A/B 测试:在实际应用中比较不同提示版本的表现。

2. 自动评估

  • 基于参考的评估:将模型输出与预定义的“黄金标准”答案比较。

  • 基于模型的评估:使用另一个大型语言模型评估输出质量。

  • 基于规则的评估:检查输出是否符合特定规则或格式要求。

3. 混合方法

  • 结合自动指标与人工判断。

  • 使用自动评估进行初筛,再由人工进行精细评估。


二、常用评估指标

1. 任务完成度指标

  • 准确率 (Accuracy):模型正确完成任务的比例。

  • 精确率 (Precision)召回率 (Recall):特别适用于信息提取类任务。

  • F1 分数:精确率与召回率的调和平均值。

  • 完成率:模型成功生成符合要求输出的比例。

2. 内容质量指标

  • 相关性 (Relevance):输出与用户查询的相关程度。

  • 连贯性 (Coherence):输出逻辑流畅度与内部一致性。

  • 信息量 (Informativeness):输出包含的有用信息量。

  • 创造性 (Creativity):适用于创意性任务,如内容生成。

3. 特定任务指标

  • BLEU / ROUGE / METEOR:评估文本生成任务,如翻译、摘要。

  • 幻觉率 (Hallucination Rate):生成虚假或不准确信息的频率。

  • 有害内容率:生成不当、有害内容的比例。

  • 代码执行成功率:生成代码能否正确运行。

4. 效率指标

  • Token 使用量:完成任务所需输入与输出 token 数量。

  • 延迟 (Latency):从发送提示到接收完整响应的时间。

  • 成本 (Cost):按 token 计费的 API 调用成本。

5. 用户体验指标

  • 用户满意度:用户对输出质量的主观评价。

  • 交互次数:用户为获得满意结果所需的交互次数。

  • 任务完成时间:用户完成任务的总耗时。


三、优化提示的策略

1. 迭代改进

  • 基线建立:创建初始提示并评估表现。

  • 针对性修改:根据评估结果改进提示。

  • 再评估与循环优化:重复测试与调整,直至达到目标性能。

2. 提示结构优化

  • 指令明确化:使任务要求更清晰。

  • 示例增强:添加或改进 few-shot 示例。

  • 角色定义:通过设定模型身份引导风格。

  • 格式调整:优化提示结构与可读性。

3. 系统性实验

  • 控制变量法:每次仅改变一个提示元素。

  • 提示模板化:建立标准模板便于批量测试。

  • 参数扫描:调整温度 (temperature)、top_p 等参数。

4. 高级优化技术

  • 提示蒸馏 (Prompt Distillation):用复杂提示生成简化版本。

  • 自动提示优化 (Automatic Prompt Optimization):利用遗传算法或强化学习自动搜索最优提示。

  • 提示集成 (Prompt Ensembling):组合多个提示优势以提升鲁棒性。

5. 特定问题优化

  • 减少幻觉:添加事实核查或“不确定请标注”指令。

  • 提高一致性:增加结构化约束。

  • 控制输出长度:通过字数或详细程度限制明确要求。


四、实际优化案例

原始提示:

总结这篇文章:[文章内容]

问题识别:
输出摘要过于笼统,缺乏重点。

结构化改进:

请为以下学术文章创建一个简洁摘要,包含主要研究问题、方法、结果和结论,不超过 150 字:
[文章内容]

角色定义强化:

你是一位经验丰富的学术编辑,擅长提炼复杂研究的核心内容。请为以下学术文章创建一个简洁摘要,包含主要研究问题、方法、结果和结论,不超过 150 字,并保持学术严谨性:
[文章内容]

评估与再优化:
根据输出质量与用户反馈进一步调整。


五、举例类比记忆(像实验调参)

提示优化过程就像机器学习模型调参
你不断试不同的超参数(提示结构、语气、上下文),用指标衡量性能(准确率、相关性),最终找到最佳组合。


六、易错提醒

  • 忽略 定量与定性评估结合,只凭感觉判断提示优劣。

  • 混淆「人工评估」与「自动指标」,未说明适用场景。

  • 没有展示提示优化的迭代过程,回答显得静态。


七、可能的延伸面试提问角度

  1. 如何在没有标准答案的开放式任务中评估提示质量?

  2. 自动化提示优化(APO)是如何工作的?

  3. 如何平衡提示优化中的准确性与创造性?


八、应答建议

  • 如果问评估机制 → 强调人工与自动评估结合;说明具体指标如准确率、连贯性、幻觉率。

  • 如果问优化策略 → 解释迭代改进、few-shot 增强、控制变量法的应用。

  • 如果问实际场景 → 举例内容生成或问答任务如何用 A/B 测试与用户满意度优化提示。

4. 在提示工程中,如何有效地利用角色提示(Role Prompting)?

角色提示(Role Prompting) 是通过指定模型扮演特定身份/角色来引导其知识背景、表达风格和思考方式的技术。有效使用角色提示能显著提高输出的可控性、专业度和一致性。下面按结构化面试题格式给出详尽回答。


一、选择合适的角色

  • 基于专业知识:选择与任务领域高度相关的角色(如“资深机器学习工程师”“临床心理学家”)。

  • 基于沟通风格:根据读者/用户调整角色(如“面向大众的科普作者”“简洁的技术文档作者”)。

  • 基于思维模式:为需要特定推理方式的任务选择合适角色(如“系统性思考的产品经理”“批判性思维的哲学家”)。


二、详细描述角色特征

  • 背景与经验:定义教育、年限、代表性项目或成就(例如:拥有 15 年分布式系统设计经验)。

  • 知识领域:明确擅长的子领域与技能(例如:熟悉 Transformer、RAG、微调技巧)。

  • 价值观与方法论:说明决策偏好或工作方式(例如:以证据为先、数据驱动、注重可解释性)。


三、设定目标与约束

  • 明确目标:告诉“角色”要达成的具体目标(例如:撰写一份面向非专业读者的 800 字产品简介)。

  • 设定约束:规定风格、合规或安全限制(例如:不得提供医疗诊断、引用需注明来源、字数上限)。


四、创建情境与上下文

  • 场景设定:描述任务发生的具体环境(如:课堂、客户会议、技术审查)。

  • 互动对象:明确回答对象及其背景(如:技术小白、高级工程师、非营利组织决策者)。


五、引导角色的回应方式

  • 输出格式:要求结构(如:要点列表、步骤指南、问题-答案矩阵)。

  • 语言风格:指定语域(如:通俗、正式、学术、简洁)。

  • 思考过程:明确是否要求模型显示推理链或决策依据(如:列出假设、风险与权衡)。


六、多角色协作与对话

  • 角色对话:让模型在同一会话内模拟多方讨论(如:产品经理 vs 风险工程师)。

  • 角色轮换:在同一提示内按步骤切换角色视角(如:先从需求方,再从实现方评估可行性)。


七、角色进化与适应

  • 反馈调整:基于用户反馈迭代角色设定和回答风格。

  • 角色深化:随着对话推进,逐步提升专业性或个性化(例如:要求更多专业细节或实例)。


八、实践示例(简洁版)

  • 医疗咨询

    你是一位具有 20 年临床经验的家庭医生,擅长以平易近人的方式解释疾病。请解释偏头痛的常见触发因素、自我管理方法,并指出何时应就医。
  • 技术文档

    你是一名技术文档专家。为智能家居 App 编写用户设置指南(面向非专业用户),包含:初始设置、设备配对、常见故障排除。每个步骤不超过 2 行。
  • 多角色评估

    模拟一位产品经理和一位安全工程师对新功能的利弊展开讨论。先由产品经理陈述商业价值,再由安全工程师列出安全风险与缓解方案。

九、优势

  • 提升回答的专业深度与风格一致性。

  • 更容易控制输出格式与预期(比如术语、论证层次)。

  • 适配不同受众和场景(教学、审稿、客服、创作等)。


十、注意事项与风险

  • 避免冲突或过于复杂的角色设定:互相矛盾的指令会导致输出不稳定。

  • 知识截止限制:角色不能弥补模型事实性知识的时效性问题(若需最新信息应结合检索/工具)。

  • 滥用风险:避免让模型扮演违法或可能导致有害行为的角色(如犯罪指导、无资质医疗诊断)。

  • 过度拟人化问题:不要暗示模型具有真实资质或执业许可;必要时在输出中加上免责声明或建议咨询专业人士。


十一、易错提醒

  • 只写角色头衔不描述能力/约束,导致输出泛化或不符合预期。

  • 忽视输出格式与受众,结果冗长或术语过多。

  • 给出过多互相矛盾的指令(例如同时要求“非常简洁”和“详尽解释每个细节”)。

  • 忽略安全与合规限制(尤其在医疗、法律、金融等敏感领域)。


十二、可能的延伸面试提问角度

  1. 如何在生产环境中自动化生成并管理不同的角色提示?

  2. 角色提示与链式思考(Chain-of-Thought)如何组合以提高推理质量?

  3. 在多语言/跨文化场景中,角色提示应如何调整以避免文化偏差?

  4. 如何评估角色提示对模型偏见或不当内容的影响?

  5. 在需要最新事实的任务中,如何将角色提示与检索增强生成(RAG)结合?


十三、应答建议

  • 如果问设计要点 → 强调“明确角色背景 + 明确目标与约束 + 指定输出格式”。

  • 如果问实际场景应用 → 给出一至两个短示例(任务、角色、期待输出格式),并说明如何迭代改进。

  • 如果问风险与合规 → 说明模型知识时效性限制、合规边界,并建议加入免责声明与人工复核流程。


角色提示是能显著提升提示工程效果的实用工具,但要通过清晰、可测量的设计与迭代来避免歧义与风险。

5. 提示工程中的“思维链”(Chain-of-Thought)和“思维树”(Tree-of-Thought)有什么区别?

“思维链”(Chain-of-Thought,CoT)与“思维树”(Tree-of-Thought,ToT)都是增强大型语言模型推理能力的提示技术,但在结构、探索方式、计算开销和适用场景上存在显著差别。下面按面试题格式系统化整理。


一、定义与核心思想

  • 思维链(CoT):引导模型生成一系列线性的中间推理步骤,从问题逐步走向答案。强调“一步步思考”的线性链式推理。

  • 思维树(ToT):在推理过程中同时生成并维护多条候选思路(分支),评估各分支的价值,必要时回溯并探索其他分支,形成树状的多路径搜索。


二、工作方式对比

  • CoT 工作方式

    • 可用零样本(prompt 加入“让我们一步步思考”)或少样本(提供带完整推理过程的示例)。

    • 模型按顺序输出中间步骤,最终给出答案。

  • ToT 工作方式

    • 在每个决策点生成多个候选“想法/步骤”。

    • 对每个候选分支进行评估(可用启发式规则、打分模型或另一个 LLM)。

    • 选择评分较高的分支继续扩展;若遇到死路则回溯尝试其他分支。

    • 需要控制搜索策略(宽度/深度)、评估函数与回溯机制。


三、结构与复杂性

  • 结构:CoT 是线性的单路径;ToT 是树状多路径。

  • 复杂性:CoT 实现与调试较简单;ToT 设计、搜索控制与评估机制更复杂。

  • 计算开销:CoT 只需一次顺序生成,开销低;ToT 需要多次模型调用和分支评估,开销高且需管理搜索空间。


四、探索广度与决策行为

  • CoT:只沿一条路径深入,不尝试并行备选方案。

  • ToT:并行/分支探索多种可能,具备回溯与试错能力,更适合不确定性高或多解的问题。


五、适用场景比较

  • CoT 适用:数学推理、逻辑证明、逐步求解类问题(问题路径明确、误差可控)。

  • ToT 适用:创意生成、策略规划、多步骤决策且有多种可行解的场景(例如:游戏决策、复杂设计方案、需要试错的规划问题)。

  • 混合使用:可先用 ToT 做高层候选方案探索,再对选定分支用 CoT 做深度线性推理与细化。


六、实现考量与工程细节

  • CoT 实现要点:提示里加入示例推理、鼓励模型输出中间步骤、限制长度以避免跑偏。

  • ToT 实现要点:需要定义分支生成策略、分支评估函数(启发式/打分模型/二次 LLM)、搜索策略(宽度优先/深度优先/启发式剪枝)与回溯机制,并控制计算预算与截断策略。

  • 评估与监控:对 ToT 需额外监控分支数、调用次数、评估准确性与最终答案质量以权衡成本与收益。


七、优缺点汇总

  • CoT 优点

    • 实现简单、成本低;便于示例化训练或提示工程应用。

    • 在明确推理路径的问题上效果显著。

  • CoT 缺点

    • 仅沿单一路径,若该路径出错难以自纠。
  • ToT 优点

    • 支持多路径探索、回溯与试错,能找到更优或更稳健的解。

    • 更擅长处理不确定、多解和策略性问题。

  • ToT 缺点

    • 计算与实现复杂度高,需有效的分支评估策略以避免爆炸性搜索空间。

八、示例(简化示意)

  • CoT 示例(算术)

    问题:如果一件物品 15 元,另一件是它的两倍价,买 2 件和 3 件分别多少钱?
    思路:
    1. 第一个价格 15 元。
    2. 第二个价格 15 × 2 = 30 元。
    3. 2 件第一个:15 × 2 = 30。
    4. 3 件第二个:30 × 3 = 90。
    总价 = 30 + 90 = 120。
    答案:120。
  • ToT 示例(设计决策)

    问题:为老年人设计智能家居方案。
    分支 A:健康监测(子选项:远程手环 / 药物分发)
    分支 B:安全与辅助(子选项:智能照明 / 语音控制)
    评估:对各分支基于可接受性、成本、易用性评估打分,选择得分最高分支并进一步细化;若细化失败回溯尝试次优分支。

九、易错提醒

  • 低估 ToT 的搜索爆炸风险与计算成本,未设计有效的剪枝或评估函数就直接放大搜索宽度。

  • 把 CoT 与 ToT 混用时不给出明确策略(何时探索、何时深化、何时回溯),导致模型输出混乱。

  • 忽视评估函数的质量——若分支评分不可靠,ToT 的多路径探索可能导向次优结果。

  • 在对事实敏感的任务中,单纯依赖 CoT/ToT 而不结合外部检索或事实核验,容易产生高置信度的“幻觉”。


十、可能的延伸面试提问角度

  1. 如何设计一个高效的分支评估函数用于 ToT?

  2. 在有限计算预算下,如何在 ToT 中平衡 “探索(explore)” 与 “利用(exploit)”?

  3. CoT 与 ToT 在训练时是否可以通过微调(fine-tuning)增强效果?如何做?

  4. 如何把检索增强(RAG)与 ToT/CoT 结合以降低幻觉率?

  5. 在多语言或跨文化推理中,CoT/ToT 的表现有何差异,如何适配?


十一、应答建议

  • 如果问原理 → 对比“线性单路径(CoT)”与“多路径树状探索(ToT)”,并说明回溯与评估的必要性。

  • 如果问工程实现 → 说明 ToT 需要分支生成、评估函数与搜索控制,并强调计算预算与剪枝策略。

  • 如果问选用场景 → 给出具体例子:数学/逻辑用 CoT;多解/策略/创意问题用 ToT;并推荐“先 ToT 探索方向,再用 CoT 深入”的混合策略。


CoT 与 ToT 各有侧重:CoT 强在顺序化、清晰的线性推理;ToT 强在多路径探索与试错搜索。实际工程中常把两者结合起来以兼顾广度与深度,同时需要严谨的评估机制和资源控制。