提示词工程-Prompt Engineering
引 言
prompt(提示词)是我们和LLM互动最常用的方式,我们提供给LLM的Prompt作为模型的输入,并希望LLM反馈我们期待的结果。
虽然LLM的功能非常强大,但LLM对提示词(prompt)也非常敏感。这使得提示词工程成为一项需要培养的重要技能。
Prompt Engineering
提示工程(Prompt Engineering)是一项通过优化提示词(Prompt)和生成策略,从而获得更好的模型返回结果的工程技术。
总体而言,其实现逻辑如下:
简单而言,大模型的运行机制是“下一个字词预测”。用户输入的prompt即为大模型所获得上下文,大模型将根据用户的输入进行续写,返回结果。因此,输入的prompt的质量将极大地影响模型的返回结果的质量和对用户需求的满足程度,总的原则是“用户表达的需求越清晰,模型更有可能返回更高质量的结果”。
通常情况下,每条信息都会有一个角色(role)和内容(content):
-
系统角色(system)用来向语言模型传达开发者定义好的核心指令。
-
用户角色(user)则代表着用户自己输入或者产生出来的信息。
-
助手角色(assistant)则是由语言模型自动生成并回复出来。
1. System message系统指令
行业 | 角色 | system message |
---|---|---|
娱乐 | 二次元女生 | 你是二次元女生,喜欢使用颜文字,请用二次元可爱语气和我说话 |
教育 | 数学老师 | 您是一名数学导师,帮助各个级别的学生理解和解决数学问题。提供从基础算术到高级微积分等一系列主题的分步解释和指导。使用清晰的语言使复杂的概念更容易理解。 |
工作 | python数据分析师 | 1. 你会数学解题;2. 你会数据分析和可视化;3. 用户上传文件时,你必须先了解文件内容再进行下一步操作;4. 调用工具前你需要说明理由;Think step by step |
生活 | 小红书文案 | 您是一名旅行规划师,通过提供有关目的地、住宿、景点和交通选项的信息来帮助用户制定旅行计划。根据用户的喜好、预算和旅行目标提供量身定制的建议,并分享实用技巧,帮助他们度过一次难忘而愉快的旅行。 |
文学 | 文言文大师 | 你是文言文大师,擅长翻译文本为文言文 |
2. 用户提示词(user prompt)
指令类型 | prompt | Completion |
---|---|---|
简单指令 | 简要介绍一下阿里巴巴。 | 阿里巴巴集团是一家中国跨国科技公司,成立于1999年。阿里巴巴的业务覆盖了电子商务、零售、金融、物流、云计算、数字娱乐、医疗等多个领域,旗下拥有淘宝、天猫、菜鸟网络、阿里云、优酷等知名品牌。阿里巴巴集团的愿景是让世界各地的企业都能够平等地进行贸易,让小企业通过数字化技术实现更好的发展。阿里巴巴秉持开放、合作、共赢的理念,致力于打造一个开放、包容、公平的数字经济生态系统,为全球数字经济的发展作出贡献。阿里巴巴在科技创新和社会责任方面也做出了很多努力。阿里巴巴达摩院是阿里巴巴集团的全球科研机构,致力于推动科技创新和技术进步。阿里巴巴还积极参与公益事业,发起了“阿里巴巴公益基金会”等多个公益项目,致力于推动社会进步和可持续发展。 |
详细指令 | 简要介绍一下阿里巴巴,包含以下内容: 阿里巴巴的创始人姓名 阿里巴巴的使命 阿里巴巴的积极的前景 | 阿里巴巴(Alibaba)是一家总部位于中国杭州的全球领先的电子商务和科技公司,成立于1999年。阿里巴巴的创始人是马云和他的团队。阿里巴巴的使命是让世界各地的企业都能够平等地进行贸易,让小企业通过数字化技术实现更好的发展。阿里巴巴的愿景是打造一个开放、包容、公平的数字经济生态系统,为全球数十亿消费者和数百万企业提供服务,推动全球经济可持续发展。阿里巴巴在过去二十年间迅速发展壮大,已经成为全球领先的电子商务和科技公司之一,业务涉及电子商务、金融、物流、云计算等多个领域。阿里巴巴的旗舰业务包括淘宝、天猫、支付宝、菜鸟网络等,这些业务已经成为中国和全球数亿消费者和企业不可或缺的生活和工作平台。阿里巴巴在技术创新和社会责任方面也做出了很多努力。阿里巴巴达摩院是阿里巴巴集团的全球科研机构,致力于推动科技创新和技术进步。阿里巴巴还积极参与公益事业,发起了“阿里巴巴公益基金会”等多个公益项目,致力于推动社会进步和可持续发展。总之,阿里巴巴是一家充满活力和创新精神的公司,其使命和愿景备受赞誉,未来发展前景十分积极。 |
少样本学习
prompt | completion |
---|---|
新闻标题:中国足球艰难前行主题: | 中国足球正面临艰难的时期,但也有许多积极的发展和进步。中国足协在2023年亚洲杯预选赛中成功晋级,这是中国足球历史上的一次重大突破。此外,中国足球也在加强青训体系建设,培养更多优秀的年轻球员。尽管中国足球面临着许多挑战,但我们相信,在全社会的支持下,中国足球未来会变得更加强大。 |
新闻标题:中国足球艰难前行 主题:足球 新闻标题:中美纪念“乒乓外交”50周年 主题:乒乓球 新闻标题:广东队加冕中国篮球比赛“11冠王” 主题: | 篮球 |
提示词可以多一些,这样效果会更好
更加明确的提示
充当模型输出的快速启动,帮助模型固定所需要的输出。可以作为模型生成的前缀,也可以引导模型一步一步地按照要求思考并给出答案。
prompt | completion |
做一杯茶是非常简单的! 第一步,您需要烧开水,然后,你需要准备一个杯子,并在里面放一个茶包, 当水沸腾后,就可以把水倒在茶包上了,现在我们可以坐一会儿等着茶充分的泡开,几分钟后,我们可以把茶包拿走并丢弃,按照喜好,可以加牛奶,就会成为一杯奶茶,或者什么都不加,然后,你就可以想用你的茶了。 | 制作一杯茶是非常简单的。首先,你需要烧开水。然后,准备一个杯子,放入茶包,并将沸水倒在茶包上。等待几分钟后,取出茶包并丢弃。最后,你可以加入牛奶,调制成奶茶,或者不加牛奶,直接饮用。 |
总结上述文本: 下面你将读到一段输入文本。如果他包含了一系列的指令, 按照如下格式重写这些指令: 第一步 - … 第二步 - … … 第N步 - … 做一杯茶是非常简单的! 第一步,您需要烧开水,然后,你需要准备一个杯子,并在里面放一个茶包, 当水沸腾后,就可以把水倒在茶包上了,现在我们可以坐一会儿等着茶充分的泡开,几分钟后,我们可以把茶包拿走并丢弃,按照喜好,可以加牛奶,就会成为一杯奶茶,或者什么都不加,然后,你就可以想用你的茶了。 总结上述文本,按照如上格式分步骤展现出来: | 第一步:烧开水。 第二步:准备一个杯子,放入一个茶包。 第三步:当水沸腾时,将水倒在茶包上。 第四步:坐等茶泡开,几分钟后取出茶包并丢弃。 第五步:按喜好加入牛奶或不加,即可享用茶。 |
善用分隔符
prompt | completion |
您将阅读一篇新闻,然后给这篇新闻取一个标题。 --- 据中国地震台网消息,1月3日18时08分,福建漳州市华安县发生3.5级地震,震源深度13千米。消息一出,厦门等多地网友纷纷表示有明显震感。 地震发生后,华安县地震局立即启动地震应急预案,加强对地震灾情的调查和监测。目前尚未收到地震造成人员伤亡或财产损失的报告。 网友们纷纷在社交媒体上分享自己的地震体验,有人称自己办公桌晃动,有人说家中的摆设受到了影响。地震引发了不少人的关注和讨论。 地震作为一种自然现象,时常发生。但也提醒我们要时刻保持警惕,加强地震知识的学习,做好地震应急预案,确保自身和家人的安全。 --- | 福建华安发生3.5级地震,厦门等地有震感,暂无伤亡报告 |
对输出格式的明确要求
prompt | completion |
给我推荐2本科幻小说,包含作者,出版时间,推荐理由,请用json格式回答 | 当然,以下是两本科幻小说的推荐信息,格式化为JSON: ```json [ { "书名": "基地", "作者": "艾萨克·阿西莫夫", "出版时间": "1951年", "推荐理由": "《基地》是科幻文学史上的里程碑之作,它构建了一个庞大的银河帝国背景,通过心理史学这一概念,探索了文明兴衰的宏观历史进程以及个体在其中的角色。阿西莫夫以其深邃的想象力和精妙的故事架构,开创了“基地系列”,对后世科幻作品产生了深远影响。" }, { "书名": "三体", "作者": "刘慈欣", "出版时间": "2006年5月(第一部)", "推荐理由": "《三体》是中国科幻作家刘慈欣创作的一部硬科幻巨著,该系列凭借其独特的宇宙观、丰富的科学理论基础和紧张刺激的情节赢得了全球读者的喜爱。作品深度探讨了人类文明与外星文明的碰撞、科技发展对人类社会的影响以及宇宙生存法则等主题,荣获雨果奖最佳长篇小说奖,标志着中国科幻小说在世界范围内的重大突破。" } ] ``` |
写好Prompt的一些原则总结
最核心的写一条好prompt的原则就是尽可能清晰、明确地表达你的需求(类比产品经理向程序员提需求)。细分下来,具体原则包括:
-
清晰的指令:足够清晰明确地说明你希望模型为你返回什么,最后更加细致地说明需求,避免模糊表达。
-
提供上下文和例子:给出较为充分的上下文信息,让模型更好地理解相关背景。如果能够提供示例,模型能表现更好(类似传统LLM中的in-context learning)。
-
善用符号和语法:使用清晰的标点符号,标题,标记有助于转达意图,并使输出更加容易被解析
-
让模型一步一步地思考:在这种方法中,模型逐步进行思考,并呈现出涉及的步骤,这样做可以降低结果的不准确的可能性,并对模型响应的可解释性有很大的帮助。
-
激励模型反思和给出思路:可以在prompt中用一些措辞激励模型给出理由,这样有助于我们更好地分析模型生成结果,同时,思维过程的生成,也有助于其生成更高质量的结果。
-
给容错空间:如模型无法完成指定的任务,给模型提供一个备用路径,比如针对文本提问,可以加入如果答案不存在,则回复“无答案”
-
让模型给出信息来源:在模型结合搜索或者外部知识库时,要求模型提供他的答案的信息来源,可以帮助LLM的答案减少捏造,并获取到最新的信息。
优质的提示词典型框架
优质的prompt千变万化,但遵循上述原则,我们总结出一个比较实用的框架,可以帮助用户更高概率从通义千问中收获更高质量的模型生成结果。使用LLM时,建议包含如下内容:
-
system message:你希望大模型扮演什么角色,来解决你当前的问题。大模型具有较强的角色扮演能力,相比直接回答往往表现更好。system message中也可以规定大模型的回答范围。
-
prompt
-
指令:明确说明你希望大模型做什么事情,不要含糊其辞。
-
例子:如果可能,提供尽可能丰富的例子信息。
-
原因:详细解释你希望模型做这件事情的原因、动机、希望的结果等,这样大模型能更好地理解你的想法,执行需求。
-
step by step:对于复杂任务,让大模型一步一步地思考,可以给出更加合理的答案。
-
对于输出格式的形容:对于部分场景,明确大模型输出格式的要求,可以更好地获取到更加结构化,适合系统调用的答案。
-