提示工程
提示工程是设计高质量提示的过程,以引导大型语言模型(LLMs)生成准确输出。这个过程涉及调整提示长度,并评估提示的写作风格和结构与任务的相关性。
LLM 输出配置
LLMs 提供了各种配置选项,这些选项控制着语言模型的输出,包括:
- 输出长度: 生成多少个标记。生成更多的标记需要 LLM 进行更多的计算,这可能导致更高的能耗、可能的响应时间变慢和更高的成本。
- 抽样控制: 决定如何处理预测的标记概率来选择单个输出标记。最常用的配置设置是温度、top-K 和 top-P。
- 温度: 控制代币选择的随机程度。较低的温度适合期望更确定性响应的提示,而较高的温度可能导致更多样化或意外的结果。
- Top-K 和 top-P: 在 LLMs 中,有两大采样设置用于限制预测的下一个标记只能来自具有最高预测概率的标记。与温度相似,这些采样设置控制了生成文本的随机性和多样性。
提示技术
- 一般提示/零样本提示: 最简单的一种提示符,只为 LLM 提供任务描述和一些文本以开始。
- 一次性与少量样本提示: 在为 AI 模型创建提示时,提供示例是有帮助的。这些示例有助于模型理解你所寻求的内容。
- 系统、上下文和角色提示: 都是用于指导 LLMs 生成文本的技术,但它们关注不同的方面:
- 系统提示: 为语言模型设定整体背景和目的。
- 上下文提示: 提供与当前对话或任务相关的具体细节或背景信息。
- 角色提示: 为语言模型分配特定的角色或身份。
最佳实践
- 提供示例: 最重要的最佳实践是在提示中提供(单次/少量)示例。
- 设计简约: 提示语应简洁、清晰、易于理解和模型理解。
- 关于输出的具体要求: 在指令中要具体明确。
- 使用说明胜过限制: 提供关于所需格式、风格或内容的明确指示,它指导模型应该做什么或产生什么。
- 控制最大令牌长度: 为了控制生成的 LLM 响应的长度,您可以在配置中设置最大令牌限制,或者在您的提示中明确请求特定长度。
- 使用变量在提示中: 为了重复使用提示并使其更具动态性,在提示中使用变量。
- 尝试输入格式和写作风格: 不同的模型、模型配置、提示格式、词汇选择和提交可能导致不同的结果。
- 混合不同的类别: 一般情况下,您的少量样本示例的顺序不应有很大影响。然而,在进行分类任务时,请确保您在少量样本示例中混合可能的响应类别。
- 适应模型更新: 您需要密切关注模型架构的变更、新增的数据和功能。
- 尝试输出格式: 除了快速输入格式之外,还应考虑实验输出格式。
- 记录各种提示尝试: 请详细记录你的提示尝试,这样你就可以随着时间的推移了解哪些做得好,哪些没有。
CoT 最佳实践
- 在 CoT 提示时,要求在推理之后给出答案是因为推理过程的生成改变了模型在预测最终答案时获得的令牌。
- 使用 CoT 和自洽性,您需要能够从您的提示中提取最终答案,与推理相分离。
- 为 CoT 提示,设置温度为 0。
摘要
提示工程是一个迭代的过程。制作并测试不同的提示,进行分析,并记录结果。根据模型的表现优化你的提示。持续实验,直到达到预期的输出。当改变模型或模型配置时,回顾并继续使用以前使用的提示进行实验。