《Prompt Engineering》

报告地址:提示词工程白皮书

这份《Prompt Engineering》白皮书是谷歌2025年发布的权威指南,涵盖提示工程的核心概念、技术、配置和最佳实践,非常适合从零开始系统学习。以下是为你梳理的 学习路径+核心知识点+实操建议,帮你高效掌握:

一、先搞懂:什么是提示工程?(基础认知)

核心定义

  • 提示(Prompt)是大语言模型(LLM)的输入,用于引导模型生成特定输出(文本、代码、答案等)。
  • 提示工程(Prompt Engineering):设计高质量提示,优化模型配置和表达,让LLM更精准、高效地完成任务的迭代过程。
  • 关键前提:无需成为数据科学家/ML工程师,任何人都能学习,但需兼顾模型特性、表达逻辑和任务需求。

为什么重要?

  • 劣质提示会导致模型输出模糊、错误或无关内容;
  • 好的提示能让普通LLM发挥超预期效果,甚至媲美微调模型。

二、第一步:掌握LLM输出配置(控制模型"行为")

在写提示前,先了解模型的核心配置,直接影响输出效果:

配置项 作用 关键参数&用法
输出长度(Token Limit) 控制生成内容的长度 - 过长:耗时、费成本;过短:内容截断(比如ReAct会产生无用token); - 需结合任务:分类任务设5-10Token,长文本生成设1024+。
温度(Temperature) 控制输出随机性(0-∞) - 0:确定性输出(贪婪解码,选概率最高token,适合数学、事实问答); - 0.1-0.2:低随机性(适合分类、总结); - 0.9+:高随机性(适合创意写作、 brainstorm)。
Top-K/Top-P(采样控制) 限制候选token范围,平衡多样性 - Top-K:选前K个高概率token(K=1=贪婪解码,K=30-40适合平衡创意); - Top-P:选累积概率≤P的token(P=0.95常用,避免低概率token); - 实操:默认0.2温度+0.95Top-P+30Top-K,创意任务调至0.9温度+0.99Top-P+40Top-K。

避坑点

  • 温度过高(>10)或Top-K/Top-P设为最大值:输出杂乱无章;
  • 温度0时,Top-K/Top-P失效;Top-K=1时,温度/Top-P失效;
  • 注意"重复循环bug":低温度可能导致重复文本,高温度可能随机循环,需微调参数平衡。

三、核心技能:10大提示技术(按"易→难"排序)

每个技术都有明确适用场景,建议先掌握前5个基础技术,再进阶复杂技术:

1. 零样本提示(Zero-Shot)------ 入门首选

  • 定义:只给任务描述,不给示例(适合简单、通用任务);
  • 示例:Classify movie reviews as POSITIVE, NEUTRAL or NEGATIVE. Review: "Her is a disturbing masterpiece." Sentiment:
  • 适用场景:文本分类、简单问答、指令执行(如"总结这段文字");
  • 关键:指令清晰,输出格式明确(比如要求大写标签)。

2. 单样本/少样本提示(One-Shot/Few-Shot)------ 解决复杂任务

  • 定义:给1个(单样本)或3-5个(少样本)示例,引导模型学习模式;
  • 示例:Parse pizza orders to JSON: EXAMPLE: 我要小份芝士披萨 → {"size":"small","ingredients":["cheese"]}。用户输入:我要中份番茄+火腿披萨 → JSON:
  • 关键:示例要"相关、多样、含边缘案例"(比如披萨订单示例包含"双配料""特殊要求");
  • 适用场景:格式转换(JSON/表格)、复杂分类、自定义任务(如产品命名规则)。

3. 系统/角色/上下文提示(System/Role/Contextual)------ 精准引导模型定位

三者常结合使用,核心是给模型"明确身份/背景/规则":

类型 核心作用 示例
系统提示(System) 定义任务规则、输出格式 Classify reviews, return JSON: {"sentiment":"","name":""}(强制JSON输出);
角色提示(Role) 给模型分配身份,控制语气 Act as a travel guide for Amsterdam, suggest 3 museums.(旅行向导角色);
上下文提示(Contextual) 提供背景信息,消除歧义 Context: 为80年代街机游戏博客写文章 → 推荐3个选题(上下文限定"复古游戏")。
  • 适用场景:客服对话(角色=客服)、专业内容生成(角色=医生/程序员)、需要结构化输出的任务(系统提示强制格式)。

4. 分步提示(Step-Back)------ 提升复杂任务准确性

  • 定义:先让模型思考"通用问题"(激活背景知识),再解决"具体问题";
  • 示例:
    第一步(通用问题):What are 5 key settings for a challenging FPS level?(先明确FPS关卡的核心场景);
    第二步(具体任务):Use one setting to write a FPS level storyline(基于通用答案生成具体内容);
  • 优势:减少偏见,激活模型知识库,让输出更有深度;
  • 适用场景:创意写作、复杂推理、专业内容生成(如"写AI伦理相关文章",先问"AI伦理的核心争议点")。

