如何编写提示词

    大模型是指在机器学习和人工智能领域中,使用了大量数据进行训练,拥有庞大参数量的深度学习模型。这类模型通过大规模的数据训练,能够捕捉到复杂的数据模式,从而在多种任务上表现出色。它们通常需要大量的计算资源,能够处理自然语言处理nlpLLM、图像识别等多种复杂的任务。

    Prompt(提示词)是指在使用大模型时,向模型提供的一些指令或问题。这些指令作为模型的输入,引导模型产生所需要的输出。例如,在生成文本时,Prompt可能是一个问题或者一个句子开始的部分,模型需要根据这个提示来生成接下来的内容。

prompt存在的问题

    模型自身问题:Prompt存在的问题包括了准确性、相关性和偏见性。由于模型是根据训练数据来学习的,如果训练数据存在偏见或质量问题,那么模型生成的内容也可能会受到这些问题的影响。此外,模型有时也会产生与提示不相关的内容,或者理解不准确,从而导致输出结果的质量下降。

    使用者问题: 1.缺乏系统性,依赖个人经验,只有方法,没有语法 2.灵活性,他人分享的不好修改,通过引入变量元素,提升复用性 3.偏好分布,与生产环境的的数据密切相关,需要增加评测工具 4.不同模型间存在差异,模型之间方法相同,但是内容不能公用

Prompt工程是什么

    提示工程(Prompt Engingering),也被称为在上下文中提示,是指如何与 LLM 通信的方法,以引导其行为为期望的结果,而无需更新模型权重。提示工程关注提示词的开发和优化,帮助用户将大模型用于各场景和研究领域。这是一门经验科学,Prompt Engingering的效果在不同模型之间可能有很大差异,因此需要大量的试验和启发。

    因此,提示工程旨在获取这些提示并帮助模型在其输出中实现高准确度和相关性,掌握提示工程相关技能将有助于用户更好地了解大型语言模型的能力和局限性。特别地, 矢量数据库、agent和prompt pipeline已经被用作在对话中,作为向 LLM 提供相关上下文数据的途径。

    提示工程不仅仅是关于设计和研发提示词。它包含了与大语言模型交互和研发的各种技能和技术。提示工程在实现和大语言模型交互、对接,以及理解大语言模型能力方面都起着重要作用。用户可以通过提示工程来提高大语言模型的安全性,也可以赋能大语言模型,比如借助专业领域知识和外部工具来增强大语言模型能力。例如,流水线、Agent代理、CoT思维链等基于 LLM 的实现都是以某种形式的提示工程为前提的。

    提示工程涉及选择、编写和组织提示,以便获得所需的输出,主要包括以下方面:

  • Prompt 格式:确定 prompt 的结构和格式,例如,问题形式、描述形式、关键词形式等。
  • Prompt内容:选择合适的词语、短语或问题,以确保模型理解用户的意图。
  • Prompt上下文:考虑前文或上下文信息,以确保模型的回应与先前的对话或情境相关。
  • Prompt 编写技巧:使用清晰、简洁和明了的语言编写prompt,以准确传达用户的需求。
  • Prompt 优化:在尝试不同 prompt 后,根据结果对 prompt进行调整和优化,以获得更满意的回应。

    Prompt Engineer的过程和机器学习的过程类似,都需要经过迭代的过程。从一个想法出发,通过一个基础的实现,在接近真实数据的测试集合上完成验证,分析失败的case;不断重复这个过程,直到100%满足的你的场景。

图片名称

Prompt构建的原则

    清晰和明确的指令:模型的提示词需要清晰明确,避免模糊性和歧义。清晰性意味着提示词要直接表达出想要模型执行的任务,比如“生成一篇关于气候变化影响的文章”,而不是仅仅说“写一篇文章”。明确性则是指要具体说明任务的细节,比如文章的风格、长度、包含的关键点等。这样,模型就可以更精确地理解任务要求,并产生与之相匹配的输出。

图片名称
图片名称
写一篇文章vs写一篇具体的文章

    除了语言上要清晰,也可以使用标点符号来给模型更清晰的指令 ,可以使用,尽量是把任务要求和用户输入用分隔符来隔开

“…”
<…>
” …”
‘—…—’
‘…’ 最推荐的是英文的引号””。

图片名称
告诉我引号里面说了什么 "这是一个带标点符号的prompt"

    可以使用一些样例数据来指引模型输出,规范模型的输出格式,尽力用json来输入内容。

图片名称

    给模型思考的时间,这里的“时间”是比喻性的,意味着应该给模型足够的信息,让它能够基于充足的上下文来产生回应。这可能涉及到提供额外的描述,或者在复杂任务中分步骤引导模型。这个在实践中,这可以通过提供背景信息、上下文环境、以及相关细节来实现。例如,如果我们要模型续写一篇故事,我们可以先提供故事的背景信息、人物关系和已发生的事件等,这样模型就有了足够的“思考时间”,能够在现有信息的基础上进行合理的创作。还有一类实践场景,我们要充分引导大模型的思考路径,让模型沿着正确的道路得出正确的答案,这就是分步骤引导大模型思考。

图片名称
基于充足的上下文要求来产生回应
图片名称
在复杂任务中分步骤引导模型

Prompt结构

     1. Context上下文(可选):角色、任务、知识 2. Instruction命令 (必选):步骤、思维链、示例 3. input data输入数据(必选):句子、文章、问题 4. output indicator输出格式(可选)

比如:
你是一名机器学习工程师,负责开发一个文本分类模型,该模型可以将电影评论分为正面评价和负面评价两类。
请根据以下上下文和输入,对文本进行分类,并给出相应的输出类别。
示例:
输入文本:这部电影真是太精彩了!演员表现出色,剧情扣人心弦,强烈推荐!
输出类别:正面评价
输入文本:这部电影真是太精彩了!演员表现出色,剧情扣人心弦,强烈推荐!
输出类别:

