想象你走进一家米其林三星餐厅,面对一位技艺超群但完全陌生的主厨。如果你只说“随便来点吃的”,主厨只能凭猜测为你做菜,结果往往不尽如人意。但如果你递上一张精心设计的点菜单——写下前菜要清爽开胃、主菜要五分熟的牛排配红酒汁、甜点不要含坚果——主厨就能精准地为你呈现一桌完美佳肴。这就是Prompt设计的本质:大模型就像那位技艺超群的主厨,而Prompt就是你递给他的那张点菜单。Prompt设计技巧,就是学会如何与这位“AI主厨”高效沟通,让他每次都能端出你真正想吃的那道菜。 本文将带你走进Prompt设计的世界:从理解Prompt的基本结构要素开始,学会如何设定角色与描述任务,掌握Zero-shot与Few-shot的适用场景,探索Chain-of-Thought等高级提示模式,最终学会通过迭代优化让AI的输出质量不断提升。这些技巧将让你从“随便来点吃的”进化为“米其林点餐大师”。
掌握Prompt设计,意味着你能以最小的成本撬动大模型最大的能力——无论是AI应用开发者优化产品体验、产品经理设计AI功能,还是普通用户提升AI使用效率,这都是AI时代最基础也最值钱的技能之一。
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
Prompt基本结构
你是否注意过,在米其林餐厅里,一份完美的点菜单总是包含几个固定元素:主厨的招牌菜、食材偏好、忌口、上菜顺序,甚至摆盘要求?一份好的Prompt也一样——它不是随意的几句话,而是有着清晰结构的“点菜单”。
一个完整的Prompt通常包含四个核心要素:角色设定告诉AI“你是谁”,任务描述告诉AI“要做什么”,约束条件告诉AI“不能做什么”,输出格式告诉AI“怎么回答”。就像点单时你会说“我是素食者(角色),想点一份不含肉类的意面(任务+约束),请推荐(动作)”,Prompt的每个要素都在缩小AI的“猜测空间”。
拿一个实际例子来说。假设你要AI帮你写一封请假邮件,一个结构完整的Prompt可能是这样:
“你是一位经验丰富的行政助理(角色),请帮我写一封给领导的请假邮件(任务),请假时间是下周三,理由是家中有事,语气要诚恳得体(约束),邮件格式要包含称呼、正文、落款(输出格式)。”
这个Prompt之所以有效,是因为它消除了AI“盲猜”的空间。AI不再需要猜测你的职业、语气偏好、邮件格式——你就像一位细致的顾客,把所有的“忌口”和“偏好”都提前告知了主厨。
基础结构四要素公式:
回到开头的比喻:一份精心设计的点菜单,就是一份精心设计的Prompt。你不需要懂得后厨如何运作,只需要清晰表达你的需求——那个“不懂事的AI主厨”就能逐步成长为“最懂你的私厨”。
- 角色设定(Role)给AI一个明确的身份,让TA从特定知识库中提取信息。比如“你是一位资深营养师”——AI会调用营养学的专业术语和思维方式来回应。
- 任务描述(Task)用动词开头的祈使句,明确告诉AI要完成什么动作,“写”“总结”“翻译”“分析”比“帮我处理一下”更清晰。
- 约束条件(Constraint)划出AI回答的边界,包括字数限制、语气要求、必须包含/避免的内容,减少无效输出。
- 输出格式(Format)指定回答的结构形式,如“用表格输出”“分三个要点”等,让AI的答案结构化、易读。
角色设定技巧
想象你走进一家心理咨询室,如果咨询师一开口就说“我是你的朋友”,你可能会犹豫要不要讲出真心话;但如果TA说“我是有10年经验的心理咨询师,你的所有倾诉在这里都是安全的”,你会立刻放松下来。角色设定之所以有效,是因为它激活了场景、语境和相应的知识框架。
同理,当你对AI说“你是一位律师”,AI会从法律知识库中调取信息,用严谨的法言法语回答;当你说“你是一位小学老师”,AI会转换成生动、亲切、易懂的语言风格。角色设定本质上是给AI的思维装上一个“定向导航仪”,让TA知道该从哪个知识库“取食材”。
好的角色设定有三个层次。第一层是明确身份——“你是资深Python工程师”;第二层是赋予背景——“你有10年后端开发经验,熟悉分布式系统设计”;第三层是限定受众——“请面向刚入门的新手解释”。三个层次叠加,AI的输出就会自然贴近专家讲座的风格。
一个对比能让你更直观地感受差异:
“给我讲讲什么是牛顿第二定律” vs “你是一位高中物理老师,请用生活中的例子向我(一个初中生)解释牛顿第二定律,我需要通过明天的物理测验”
第二个Prompt之所以效果好,是因为它角色的三个层次都非常清晰。有了身份、经验和受众,AI就知道用什么样的语言风格、讲到什么深度、举什么样的例子。这就像一位经验丰富的导游知道该为不同年龄的游客安排不同节奏的行程。
角色设定的“三位一体”公式:
把AI想象成一位“万能演员”,角色设定就是递给TA的剧本大纲。剧本写得越详细,演员的表演就越贴合你的期待——不给剧本的AI演的是“路人甲”,给了完整角色卡的AI才能演出“主角光环”。
- 身份(Identity)明确职业或专家头衔,触发AI相应的知识领域,如“你是一位资深产品经理”——AI会从产品方法论的角度思考问题。
- 背景深度(Background)补充该身份的经验年限或专长方向,让回答更有深度,如“你有8年B端产品经验,擅长复杂业务拆解”。
- 目标受众(Audience)说明回答对象,让AI调整语言的通俗度和表达方式,如“面向完全没有编程基础的老板解说”。
任务描述原则
回想一下,什么时候你会对餐厅服务员感到无奈?当你点菜时说“随便”“来点好吃的”时,服务员往往一脸茫然。而当你具体说出“要一份比脸还大的盘子装的、带一点辣味的、不要香菜的海鲜炒饭”时,TA会心领神会地点点头。任务描述的灵魂,就在于具体与明确。
任务描述的第一个原则是明确动作和目的。与其说“处理一下这个文本”,不如说“把这段客户评价总结成3个要点,每个要点不超过20字”。AI需要清晰的指令来执行,模糊的请求只会得到模糊的答案——这是衡量提示效果的第一道坎。
第二个原则是避免歧义词和抽象概念。“优化的方案”到底是什么意思?是缩短时间、降低成本、还是提升体验?AI不是你肚子里的蛔虫,你必须用“降低5%的成本”“响应时间缩短到100毫秒以内”这样可量化的语言。这就像主厨问你“牛排要几分熟”,你说“差不多”一样,让AI无从下手。
第三个原则是提供充分的背景信息。AI不像人类一样了解你的上下文,所以你需要主动交代来龙去脉。比如“我们是一个刚起步的电商团队,目标客户是大学生”这样的背景,会让AI的回复更加贴合实际。
好的任务描述还有一个小技巧:分解复杂任务。不要试图让AI一次完成“帮我写一份包含市场分析、竞品调研、推广策略的商业计划书”——而是让TA先分析市场、再单独做竞品调研,最后整合输出。就像主厨做一道复杂的菜,也要分“备菜、炒制、装盘”三个步骤。
任务描述的SMART检验法:
任务描述像极了向主厨点菜的过程。当你把口味、分量、做法、配菜都交代清楚,主厨几乎不可能做走样。AI也一样——它缺的不是能力,而是你那份清晰的任务说明书。
- 具体(Specific)动词+对象+细节,如“用简洁的语言”而非“好好说话”——AI需要精细化指令才能避免给出笼统的答案。
- 可衡量(Measurable)给输出加上量化约束,如“500字以内”“列举3个理由”——可量化的任务才可检验质量。
- 可达成的场景(Achievable)拆分复杂任务为多个子步骤,逐个完成。比如“先列出提纲→再填充内容→最后润色”。
- 相关性(Relevant)告诉AI这个任务的使用场景,让它调取最匹配的知识和经验。如“用于周报,需要简洁”。
- 时限性(Time-bound)给任务加上篇幅或时间框架,如“用200字概述”——AI需要知道输出的体量边界。
Zero-shot与Few-shot
任何一位老师都明白:给学生的示例越多,学生做得越好。但如果一个学生天赋异禀,有时候你只需要告诉他“怎么做”,他就能举一反三。大模型的两种“学习”模式正好对应这两种场景:Zero-shot(零样本)和Few-shot(少样本)。
Zero-shot指的是:你不给AI任何示例,只通过自然语言描述任务,AI凭已有的知识即可完成。比如你直接说“把这句话翻译成英文”,AI就能翻译。它就像一位有经验的厨师拿到一道新菜名,靠自己的基本功就能做出来。但在某些特殊场景——比如需要特定格式输出、处理专业领域内容时——Zero-shot往往容易“翻车”。
Few-shot则是给AI提供几个输入输出的示例,让AI在回答时模仿示例的格式和风格。比如你想让AI把评论标记为正面/负面/中性,你可以提供:“'这餐厅太棒了!' → 正面”这个示例。AI看到示例后,输出时就有了参照系。Few-shot就像是主厨在动手前,先观摩了几道你偏好的菜品照片——照着照片做,总是八九不离十。
那么,该给几个示例?答案是少量但质量高。研究表明,大多数任务只需要2-5个示例就能达到很好的效果。示例不是越多越好——太多示例会占用宝贵的上下文窗口,还可能引入噪音。关键在于示例的典型性:选择能覆盖不同类型情况的例子。比如做情绪分类,至少要有正面、负面、中性各一个样本。
示例的顺序也很重要。把最典型的例子放在前面,AI的学习效果会更好。这就像教小朋友认字时,先教“人、口、手”这些高频字,而不是一上来就教“饕餮”。
Few-shot的核心工作方式:
回到点餐的比喻:Zero-shot相当于你去一家新餐厅,菜谱上没有图片,只靠文字描述点菜,期待主厨的发挥;Few-shot则是你带了几张之前吃过的菜的照片给主厨看——有了参照,主厨做出你满意菜品的概率大大提升。
- Prompt(提示词)任务的自然语言描述,告诉AI“你要做什么”,如“请判断下面评论的情感倾向”。
- Demonstrations(示例集合)若干组输入+输出的配对,格式为“输入→输出”,让AI模仿这种映射关系来理解任务。
- Query(待回答的问题)你要AI处理的真实输入。如果是情感分类任务,Query就是“这家店的服务太差了”。
- Model(大模型)AI根据“任务描述+示例+新问题”这三者共同决定最终的输出。这个过程中,AI相当于做了“类比推理”。
Chain-of-Thought
你有没有遇到过这样的情况:一个棘手的问题,你说了答案,但对方听不懂;你把一步步的推理过程讲给他听,他突然就懂了。Chain-of-Thought(思维链,简称CoT)就是这个原理——它通过引导大模型“思考过程”而不是直接“给结果”,让AI像人类一样一步步推理,极大地提升了复杂问题的回答准确率。
实际应用中,CoT最经典的做法就是在Prompt中加一句“请一步步思考”或“让我们逐步推理”。这句话看似简单,却能激活AI的逻辑推理能力。比如问AI“一个苹果3块钱,买5个苹果和2个橙子(每个2块钱),总共多少钱?”如果直接问,AI可能算错;但如果你加上“请一步一步思考”,AI会先算苹果的钱、再算橙子的钱、最后相加,几乎不会出错。
为什么CoT这么有效?因为大模型本质上是“下一个词的预测器”。如果你只想要结果,它可能“跳步”导致计算错误;但如果你把中间的推理步骤一字一句写出来,每一步都是对前一步的“下一个词预测”,大模型每一步都踩在“正确的石头”上,降低了出错的概率。
在复杂任务中——特别是数学应用题、逻辑推理、代码调试——CoT的表现尤为突出。你可以在Few-shot的示例中直接展示推理过程,让AI模仿你的解题步骤,这就是“思维链少样本提示”。例如:
“Q:小明有5个苹果,给了小红2个,又买了3个,现在有几个? A:小明先有5个,给小红2个后剩3个(5-2=3),再买3个后共有6个(3+3=6),所以答案是6。”
AI看到这样的示例后会模仿这种“先分解、再整合”的思路。对于特别复杂的问题,你还可以用更精细的策略——将任务分解成多个子任务,分别询问,再汇总组合。
思维链推理公式:
CoT让我想起一位优秀的数学老师。他不会直接告诉你“答案是6”,而是循循善诱地问:“你先算算苹果花了多少钱?再算算橙子花了多少钱?最后加起来是多少?”——通过引导你亲身体验整个推理过程,才能真正提升你的解题能力。Chain-of-Thought就如同这份引导学生思考的解题教案,让AI更善于分析性思维。
- Question(问题)用户提出的原始问题,是思维链的起点。它需要足够清晰,才能触发AI的推理机制。
- Reasoning Path(推理路径)一系列中间推理步骤,可以看作是思考过程中的“草稿纸”。它们逐层递进,每个中间结果都为下一步提供依据。
- Answer(答案)经过中间推理后得出的最终结论。因为推理过程完整,答案的可靠性和可解释性都大大提升。
- 总和 \(\sum\)表示AI可能会探索多条推理路径,综合权衡后选择一个最合理的路径来得出结论。
Prompt迭代优化
厨师做菜不需要一次成功。第一道菜太咸了,第二道就少放盐;第一道菜火候过了,第二道就缩短时间。Prompt设计也一样——没有“一次成型”的完美Prompt,只有“不断迭代”的好Prompt。Prompt迭代优化,是每一位AI使用者必备的“调试技能”。
迭代优化的第一步是分析差距。拿到AI的输出后,不要着急下结论,而是对照你的需求问自己三个问题:哪里不满意?是内容不准确、风格不合适、还是格式不对?为什么会出现这个偏差?是任务描述有歧义、缺少约束、还是角色设定不清晰?把问题定位清楚,才能进行针对性的调整。
第二步是选择调整策略。如果AI回答太笼统,就增加约束条件(“控制在100字以内”“必须给出具体的数据支撑”);如果AI语气不对,就调整角色设定(“你是一位自媒体运营专家”);如果AI格式不理想,就明确输出格式(“分三个要点,每个要点用小标题+段落对比来呈现”)。每个问题都对应着Prompt某个要素的“参数调整”。
第三步是多轮测试。调整后重新向AI提问,观察输出是否改善。有时一次调整还不够,需要多轮打磨。建议每次只改一个变量——改完任务描述就不再动角色设定——这样才能精准判断是哪个改动起到了效果。就像科学家做实验一样,一次只改变一个变量才能保证实验的科学性。
最后,别忘了总结经验。当你打磨出一个效果稳定的Prompt后,把它保存到你的Prompt库中。下次遇到类似任务时,直接复用并微调即可。优秀的用AI高手,都有自己精心维护的“Prompt食谱集”。
Prompt迭代优化循环:
Prompt的迭代优化,让我想起了每一位大厨的“秘密武器”——不断试错的毅力与经验积累。第一版的Prompt就像第一次做的菜,可能不尽完美,但它给了你改进的方向。每一次“不好吃”的反馈,都是通向“米其林”的必经之路。学会快速迭代,你就掌握了与AI高效共舞的密码。
- Prompt^(t)(第t轮的Prompt)当前迭代轮次使用的提示词。它可能是你最初写的初稿,也可能是经过几轮优化的结果。
- Output(模型输出)AI基于当前Prompt生成的回答内容。这份输出就是你的“试吃成果”。
- Expected(期望输出)你理想中AI应该给出的回答。它不需要是一字不差的“满分答案”,而是你判断输出质量高低的“参考线”。
- Refine(精炼)结合输出与期望的差距,对Prompt的某些要素进行有针对性的优化。这一步考验你对Prompt结构要素的熟练程度——能否快速定位“哪个要素出了问题”。
AI 应用场景
AI客服场景的Prompt设计
阶段:Prompt工程——理解用户意图与生成回复
解决的问题:传统AI客服常常答非所问,用模糊的Prompt导致回复千篇一律。利用角色设定和约束条件设计Prompt,可以让AI客服拥有明确的服务风格与回答边界。
具体案例:某电商平台的AI客服通过设定“你是一位温暖耐心的客服专员,回答限100字内,首句先共情用户”,使客户满意度提升了35%。同时添加“涉及退款需转人工”的业务边界,大幅减少错误承诺。
代码生成场景的Few-shot应用
阶段:利用少样本提示提升代码生成准确性
解决的问题:纯靠任务描述生成代码时,AI常输出风格平庸甚至无法运行的代码。给AI提供内部代码规范示例(如变量命名、异常处理写法),让输出对齐团队风格。
具体案例:某创业团队把公司代码规范整理成3个Few-shot样例,放入Prompt。AI生成的代码风格与团队代码库高度一致,代码Review通过率提升了50%。
数学辅导场景的Chain-of-Thought应用
阶段:教学场景下的逐步推理
解决的问题:如果直接让AI给答案,学生容易养成抄袭习惯,而且AI一步到位给出答案也常出错。使用CoT引导AI“一步步推导”后,AI不仅回答正确率显著提升,还能给出详细的解题过程,帮助学生理解思路。
Python 演示
class PromptTemplate: """一个简单的Prompt模板管理工具""" def __init__(self, role="", task="", constraint="", format_spec=""): self.role = role self.task = task self.constraint = constraint self.format_spec = format_spec self.examples = [] def add_example(self, input_text, output_text): """添加一个Few-shot示例""" self.examples.append({"input": input_text, "output": output_text}) def build(self, query): """根据模板与用户输入构建最终的Prompt""" parts = [] if self.role: parts.append(f"角色:{self.role}") if self.task: parts.append(f"任务:{self.task}") if self.constraint: parts.append(f"约束:{self.constraint}") if self.format_spec: parts.append(f"格式:{self.format_spec}") if self.examples: ex_text = "\n".join( f"示例{i+1}:{e['input']} -> {e['output']}" for i, e in enumerate(self.examples) ) parts.append(f"示例:\n{ex_text}") parts.append(f"用户输入:{query}") return "\n".join(parts) def ask_with_prompt(model, prompt): """模拟调用大模型接口""" # 真实场景中,这里会调用OpenAI或其他大模型的API return f"[AI响应] 收到Prompt:{prompt}" def main(): # 创建一个客服Prompt模板 tpl = PromptTemplate( role="你是一位耐心细致的客服专员", task="回应用户的售后问题", constraint="回答不超过80字,语气温暖专业", format_spec="首句先共情用户,再给出解决方案" ) tpl.add_example("你们的东西怎么坏了?", "非常抱歉给您带来困扰,我们马上为您处理退换货。") # 构建Prompt prompt = tpl.build("你们的快递三天了还没到!") print("----- 生成的Prompt -----") print(prompt) print("----- 模拟AI回复 -----") response = ask_with_prompt("mock_model", prompt) print(response) main()
build方法动态组装。它模拟了真实应用中Prompt模板管理的基本模式。class PromptTemplate定义了Prompt模板的类结构,把角色、任务、约束、格式等要素作为可配置的属性,就像一张可复用的“点菜单底稿”。add_example为模板添加Few-shot示例,使得生成的Prompt能包含示例引导,让AI输出更符合期望。parts.append(f"角色:{self.role}")按顺序组装Prompt的各个要素,保证结构清晰、逻辑完整。"\n".join(...)将示例列表转换成一个格式化的字符串,让每一个示例都换行显示,增强可读性。ask_with_prompt模拟模型调用层,真实使用时替换为API调用,比如openai.ChatCompletion.create()。tpl = PromptTemplate(...)创建模板实例时传入角色、任务、约束、格式,一步到位配置好Prompt的各个组件。tpl.build(...)动态构建最终的Prompt,这就是模板的核心价值——同一模板、不同用户输入,就能生成不同的定制化Prompt。
常见误区
误区我觉得把需求写得越详细越好,最好把所有背景、要求、注意事项全都写进Prompt里,这样AI肯定能理解我的意思。但有时候写了一大段,AI反而回答得乱七八糟。
正解Prompt并非越长越好。过长的Prompt会让AI“淹没”在信息中,分不清哪些是核心指令,且超出模型上下文窗口会导致早期信息被截断。好的Prompt应该精炼聚焦,保留与任务直接相关的要素即可。这就好比点菜时报出餐厅地址、厨师姓名、吃饭心情等无关信息,主厨反而会困惑你到底要点什么。
为何常见:大家总觉得信息越全越好,忽略了AI的注意力是有限资源。就像和人类沟通一样,关键信息不突出时,听众会抓不住重点。
误区既然示例能让AI学得更准,那我就给20个甚至50个示例吧!反正AI胃口大。但实际效果差强人意,有时给的示例多了,AI回答反而更乱了。
正解Few-shot的示例数量并非多多益善。研究表明,多数任务只需要2-5个精心挑选的示例就能达到效果峰值,继续增加示例会引入噪音,还可能超出模型上下文窗口。关键不是数量,而是示例的典型性和多样性,要覆盖问题空间中的主要情况。就像教学生做题,讲透3道典型例题比刷完30道相似题目更有效。
为何常见:受“量变产生质变”直觉影响,人们习惯用数量堆砌效果,忽略了示例质量与覆盖率的价值。
误区我一开始就学着用Few-shot,认为它肯定比Zero-shot好。于是不管什么任务都硬凑几个示例,但有些场景用Zero-shot其实更高效。
正解Zero-shot和Few-shot各有适用场景。当任务是常见问题(翻译、文本摘要)或模型预训练中已包含大量类似数据时,Zero-shot完全够用且更高效。而当任务有特定输出格式、特殊术语或专业风格要求时,Few-shot才有明显优势。就像点菜时,常见菜式你只需报菜名(Zero-shot),私房创意菜则需要给主厨看参考图(Few-shot)。
为何常见:教程常常强调Few-shot的强大,让学习者“重Few轻Zero”。但实际上,“简单的办法能解决,就别复杂化”是工程实践的基本原则。
误区加“请一步步思考”后,AI生成的内容明显变长了,回答速度也慢了,还是不加为好,直接要答案才是最高效的。
正解对于简单任务,确实没必要使用CoT。但对于需要多步推理的复杂任务(数学题、逻辑判断),CoT会显著提升准确性,省掉的是你反复追问、纠正的时间。所以,判断点不在速度快慢,而在任务复杂度。数学家解奥数题时不会先“急起来”直接写答案,而是先在草稿上演算——多花的时间换来的是更高的准确率。
为何常见:人们感性上对“慢”很敏感,但忽略了“出错返工”的时间成本远大于一步到位的推理时间。
面试题
Q1. Prompt设计中,角色设定的主要作用是?
- A.让AI更快速回复
- B.激活AI的特定领域知识← 正确答案
- C.减少AI的思考时间
- D.让AI变得更聪明
答案:B。角色设定的核心目的是让AI从相应的知识库中调取信息,用更贴合场景的风格与知识来回答。就像告诉主厨“这位客人是素食者”,主厨自然知道往素菜方向备餐。它不会提升AI的基础智力,不改变速度,也不能减少思考时间。
Q2. 以下哪个是Zero-shot提示的典型特征?
- A.提供多个输入输出示例
- B.在提示中展示推理路径
- C.不提供示例直接描述任务← 正确答案
- D.必须使用角色设定
答案:C。Zero-shot(零样本)指直接通过自然语言描述任务、不提供任何示例。它像你在一家新餐厅只看菜单描述来点菜。Few-shot才会提供示例,CoT展示推理路径,角色设定是可选组件而非强制项。
Q3. Few-shot提示中示例数量一般以多少为宜?
- A.越多越好,20个起步
- B.10个以上效果最佳
- C.1个就足够
- D.2-5个精选示例效果最佳← 正确答案
答案:D。研究表明多数任务2-5个高质量示例就能有很好效果。继续增加示例会引入噪音,还可能超出上下文窗口。示例的典型性与多样性比数量重要,教做菜时展示两三道代表菜品比堆砌二十道菜谱更实用。
Q4. 以下哪个Prompt符合“明确任务描述”原则?
- A.帮我搞一下
- B.写个东西发给你
- C.用50字以内总结这段会议纪要的3个决策点← 正确答案
- D.随便写点什么吧
答案:C。一个明确的任务描述包含具体动作(总结)、对象(会议纪要)、量化约束(50字、3个决策点),让AI没有猜测空间。其他选项都太模糊。这就像点餐时说“来点吃的”vs“来一份牛肉面、少辣、不要香菜”的区别。
Q5. Chain-of-Thought的核心思想是什么?
- A.让AI直接给出最终答案
- B.引导AI生成中间推理步骤← 正确答案
- C.提供更多背景资料
- D.使用更长的Prompt
答案:B。CoT的核心是让AI显式地生成一步步的中间推理过程,通过分解问题来降低错误率。它不是简单地加长Prompt或提供背景资料,而是诱导模型走入一条完整的逻辑链路,就像让学生把每一步推导都写在演算纸上,比直接抄一个答案更不容易出错。
Q6. Prompt迭代优化中,最科学的做法是什么?
- A.每次同时修改多个变量
- B.一次性推倒重写
- C.每次只改一个变量并观察效果← 正确答案
- D.凭感觉不断微调
答案:C。迭代优化中应遵循控制变量法,一次只调整一个要素,才能准确定位哪个改变带来了效果提升。如果同时调角色和任务,即使输出变好了,也不清楚是哪个因素起了作用。就像做菜实验,一次改变一个变量才能确保科学的因果判断。
Q7. 以下哪种方式最适合让AI输出专业风格的代码?
- A.直接给AI一句话要求即可
- B.设定角色并附带团队代码规范的Few-shot示例← 正确答案
- C.不加任何约束让AI自由发挥
- D.让AI先输出再用正则替换
答案:B。组合使用角色设定与Few-shot示例,才能有效地让AI对齐团队代码风格。单纯一句话或让AI自由发挥无法保证风格一致;正则替换只能修文字,无法修结构和风格。就像请人做饭——你既需要说明身份(“我是川菜师傅”),最好还拿出来几道成品菜图片作为范本。
Q8. 一个结构完整的Prompt应包含哪些要素?
- A.角色设定← 正确答案
- B.任务描述← 正确答案
- C.约束条件← 正确答案
- D.随机字符串
答案:ABC。一个结构良好的Prompt包括角色设定(告诉AI“你是谁”)、任务描述(“做什么”)和约束条件(“不能做什么/怎么做”)。随机字符串无关甚至有害,比如无意义的填充只会干扰AI的注意力。这就像一张实用的点菜单要有主厨信息、菜品要求、忌口说明,而不是附上一段废话。
Q9. 关于Chain-of-Thought的如下说法,哪些是正确的?
- A.适合简单直接的问答任务
- B.能提升数学推理题的正确率← 正确答案
- C.需要展示完整的中间推理步骤← 正确答案
- D.会让回答更长但未必更准
答案:BC。CoT最适用于需要多步推理的复杂任务(数学题、逻辑判断),通过显式写出中间步骤来降低计算错误。它不适合简单问答,这会让简单问题变得冗长。虽然回答更长了,但推理质量显著提高,不是“未必更准”。它类似于写详细的解题过程,对于困难题目确实能提高正确率。
Q10. 下列哪些情况适合用Few-shot提示?
- A.需要特定格式输出← 正确答案
- B.需要模仿某位作家的文风← 正确答案
- C.简单的通用翻译任务
- D.需要输出特定术语的专业任务← 正确答案
答案:ABD。Few-shot适用于需要格式对齐、风格模仿、专业术语统一等有明确参照要求的任务。通用翻译任务模型已训练得很好,Zero-shot就足够。示例就像参照图片,你需要定制风格和格式时参考图才派得上用场。