5. 思维链提示(CoT)------ 解决数学/逻辑推理问题

  • 定义:让模型生成"推理步骤",再给答案(弥补LLM直接计算/推理的缺陷);
  • 反例(无CoT):我3岁时伴侣是我3倍年龄,我现在20岁,伴侣多少岁? → 模型可能答63(错误);
  • 正例(CoT):Let's think step by step: 1. 我3岁时,伴侣年龄=3×3=9岁;2. 年龄差=9-3=6岁;3. 我20岁时,伴侣=20+6=26岁
  • 进阶:结合少样本(给1个推理示例),效果更好;
  • 适用场景:数学计算、逻辑推理、代码调试、复杂决策(如"是否投资某项目,列出分析步骤");
  • 最佳实践:温度设为0(确保推理步骤稳定),答案放在推理后。

6. 自一致性(Self-Consistency):用"多数投票"提升推理可靠性

自一致性是对思维链(CoT) 的优化技术,核心解决CoT"单一推理路径可能出错"的问题,通过生成多条推理路径并取多数结果,提升复杂任务的准确性。

(1)核心定义与解决的痛点

  • 定义:通过"多轮采样生成推理路径+多数投票选最优答案"的方式,降低LLM单一推理的随机性误差,尤其适用于"存在明确正确答案但推理易出错"的任务(如逻辑判断、风险分类)。
  • 痛点解决:LLM的CoT技术依赖"贪心解码"(只选概率最高的推理步骤),若某一步推理偏差,会导致最终答案错误;自一致性通过"多路径验证",让正确答案在多数推理中浮现。

(2)工作原理(三步流程)

文档明确其标准流程,需结合高温度配置 (鼓励推理多样性)和结果统计

  1. 生成多样推理路径:对同一问题,用高温度(如0.9-1.0)多次调用LLM生成推理过程(每次推理步骤可能不同);
  2. 提取答案:从每条推理路径中提取最终结论(如"IMPORTANT"或"NOT IMPORTANT");
  3. 多数投票:选择出现次数最多的答案作为最终结果(视为"最一致、最可靠"的结论)。

(3)实操案例(文档中邮件分类任务)

任务:将一封"黑客报告网站漏洞"的邮件分类为"IMPORTANT"或"NOT IMPORTANT"(邮件语气友好,易误导LLM)。

  • 多轮推理示例
    • 尝试1:认为"漏洞是安全风险,需紧急处理"→ 结论"IMPORTANT";
    • 尝试2:认为"邮件无紧迫感、未要求行动"→ 结论"NOT IMPORTANT";
    • 尝试3:认为"漏洞可执行恶意代码, sender身份不明"→ 结论"IMPORTANT";
  • 结果:"IMPORTANT"出现2次,"NOT IMPORTANT"出现1次,最终选择"IMPORTANT",符合实际安全需求。

(4)适用场景与优缺点

  • 适用场景:逻辑分类(如邮件重要性、风险等级)、数学计算验证、事实性推理(如"某事件是否符合政策");
  • 优点:无需微调,仅通过多轮采样提升准确性;能降低LLM的"幻觉"和"单一推理偏差";
  • 缺点:成本高(需多次调用LLM,消耗更多Token和时间);仅适用于"有明确正确答案"的任务,创意类任务(如写作)不适用。

7. Tree of Thoughts(ToT):用"多路径探索"解决复杂决策

ToT是对CoT的泛化升级,将"单一线性推理链"扩展为"多分支推理树",让LLM像人类一样"探索不同解决思路",适用于需要"分步决策、多方案评估"的复杂任务。

(1) 核心定义与核心差异

  • 定义:通过构建"思维树"(每个节点代表一个推理步骤/中间结论),让LLM在每个节点探索多条可能的推理路径,最终筛选出最优路径,解决CoT"线性推理无法回溯"的问题。

  • 与CoT的关键差异

    维度 思维链(CoT) Tree of Thoughts(ToT)
    推理结构 单一线性链(A→B→C→答案) 多分支树(A→B1/A→B2→C1/C2→答案)
    路径探索 无法回溯,错一步则全错 可在每个节点探索多路径,灵活调整
    适用任务 简单推理(如数学计算) 复杂决策(如规划、创意设计)
    中间结论利用 仅用最终推理链 评估每个节点的中间结论,剪枝无效路径

(2)工作原理(四步流程)

