1. 什么是提示词工程?它在大模型里干嘛用?

官方回答

提示词工程是指设计、优化和测试输入提示词(prompts)的过程,以引导大语言模型(LLM)生成更准确、相关和高效的输出。它涉及理解模型的行为,并通过精心构建的文本输入来最大化其性能,而无需修改模型的底层参数。

在LLM应用中,提示词工程的作用包括:提升模型在特定任务(如翻译、总结或推理)上的表现;减少对昂贵模型微调的需求;使模型适应多样化场景;并帮助开发者构建更可靠的AI应用。通过有效的提示词工程,LLM可以更好地处理复杂查询,实现零样本或少样本学习,从而在实际部署中提高整体效率和用户满意度。

教学回答

提示词工程 = 给 AI 写“魔法指令书”
就像你给机器人下命令:“把苹果切成 4 块”,它就切 4 块;你说“切成小丁”,它就切小丁。
提示词工程 就是研究 “怎么写指令最清楚、最管用”,让大模型(比如我)一次就干对事。

例子:

  • 不好:写首诗 → 模型可能写儿歌、打油诗、情诗……乱七八糟
  • 好:写一首4句、押“ang”韵、主题是“春天”的现代诗 → 模型就老老实实照做

2. “提示”(Prompt)和 “上下文”(Context)有什么不一样?

官方回答

**“提示”(Prompt)**通常指用户或开发者直接提供的初始输入文本,用于指导LLM生成响应。它是具体的指令、问题或示例,旨在激发模型的输出。例如,一个prompt可以是“请总结这篇文章”。

**“上下文”(Context)**则更广泛,指模型在生成响应时考虑的整个输入历史,包括当前的prompt、之前的对话记录、系统消息或任何累积的文本信息。上下文帮助模型保持连续性,并在多轮交互中记住先前内容。区别在于:prompt是起点或核心指令,而context是动态的、扩展的背景,帮助模型处理长序列输入(如在聊天机器人中)。

教学回答
项目像什么例子
提示(Prompt)你今天对我说的话“把‘猫’翻译成英文”
上下文(Context)整张聊天记录我记得你之前问过“狗”翻译成“dog”,所以现在知道你要学动物单词

总结:

  • Prompt = 你现在说的一句话
  • Context = 从头到尾所有说过的话

3. “少样本提示”和“零样本提示”有什么区别?

官方回答

**“少样本提示”(Few-Shot Prompting)**是一种提示技术,在prompt中提供少量(通常1-5个)输入-输出示例,帮助模型理解任务模式,从而生成类似输出,而无需额外训练。例如,在分类任务中,提供几个标签示例来引导模型。

**与“零样本提示”(Zero-Shot Prompting)**不同,后者不提供任何示例,仅通过直接指令(如“将这句话分类为正面或负面”)让模型基于其预训练知识推断任务。Few-Shot通过示例增强指导,提高准确性,尤其在模型对任务不熟悉时;Zero-Shot更依赖模型的泛化能力,适用于简单或已知任务,但可能在复杂场景中表现较差。

教学回答
方式像什么例子
零样本(Zero-Shot)直接考你,没给例题“把‘我爱你’翻译成法语”
少样本(Few-Shot)先给你看 2 道例题
英文:I love you → 法语:Je t’aime
英文:Thank you → 法语:Merci
英文:Good night → 法语:?

少样本 就像老师先教 2 道题,你马上会第 3 道。
零样本 就是“闭卷考试”,全靠你自己聪明。


4. “思维链”(Chain-of-Thought)是什么?它帮模型解决什么难题?

官方回答

“思维链”(Chain-of-Thought, CoT)提示是一种技术,在prompt中鼓励模型逐步分解问题并记录中间推理步骤,而不是直接给出答案。例如,prompt可以是“逐步思考:首先计算A,然后B,最后得出结论”。这模仿人类推理过程,帮助模型生成更逻辑化的输出。

CoT解决了LLM在复杂推理任务中的局限性,如数学问题、多步逻辑推理、常识推理或规划任务。这些任务中,LLM可能直接跳到错误结论,因为其训练数据中缺乏显式推理路径。CoT通过显式引导,提升了模型的准确性和可解释性,尤其在需要多跳推理的场景中。

教学回答

思维链 = 让模型“把思考过程写在黑板上”

不好例子:
问:一个西瓜 5 元,买 3 个多少钱?
模型直接答:15元(可能猜的)

思维链例子:

一步一步来:
1. 一个西瓜 = 5 元
2. 买 3 个 = 5 × 3
3. 5 × 3 = 15
所以答案是 15 元。

