想象一家餐厅的后厨。主厨王师傅手艺精湛,但每次推新菜都很头疼:他闭门试炒十几遍,凭舌头和直觉调整盐、糖、火候,请几位熟客试吃,得到的反馈却是“还行”“再咸一点就好”。同一道菜,换一批客人、换一家门店,味道又不对了。调了三年菜,他攒下的经验全在脑子里,却说不清到底哪一步起了作用。 直到他把后厨改造成“自动化实验厨房”:每道菜出锅后,让食客按统一评分卡打分(口味、摆盘、上菜速度),打分结果喂给一个“试菜军师”——它能自动写出一批改良方案;再把最好吃的几款保留下来,随机穿插、交叉改良、循环迭代。三个月后,招牌菜的食客评分稳定提升了 20%,而且整套流程搬到新店也能复制。 这个故事的三步——建立量化评分、让 AI 自动生成候选方案、按分数进化迭代——正是 Prompt 自动化优化的核心。写提示词不再靠玄学手感,而是变成一场可量化、可复现的“菜谱育种实验”。本文就带你走进这座自动化厨房,看看厨师长如何用元提示、进化算法和 DSPy 这类工具,自动炼出最优提示词。
掌握 Prompt 自动化优化,你就能把调提示词从“玄学手感”升级为“可量化、可复现的工程能力”,这正是 AI 应用开发中提升模型输出质量与可控性的核心技能。
目录
可视化演示
展示Prompt自动化优化(APO)的三个核心方面:元提示迭代优化循环、DSPy模块化框架的声明式编程范式、以及任务性能/鲁棒性/效率三类评估指标体系。
本节配有交互动效(进入视口后自动加载,约 3KB)。
'+captions.meta+'
调优之痛——人工调 Prompt 的局限性
王师傅的直觉调味法有三痛:一次只能试一道参数;评价全凭熟客的印象分,没有统一量尺;换一个菜系就得从头摸索。更糟的是,他对“好吃”的定义总在变——同一道菜,今天觉得咸,明天觉得淡。他渐渐意识到,凭舌头和记忆的调优,本质上是一种低效的黑盒搜索。
换成大模型场景,这些痛点一模一样。第一,LLM 对措辞高度敏感:把“请解释”改成“请用一句话向 8 岁孩子解释”,输出质量可能天差地别,一个字一个标点都能影响结果。第二,同样的 Prompt 重复调用,输出也有随机波动,人工看一眼很难判断“变好了还是变坏了”。第三,人工评估靠主观印象,两个人对同一答案的评分可能完全不同。更要命的是,提示词的组合空间大得惊人——角色设定、措辞风格、示例数量、输出格式、思考步骤……每一维都有很多种选择。
王师傅终于明白:光靠舌头是尝不完千万种组合的,他需要一支能批量试菜、还能统一打分的“科学试菜团队”。
- 候选空间$\mathcal{P}$ 表示所有可能提示词组成的候选集合,$\prod$ 是连乘符号,用来统计组合总数。
- 维度取值数$|c_k|$ 表示第 $k$ 个维度的可选值数量,比如角色维度有 5 种、风格维度有 6 种。
- 组合爆炸$\prod_{k=1}^{n}$ 将所有维度的取值数乘起来,哪怕只有 8 个维度、每维 10 种选择,组合数也高达 $10^8$,靠人工一个个试完全不现实。
两大核心思想——把调参变成煮汤循环
王师傅改造厨房的第一步不是买新锅,而是建立流程:每锅汤出锅 → 食客按评分卡打分 → 记录分数与点评 → 下一锅针对弱点微调。就这样一锅一锅地“闭环滚动”,改良方向越来越清晰。他发现,只要每次改动都基于上一轮的量化反馈,哪怕每次只前进一小步,累积起来也非常可观。
这正是 Prompt 自动化优化的两大核心思想。第一是闭环迭代:候选提示词 → 在任务集上执行 → 按指标打分 → 根据分数生成新候选,周而复始。第二是指标导向:把“凭感觉调”变成“按目标寻优”的数学问题——定义一个损失函数,用搜索算法在提示词空间中寻找使损失最小的那个解。人工经验不再是每一步的必需品,而是变成评估指标和搜索空间的设计输入。
王师傅的“一锅一锅滚动”从此变成了可记录、可比较的科学循环。接下来他要解决两个问题:谁来替他想改良方案?怎么批量尝试海量组合?
- 最优提示词$p^{*}$ 是我们要寻找的最优提示词,$\arg\min$ 表示“让后面式子取最小值的那一个 $p$”。
- 考题样本$(x_i, y_i)$ 是第 $i$ 条“菜谱考题”——输入问题 $x_i$ 与参考答案 $y_i$,总共准备 $N$ 条,构成评估集。
- 模型输出与损失$f(x_i;\, p)$ 是在提示词 $p$ 的引导下模型对 $x_i$ 的输出,$\ell(\cdot)$ 是损失函数,度量输出与参考答案的差距,差距越大分数越低。
- 平均与搜索$\frac{1}{N}\sum_{i=1}^{N}$ 把所有考题的损失取平均,优化算法在空间 $\mathcal{P}$ 中不断尝试,让平均损失逐渐减小。
元提示驱动优化——让 AI 替你写提示词
王师傅不亲手写每一道改良方案了,他写了本《试菜军师手册》:手册里描述任务目标、评分标准,还记录了历次试菜的分数和点评,要求年轻厨师照着手册写出 5 个改良版;下一轮再根据新分数更新手册。这样一来,写方案的速度一下子快了十倍,而且每轮方案都带着上轮的教训。
这份“写提示词的提示词”,就是元提示(meta-prompt)。普通 Prompt 直接回答任务问题;而元提示的输出是另一个 Prompt。它的输入通常包含四部分:任务描述、评估指标说明、历史候选及得分、当前最优提示词,然后要求 LLM 综合分析并生成改进后的候选。这形成了“用 LLM 调 LLM”的自举式优化环——模型既是做题的人,也是出题的军师。
有了这本会自动更新的手册,王师傅的厨房第一次实现了“军师批量出方案、食客统一打分”的流水作业。但元提示的生成思路终究受单个模型想象力的限制,想要探索更广的组合,还得靠下一节的大规模“锦标赛”。
- 新提示词$p^{(t+1)}$ 是第 $t+1$ 轮生成的新候选提示词,$p^{(t)}$ 是当前轮的最优提示词,新方案以它为基础改进。
- 历史反馈$\{(p_j,\, s_j)\}_{j=1}^{t}$ 是从第 1 轮到第 $t$ 轮全部(候选提示词,得分)的历史记录,相当于“过去每一道菜的评分卡”。
- 军师输入输出$\text{LLM}_{\text{meta}}$ 是负责生成提示词的“军师大模型”,它读入任务描述 task、评估指标 metric、历史反馈,输出一个自然语言形式的改良版提示词。
进化算法搜索——让候选提示词适者生存
王师傅把试菜办成了“厨艺锦标赛”:海选 100 道随机变异的新菜,食客统一打分;保留前 20% 的高分菜;让它们互相“结亲”(交叉)并随机加料(变异),重新凑满 100 道进入下一轮;循环几十代后,冠军菜品越来越逼近最优。他不理解每道菜为什么好吃,但“保留好吃的、让它们杂交变异”这个土办法居然非常有效。
这就是进化算法在 Prompt 优化中的应用,流程分四步:初始化种群(随机生成一批候选提示词)→ 适应度评估(用评估指标给每个候选打分)→ 选择(保留高分个体)→ 交叉与变异(生成下一代)。相比元提示逐轮改进,进化算法不受单个 LLM 生成思路的限制,种群多样性让它能在更广阔的组合空间里搜索,同时天然适合并行批量评估。
接下来是产生新个体的两个算子,通常组合使用:
王师傅发现:这套“优胜劣汰”的循环听起来像土办法,却是被反复验证的强搜索策略——哪怕没人懂菜谱原理,冠军菜品也会自己冒出来。
- 交叉$\text{crossover}(p_a, p_b)$ 把两个高分候选的片段(比如 A 的角色设定、B 的风格词)随机拼接成新候选,相当于两道高分菜互相借鉴配方。
- 变异$\text{mutate}(\cdot)$ 以一定概率随机替换新候选中的某个片段(如换一个示例、换一种措辞),维持种群多样性,防止所有个体变成“近亲”。
- 下一代$p'$ 是产生的新一代候选,重复“评估—选择—交叉—变异”直到分数收敛或达到代数上限。
评估指标设计——好吃不好吃,要有统一量尺
王师傅把评分卡设计成:口味 40 分、摆盘 30 分、上菜速度 30 分;再请三位风格不同的食客分别打分取平均,抵消个人口味偏差。但他很快发现,评分卡定得不对,后面的进化全白费——“好评多的菜”不等于“客人真正想吃的菜”。指标就是优化的北极星,方向错了,跑得越快错得越远。
评估指标通常分三类。任务指标:有标准答案的任务用准确率、F1、精确匹配(EM)等硬指标,客观直接;相似度指标:生成任务没有唯一答案时,用 BLEU、ROUGE 或语义相似度衡量模型输出与参考回答的接近程度;LLM 评判器:让一个强大的 LLM 按评分规则打分并给出理由,适合开放生成任务,但它有位置偏好、较长答案偏好等偏差,需要多次采样取平均、打乱顺序等技巧来校准。
评分卡一换,进化方向立刻改变。王师傅由此明白一个道理:指标定义是自动化优化中最需要人工经验的地方——“自动”绝不等于“不用思考”。
- 综合得分$\text{Score}(p)$ 是候选提示词 $p$ 的综合评分,由多个维度的指标加权相加得到,供优化器比较优劣。
- 三个子指标$\text{Acc}(p)$ 是任务准确率,$\text{Sim}(p)$ 是与参考答案的相似度,$\text{Judge}(p)$ 是 LLM 评判器给出的主观质量分。
- 权重约束$w_m$ 是各指标权重,$\sum_{m=1}^{3} w_m = 1$ 表示权重加和为 1,比如口味 0.4、摆盘 0.3、速度 0.3——权重怎么定,考验的就是人的领域经验。
DSPy 工具实战——把整套流程装进标准化厨房
王师傅不再亲自搭试菜台了,他直接购入一间“智能中央厨房”:只需声明每道菜的输入输出(签名)、把加工环节拼成流水线(模块),系统就自动完成“批量试菜—打分—调参”。这台设备就是 DSPy。他只需要备好食材(数据)和品控标准(指标),剩下的事交给机器。
DSPy 是斯坦福开源的提示优化框架,核心是三大抽象:Signature(签名),用自然语言声明模块的输入和输出字段,比如“输入:问题 → 输出:答案”;Module(模块),封装一次带签名的大模型调用,是流水线上的一个加工环节;Optimizer(优化器),在带标注的数据集上自动优化提示词与示例,替代手工调 Prompt。完整流程为:定义签名 → 构建少量标注数据 → 定义指标 → 选择优化器(如 BootstrapFewShot 自动补充示例、MIPRO 同时搜索提示与示例组合)→ compile 编译并导出部署。
有了中央厨房,王师傅的精力从“每道菜都盯着改”解放出来,变成“一次设定、批量自动改良”,新来的厨师照着签名和指标也能快速上手——这正是 DSPy 这类工具最大的价值。
- 最佳配置$\theta^{*}$ 是优化器找到的最优配置(提示词与示例的组合),$\Theta$ 是全部可能配置组成的空间。
- 训练数据$(x, y)$ 是带标注的小样本数据 $D_{\text{train}}$ 中的一条“考题”,$f_{\theta}(x)$ 是在配置 $\theta$ 下模型对输入 $x$ 的输出。
- 最大化指标$\arg\max \sum \text{metric}$ 表示调整 $\theta$ 让全体训练样本的评估分总和最大,优化器用前几节的搜索方法完成这个寻优过程。
效果优势分析——自动化为什么能“吊打”手写
三个月后,王师傅的招牌菜食客评分从 78 分升到 94 分;更让他惊喜的是,这套自动试菜流程搬到新店后,只换食材不换流程,新店菜品第一周就达到老店经营两个月的水平。他把这套方法称作“可复制的厨艺”——经验不再锁在个人脑子里,而是沉淀成了流程。
自动化优化在效果上常常超越人工手写 Prompt,原因有四。第一,它能高效探索人类想不到的组合:进化与元提示在海量空间中并行搜索,覆盖面远超个人灵感。第二,每次迭代都有量化反馈,不会被“感觉变好了”误导,方向持续修正。第三,流程可复用、可迁移:换一个任务,只要换数据和指标,框架原样搬走。第四,输出更可控:用指标锁死“什么是好”,降低模型输出漂移。当然代价也很明确——API 调用量上升、需要设计良好的评估集,这是用算力换人力。
王师傅感叹:以前把成功归功于“手感天赋”,现在才明白——把试错变成可量化的流程,才是真正的天赋。
- 提升幅度$\Delta$ 表示自动化优化相对人工 Prompt 的得分提升百分比,实践中常见 5% 到 30% 的提升。
- 得分差$\text{Score}(p_{\text{opt}}) - \text{Score}(p_{\text{manual}})$ 是优化后提示词与人工编写提示词的得分差,可能为正也可能为负——说明自动化并不保证必胜。
- 归一化比较除以人工分数再乘 100%,把绝对分差转化为相对提升率,方便在不同任务、不同评分尺度之间横向比较。
落地避坑指南——别把厨房烧了
王师傅也栽过跟头:有一次评分卡只请了一位爱吃辣的食客,结果全店菜品都往辣的方向进化;又有一次他在同一桌客人身上反复调优,换一桌客人口味就全崩;还有一次测试样本太少,所谓冠军菜其实只是运气好。他把这些教训刻在厨房墙上:工具越好用,翻车越快。
落地时的四大坑必须警惕。评估偏差:LLM 评判器偏爱更长、更结构化的答案,还会受答案顺序影响,需要固定候选顺序、多次采样取平均来校准。过拟合:优化在训练集上分数暴涨、换到独立测试集就缩水,因此必须预留不参与优化的测试集做最终验证。小样本局限:只有几十条样本时,进化随机性占主导,同一流程多跑几次结果可能差异很大,需要重复运行取稳定结果。工具选型:DSPy 适合完整的框架化流程,PromptTools 等轻量工具适合快速批量对比评估,按需选择而不是盲目跟风。
王师傅把教训总结成一句话:自动化的质量上限,取决于评分卡和测试集的质量——机器再快,方向错了也白搭。
- 过拟合程度$\text{Overfit}$ 数值化“优化是否只在训练数据上有效”,数值越大越危险。
- 训练集表现$\text{Score}_{D_{\text{train}}}(p^{*})$ 是最优提示词在参与优化的数据上的得分,通常因为“记住了考题”而虚高。
- 测试集落差$\text{Score}_{D_{\text{test}}}(p^{*})$ 是同一提示词在从未参与优化的独立数据上的得分,两者相差越大,说明过拟合越严重,需要扩充数据或缩小搜索空间。
AI 应用场景
智能客服话术自动优化
阶段:模型调优(Prompt 优化)
解决的问题:传统客服 Prompt 由运营手工编写,“请退款”和“请帮我退款”在模型眼里的差别可能很大,每次新活动上线前都要靠人反复试错,效率低且效果不稳定。用 DSPy 加进化算法,把历史工单作为评估集,用“能否正确判断退款/换货意图”作为指标,自动搜索最优话术模板与示例组合,把人工经验驱动的调优变成可量化的优化问题。
具体案例:某电商客服机器人接入自动化优化流程后,意图识别 F1 从 0.82 提升到 0.90;每次大促改版只需要重新 compile 一次,从人工调两天缩短到两小时,且效果可复现。
合同关键信息抽取的提示词批量寻优
阶段:效果评估与迭代
解决的问题:从合同中抽取“甲方、金额、截止日期”等结构化字段,手写 Prompt 在长合同上容易漏字段,人工反复调整成本很高。用字段级 F1 作为评估指标,配合元提示让 LLM 自动生成改进版提示词,迭代多轮后召回率显著提升,且每轮改进都有量化依据。
具体案例:某法务科技团队用 PromptTools 对 200 条标注合同做批量评估,自动对比 30 个候选 Prompt 的字段抽取效果,选出最优方案上线后漏字段率下降 40%,模型输出格式的稳定性也明显改善。
Python 演示
import random ROLES = ["资深专家", "小学老师", "编程顾问", "产品经理", "科普作家"]STYLES = ["简洁", "详细", "分步骤", "通俗易懂", "逻辑清晰"]TEMPLATES = [ "你是{role}。请{style}地回答:{question}", "请用{role}的视角,{style}回答:{question}", "假设你是{role},回答时{style},题目是:{question}",]QUESTION = "梯度下降是什么?" def build_prompt(ind): role_i, style_i, temp_i = ind return TEMPLATES[temp_i].format(role=ROLES[role_i], style=STYLES[style_i], question=QUESTION) def evaluate(prompt): score = 40.0 if "资深专家" in prompt: score += 15 if "分步骤" in prompt: score += 12 if "通俗易懂" in prompt: score += 10 if "逻辑清晰" in prompt: score += 8 if "举例子" in prompt: score += 6 return max(0.0, min(100.0, score)) def mutate(ind): role_i, style_i, temp_i = ind if random.random() < 0.25: role_i = random.randrange(len(ROLES)) if random.random() < 0.30: style_i = random.randrange(len(STYLES)) if random.random() < 0.15: temp_i = random.randrange(len(TEMPLATES)) return (role_i, style_i, temp_i) def crossover(a, b): return (a[0], b[1], a[2]) def evolve(pop, keep=5, rounds=50): for _ in range(rounds): scored = sorted(((evaluate(build_prompt(ind)), ind) for ind in pop), key=lambda x: x[0], reverse=True) pop = [ind for _, ind in scored[:keep]] while len(pop) < keep * 4: a, b = random.sample(pop[:keep], 2) pop.append(mutate(crossover(a, b))) scored = sorted(((evaluate(build_prompt(ind)), ind) for ind in pop), key=lambda x: x[0], reverse=True) return scored[0] def main(): random.seed(42) pop = [] for _ in range(20): ind = (random.randrange(len(ROLES)), random.randrange(len(STYLES)), random.randrange(len(TEMPLATES))) pop.append(ind) score, best = evolve(pop) print("进化搜索完成,最高分:%.1f" % score) print("最优提示词:", build_prompt(best)) if __name__ == "__main__": main()
ROLES = [...]` 与 `STYLES = [...]`、`TEMPLATES = [...]定义搜索空间的三个维度,相当于菜谱可变的“角色、风格、句式”三类配料。def build_prompt(ind):把(角色、风格、模板)编号组合还原成完整提示词文本,即候选“编译”过程。def evaluate(prompt):模拟 LLM 评判器给候选打分,分数越高代表“越好吃”,这里用关键词规则近似真实指标。scored = sorted(...)对整代种群按分数降序排列,对应进化算法的“适应度评估”步骤。pop = [ind for _, ind in scored[:keep]]只保留分数最高的前 keep 个个体,其余全部淘汰,即“选择”。random.sample(pop[:keep], 2)从精英中随机挑选两个亲本,为交叉和变异准备素材。pop.append(mutate(crossover(a, b)))交叉互换亲本片段、变异随机改动局部,生成新候选并补满种群。random.seed(42)固定随机种子,让整个过程可重复复现,这也是自动化优化相对人工调优的重要优势。
常见误区
误区学会了自动化优化,以后写提示词就全自动了,我只需要按一下按钮,不需要懂任务、不需要懂评估,AI 会把一切都搞定。
正解自动化优化替代的是“手工试错”这个环节,但“定义什么是好”(评估指标)和“划定搜索范围”(候选维度)仍然高度依赖人工。就像王师傅让机器批量试菜,但“吃辣还是吃甜”必须由他拍板——指标定错了,优化的方向就全错了,跑得越快错得越远。
为何常见:工具宣传通常强调“自动”二字,容易让人误以为整条链路都不需要人了;实际上指标设计和数据准备才是这类项目里最难、最见功力的部分。
误区跑完进化算法拿到最高分提示词,那它一定就是所有场景下的最优解,可以直接上线,不用再验证。
正解分数最高只代表在“所用评估集 + 所用评估器”上最高,它可能在训练分布上过拟合,也可能被 LLM 评判器的偏差左右。上线前必须在独立测试集上验证、观察真实业务指标。分数高不等于真实好用——如果试菜团队全是四川人,冠军菜谱必然是辣的,换一批客人就翻车。
为何常见:人们习惯把数值分数当成绝对真理,忽略了指标定义和样本分布本身的主观性,忘了“评估什么就优化什么”这一层。
误区只要进化代数跑得足够多,算法一定会收敛到全局最优的提示词,剩下的只是时间问题。
正解进化算法是随机启发式搜索,完全可能陷入局部最优,尤其在变异率低、种群多样性差的时候。而且提示词空间是离散的、不平滑的,相邻两个候选的分数可能突变,没有任何连续性可以依赖。实践中要靠多次重启、增大种群规模、加入多样性控制来缓解,而不是盲目堆代数。
为何常见:“适者生存”听起来像必然收敛的规律,但算法只能保证“一代比一代好的概率更大”,从不保证“一定最好”。
误区DSPy 就是帮我写几个漂亮的提示词模板,跟普通模板库差不多,只是包装得好看一点。
正解DSPy 的核心是“程序化声明 + 自动化优化”:它把提示词变成可编译的模块,优化器会在数据集上反复迭代提示词和示例,甚至能自动补充 Few-shot 示例。它不是给你一个静态模板,而是一个可编程、可优化、可部署的执行框架——就像中央厨房不只是一张菜谱,而是把“试菜—打分—调参”全流程自动化了。
为何常见:初次接触时最容易只看到“声明签名、自动生成 Prompt”的表面形式,忽略了其背后的优化闭环和编译机制。
面试题
Q1. 关于 Prompt 自动化优化的核心目标,下列说法正确的是?
- A.用 AI 自动写出一篇完整文章
- B.自动搜索最优提示词组合并量化评估← 正确答案
- C.把中文提示词翻译成多种语言
- D.让大模型完全不依赖任何人工输入
答案:B。自动化优化的核心是把人工试错转变为“搜索 + 量化评估”的闭环,目标是找到最优提示词组合。A 是内容生成,C 是翻译,D 是过度理想化——评估指标和搜索空间仍需人工设计。
Q2. 元提示(meta-prompt)在优化流程中扮演的角色是?
- A.替代最终答案直接输出给用户
- B.指导大模型生成并改进候选提示词← 正确答案
- C.负责计算模型训练时的损失函数
- D.只在模型部署阶段才发挥作用
答案:B。元提示的输出是“另一个提示词”,它像军师一样指导大模型基于任务、指标和历史反馈生成改良候选,作用在优化环节而非最终回答或训练环节。
Q3. 进化算法中常用的算子包括以下哪些?
- A.选择保留下分数高的个体← 正确答案
- B.交叉互换两个候选的片段
- C.变异随机调整候选的局部← 正确答案
- D.反向传播修改模型全部权重
答案:AC。进化算法三大算子是选择、交叉、变异,它们作用在提示词候选上。反向传播属于神经网络训练,不在提示词搜索的算子里。
Q4. 在优化循环中,评估指标的主要作用是什么?
- A.为候选提示词打分以便比较优劣← 正确答案
- B.自动生成更多模型的训练样本
- C.决定大模型参数量的大小规模
- D.压缩提示词减少输入的长度
答案:A。评估指标就是“食客评分卡”,给每个候选提示词一个量化分数,让优化器知道谁更好、该保留谁。它不负责生成样本、决定参数量或压缩文本。
Q5. 下列哪一项不属于 DSPy 框架的核心抽象?
- A.Signature 签名声明输入输出
- B.Module 模块封装提示调用
- C.Optimizer 优化器自动调提示
- D.Compiler 编译器与 C 语言相同← 正确答案
答案:D。DSPy 的三大核心抽象是签名、模块、优化器。虽然它内部有编译过程,但这里的 Compiler 并非 C 语言编译器,选项 D 的说法是错误的。
Q6. 使用 LLM 作为评判器(LLM-as-judge)时,哪些做法能减少偏差?
- A.给出清晰可操作的评分标准← 正确答案
- B.多次独立采样后取平均分← 正确答案
- C.让被优化的模型自评自答
- D.完全不定义指标凭直觉打分
答案:AB。清晰评分标准能统一评判尺度,多次采样取平均能抵消随机波动和位置偏差。让被优化模型自评会产生利益冲突式偏差,完全不定义指标则失去比较依据。
Q7. 关于 Prompt 自动化优化的过拟合风险,正确的理解是?
- A.优化出的提示词在测试分布上泛化更差← 正确答案
- B.优化过程完全不需要预留验证集
- C.过拟合只出现在超大模型训练中
- D.增加更多进化轮数必然缓解过拟合
答案:A。过拟合指最优提示词记住了训练集“考题”而在新数据上表现缩水,因此必须留独立测试集验证。B 会导致无法发现过拟合,C 把范畴错限在训练侧,D 中轮数过多反而可能加剧过拟合。
Q8. 进化算法中“适应度”的含义是什么?
- A.候选提示词在评估指标上获得的得分← 正确答案
- B.候选提示词文本长度的字符数量
- C.模型训练迭代的总步数统计值
- D.某个词在语料中出现的频率值
答案:A。适应度就是候选在评估指标上的得分,相当于“食客评分”。文本长度、训练步数、词频都不是适应度的定义。
Q9. 相较人工调优,Prompt 自动化优化的优势体现在哪些方面?
- A.能在海量组合空间中高效批量探索← 正确答案
- B.优化过程可重复结果可量化比较← 正确答案
- C.完全无需人工定义任何评估指标
- D.整个流程可迁移到新任务与场景← 正确答案
答案:ABD。自动化能并行探索海量组合、每步有量化反馈、流程可复现可迁移。但 C 错误——指标定义恰恰是自动化优化中最依赖人工经验的一环。
Q10. 使用 DSPy 搭建优化流程的第一步通常是?
- A.定义数据与评估指标并准备样本← 正确答案
- B.直接上线验证最终效果是否达标
- C.手工打磨一个固定的最优提示词
- D.修改模型的权重参数进行微调
答案:A。DSPy 的流程是先准备带标注的小样本数据和评估指标,再定义签名、选优化器、compile。B 跳过了构建与优化,C 是优化要替代的人工做法,D 属于模型微调而非提示优化。