上下文工程
上下文工程系统的提供给大模型任务所需信息:任务提示词、外部知识检索、记忆与个性化信息、工具集成
提示词
提示工程(Prompt Engineering)关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。 掌握了提示工程相关技能将有助于用户更好地了解大型语言模型的能力和局限性,另外追求更少的 Token 获得更佳的效果也是提示词工程的重要方向。
提示词工程有一套通用的方法论,但是基于不同的模型效果会有所不同,现在的模型更新迭代又很快,因此需要牢记原理,在实践中不断调整自己对提示词的理解。
推荐文档:https://www.promptingguide.ai/zh
提示词要素
- 任务描述:简明清晰地描述任务。
- 上下文信息:提供相关背景信息提升准确性。
- 示例输入/输出:为模型提供具体案例指导生成内容。
- 输出格式要求:通过明确格式控制输出结构。
设计提示的通用技巧
- 清晰性:使用准确的语言表达需求。
- 分解任务:将复杂任务拆分为多个步骤。
- 逐步引导:通过示例或分步推理帮助模型理解任务。
- 动态调整:根据输出效果优化提示内容。
提示技术
零样本提示(Zero-shot Prompting)
示例:
将以下句子翻译为英语:
我喜欢学习提示工程。
少样本提示(Few-shot Prompting)
示例:
示例:
输入:天气如何?
输出:今天的天气是晴天。
输入:有什么新闻?
输出:今天的新闻是股票市场上涨。
任务:
输入:我们什么时候出发?
输出:
链式思考提示(Chain-of-Thought, CoT)
示例:
问题:如果有10个橙子,卖掉了3个,又买了5个,现在有多少个橙子?
请逐步说明计算过程并给出答案。
自我一致性(Self-consistency)
示例:
问题:一个人有50元,他花了30元买书,又花了10元买文具,还剩多少钱?
请给出答案并解释理由。
生成知识提示(Knowledge Generation Prompting)
示例:
请为以下主题生成一段背景知识:量子计算的基本原理。
Prompt Chaining
示例:
请总结以下文章的主要内容:
[文章文本]
根据以上总结,请生成一段详细解释。
思维树提示(Tree-of-Thought, ToT)
示例:
一个人开车去A地需要40分钟,走路需要2小时。他选择开车出发,但在半路遇到堵车,延误了30分钟。他用了多长时间到达A地?
请给出所有可能的推理路径并选择答案。
检索增强生成(Retrieval-Augmented Generation, RAG)
示例:
根据以下文档内容回答问题:
[检索内容]
问题:量子计算的优势是什么?
自动推理并使用工具(ART)
示例:
请计算3的5次方是多少?
如果需要,可以调用计算器。
Reflexion
示例:
问题:5的平方是多少?
模型第一次输出:20
模型反思:答案不对,因为5*5=25
最终答案:25
高阶提示技术
自动提示工程师
示例:
模型:请为以下任务生成高效的提示:
任务:将200条用户评论按情感分类为正面或负面。
Active-Prompt
示例:
当前任务是识别文本中的关键实体:
第一步,识别所有专有名词;
第二步,判断其是否为人名。
方向性刺激提示
示例:
如果我是一个市场分析师,我会如何描述近期经济趋势?
请从分析师角度回答问题。
Program-Aided Language Models
示例:
编写Python代码计算圆的面积:
输入:半径为3
输出:
ReAct框架
示例:
问题:世界上最高的山是什么?
行动:查询数据库
思考:我需要确认山的名称和高度。
最终答案:
Reflexion
示例:
第一次尝试:模型输出错误原因分析;
第二次尝试:修正提示后生成正确结果。
多模态思维链提示方法
示例:
根据以下图片生成描述:
[插入图片]
描述应包含颜色、位置和物体。