它解决的难题:

  • 复杂数学题
  • 需要多步推理的逻辑题(比如“谁是凶手”)
  • 常识题(“先穿袜子还是先穿鞋?”)

5. 为什么在提示中加入 “角色设定”(如 “你是一位专家医生”)有助于提升模型输出质量?

官方回答

在提示中加入角色设定(如“你是一位专家医生”)可以帮助模型采用特定视角或专业身份,从而生成更相关、专业和一致的输出。这利用了LLM的角色扮演能力,使其从预训练数据中调用相关知识,避免泛化响应。例如,在医疗咨询中,这种设定能让模型提供更精确的建议,而非通用的信息。它提升输出质量的原因包括:限制响应范围,减少无关内容;增强可信度和深度;并改善一致性,尤其在多轮对话中,帮助模型维持角色,避免偏差或浅显回答。

教学回答

因为模型会“装”成医生说话!

没角色有角色
“感冒吃点药就行”“我是呼吸科医生。根据症状,建议您:① 多喝水 ② 吃对乙酰氨基酚 ③ 3天不好就来医院”

好处:

  • 更专业
  • 更靠谱
  • 少废话

6. “提示模板”是什么?开发时为什么好用?

官方回答

**“提示模板”(Prompt Template)**是一种可重用的、参数化的prompt结构,其中某些部分是固定的(如指令框架),而其他部分(如具体输入)可以动态填充。例如,一个模板可以是“将{文本}翻译成{语言}”。

在实际开发中,其优势包括:提高效率,通过标准化prompt减少重复工作;确保一致性,避免不同开发者的prompt变异导致输出不稳;便于测试和迭代,能系统地调整模板以优化性能;支持大规模应用,如在API或批量处理中动态生成prompt;并降低错误风险,使LLM集成更可靠。

教学回答

模板 = 可以反复套的“万能表格”

【翻译模板】
把下面的句子从{原语言}翻译成{目标语言}:
句子:{句子}

填一填就行:

  • 原语言:中文
  • 目标语言:英文
  • 句子:我饿了

→ 自动变成:

把下面的句子从中文翻译成英文:
句子:我饿了

开发时好用:

  • 省时间(不用每次重写)
  • 不会写错(格式统一)
  • 改一次,所有地方都改

7. “指令提示”怎么用?举个例子

官方回答

**“指令提示”(Instruction Prompting)**是通过清晰、具体的指令来引导模型执行任务,而非依赖隐含理解。

示例:任务是总结一篇文章。指令prompt可以是:“请阅读以下文章,并生成一个简洁的总结,包括主要观点、关键事实和结论。输出格式为:- 主要观点:…\n- 关键事实:…\n- 结论:…\n文章:[插入文章文本]”。 这个prompt明确了任务(总结)、元素(主要观点等)和格式(列表),引导模型产生结构化输出,避免模糊或无关响应。

教学回答

指令提示 = 像老师出卷子一样,写清楚“怎么做”

任务:给一段新闻写标题(不超过10个字)

【指令】
1. 阅读下面新闻
2. 写一个不超过10字的标题
3. 只输出标题,不要加解释

新闻:昨天北京下了一场大雪,很多学校停课,孩子们在操场堆雪人。

【标题】:北京大雪停课

看到没?
模型只敢输出:北京大雪停课(不敢多说一句)


8. “上下文学习”是什么?靠模型什么本事?

官方回答

**“上下文学习”(In-Context Learning)**是指LLM通过prompt中的示例或上下文临时“学习”新任务,而无需更新模型参数或额外训练。它允许模型在推理时从提供的上下文中推断模式。 它依赖LLM的预训练泛化能力和处理长序列上下文的能力。

具体来说,依赖Transformer架构的自注意力机制,能捕捉prompt中示例间的关系,以及模型从海量训练数据中习得的模式识别技能。这使得LLM能在Few-Shot或Zero-Shot场景中适应新任务,而不需微调。

教学回答

上下文学习 = “看例题就学会”

例1:苹果 → 水果
例2:香蕉 → 水果
例3:牛奶 → ?

模型马上答:饮品(不需要你教它“分类”这个词)

靠的本事:

  • 超大记忆力(看过几亿条句子)
  • 找规律(看到两个“水果”就猜第三个也是分类)

9. “温度”参数是啥?怎么影响回答?

官方回答

