Vertex AI 指南

Google Cloud 权威指南

Vertex AI 提示工程权威指南
Principles, Techniques, and Best Practices

Lee Boonstra 2025年2月修订 生成式 AI

1. 引言与综述 (Introduction & Overview)

在生成式人工智能(Generative AI)迅速重塑技术格局的背景下,提示工程 (Prompt Engineering) 已从一种边缘的技巧演变为一门核心的系统工程学科。本报告基于 Google Cloud 发布的权威白皮书,旨在为开发者和研究人员提供一套详尽的技术指南。

提示(Prompt)作为人类意图与机器执行之间的桥梁,其质量直接决定了模型输出的准确性、相关性与安全性。一个有效的提示受到多维因素的制约:模型架构、训练数据分布、推理配置参数(如 Temperature)以及提示本身的结构。

核心定义: 提示工程是一门通过反复试验(Tinkering)来优化输入,从而引导大型语言模型 (LLM) 生成准确结果的经验科学。

2. 大型语言模型的核心机制与配置 (Core Mechanisms)

LLM 本质上是一个基于概率的预测引擎。它预测序列中的下一个 标记 (Token)。这一过程是自回归的,即模型将预测出的 Token 添加到序列末尾作为后续预测的依据。

2.1 输出长度控制 (Output Length)

减少输出长度限制并不等同于让模型变“简洁”,而只是在达到上限时强制截断。合理预估 Token 数量对于控制延迟和成本至关重要。

2.2 采样控制策略 (Sampling Controls)

配置参数是平衡模型“创造性”与“准确性”的关键杠杆:

温度参数 (Temperature)

控制采样的随机性。低温度(0-0.2)趋向于确定性输出,高温度(0.7+)激发创造力。

Top-P (核采样 / Nucleus Sampling)

基于累积概率阈值选择 Token 集合。它比静态的 Top-K 更具动态适应性,在连贯性与丰富性之间取得平衡。

任务类型 (Task) Temperature Top-P 策略说明 (Rationale)
事实性问答 / 数学 0.0 0.1 - 0.5 追求绝对确定性,消除随机性防止事实错误。
代码生成 0.1 - 0.2 0.95 语法严格,容错率低,需保持逻辑严密。
创意写作 0.7 - 1.0 0.99 鼓励探索罕见词汇,最大化创造力。

3. 基础提示技术 (Basic Prompting)

3.1 零样本与少样本提示 (Zero-shot & Few-shot)

零样本提示 (Zero-shot) 依赖模型的预训练知识。而当任务复杂时,提供示例的 少样本提示 (Few-shot) 利用了模型的上下文学习 (In-Context Learning) 能力。

Few-shot 示例:JSON 解析

解析披萨订单:
示例:我要一个小号芝士披萨。
JSON: {"size": "small", "type": "cheese"}

示例:来一个大号腊肠披萨。
JSON: {"size": "large", "type": "pepperoni"}

当前请求:我要一个中号素食披萨。
JSON:

3.2 系统与角色提示 (System & Role Prompting)

  • 系统提示 (System Prompt): 设定“出厂设置”,定义任务背景和安全边界。
  • 角色提示 (Role Prompt): 赋予模型特定的人格或专业视角(如“资深架构师”)。

4. 高级推理与逻辑构建 (Advanced Reasoning)

思维链 (Chain of Thought, CoT)

引导模型显式生成推理路径。“让我们一步步思考”是激活 CoT 的经典触发词。

回退提示 (Step-back Prompting)

先提取抽象原则(回退一步),再解决具体问题。显著提升 STEM 领域准确率。

推理与行动 (ReAct)

结合思维轨迹与外部工具调用(如搜索 API),是构建自主 Agent 的基础。

思维树 (Tree of Thoughts, ToT)

在思维空间进行树状搜索和回溯,适用于需要复杂规划和前瞻的任务。

5. 代码生成与开发辅助 (Code Generation)

LLM 在软件生命周期的各个阶段都能提供支持:

生成与转换: 明确语言版本和库(如 Python 3.10, Pandas)。支持跨语言迁移(如 Java 迁移至 Kotlin)。
调试与审查: 提供 Traceback 错误信息,让模型诊断根因并建议符合规范的修复方案。

6. 提示工程最佳实践总结 (Best Practices)

推荐做法 (Do's)
  • 提供覆盖边缘情况的示例。
  • 强制使用结构化输出 (JSON/Schema)。
  • 优先使用正向指令(做什么)。
  • 在生产环境使用变量占位符。
避免做法 (Dont's)
  • 使用过于模糊或含糊的修辞。
  • 认为提示可以一劳永逸(不测试)。
  • 忽略 Token 限制导致的截断。
  • 过度依赖负向约束(不准做什么)。

注意: 极端的参数设置(如极高温度或不当的 Top-P)可能导致模型陷入 重复循环错误 (Repetition Loop Bug)。建议通过微调参数打破确定性死循环。