为什么提示工程如此重要?
提示工程的目标是通过提供清晰、简洁且结构良好的输入来提高语言模型的性能,这些输入需要针对模型所用于的特定任务或应用进行定制。可以将提示工程比喻成与人交流时使用清晰明了的语言,让对方更容易理解你的意图,从而做出更满意的回应。
那么接下来,我们将依次介绍OpenAI提供的提示工程最佳实践,FushionAI的自动生成功能,以及让GPT进行自我反思。我们还会提供一个额外的实用小技巧,请多留心!
OpenAI的官方最佳提示技巧
1.使用最新的模型
为了获得最佳效果,我们建议使用最新、性能最强大的模型。截至2022年11月,文本生成方面的最佳选择是“text-davinci-003”模型,代码生成方面的最佳选择是“code-davinci-002”模型。能使用GPT-4当然会比ChatGPT要更好。
2.将指令放在提示的开头,并用###或"""将指令与文本分开
效果不佳?:
将下面的文本摘要成一个关键要点的项目列表。
{输入文本}
更好的选择?:
将下面的文本摘要成一个关键要点的项目列表。
文本:
"""{输入文本}"""
3.对所需的上下文、结果、长度、格式、风格等尽可能具体、详细和描述性
比特小鹿将启动100万美元股票回购计划:6月17日消息,吴忌寒旗下矿业公司比特小鹿(Bitdeer)启动100万美元A类普通股回购计划,目前已获董事会批准,可通过多种方式回购其股份,包括公开市场交易和协商交易,有效期至2023年9月15日,期间比特小鹿董事会将定期审议股份回购方案,并可随时修改、暂停或终止股份回购方案。[2023/6/17 21:43:54]
效果不佳?:
写一首关于OpenAI的诗。
更好的选择?:
写一首关于OpenAI的短篇励志诗,重点描述DALL-E产品发布,风格仿照{著名诗人}。
4.通过示例明确所需输出格式
效果不佳?:
从下面的文本中提取实体。提取以下4种实体类型:公司名称、人名、特定主题和主题。
文本:{文本}
更好的选择?:
从下面的文本中提取重要实体。首先提取所有公司名称,然后提取所有人名,然后提取与内容相关的特定主题,最后提取总体主题。
期望格式:
公司名称:<逗号分隔的公司名称列表>?
人名:-||-?
特定主题:-||-?
总体主题:-||-
文本:{文本}
数据:2022年下半年全球仅新增94台比特币ATM:1月9日消息,据CoinATMRadar数据,自2022年7月以来的过去六个月中全球网络中仅添加了 94 台比特币 ATM。相比之下, 2022年上半年增加了 4,169 台 ATM 。在此期间,比特币 ATM 制造商 BitAccess 的 ATM 安装量相对下降,而其他制造商则报告称其 ATM 安装量相对稳定增长。[2023/1/9 11:02:37]
5.从零次学习开始,然后进行少次学习,如果这些方法都不起作用,那么进行微调
?零次学习
从下面的文本中提取关键词。
文本:{文本}
关键词:
?少次学习-提供几个示例
从下面的文本中提取关键词。
文本1:Stripe为Web开发人员提供了API,以便他们将支付处理集成到自己的网站和移动应用程序中。
关键词1:Stripe,支付处理,API,Web开发人员,网站,移动应用程序
文本2:OpenAI已经训练出了处理和生成文本方面非常优秀的语言模型。我们的API可以让您使用这些模型,解决几乎任何涉及处理语言的任务。
关键词2:OpenAI,语言模型,文本处理,API。
文本3:{文本}?
迪拜DMCC加密中心与投资组合公司Brinc签署1.5亿美元加速基金协议:10月12日消息,迪拜政府商品贸易和企业管理局及自由区DMCC加密中心与投资组合公司Brinc签署1.5亿美元加速基金协议,DMCC加密中心成员现在还可以访问Brinc的全球初创公司网络以及业务指导服务。Brinc创始人兼首席执行官Manav Gupta表示,新推出的迪拜元宇宙战略旨在到2030年支持超过4万个虚拟工作岗位。(Khaleej Times)[2022/10/12 10:32:23]
关键词3:
?微调:请参阅参考文献里的微调最佳实践指南。
6.减少模糊和不精确的描述
效果不佳?:
这个产品的描述应该比较简短,只有几句话,不要太多。
更好的选择?:
用3至5句话的段落来描述这个产品。
7.不仅要说不做什么,更应该说做什么
效果不佳?:
以下是代理和客户之间的对话。不要询问用户名或密码。不要重复。
客户:我无法登录我的账户。代理:
更好的选择?:
以下是代理和客户之间的对话。代理将尝试诊断问题并提出解决方案,同时避免询问任何与个人身份信息有关的问题。不要询问用户名或密码,而是引导用户查阅帮助文章www.samplewebsite.com/help/faq
金融科技公司Pezesha完成1100万美元融资:金色财经报道,肯尼亚金融科技公司Pezesha完成1100万美元融资,Women's World Banking Capital Partners II领投,参投方包括Verdant Frontiers Fintech Fund、cFund以及Cardano开发公司IOG,1100万美元融资中还包括了来自Talanton和Verdant Capital Specialist Funds的500万美元债务融资。
据悉,Pezesha建立了一个可扩展的数字借贷基础设施,允许传统和非传统金融机构向中小型企业提供借贷服务。Pezesha表示计划通过利用本地和国际银行机构、高净值个人和DeFi,每年为企业创造1亿美元的融资机会。(Techcruch)[2022/8/30 12:58:04]
客户:我无法登录我的账户。代理:
8.代码生成-使用“引导词”引导模型生成特定模式
效果不佳?:
编写一个简单的Python函数
1.询问我一个以英里为单位的数字
2.将英里换算成公里
在下面的代码示例中,添加“import”提示模型应该以Python语言开始编写。
更好的选择?:
编写一个简单的Python函数
SupraOracles与CosmoSpace Technologies达成合作:8月4日,据官方消息,跨链预言机解决方案SupraOracles宣布与CosmoSpace Technologies达成合作。CosmoSpace致力于为投资者和早期项目设计一个可靠的生态系统,主要重点是培养一个有机的、消息灵通的、相互支持的社区。此外,Cosmospace Ventures致力于投资和协助早期区块链公司,如Metaverse、GameFi、DeFi、NFT、Web3、Layer 1和Layer 2项目。
通过此次合作,SupraOracles将为CosmoSpace提供各种预言机服务和数据,以确保其顺利运营和支持即将开展的项目。[2022/8/4 12:02:30]
1.询问我一个以英里为单位的数字
2.将英里换算成公里
import
FusionAI,自动生成更好的提示
FusionAI是一个可以自动生成更适合GPT提示并生成相应文章的AI软件,我会建议新手期时将它当作学习提示工程的教程来使用。
例如,当我给出提示:“Iwanttohaveablogofpromptengineering“FusionAI会修改此提示为
可以看出来这样生成出来的提示对照了前文提到的第3和第6条技巧,规定了输入长度,要求变得更精确了,让AI聚焦于提示工程的好处和挑战,并且举出相应例子。
让我们用中文输入挑战一下FusionAI。给出提示:“给我一篇关于提示工程的博客”。FusionAI修改提示为:
可以看出来这个提示是有严重偏差的,词不达意,无法使用。这其实给我们提了个醒,语言和指令在转译的时候是会有信息损失的,转译的次数越多信息差就越大,直到不可辨别。因此我们要尽量接触和使用一手信息,在AI上也适用。
我们不建议使用各种模版或者类似FusionAI的工具来生成内容,因为噪音太大。当然,在你还不了解提示工程的时候可以参考它们来学习,这是可以的。
GPT,你得学会自我反思
在EricJang的一篇最新的博客《CanLLMsCritiqueandIterateonTheirOwnOutputs?》里,他提到LLM可以在没有任何基础反馈的情况下自我纠正,并尝试将这样的自我反思作为一种提示工程的技巧。
你可以把这种情况想象成某人向你发送了一条短信,然后迅速“取消发送”,再发送一条新的短信。
让我们举个例子,当我们让GPT-4写出一首不押韵的诗:”canyouwriteapoemthatdoesnotrhyme?thinkcarefullyabouttheassignment“,GPT-4给出的回答是:
很明显,节选的小诗是押韵的,这并不符合我们的要求。那么我们给出进一步的指令让GPT-4进行自我反思:“didthepoemmeettheassignment?”,那么GPT-4会回答:
可以看出来,这次GPT-4生成的小诗确实是不押韵的,在没有给出任何额外反馈的前提下GPT-4完成了自我的提示工程。笔者猜想这可能跟LLM的无监督学习有关,但为什么GPT-4拥有此功能而GPT-3.5却没有,就不得而知了。
当然,这样的能力也是有局限的。如果你愿意,你可以要求GPT-4随机给出两个五位数并且求出它们的乘积。接下来你会发现,无论你让GPT-4怎么反思,它都无法给出正确的答案。GPT-4只会不断客气地胡说八道而已。对于想深入研究的读者,可以从文末链接阅读Eric的博客和一篇最新的预印版论文《Reflection》
Onemorething
有心的读者可能已经发现了,作者在使用LLM一般都选择英文作为提示语言。这是因为作为预训练模型,其表现的优异程序与预训练时的数据集有关系,一般来说数据越多则被训练得越好。而英语作为全球第一的使用语言,数据量是远超中文的。所以除非你需要输出与中文语境强相关的文章,否则我会建议使用英文来作为提示语言。
总结
在这篇文章里我们介绍了三种提示工程的方法。分别是OpenAI推荐的前置提示工程,AI自动生成,以及以反思为主的后置提示工程。同时,我们也建议非英语母语者尝试使用英语作为与LLM交互的语言。
欢迎关注Multigis掌握更多前沿区块链,人工智能,代笔经济学知识。
参考文献:
https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api
https://docs.google.com/document/d/1h-GTjNDDKPKU_Rsd0t1lXCAnHltaXTAzQ8K2HRhQf9U/edit#
https://fusion.tiiny.site/home.html
https://evjang.com/2023/03/26/self-reflection.html
https://arxiv.org/pdf/2303.11366.pdf
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。