文档强调ToT的核心是"维护思维树+动态剪枝":

  1. 问题拆解:将复杂任务拆分为多个"中间步骤"(如"写小说"拆分为"设定世界观→设计角色→规划剧情→填充细节");
  2. 生成思维树:对每个中间步骤(树节点),生成多条可能的推理路径(如"世界观设定"可生成"科幻/奇幻/复古"3条路径);
  3. 评估与剪枝:LLM对每个节点的推理路径进行"有效性评估"(如"复古世界观是否符合小说主题"),剔除无效路径(如"科幻与主题不符");
  4. 筛选最优路径:遍历修剪后的思维树,选择逻辑最连贯、结果最优的路径,生成最终答案。

(3)实操案例(文档隐含场景:游戏关卡设计)

任务:为第一人称射击(FPS)游戏设计一个"有挑战性的关卡剧情"。

  • ToT推理过程
    1. 中间步骤1(关卡场景选择):生成"废弃军事基地/赛博朋克城市/水下研究设施"3条路径;
    2. 评估剪枝:剔除"废弃军事基地"(过于常见,缺乏新意),保留后两者;
    3. 中间步骤2(敌人设计):对"水下研究设施"生成"变异海洋生物/失控机器人"2条路径;
    4. 评估剪枝:选择"变异海洋生物"(与水下场景更契合,增加沉浸感);
    5. 最终路径:水下研究设施→变异海洋生物→需要潜水装备+解谜→关卡剧情(如"玩家潜入深海实验室,对抗变异生物,破解洪水危机")。

(4)适用场景与关键优势

  • 适用场景:复杂规划(如项目管理计划、旅行路线设计)、创意创作(如小说/剧本分镜)、多步骤决策(如产品设计方案评估);
  • 关键优势
    • 灵活性高:可回溯、调整推理路径,避免CoT"一步错全错";
    • 深度推理:能处理"需要多方案对比"的任务,结果更全面;
    • 可解释性强:每个节点的推理过程和评估逻辑可追溯,便于调试。

8. ReAct:用"推理+工具"解决"知识不足"问题

ReAct是结合"自然语言推理"与"外部工具调用"的范式,让LLM像人类一样"思考→行动→获取信息→再思考",解决LLM"知识过时、无法获取实时数据"的核心痛点。

(1)核心定义与核心价值

  • 定义:通过"思维-行动-观察"循环(Thought→Action→Observation),让LLM先推理"需要什么信息",再调用外部工具(如搜索、数据库、代码解释器)获取信息,最后基于信息生成答案,实现"Agent化"(自主完成复杂任务)。
  • 核心价值:突破LLM"静态知识"局限------LLM的训练数据有时间截止(如2023年),无法获取实时信息(如2025年事件)或特定领域数据(如某公司财报),ReAct通过工具调用填补这一空白。

(2) 工作原理(循环流程)

文档以"查询Metallica乐队成员子女总数"为例,明确ReAct的标准循环:

  1. 思维(Thought):分析问题,确定"需要先知道Metallica成员名单,再查每个成员的子女数量,最后求和";
  2. 行动(Action):调用工具(如SerpAPI搜索),输入"Metallica乐队成员名单";
  3. 观察(Observation):获取工具返回结果(如"成员包括James Hetfield、Lars Ulrich、Kirk Hammett、Robert Trujillo");
  4. 循环迭代 :基于观察结果继续推理→行动→观察:
    • 思维:"需查James Hetfield的子女数量"→行动:搜索→观察:"3个孩子";
    • 思维:"需查Lars Ulrich的子女数量"→行动:搜索→观察:"3个孩子";
    • 以此类推,直到获取所有成员数据;
  5. 生成答案:汇总观察结果(3+3+2+2=10),返回最终答案。

(3)实操关键(文档强调的技术细节)

  • 工具配置:需结合框架(如LangChain)加载工具(如搜索工具SerpAPI、代码工具Python Interpreter),并配置API密钥(如SerpAPI密钥);
  • 提示设计:必须在提示中明确"允许调用工具"和"输出格式"(如"先思考需要什么信息,再用Action: [工具名] + Input: [查询词] 格式调用工具");
  • 结果处理:需自动保存"思维-行动-观察"历史,供LLM后续推理使用;若工具返回无效信息(如搜索结果为空),需让LLM重新调整查询词(如"Metallica current members 2025")。
(4) 适用场景与优缺点
  • 适用场景:实时信息查询(如"2025年奥斯卡最佳影片")、数据计算(如"某股票近30天涨幅")、跨平台交互(如"调用数据库查询用户信息")、复杂工具任务(如"用代码生成图表");
  • 优点:突破LLM知识局限,获取实时/特定数据;可自主完成"推理+执行"全流程,实现Agent化应用;
  • 缺点:依赖外部工具(需配置API、处理工具故障);学习成本高(需掌握LangChain等框架);仅适用于"需要外部信息"的任务,纯逻辑推理(如数学题)不适用。

9. 自动提示工程(APE)------ 批量生成优质提示

  • 定义:用LLM生成多个候选提示,通过BLEU/ROUGE评分筛选最优提示;
  • 示例:为T恤电商聊天机器人生成提示→ 让LLM生成10种用户可能的提问方式(如"我要小码MetallicaT恤""Can I order a small Metallica t-shirt?")→ 筛选最贴合用户习惯的提示;
  • 适用场景:大规模应用(如客服机器人、批量任务处理),减少人工编写成本。

10. 代码提示(Code Prompting)------ 开发者必备

  • 四大场景:
    1. 写代码:Write a Bash script to rename files in a folder by prepending "draft_"
    2. 解释代码:粘贴无注释代码,要求"逐行解释功能";
    3. 代码翻译:Translate Bash script to Python
    4. 调试代码:粘贴报错代码+错误信息,要求"找出问题并修复";
  • 关键:输出格式明确(如"用Markdown格式返回代码"),生成后务必测试(LLM可能生成语法错误)。

四、必看:12个最佳实践(避坑+提效)

  1. 提供示例:少样本提示比零样本效果好10倍,示例要相关、多样;
  2. 简洁明确:避免复杂句式和冗余信息(比如"纽约带3岁孩子旅游"→ 优化为"Act as a travel guide for Manhattan with 3-year-olds");
  3. 明确输出格式:比如"生成3段博客,每段100字, conversational风格",而非"生成博客";
  4. 用指令代替限制:比如"只讨论游戏机名称、厂商、年份、销量",而非"不要提游戏名称";
  5. 控制Token长度:按任务设上限(如推文→280字符,长文→1024+Token);
  6. 使用变量 :复用提示(如Tell me a fact about {city},替换{city}为阿姆斯特丹/巴黎);
  7. 实验输入/输出格式:同一任务可试"问题式"(What is...)、"指令式"(Write...)、"陈述式"(The Sega Dreamcast is...);
  8. 分类任务混合示例类别:少样本示例中打乱POSITIVE/NEGATIVE顺序,避免模型死记硬背;
  9. 适配模型更新:新模型版本可能改变对提示的响应,需重新测试调整;
  10. 结构化输出(JSON/XML):非创意任务用JSON,减少幻觉、便于后续处理(如数据提取);
  11. 协作实验:和其他提示工程师一起头脑风暴,对比不同提示的效果;
  12. 完整文档记录:用表格记录每次尝试(模板如下),方便迭代和复盘:
Prompt ID 目标任务 模型 配置(温度/Top-K/Top-P) 完整提示内容 输出结果 效果(OK/NOT OK) 迭代优化点
1_1 电影评论分类 gemini-pro 0.1/NA/1 ... POSITIVE OK
1_2 披萨订单转JSON gemini-pro 0.1/NA/1 ... ... SOMETIMES OK 补充边缘案例

五、工具推荐

  • 测试平台:Vertex AI Studio(谷歌官方,支持Gemini,可配置参数)、Gemini Chat(免费快速测试);
  • 框架:LangChain(用于ReAct、工具调用)、json-repair(修复LLM生成的残缺JSON);
  • 评估指标:BLEU/ROUGE(评估提示质量)、人工评分(输出相关性、准确性)。
相关推荐
nice_lcj52018 小时前
【AI进阶】拒绝“人工智障”:掌握提示词工程(Prompt Engineering)的6大核心技巧
人工智能·prompt
明阳~19 小时前
LLM函数调用(Function Call):智能扩展AI能力
llm·prompt·agent·function call
love530love1 天前
在 PyCharm 中配置 x64 Native Tools Command Prompt for VS 2022 作为默认终端
ide·人工智能·windows·python·pycharm·prompt·comfyui
njsgcs1 天前
我要搞个ai程序操控鼠标,截取屏幕,识别刀路,给ai一个刀路寻找规则的prompt,然后ai自己去按规则顺序点亮刀路
人工智能·prompt·项目预告
settingsun12252 天前
LLM Prompt三大框架之一:CRISPE (vs ICIO)
ai·prompt
小小工匠2 天前
LLM - 从 Prompt 到 Context:2026 Agent 时代的核心战场
prompt·agent·context
sulikey2 天前
Anaconda 无法找到 Anaconda Prompt 的原因
prompt·anaconda·anaconda prompt
兜兜转转了多少年2 天前
《Prompt Engineering白皮书》笔记08 我用 Gemini 10 分钟写完脚本,100 个文件自动改名
笔记·prompt
Robot侠3 天前
极简LLM入门指南4
大数据·python·llm·prompt·提示工程