大模型应用技术之提示词工程面试题(一)
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招清理:
- 删旧的 → 只留最后3句
- 总结一下 → “前面你说想学英语”
- 记在小本本 → 名字、目标存在外面
- 分阶段 → 学单词 → 练习 → 考试,换阶段清内存
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 个紧箍咒”
- “不许瞎编” → “只用下面这段话回答”
- “不会就说不会” → “不确定就说‘我不知道’”
- “一步步来” → “请说明推理过程”
→ 模型不敢乱说!
20. 在跨语言任务中,提示词工程需要注意哪些问题?
官方回答
跨语言提示需关注:① 语言对齐性(指令语言 vs 目标语言);② 文化语境差异;③ 词序与语法结构;④ 翻译一致性;⑤ 是否允许代码切换(code-switching)。建议使用目标语言写指令,或提供双语 Few-Shot 示例。
教学回答
跨语言 = “别用中文教英文语法”
-
错:用中文说“把这个翻译成英文” → 模型可能中英混杂
-
对:全英文提示
Translate to English: 我爱你 → I love you Now: 你好世界 → ? -
或者双语例子,让模型看懂规律
21. 请举例说明如何使用 “元提示”(Meta-Prompting)来动态生成提示。
官方回答
元提示是指提示的提示,用于让模型根据任务描述自动生成最优提示。常用于自动化提示优化(APE)。流程:输入任务目标 → LLM 输出具体提示 → 执行任务。
教学回答
元提示 = “让 AI 帮你写 AI 指令”
【元提示】
你是一个提示词工程师。
任务:教小学生加法。
请生成一个清晰、有例子、带思维链的提示。
【AI输出】
小朋友,我们来学加法!
例1:2个苹果 + 3个苹果 = ?
一步步想:
- 先数左边:2个
- 再数右边: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 个技巧记口诀
“清、例、步、角、模、指、学、温、目、格”
- 清:指令要清楚
- 例:少样本给例子
- 步:思维链走一步
- 角:角色要装好
- 模:模板反复套
- 指:指令写规范
- 学:上下文能学
- 温:温度调大胆
- 目:目标要明确
- 格:格式要统一
背会这 10 个字,你就能当“提示词魔法师”啦!✨
更多推荐

所有评论(0)