你不必是数据科学家或机器学习工程师
——人人都能编写提示词
介绍
在构建大型语言模型(LLM)的输入输出时,文本提示(有时结合图像等多模态形式)是引导模型生成特定响应的关键。你无需成为数据科学家或机器学习工程师——任何人都可以编写提示词。但要打造高效提示,仍需掌握系统方法。
提示效果受多种因素影响:所选模型、训练数据、配置参数、词汇选择、风格语调、结构与上下文。因此,提示工程是一个迭代优化过程。不完善的提示可能导致模糊、错误或无意义的输出。
当你使用Gemini等聊天机器人时,主要任务就是编写提示词。本文重点介绍在Vertex AI平台或通过API调用Gemini模型时的提示设计技巧,因为在这些场景下可直接控制温度、top-K、top-P等关键参数。
本白皮书将深入解析提示工程的核心原理,梳理实用技巧与最佳实践,帮助用户快速入门并提升提示设计能力,同时探讨常见挑战与应对策略。
大语言模型本质上是一种基于序列预测的引擎。它以输入文本为基础,依据训练数据中的统计规律预测下一个词元,并不断将预测结果追加至序列末尾,循环生成后续内容。这一过程依赖于词元间的关联性以及模型在训练中学习到的语义特征。
编写提示词的本质,正是引导LLM沿着期望路径进行词序预测。提示工程的核心在于设计高质量的指令,使模型能够准确理解意图并生成符合预期的输出。该过程通常需要反复调整提示长度、结构和写作风格,以实现最优效果。
提示可用于多种自然语言处理任务,包括但不限于:文本摘要、信息提取、问答系统、文本分类、语言翻译、代码生成、代码注释与逻辑推理。
逻辑线路模块输出配置
选定模型后,需合理配置其输出参数。主流大语言模型提供多种控制选项,有效的提示工程必须根据具体任务对这些参数进行精细化设置。
输出长度
输出长度指生成文本的最大标记数(tokens)。增加输出长度会带来更高计算开销,可能导致响应延迟、能耗上升及成本增加。
缩短输出长度仅限制生成总量,并不会自动提升文本精炼度。若需简洁输出,还需配合优化提示结构。
对于ReAct等推理类技术,输出长度限制尤为重要——模型可能在完成目标后继续生成冗余内容,合理设限可避免资源浪费。
采样控制
大语言模型并非直接确定下一个词元,而是为词汇表中每个词元分配概率,再通过采样机制决定最终输出。温度、top-K和top-P是三种核心采样参数,用于调控生成文本的随机性与多样性。
温度
温度参数控制生成过程的随机程度:
- 低温(接近0):输出高度确定,适合事实性问答、数学计算等需精确答案的任务;
- 高温:增强创造性与多样性,适用于创意写作、头脑风暴等开放性任务;
- 温度为0:采用贪婪解码,始终选择最高概率词元(但存在平局时结果可能不稳定);
- 极高温度:所有词元被选中的概率趋于均等,输出近乎随机。
Gemini的温度机制类似于softmax函数中的温度系数。低温强化高概率词元的优势,高温则拉平概率分布,扩大候选范围,适用于探索性场景。
Top-K 与 Top-P 抽样
两者均为限制候选词元范围的采样策略,常与温度结合使用。
- Top-K抽样:仅从概率最高的前K个词元中采样。K值越大,输出越多样;K=1时退化为贪婪解码。
- Top-P(核采样):选取累积概率不超过阈值P的最小词元集合。P=0时等同于贪婪解码;P=1时允许整个词表参与采样。
实践中建议尝试不同组合,观察哪种配置更贴近目标输出。例如,可先固定温度,再分别测试不同K或P值的效果。
参数协同与极端情况
温度、top-K、top-P和输出长度之间存在相互影响。在Vertex AI Studio等支持多参数调节的环境中,系统会先按top-K和/或top-P筛选候选词元,再基于温度进行采样。若仅启用其中一项,则仅以此标准筛选。
某些极端设置会使其他参数失效:
- 温度=0:忽略top-K和top-P,直接选择最高概率词元;
- 温度极高(如>1000):温度失去控制力,系统在筛选后的词元中随机抽取;
- top-K=1:唯一候选词元即为输出,温度和top-P无效;
- top-K极大(接近词表规模):几乎所有词元都符合条件,等效于无筛选;
- top-P=0或极小值:仅保留最可能词元,温度和top-K失效;
- top-P=1:所有非零概率词元均可入选,筛选机制失效。
推荐初始配置:
- 平衡模式:温度=0.2,top-P=0.95,top-K=30;
- 创意模式:温度=0.9,top-P=0.99,top-K=40;
- 保守模式:温度=0.1,top-P=0.9,top-K=20;
- 确定性任务(如数学题):温度=0。
注意:自由度越高(高温、高K/P、长输出),生成内容的相关性和准确性可能下降。
警告:“重复循环”是常见问题,表现为模型陷入重复短语或句式。这可能由温度不当引起:低温导致过度确定性路径锁定,高温引发随机回溯。解决方法是精细调整温度与top-K/P参数,寻找确定性与多样性之间的平衡点。
提示技巧
尽管大语言模型具备强大理解与生成能力,但其预测质量高度依赖提示清晰度。清晰、结构化的提示有助于模型准确捕捉意图。结合模型工作机制设计提示,可显著提升输出质量。
零样本提示(Zero-Shot)
零样本提示是最基础的形式,仅包含任务描述和输入内容,无需示例。适用于简单、通用性强的任务,如分类、摘要或问答。
以下为电影评论情感分类的零样本提示示例:
| 姓名 | 1_1_movie_classification | ||
| 球门 | 将电影评论归类为正面、中性或负面。 | ||
| 模型 | Gemini-Pro | ||
| 温度 | 0.1 | 令牌限额 | 5 |
| Top-K | N/A | Top-P | 1 |
| 提示 |
将电影评论归类为正面、中性或负面。 影评:《她》是一部令人不安的影片,揭示了若任由人工智能无限制发展,人类将走向何方。真希望有更多这样的佳作问世。情感共鸣: |
||
| 输出 | 阳性 |
表1. 零样本提示示例
单样本与少样本提示(One-Shot / Few-Shot)
当零样本效果不佳时,可通过提供一个(单样本)或多个(少样本)示例来引导模型。这种方法特别适用于需要特定格式、结构或风格的任务。
示例应具备代表性、高质量和多样性,必要时包含边缘案例(异常但合法的输入),以增强模型鲁棒性。
以下为披萨订单解析为JSON的少样本提示示例:
| 球门 | 将披萨订单解析为JSON | ||
| 模型 | Gemini-Pro | ||
| 温度 | 0.1 | 令牌限额 | 250 |
| Top-K | N/A | Top-P | 1 |
| 提示 |
将客户披萨订单解析为有效JSON: 示例: 我要一份小披萨,有奶酪、番茄酱和意大利辣香肠。 JSON回答: 、、、 { 尺寸:小,类型:普通, 成分:[[奶酪、番茄酱、意大利辣香肠]] 、、、 示例: 能给我来个大号披萨,加番茄酱、罗勒叶和马苏里拉奶酪吗? {"大小": "大", "类型": "正常", "成分列表": [["番茄酱","巴泽尔奶酪","马苏里拉奶酪"]]} 现在我要来一份大披萨,前半片是芝士和马苏里拉奶酪,后半片则是番茄酱、火腿和菠萝。 JSON答复: |
| 输出 |
、、、 {"大小": "大", "半半": true, "食材": [["奶酪","莫扎里拉奶酪"],["番茄酱","火腿","香蕉"]]} } 、、、 |
表2. 少样本提示示例
系统、情境与角色提示
三类提示从不同维度引导模型行为:
- 系统提示:定义模型的整体功能与目标,如“你是一个翻译助手”或“执行情感分析”;
- 情境提示:提供当前任务的具体背景信息,帮助模型理解上下文细节;
- 角色提示:赋予模型特定身份(如律师、程序员、客服),影响其语气、风格与知识表达方式。
三者可独立使用,也可组合应用。例如,“你是一名资深软件工程师,请解释这段Python代码”既设定了角色,也明确了任务情境。
明确区分三类提示有助于构建结构化提示框架,便于调试与优化。
系统提示示例
表3展示了一个系统提示示例,其中明确要求模型以指定格式返回结果。通过提高温度增强创造力,并设置较高标记限制,但由于输出格式已被严格限定,模型未产生额外无关内容。