业务一:某智能音响,希望用大模型代替传统自然语言处理模型,可以从用户输入内容中提取出结构化提取信息
业务要求:
格式规范:大模型输出的内容要直接给到后端服务接口使用,所以大模型一定要按照固定格式输出格式,以便于接口解析模型输出内容,防止报错
字段枚举:部分字段的提取内容需要是枚举值,例如目的、时间类型等prompt设计的结构
• 用户输入:将用户输入的内容拼接到prompt中,提交给大模型
• 身份定义:定义大模型扮演角色,帮助大模型理解指令
• 背景说明:明确对话发生的背景信息,帮助大模型理解指令
• 字段说明:说明要提取的字段的含义,以及字段存在的枚举值
• 输出示例:输出内容示例
prompt设计的过程
• 提取字段设计
o 错误示范
 方案:按流程设计提取内容,“如果话题是物品存放,就提取物品位置字段,如果是xxx,就提取xxxx…”
 问题:当流程过于复杂时候,大模型对流程的执行就会出现不稳定的现象,所以最终采取不管是什么话题,直接提取全部字段
o 正确示范
 方案:不管话题是什么,直接提取全部字段,未提及的字段写空
 好处:不需要流程判断,逻辑简单
• 枚举值设计
o 错误示范1
 方案:枚举值只能是增、删、改、查,不能新增其他内容
 问题:大模型总会输出枚举值以外的内容,因为大模型会根据理解的语义输出内容
o 正确示范1
 方案:根据语义设计枚举值,最后工程化处理不同枚举值对应的功能
 好处:更容易实现目标效果,稳定性更高
o 错误示范2
 方案:当遇到用户未提及的字段时,枚举值写“无”
 问题:效果不稳定,因为“无”本身语义不够明确
o 正确示范2
 方案:当遇到用户未提及的字段时,枚举值写“待查询”
 好处:同上
• 示例设计
o 错误示范:
 方案:堆砌例子、不给例子
 问题:堆砌例子并不能让大模型完全学会该如何输出内容,甚至可能成为干扰项
o 正确示范
 方案:选取典型场景作为例子,相当于对提取规则的补充说明
 好处:稳定
Prompt:“你是一个智能助理,你需要帮用户结构化记录生日信息、物品存放信息、月经信息
用户输入是一句非常口语化的指令,你需要记录用户指令,并从用户的指令中结构化的输出提取出信息
输出完毕后结束,不要生成新的用户输入,不要新增内容
1.提取话题,话题只能是:生日、纪念日、月经、物品存放。
2.提取目的,目的只能是:记录、预测、查询、庆祝、设置、记录物品、拿到物品、寻找、删除、修改。
3.提取人物,人物指:过生日的人物、过纪念日的人物、来月经的人物、放物品的人物。输出只能是:我,爸爸、妈妈、孩子、爱人、恋人、朋友、哥哥、姐姐。没有写“无”
4.提取人关系,关系指人物与用户的关系,关系只能是:本人、亲人、配偶、朋友、未知、待查询。没有写“无”
5.提取时间,比如:今天、3月1日、上个月、农历二月初六、待查询。没有写“无”
6.提取时间类型,时间类型只能是:过生日的时间、过纪念日的时间、月经开始时间、月经结束时间。 没有写“无”
7.提取物品,比如:衣服、鞋子、书、电子产品、其它。
8.提取物品对应位置,比如:衣柜、书柜、鞋柜、电子产品柜、待查询。
9.按示例结构输出内容,结束”

图片名称
图片名称
效果

• 流程简单:过于复杂的流程会增加大模型出错概率,应该尽量减少流程
• 理解语义:必须要强烈的语气来告诉大模型要干什么。
• 多肯定:多用肯定句,告诉大模型要做什么,不是限制大模型不做什么
• 结合功能:要结合功能流程设计prompt,不能期望一次与大模型的交互解决一切问题

业务二:给主播撰写短视频文案:根据主播风格,将指定文本转换成指定短视频主播风格的短视频文案。

业务要求:
• 不同主播风格不同,难以准确有文字描述不同短视频主播的风格
• 待转换文本与短视频文案风格差距较大

Prompt设计过程:
第一版:
“”"
{需要改写的原文}
“”"

你是一个短视频主播,请你将上面的原文改写成新的短视频文案,要求如下:
1.使用口语化风格、情绪化表达、使用比喻等手法进行改写;
2.原文中若有数据,改写后需要体现数据;
3.尽量使用重复和强调、感叹句;
问题:
1.0版本基于无样例,总结主播风格,例如口语化风格、情绪化表达、使用比喻、数据支持、重复和强调、感叹句使用频繁等,让大模型根据总结出的风格进行文案撰写,效果差;
第二版
短视频范文1:
“”"
{示例1}
“”"

短视频范文2:
“”"
{示例2}
“”"

短视频范文3:
“”"
{示例3}
“”"

你是一个短视频主播,请你参考上面的短视频范文1、2、3,将下面的原文改写成新的短视频文案。

原文:
“”"
{需要改写的原文}
“”"
总结:2.0版本基于few shot少样示例,给大模型一些含有主播风格的短视频文案示例,让大模型参考提供的短视频主播文案示例进行改写,效果优秀;

图片名称
效果

• 风格改写类尽量使用few shot(少量示例):对于风格改写类场景,风格较难用文字总结,并且大模型也较难通过文字get到具体的风格。
• few shot示例要有明显的风格:提供给大模型的few shot示例,要人工摘选出有明显风格的文本,大模型才能够更好的学习其具体的风格。

  • 20
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三月七꧁ ꧂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值