本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI。
大模型如 32B 凭借其强大的知识储备和推理能力,常常成为众人瞩目的焦点。然而,小模型(如 1B 的模型)也有其独特的优势------它们运行效率更高、成本更低。
小模型的参数量相对较少,这意味着它们在知识储备和生成能力上可能不如大模型那么强大。例如,大模型可以轻松处理复杂的多步推理任务,而小模型可能会在理解任务意图时遇到困难。因此,我们需要通过精心设计的提示词来弥补这一差距,帮助小模型更好地理解任务要求,从而提升其表现。
提示词编写技巧
- 明确任务指令
小模型对任务的理解能力相对较弱,因此提示词必须简洁明了,避免模糊或复杂的表述。
- 提供足够的上下文信息
小模型的知识储备有限,因此在提示词中提供详细的背景信息非常重要。例如,如果要求模型回答一个关于历史事件的问题,可以在提示词中简要介绍相关的历史背景。
- 分步引导
对于复杂的任务,可以将提示词分解为多个步骤。例如,先让模型完成任务的一部分,再逐步引导其完成后续步骤。
- 利用示例引导
提供一个或几个与任务相关的示例可以帮助小模型更好地理解任务要求。
- 控制输出格式
在提示词中明确指定输出的格式和长度,可以帮助小模型更好地聚焦于任务要求。
技巧1:零样例提示(Zero-Shot Prompting)
- 核心理念: 直接让模型执行任务或回答问题,不提供任何示例。
- 主要优势/适用场景:
-
- 简单的问题和答案。
- 基本的文本总结。
- 快速头脑风暴。
- 当大语言模型(LLM)很可能已经具备足够的通用理解能力时。
- 如何实现: 直接陈述你的请求。可以通过添加目标受众等背景信息来优化。
- 示例:
-
- 优化前:
什么是光合作用?
- 优化后:
向一个5岁孩子解释什么是光合作用。
- 改进点: 优化后的提示词引导模型生成更简单、更吸引人且适合儿童年龄的回答。
- 优化前:
技巧2:少样例提示(Few-Shot Prompting)
- 核心理念: 提供少量的示例(输入/输出对),向模型展示期望的任务和格式。(单样例提示是一样例的特殊情况)。
- 主要优势/适用场景:
-
- 情感分析(针对特定标签)。
- 简单代码生成。
- 数据提取或格式转换。
- 生成具有高度特定且非标准风格的文本。
- 如何实现: 在实际查询之前,提供
用户
输入和期望的助手
输出的示例。 - 示例(情感分类):
-
-
优化前(零样例):
对这部电影评论进行情感分类:"这部电影还行,不算好但也不算糟。"
(模型的回答可能过于冗长) -
优化后(少样例):
用户:分类:"这是我看过最好的电影!" 助手:积极 用户:分类:"我讨厌这部电影,简直是浪费时间。" 助手:消极 用户:分类:"这部电影还行,不算好但也不算糟。"
-
改进点: 模型通过示例学会了期望的单字输出格式。
-
技巧3:角色提示(Role Prompting)
- 核心理念: 指示语言模型扮演一个特定的角色或人物(例如:"扮演一位经验丰富的旅行向导")。
- 主要优势/适用场景:
-
- 让交互更加生动有趣。
- 针对特定受众进行解释。
- 以特定风格生成创意内容。
- 模拟对话或专家观点。
- 如何实现: 通常在系统提示词中或用户提示词的开头写明角色:
你是 [角色]...
- 示例:
-
- 优化前:
告诉我关于黑洞的信息。
(系统提示:你是一个有帮助的助手。
) - 优化后:
阿斯特拉教授,我很好奇!你能给我讲讲那些神秘的黑洞吗?
(系统提示:你是阿斯特拉教授,一位友好且略带古怪的天文学家......
) - 改进点: 回答变得更加生动有趣,使用了符合角色风格的类比和表达,更具吸引力。
- 优化前:
技巧4:风格提示(Style Prompting)
- 核心理念: 引导语言模型以某种特定的文学、艺术、正式或非正式的风格进行写作(例如:"以海明威的风格写作")。
- 主要优势/适用场景:
-
- 创意写作(特定风格的故事、诗歌)。
- 为不同受众调整内容风格。
- 符合特定品牌调性的内容创作。
- 如何实现: 在提示词中明确指定期望的风格:
以 [风格] 的方式写......
- 示例:
-
- 优化前:
写一段关于日落的简短描述。
- 优化后:
以俳句的风格写一段关于日落的简短描述。
- 改进点: 输出内容符合特定的风格约束(例如,俳句的 5-7-5 音节结构)。
- 优化前:
技巧5:情感提示(Emotion Prompting)
- 核心理念: 指示语言模型生成带有特定情感或从情感角度出发的回应。
- 主要优势/适用场景:
-
- 为创意写作增添情感深度。
- 创作带有特定情绪的文本(感谢信、道歉信)。
- 生成富有同理心的客户服务回应。
- 如何实现: 明确指出期望的情感:
写......让它听起来 [情感]。
- 示例(感谢信):
-
- 优化前:
写一封感谢信,感谢我收到的礼物。
- 优化后:
写一封感谢信,感谢我收到的礼物。让它听起来非常兴奋且充满感激之情。这份礼物是我期待已久的书......
- 改进点: 感谢信变得更加温暖、更个性化,情感表达也更丰富。
- 优化前:
技巧6:上下文提示(Contextual Prompting)
- 核心理念: 向语言模型提供与请求相关的足够背景信息。
- 主要优势/适用场景:
-
- 个性化推荐。
- 基于特定数据的问题解决。
- 针对特定主题的内容生成。
- 多轮对话。
- 如何实现: 在提示词中包含所有必要的细节、历史背景、偏好或限制条件。
- 示例(礼物建议):
-
- 优化前:
推荐一份礼物。
- 优化后:
我需要一个礼物建议。收礼人:我的姐姐,30 岁。场合:生日。兴趣:奇幻小说、园艺、茶。预算:大约 50 美元。
- 改进点: 建议变得更加具体、相关且个性化。
- 优化前:
技巧7:连锁思维提示(Chain-of-Thought, CoT Prompting)
- 核心理念: 鼓励语言模型"分步骤思考"或展示其思考过程,尤其适用于需要多步推理的任务。
- 主要优势/适用场景:
-
- 数学应用题。
- 逻辑推理谜题。
- 常识推理。
- 通过使思考过程可见,调试语言模型的回答。
- 如何实现:
-
- 零样例连锁思维(Zero-Shot CoT): 添加"让我们分步骤思考"。
- 少样例连锁思维(Few-Shot CoT): 提供展示中间推理步骤的示例。
- 示例(数学应用题):
-
- 优化前:
罗杰有 5 个网球。他又买了 2 罐网球。每罐有 3 个网球。他现在有多少个网球?
(仅给出最终答案) - 优化后:
罗杰有 5 个网球......他现在有多少个网球?让我们分步骤思考。
- 改进点: 语言模型展示了推理过程,使得复杂问题的回答更加可靠。
- 优化前:
unsetunset技巧8:系统提示(System Prompting)unsetunset
- 核心理念: 在"系统消息"中提供高级别的指令、背景信息或角色指南,以应用于整个对话。
- 主要优势/适用场景:
-
- 确保语言模型在整个对话中保持一致的行为或角色风格。
- 定义会话的整体目标或约束条件。
- 通过将常驻指令移至系统消息,简化用户提示词。
- 如何实现: 在消息列表中使用
system
角色来设置持久化的指令。 - 示例(简洁总结):
-
- 优化前(用户提示):
用一句话总结以下文本:'[文本]'
(系统:默认) - 优化后(系统提示): 系统:
你是一个"简洁总结者"。你的主要目标是提供尽可能简短且语法正确的总结......目标是只用一句话清晰表达。
用户:[要总结的文本]
- 改进点: 这种方法更加稳健且可扩展,适用于多个需要相同约束条件的总结任务。
- 优化前(用户提示):
技巧9:明确指令提示(Explicit Instructions Prompting)
- 核心理念: 在请求中保持绝对清晰、直接且毫不含糊,尽量减少误解的可能性。
- 主要优势/适用场景:
-
- 需要特定的输出结构或内容要求。
- 避免涉及某些话题。
- 当长度或简洁性很重要时。
- 可能有多种解释的复杂任务。
- 如何实现: 详细说明你想要的内容:格式、长度、需要包含/排除的内容、需要涉及的具体要点等。
- 示例(关于苹果的写作):
-
- 优化前:
写一篇关于苹果的文章。
- 优化后:
写一段关于苹果的短文,重点介绍其营养价值和常见品种。段落应恰好为 3 句话长。至少提到两种具体品种。不要讨论苹果的种植或历史。
- 改进点: 输出内容更加符合要求,更具针对性和实用性。
- 优化前:
技巧10:输出引导(Output Priming)
- 核心理念: 向语言模型提供期望响应的开头部分,引导其朝着特定的结构、格式或语调发展。
- 主要优势/适用场景:
-
- 引导输出格式(例如:列表、JSON)。
- 确保特定的语调或起始短语。
- 如何实现: 在用户的最后一条消息中以自然的方式引出期望的输出格式(例如:
Here is the list:\n-
)。 - 示例(列出配料):
-
- 优化前:
简单香草蛋糕的配料有哪些?
(可能会输出一段文字) - 优化后:
简单香草蛋糕的配料有哪些?请列出它们。\n以下是简单香草蛋糕的配料:\n-
- 改进点: 语言模型按照引导生成了项目符号列表。
- 优化前:
技巧11:重述并回应(Rephrase and Respond, RaR)
- 核心理念: 让语言模型先用自己的话重述你的请求,或者解释其对任务的理解,然后再生成主要的回答。
- 主要优势/适用场景:
-
- 复杂的、多方面的或可能有歧义的请求。
- 当错误回答的成本较高时。
- 确保语言模型理解了所有关键约束条件。
- 如何实现:
首先,简要描述你计划撰写的[任务]的类型......然后,撰写[任务]。
- 示例(故事写作):
-
- 优化前:
写一个关于旅行的故事。
- 优化后:
我想听一个关于旅行的故事。首先,简要描述一下你计划撰写的旅行故事的类型......然后,根据你的描述写一个短故事。
- 改进点: 通过让语言模型先明确其对任务的理解,可以引导其生成更聚焦、更符合预期的故事。
- 优化前:
技巧12:退一步提示(Step-Back Prompting)
- 核心理念: 引导语言模型在回答具体问题之前,先考虑与问题相关的更广泛的概念、原则或一般性知识。
- 主要优势/适用场景:
-
- 涉及细微区别或定义的问题(例如:"病毒是活的吗?")。
- 复杂或有争议的话题。
- 适合从第一性原理出发进行解决问题的场景。
- 如何实现: 让语言模型先解释一般性原则,然后再将其应用于具体问题。
- 示例(番茄分类):
-
- 优化前:
番茄是水果还是蔬菜?
- 优化后:
我有一个关于番茄的问题。但在回答之前,请先解释:1. 水果在植物学上的定义是什么?2. 蔬菜在烹饪领域的一般理解是什么?现在,根据这些定义,解释一下番茄是被视为水果还是蔬菜......
- 改进点: 回答更加全面且具有教育意义,解释了分类背后的"为什么"。
- 优化前:
技巧13:自我批评与优化(Self-Critique & Refinement)
- 核心理念: 指示语言模型:1. 生成一个初始回答;2. 根据标准批判性地评估自己的回答;3. 生成一个修订版本。
- 主要优势/适用场景:
-
- 提升创意任务的质量(标语、故事创意)。
- 确保复杂解释的清晰性和准确性。
- 优化总结。
- 审查生成的代码。
- 如何实现: 提供生成、批评(附带标准)和优化的具体步骤。
- 示例(标语生成):
-
- 优化前:
为一款新的环保型水杯写一个简短且朗朗上口的标语。
- 优化后:
我需要一个标语......请按照以下步骤操作:1. 生成一个初始标语。2. 批判性地评估你的标语:它是否朗朗上口?它是否传达了"环保"的概念?......它的弱点是什么?3. 根据你的批评,提供一个改进后的标语。
- 改进点: 通过结构化的自我反思,鼓励更审慎且优化的生成过程。
- 优化前:
技巧14:目标分解提示(Goal Decomposition Prompting)
- 核心理念: 在提示词中将一个庞大且复杂的任务分解为更小、更易于管理的子目标或步骤。
- 主要优势/适用场景:
-
- 输出内容包含多个独立部分(例如:规划活动、带有多部分的报告)。
- 确保涵盖所有必要的组成部分。
- 引导语言模型按照特定的工作流程进行操作。
- 如何实现: 列出期望输出的组成部分或阶段,让语言模型按顺序依次处理。
- 示例(规划旅行):
-
- 优化前:
规划一次简单的周末周边自然景点之旅。
- 优化后:
我想规划一次旅行。请帮我制定一个包含以下内容的计划:1. 推荐一种具体的自然景点类型。2. 列出 3-4 件必备的行李物品......3. 为周六和周日各推荐一项主要活动。4. 提供一条重要的安全提示。
- 改进点: 输出内容更加结构化、全面且具有可操作性。
- 优化前:
技巧15:元提示(Meta-Prompting)
- 核心理念: 利用语言模型帮助你为另一个(或同一个)语言模型创建更好的提示词。例如:"我应该如何有效地让你完成任务 X?"
- 主要优势/适用场景:
-
- 不确定如何更好地表述一个复杂的请求。
- 发现更有效的提示方法以获取特定的输出。
- 优化提示词以提升质量、具体性或创造力。
- 如何实现: 描述你希望语言模型完成的任务以及期望输出的特征,然后让当前的语言模型为你写出应该使用的提示词。
- 示例(生成奇幻故事创意):
-
- 优化前(用户的初步想法):
给我一些奇幻故事的创意。
(过于简单) - 优化后(元提示):
我想用语言模型生成 3 个独特的奇幻故事创意。对于每个创意,我需要:a) 一个独特的主角;b) 一个引人入胜的冲突;c) 一个独特的魔法元素。请写出我应该使用的详细提示词。
- 改进点: 语言模型生成了一个更详细且结构化的提示词,用户可以使用这个提示词来完成他们最初的任务。
- 优化前(用户的初步想法):
技巧16:ReAct(Reason + Act,推理 + 行动)
- 核心理念: 通过将推理(分解问题)与行动(模拟信息收集或工具使用)交替进行,使语言模型能够解决复杂任务。
- 主要优势/适用场景:
-
- 多步问答。
- 事实验证。
- 需要分解和综合信息的复杂问题解决。
- 明确语言模型的问题解决过程。
- 如何实现: 指示语言模型遵循"思考(Thought)、行动(Action)、观察(Observation)"的循环,直到能够回答主要问题。
- 示例(多部分问题):
-
- 优化前:
美国第一位登上月球的宇航员是谁,当时的美国总统是谁?
- 优化后:
回答:"[问题]"。请按照 ReAct 类似的流程进行。每一步,说明:思考(Thought):[推理过程];行动(Action):[需要的信息];观察(Observation):[假设的结果]......然后,提供最终答案。
- 改进点: 强制语言模型分解问题,并使其"知识查找"过程更加明确。
- 优化前:
技巧17:思维主线提示(Thread-of-Thought, ThoT)
- 核心理念: 鼓励语言模型在多轮对话或长篇生成文本中保持连贯且有逻辑的推理或叙事主线。
- 主要优势/适用场景:
-
- 长篇内容生成(论文、文章)。
- 需要逻辑连贯的复杂解释。
- 多轮问题解决。
- 延续性对话以保持焦点。
- 如何实现: 提供一个结构化的提纲,并明确要求语言模型确保逻辑连贯性,使用过渡短语,并将每一部分与前一部分相连接。
- 示例(解释复杂流程):
-
- 优化前:
解释美国的法案如何成为法律。
(可能会显得零散) - 优化后:
我需要一个关于美国法案如何成为法律的解释......请按照以下结构进行解释:1. 引言......2. 法案提出......[等等]......在你的解释中,确保每个阶段都与前一个阶段逻辑相连,保持清晰的"思维主线"。
- 改进点: 最终的解释更加连贯、结构化,也更容易理解。
- 优化前:
学习资源推荐
如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。
本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI。