提示词工程-高效提示词的基本结构
提示词工程-高效提示词的基本结构
自从生成式人工智能技术产生已来,提示词工程成为一种新的职业方向。提示词工程(Prompt Engineering)是一种在生成式人工智能(如GPT模型)中创建和优化提示词以获得期望输出的方法。
所谓的提示词,其实就是人和AI交互时的输入,可以是一个问题,一段描述性的指示,生成式AI可以根据你的指示或者问题,输出你期望的内容。
随着各个领域的工程师不断的实践和评估,实践经验发现,有效的机构化的提示词可以控制大模型输出的准确性和有效性,同时可以控制大模型输出的幻觉等。
提示词的基本结构
根据大家的经验,如果在写提示词时遵循如下的结构,可以提升和AI交互的效率:
- 角色(role):交互时通过给AI大模型设定某种角色,根据经验可以获得意想不到的效果,可以使大模型的输出更加具有个性化,专业化,同时能够增加模型输出的准确性。比如如下的例子,指明AI大模型为一个通信专家,就是给当前交互的AI上下文设定了角色。
假设你是一名通讯专家。起草一封电子邮件给你的客户,告知他/她由于物流问题导致的交货时间延迟。
- 指示/指令(task/instruction):指示或者指令,是指示AI大模型需要完成的任务,比如通过何种知识及技能,来完成何种任务。以下例子中指示或者指令为现在为一个黑客马拉松设计一个挑战性任务,涉及加密和解密。
假设你是一名软件工程师,正在设计一个涉及加密技术的黑客马拉松任务。任务设计应适合中高级开发者,且应在4小时内完成。请用五个步骤描述设计这个任务的过程,确保任务能够让参与者理解现代加密算法的核心原理。现在为一个黑客马拉松设计一个挑战性任务,涉及加密和解密。
- 上下文(context):当你给出与任务相关的背景或细节时,可以帮助AI大模型更好的理解任务的具体情况,使得输出更加精确。以上示例中上下文部分为正在设计一个涉及加密技术的黑客马拉松任务。
- 输入或者问题:需要大模型执行具体的任务,或者具体的问题, 有时候如果指令部分描述的是具体的任务时,则指令部分就是输入。以上示例中指令部分就是输入部分:现在为一个黑客马拉松设计一个挑战性任务,涉及加密和解密。
- 约束:有时候需要限制AI大模型的输出范围,设定一些约束条件,可以对输出进行控制。以上示例中通过约束任务设计应适合中高级开发者,且应在4小时内完成来控制马拉松挑战的难度。
- 输出格式:输出格式,主要给大模型指明,输出特定内容时的格式,比如输出为Json或者Markdown等。以上示例中请用五个步骤描述设计这个任务的过程指明了输出结构。
- 例子:提供例子可以贡AI大模型进行参考,可以有效的提高输出的准确度,比如 few-shot prompt 就是提供一个或者多个例子,使得大模型的输出更加确定。
一些范例
以下是基于 角色+指令+上下文+输入问题+约束+例子 格式提供的几个提示词范例:
范例 1: 生成文章
角色: 你是一名资深环境学家。
指令: 我需要撰写一篇关于气候变化影响的文章,你可以作为我的咨询顾问。
上下文: 全球气温正在上升,极端天气事件变得更加频繁。政府和非政府组织正在采取措施应对这一问题。
输入问题: 气候变化如何影响不同地区的生态系统?政府可以采取哪些措施来减轻这些影响?
约束: 文章应包含三个部分:引言、影响分析、建议措施,总字数在500字左右。
例子: 引言可以描述气候变化的现状,然后分析不同地区生态系统的具体变化,最后提出可以采取的政策建议。
范例 2: 生成代码
角色: 你是一名Python开发者。
指令: 编写一个函数来排序学生的成绩。
上下文: 你正在开发一个学生成绩管理系统,需要能够对学生成绩进行排序,以便生成成绩单。
输入问题: 请编写一个Python函数,该函数接受一个包含学生姓名和成绩的字典,并按成绩从高到低排序。
约束: 函数应返回一个排序后的字典,并考虑成绩相同的学生按姓名字母顺序排序。
例子: sort_students({'Alice': 90, 'Bob': 85, 'Charlie': 90})
应返回 {'Charlie': 90, 'Alice': 90, 'Bob': 85}
。
范例 3: 生成产品设计思路
角色: 你是一名用户体验设计师。
指令: 根据我的具体问题,帮助我设计一个新的移动应用的用户界面,旨在提高用户的日常习惯养成。
上下文: 现代用户越来越注重健康和效率,他们希望有一个工具可以帮助他们建立和维持良好的习惯。
输入问题: 如何设计一个易于使用且能激励用户的移动应用界面,以帮助他们每天坚持新习惯?
约束: 应用界面应简洁,包含进度追踪功能,且用户在3次点击内能完成主要操作。设计思路应包括界面草图和功能说明。
例子: 设计思路可以包含一个主页,展示用户的日常目标和进度条,点击进度条后弹出完成按钮,点击按钮后弹出激励语。
范例 4: 撰写故事
角色: 你是一名侦探小说作家。
指令: 帮助创作一段紧张的情节,描述侦探发现关键线索的过程。
上下文: 故事发生在一个封闭的庄园内,庄园主神秘失踪,侦探正深入调查此案。
输入问题: 侦探在调查庄园的书房时,意外发现了一个隐藏的密室,里面藏有庄园主失踪前留下的日记。
约束: 描述应突出侦探的推理过程和发现的细节,字数控制在300字以内。
例子: 可以描述侦探如何通过书架上的不寻常痕迹发现密室,并在日记中找到庄园主最后的遗言。
范例 5: 创建商业计划
角色: 你是一名创业顾问。
指令: 帮助制定一份初创企业的商业计划,侧重于市场分析和融资策略。
上下文: 一家专注于环保产品的初创公司希望进入市场并获得第一轮融资。
输入问题: 如何评估目标市场的潜力,并制定有效的融资策略来吸引投资者?
约束: 商业计划应包括市场分析、竞争对手分析、产品定位、融资目标和策略,总字数控制在1500字以内。
例子: 市场分析部分可以包括市场规模、增长率和用户画像,融资策略可以包括股权分配和投资回报预期。
这些范例展示了如何通过角色+指令+上下文+输入问题+约束+例子的结构来创建明确且有效的提示词。每个范例都针对特定的任务和输出需求进行了设计,以确保生成的内容符合预期。
[…] 零样本提示词可以是一句话,一个问题,或者一条指令,但是如果期望大模型生成准确有效的信息,零样本提示词也需要遵循一定的结构,具体的信息可以参考另一篇文章:高效提示词的基本结构 […]
[…] 提示词工程-高效提示词的基本结构 […]