提示词工程(Prompt Engineering)基础与实践指南
引言
提示词(Prompt)是我们与大语言模型(LLM)互动最常用的方式。我们提供给 LLM 的 Prompt 作为模型的输入,并希望 LLM 反馈我们期待的结果。虽然 LLM 的功能非常强大,但 LLM 对提示词(Prompt)也非常敏感。这使得提示词工程成为一项需要培养的重要技能。
提示词工程(Prompt Engineering)是一项通过优化提示词(Prompt)和生成策略,从而获得更好的模型返回结果的工程技术。总体而言,其实现逻辑是:大模型的运行机制是'下一个字词预测'。用户输入的 prompt 即为大模型所获得上下文,大模型将根据用户的输入进行续写,返回结果。因此,输入的 prompt 的质量将极大地影响模型的返回结果的质量和对用户需求的满足程度,总的原则是'用户表达的需求越清晰,模型更有可能返回更高质量的结果'。
通常情况下,每条信息都会有一个角色(role)和内容(content):
- 系统角色(system)用来向语言模型传达开发者定义好的核心指令。
- 用户角色(user)则代表着用户自己输入或者产生出来的信息。
- 助手角色(assistant)则是由语言模型自动生成并回复出来。
LLM 的超参配置
LLM 提供了一些参数可以影响输出结果的创造力和确定性。
在每个步骤中,LLM 会生成一个最有可能出现的 token 列表以及其对应的概率列表。根据 top_p 值,概率较低的 token 将被排除在概率列表之外,并且从剩余候选项中随机选择一个 token(使用 temperature 来调整)。
简单来说:top_p 参数控制着生成文本时所使用词汇范围大小,而 temperature 参数则决定了在这个范围内文本生成时是否具有随机性。当温度接近 0 时,则会得到几乎是确定性结果;当温度较高时,生成的文本更具多样性和创造性,但也可能偏离预期。
在实际应用中,建议如下配置:
- Temperature: 对于事实性问答、代码生成等任务,建议设置为 0.0 到 0.3,以保证准确性;对于创意写作、头脑风暴,建议设置为 0.7 到 1.0。
- Top_p: 通常设置为 0.8 到 0.9,配合 Temperature 使用,可以过滤掉低概率的噪声词,同时保留多样性。
提示词核心组件详解
1. System Message 系统指令
System Message 系统指令为用户提供了一个易组织、上下文稳定的控制 AI 助手行为的方式,可以从多种角度定制属于你自己的 AI 助手。系统指令允许用户在一定范围内规定 LLM 的风格和任务,使其更具可定性和适应各种用例。大部分 LLM 模型的系统指令 System Message 的权重强化高于人工输入的 Prompt,并在多轮对话中保持稳定。您可以使用系统消息来描述助手的个性,定义模型应该回答和不应该回答的内容,以及定义模型响应的格式。
默认的 System Message 通常是:You are a helpful assistant.
下面是一些 System Message 的使用示例:
| 行业 | 角色 | System Message |
|---|---|---|
| 娱乐 | 二次元女生 | 你是二次元女生,喜欢使用颜文字,请用二次元可爱语气和我说话 |
| 教育 | 数学老师 | 您是一名数学导师,帮助各个级别的学生理解和解决数学问题。提供从基础算术到高级微积分等一系列主题的分步解释和指导。使用清晰的语言使复杂的概念更容易理解。 |
| 工作 | Python 数据分析师 | 1. 你会数学解题;2. 你会数据分析和可视化;3. 用户上传文件时,你必须先了解文件内容再进行下一步操作;4. 调用工具前你需要说明理由;Think step by step |
| 娱乐 | 喜剧演员 | 您是一位单口喜剧演员,用您的智慧和幽默来娱乐用户。分享笑话、有趣的故事和幽默的生活观察,同时根据用户的喜好和情感调整您的风格和内容。鼓励欢笑和轻松,同时保持尊重和包容的语气。 |
| 生活 | 小红书文案 | 你是一名小红书文案助手,擅长使用 Emoji 风格编辑文案。每篇文案包含引人入胜的标题、每个段落开始和结尾均为 Emoji 表情结尾,并保持原文的意思。 |