“温度”(Temperature)实际上不是prompt词的一部分,而是LLM生成过程中的采样参数(通常在API调用中设置)。它控制输出的随机性和多样性:

  • 低温度(如0.2):输出更确定性和重复,模型倾向选择高概率词,适合需要精确、事实性任务(如代码生成)。
  • 高温度(如1.0或更高):增加随机性,输出更创意、多样,但可能更不连贯或出错,适合 brainstorm 或故事生成。 在prompt设计中,虽然不直接嵌入,但开发者可结合prompt调整温度,以平衡创造性和准确性。
教学回答

温度 = “模型有多大胆”

温度像什么人回答例子(问题:明天天气?)
0.2(低)胆小鬼“晴,25度。”
1.0(高)爱编故事“明天太阳会穿粉色裙子跳舞,温度大概25度左右吧~”

总结:

  • 温度低 → 老实、准
  • 温度高 → 创意、可能胡说

10. 为什么提示要写清楚“目标”和“格式”?

官方回答

在提示中明确任务目标和输出格式很重要,因为它减少歧义,确保模型理解预期响应,从而提高输出的一致性和可用性。

具体原因包括:帮助模型聚焦,避免无关或冗长内容;便于下游处理,如在应用中解析JSON格式输出;提升准确性,尤其在复杂任务中;减少幻觉(hallucination),通过结构化指导限制自由度;并改善用户体验,使响应更易读和实用。例如,指定“以JSON格式输出”能让模型生成可编程的结构,而非散文。

教学回答

因为模型像个“听话但不聪明”的实习生
你不说明白,它就乱来。

不好:

“分析这篇作文”
→ 模型可能写 500 字乱七八糟

好:

【目标】:找出这篇作文的3个优点和2个缺点  
【格式】:  
优点1:...  
优点2:...  
优点3:...  
缺点1:...  
缺点2:...

→ 模型老老实实按格式写,你直接能用!

11.如何设计一个有效的提示词来让模型生成结构化数据(如 JSON)?

官方回答

设计结构化数据提示需明确输出格式、约束字段类型与层级关系,并提供完整示例。

核心要素包括:① 使用“只输出JSON”或“禁止额外解释”等指令;② 指定 schema(如字段名、数据类型、必填项);③ 在 Few-Shot 中提供 1-2 个符合 schema 的完整 JSON 示例;④ 可结合温度≤0.3 与 top_p≤0.7 降低随机性。有效提示能将模型输出从自由文本转化为可解析的结构化数据,适用于 API 集成、数据抽取等场景。

教学回答

想让 AI 吐 JSON?就给它一个“填空表格”!

【指令】
1. 分析下面这段话
2. 提取人名、年龄、职业
3. 只输出 JSON,不要任何解释
4. 格式必须是:
{
  "name": "字符串",
  "age": 整数,
  "job": "字符串"
}

文本:小明今年25岁,是程序员。

【输出】
{"name":"小明","age":25,"job":"程序员"}

小技巧:

  • 说“只输出 JSON” → 模型不敢加“哈哈”
  • 给完整例子 → 它知道长啥样
  • 温度调低 → 少胡说

12.请描述 “自洽性”(Self-Consistency)在提示工程中的应用场景。

官方回答

自洽性(Self-Consistency)通过对同一问题生成多个独立推理路径(通常结合 CoT),然后对最终答案进行多数投票(majority vote),提升推理任务的鲁棒性。适用于算术推理、常识推理、多选题等不确定性高的任务。实验表明,在 GSM8K 数据集上,CoT+Self-Consistency 可将准确率从 74% 提升至 94%。

教学回答

自洽性 = “让模型自己考 3 份卷子,取一样的答案”

问题:一个鸡蛋2元,买5个多少钱?

路径1:2×5=10元  
路径2:2+2+2+2+2=10元  
路径3:10个是20元,5个是10元  

→ 3个答案都是10元 → 信了!

用在:

  • 数学题
  • 逻辑推理
  • 容易算错的题
    → 错一次没关系,错三次才算错

13. 什么是 “提示链”(Prompt Chaining)?它与单轮提示相比有哪些优势?

官方回答

提示链(Prompt Chaining)是将复杂任务分解为多个顺序执行的子提示,每轮输出作为下一轮输入,形成流水线。

相比单轮提示,它具有:① 降低单次上下文长度压力;② 便于错误定位与局部优化;③ 支持中间结果校验;④ 提升复杂任务成功率(如多文档问答、长文本生成)。

教学回答

提示链 = 把大象塞进冰箱分 3 步

第1步:总结文章 → “文章讲了AI发展史”
第2步:提取3个时间点 → “2012、2017、2023”
第3步:做时间线JSON → 输出结构化数据

比单轮好在:

  • 不会因太长忘前文
  • 哪步错改哪步
  • 每步都能检查

14.如何利用 “反思提示”(Reflexion Prompting)让模型自我修正错误?

官方回答

反思提示通过在提示中加入“自我检查”指令,引导模型对自身输出进行批判性分析并迭代修正。

典型流程:① 初始生成;② 反思提示要求指出错误、解释原因;③ 重新生成。适用于代码调试、数学求解、事实核查等需要高准确性的任务。

教学回答

反思 = “让模型当自己的老师批作业”

第一步:写代码(错的)
```python
print("Hello" + 123)  # 报错

第二步:反思提示

【指令】
1. 运行上面代码会报错吗?
2. 错在哪?为什么?
3. 写出正确代码

→ 错误:字符串不能直接加数字
→ 正确:print("Hello" + str(123))

效果:模型自己发现错,自己改对!

15. 在多轮对话中,如何管理上下文长度限制?有哪些常见策略?

官方回答

LLM 上下文窗口有限(如 4k/8k/32k tokens),多轮对话易超限。常见策略包括:① 滑动窗口:仅保留最近 N 轮;② 摘要压缩:用模型总结历史对话;③ 关键信息提取:存入外部向量数据库(RAG);④ 状态机管理:用变量存储用户意图、阶段等。

教学回答

上下文像手机内存,聊多了就卡!
4招清理:

  1. 删旧的 → 只留最后3句
  2. 总结一下 → “前面你说想学英语”
  3. 记在小本本 → 名字、目标存在外面
  4. 分阶段 → 学单词 → 练习 → 考试,换阶段清内存

16. 请解释 “检索增强生成”(RAG)与提示词工程的关系。

官方回答

RAG(Retrieval-Augmented Generation)通过在生成前检索外部知识(如文档、数据库)并注入提示,解决模型知识滞后与幻觉问题。提示词工程在 RAG 中负责:① 设计检索查询提示;② 融合检索片段与任务指令;③ 控制引用格式(如 [1][2])。二者相辅相成,RAG 提供事实基础,提示工程确保生成逻辑。

教学回答

RAG = “给模型发外挂资料”

普通:问“2025年诺贝尔奖谁得?” → 模型瞎猜  
RAG:
1. 搜新闻 → “2025物理奖:张三”
2. 塞进提示:

根据最新资料[2025新闻]:
2025物理奖得主是张三。
请回答:谁获得了2025年诺贝尔物理学奖?

→ 模型老实答:张三

提示工程负责:怎么把“外挂资料”写进提示才自然。

17. 如何使用 “对比提示”(Contrastive Prompting)来提升模型对细微差别的敏感度?

官方回答

对比提示通过在 Few-Shot 中并列展示正例与反例,强化模型对关键特征的区分能力。适用于情感分析、意图识别、细粒度分类等任务。结构为:正例 → 标签;反例 → 标签;测试输入 → 标签。

教学回答

对比提示 = “给模型看‘对错对照表’”

任务:判断是“正式”还是“随意”邮件

正例:尊敬的先生... → 正式  
反例:嘿,哥们... → 随意  
测试:您好,请查收... → ?

→ 模型学会抓“尊敬”“嘿”等关键词,判断更准!

18. 什么是 “提示微调”(Prompt Tuning)?它与传统微调有何区别?

官方回答

**提示微调(Prompt Tuning)**是一种参数高效微调方法,仅训练一组可学习的连续提示向量(soft prompts),而保持主模型冻结。

相比传统全模型微调(更新全部参数),其参数量减少 99.99%,存储成本低,支持多任务共享前缀。

教学回答
项目传统微调提示微调
改啥整个模型(上百亿参数)只改“提示前缀”(几千个数字)
像啥给大脑做手术给嘴巴贴个“咒语贴纸”
省吗不省,存不下超省,一个任务1MB

19. 如何设计提示词以减少模型的 “幻觉”(Hallucination)?

官方回答

减少幻觉的提示策略包括:① 要求“仅基于给定内容回答”;② 使用 CoT 强制推理透明;③ 加入“如果不确定请说不知道”;④ 结合 RAG 注入真实数据;⑤ 设定角色为“严谨研究员”。

教学回答

防幻觉 = “给模型戴 3 个紧箍咒”

  1. “不许瞎编” → “只用下面这段话回答”
  2. “不会就说不会” → “不确定就说‘我不知道’”
  3. “一步步来” → “请说明推理过程”
    → 模型不敢乱说!

20. 在跨语言任务中,提示词工程需要注意哪些问题?

官方回答

跨语言提示需关注:① 语言对齐性(指令语言 vs 目标语言);② 文化语境差异;③ 词序与语法结构;④ 翻译一致性;⑤ 是否允许代码切换(code-switching)。建议使用目标语言写指令,或提供双语 Few-Shot 示例。

教学回答

跨语言 = “别用中文教英文语法”

  • 错:用中文说“把这个翻译成英文” → 模型可能中英混杂

  • 对:全英文提示

    Translate to English: 我爱你
    → I love you
    Now: 你好世界 → ?
    
  • 或者双语例子,让模型看懂规律

21. 请举例说明如何使用 “元提示”(Meta-Prompting)来动态生成提示。

官方回答

元提示是指提示的提示,用于让模型根据任务描述自动生成最优提示。常用于自动化提示优化(APE)。流程:输入任务目标 → LLM 输出具体提示 → 执行任务。

教学回答

元提示 = “让 AI 帮你写 AI 指令”

【元提示】
你是一个提示词工程师。
任务:教小学生加法。
请生成一个清晰、有例子、带思维链的提示。

【AI输出】

小朋友,我们来学加法!
例1:2个苹果 + 3个苹果 = ?
一步步想:

  1. 先数左边:2个
  2. 再数右边:3个
  3. 加起来:2+3=5
    所以答案是5个苹果。

现在:4个糖 + 1个糖 = ?

→ 直接拿去用,超省事!

22. 什么是 “提示压缩”(Prompt Compression)?为什么需要它?

官方回答

提示压缩通过删除冗余 token、摘要历史对话或用嵌入表示上下文,减少输入长度。

必要性:① 规避上下文窗口限制;② 降低推理成本(按 token 计费);③ 提升长对话稳定性。

教学回答

压缩 = “把10页聊天记录缩成1段话”

原始(1000字):用户问了天气、股票、新闻...
压缩后:【摘要】用户关心北京天气、特斯拉股价、最新AI新闻。

为啥要:

  • 模型内存不够
  • 钱包受不了(1万字 = 贵)

23. 如何评估一个提示词的有效性?有哪些关键指标?

官方回答

评估指标包括:① 准确率/精确率/召回率(分类、抽取);② BLEU/ROUGE(生成);③ 人类评分(流畅性、相关性);④ 成功率(结构化输出符合率);⑤ 鲁棒性(不同输入下的稳定性);⑥ 效率(token 消耗、延迟)。

教学回答

评估提示 = 给提示打分

项目怎么看
准不准10题对8题 → 80分
像不像让3个人打分(1-5星)
稳不稳换10句话问,都对才行
省不省100字搞定 > 1000字

24. 在代码生成任务中,提示词设计有哪些最佳实践?

官方回答

最佳实践:① 明确编程语言与版本;② 提供输入输出示例;③ 指定错误处理与边界条件;④ 使用 CoT 要求分解步骤;⑤ 要求添加注释;⑥ 输出完整可运行代码。

教学回答

写代码提示 = “给程序员下任务书”

【任务】
语言:Python 3.10
功能:输入一个数字列表,返回偶数列表
要求:
1. 写完整函数
2. 加3行注释
3. 处理空列表
4. 示例:
   输入:[1,2,3,4]
   输出:[2,4]

→ 模型乖乖写出:

def get_evens(nums):
    # 过滤偶数
    if not nums: return []
    # 用列表推导式
    return [x for x in nums if x % 2 == 0]

25. 如何利用 “反事实提示”(Counterfactual Prompting)进行模型鲁棒性测试?

官方回答

反事实提示通过构造与事实相反但逻辑一致的假设场景,测试模型是否过度依赖表面模式而非深层理解。用于检测过拟合、偏见或推理脆弱性。例如:将“猫追老鼠”改为“老鼠追猫”,观察模型是否仍能正确推理。

教学回答

反事实 = “假如猪会飞,故事怎么编?”

正常:猫吃鱼,狗吃肉,奥特曼吃小怪兽。  
反事实:鱼吃猫,肉吃狗,小怪兽吃奥特曼。  
问:谁吃奥特曼? → 小怪兽

→ 如果模型答“奥特曼”,说明它死记硬背!

测试用:

  • 模型是不是真懂?
  • 换个说法还行吗?
  • 有没有偏见?

小结:10 个技巧记口诀

“清、例、步、角、模、指、学、温、目、格”

  1. 清:指令要清楚
  2. 例:少样本给例子
  3. 步:思维链走一步
  4. 角:角色要装好
  5. 模:模板反复套
  6. 指:指令写规范
  7. 学:上下文能学
  8. 温:温度调大胆
  9. 目:目标要明确
  10. 格:格式要统一

背会这 10 个字,你就能当“提示词魔法师”啦!✨

更多推荐