文章主题:
当前,chatgpt的api接口正式开发,迎来了全民aigc的时代。
但最近有进入到chagpt的服务体验群,总觉得大家并不怎么会使用chatgpt,集中体现在prompt构造不合理这个问题上。
🌟当然,prompt工程的关键在于它的影响力!每种提示都能引发独特的行为,优化它们以达到预期的成果至关重要。设计出色的prompt就像烹饪一道复杂的菜肴,需要精准的调味和创新的手法。🤔探索如何平衡引导性和自由度,确保无论哪种提示,都能激活深层思考并产生高质量输出,这就是我们要面对的挑战。🏆SEO优化的提示语言,不仅吸引搜索引擎,更能激发读者的兴趣,让每篇文章都成为知识的宝藏。
🌟🎨探索提示艺术:🔥提升语言模型效能的新兴领域🚀在这个快速发展的科技时代,一门前沿学科悄然崛起——提示工程,它专注于巧手打造和优化提示语,以驾驭强大的语言模型(LM)为工具,解锁无限可能。🌍💡无论是研究项目还是日常应用,LM都是关键引擎,提示工程就是它的点睛之笔。这项创新领域挑战与机遇并存,它不仅要求对语言的深度理解,还要懂得如何引导和激发LM的潜力。通过精炼而富有启发性的提示,我们能驱动模型在各种场景下流畅运作,无论是生成文本、解答问题还是进行自然对话。💬🤖SEO优化词汇如“提示语设计”、“智能交互”、“语言模型优化”,确保你的内容对搜索引擎友好,同时保持专业且引人入胜。别忘了,好的提示就像导航,引领我们探索知识的海洋。🌊📚欲了解更多关于这个令人兴奋的新领域,不妨深入研究,开启你的提示工程之旅吧!🚀
例如,研究人员利用提示工程来提高大型语言模型在各种常见和复杂任务上的能力,如问题回答和算术推理。开发人员利用提示工程来设计稳健有效的提示技术,与LLM和其他工具对接。
幸运的是,出于对使用LLM开发的高度兴趣,一个专注prompt提示指南的开源项目被提出,该创建了这个新的提示工程指南,其中包含所有与提示工程相关的最新论文、学习指南、讲座、参考资料和工具。
🚀GitHub上的Prompt工程指南📚,由AI专家们精心打造!💡探索最新prompt设计趋势,解锁创新思维密码。📚从基础到进阶,全面解析prompt工程实践,让你的代码引领潮流。👩💻立即访问我们的资源库,获取免费教程和实战案例,一起开启启发之旅!🌐别忘了,你的技术飞跃,就差这一步!🌟
本文以该项目为基础,从Prompt概述、高级用法、开源代码工具、开源数据集等四个个方面进行总结性论述,供大家一起参考。
一、Prompt的概念、构成及常见任务
1、什么是提示,为什么要使用提示
提示包括传递给语言模型的指令和语境,以实现预期的任务。
🌟🚀提升你的AI语言效能!💡指示性工程,即对语言模型(LMs)进行深度开发与优化的实践,是AI领域的专家们不可或缺的利器。它专注于打造能够在各领域中流畅运作的语言引导者,让LMs的力量发挥到极致。掌握这项技能,意味着你能在智能交互、文本生成等场景中引领潮流,为创新注入强大驱动力。👩💻👨💻
🌟💡Prompt:一款强大科研工具,驱动探索与突破!🚀🔍它以科学严谨的态度,支撑着研究的基石,引领发现的新里程。🎯通过精心设计,不仅考验LLM的边界,还能激发无限可能,催生创新应用的璀璨火花。🌍无论在理论深度还是实践广度上,Prompt都是LLM不可或缺的伙伴,帮助我们超越传统,拥抱未来。🌱欲了解更多关于如何利用它来推动知识进步和行业革新,请访问我们的官方网站(替换为相关链接),那里有详尽的内容和案例分享。🔗记得,你的每一次探索都因Prompt而独特且有价值!🏆
2、prompt的基本构成
🌟一篇优质文章应包含所有关键元素,就像标准提示中的 Ingredients 📝首先,明确的指导大纲(Instructions),犹如蓝图,引领我们创作的方向;接着,生动的情境(Context),如同舞台背景,让故事鲜活起来;再来,丰富的输入数据(Input data),是内容的血肉,提供深入探讨的素材;最后,衡量成功的尺子(Output indicator),确保我们的观点清晰有力。每个部分都是构建精彩篇章不可或缺的元素,共同创造出一篇有深度且吸引人的文章。🌍
不过,在提示语言模式时,有规律可言。可以牢记几个设置,在使用不同的设置时,会在提示中得到不同的结果。
其中,一个重要的设置是控制模型在生成提示语完成时的决定性程度。
temperature和top_p是两个重要参数。
一般来说,如果想得到准确的答案,就把这些参数调低,如果想得到更多不同的答案,就把它们调高。
4、一些针对特定任务的prompts
下面介绍几个常用的任务prompt:
1)Text Summarization文本摘要
2)Question Answering问答
3)Text Classification文本分类
4)Role Playing角色扮演
5)Code Generation代码生成
6) Reasoning推理
二、Prompt工程的一些高级用法
1、Few-shot Prompts
2、Chain-of-Thought (CoT) Prompting
Chain-of-Thought (CoT) Prompting指通过指导模型在回答时对任务进行推理,可以进一步提高提示的效果,这对需要推理的任务非常有用。
具体的,可以把它和少量的提示结合起来,以获得更好的效果,即在没有范例的情况下,可以做zero shot的CoT。
3、Zero-Shot CoT
Zeroshot COT指的是在原有prompt上增加 Lets think step by step 的提示语
4、Self-Consistency
Self-Consistency自我一致性旨在改进思维链提示中所使用的合理性解码。
具体的,可以通过少量的CoT对多个不同的推理路径进行取样,并利用这些代数来选择最一致的答案,这有助于提高CoT提示在涉及算术和常识性推理的任务中的表现。
5、Generate Knowledge Prompting
Generate Knowledge Prompting涉及到使用作为背景的一部分提供的额外知识,以改善复杂任务的结果,如常识推理。
例如,生成的知识提示包括两步:
(i)使用少量的演示,从语言模型中生成与问题相关的知识陈述;
(ii)使用第二个语言模型对每个知识陈述进行预测,然后选择置信度最高的预测。
6、Program-aided Language Model (PAL)
思考链提示是一个很好的例子,说明如何引导模型在复杂的推理任务中表现得更好。
程序辅助语言模型(PAL)使用LLM来读取问题并生成程序作为中间推理步骤。
然而,有时CoT是不够的,因为它只依赖于模型生成的文本。
7)ReAct
ReAct是一个框架,LLM被用来以交错的方式生成推理痕迹和特定任务的行动。
生成推理跟踪允许模型诱导、跟踪和更新行动计划,甚至处理异常。
行动步骤允许与外部资源(如知识库或环境)对接并收集信息。
ReAct允许LLM与外部工具互动,以检索更多的信息,从而获得更可靠和真实的反馈。
三、开源工具与代码组件集合
1、AI Test Kitchen
地址:https://aitestkitchen.withgoogle.com
2、betterprompt
地址:https://github.com/krrishdholakia/betterprompt
3、DreamStudio
地址:https://beta.dreamstudio.ai
4、DUST
地址:https://dust.tt
5、Dyno
地址:https://trydyno.com
6、EmergentMind
地址:https://www.emergentmind.com
7、EveryPrompt
地址:https://www.everyprompt.com
8、GPT Index
地址:https://github.com/jerryjliu/gpt_index
9、GPTTools
地址:https://gpttools.com/comparisontool
10、hwchase17/adversarial-prompts
地址:https://github.com/hwchase17/adversarial-prompts
11、Interactive Composition Explorer
地址:https://github.com/oughtinc/ice
12、LangChain
地址:https://github.com/hwchase17/langchain
13、Lexica
地址:https://lexica.art
14、loom
地址:https://github.com/socketteer/loom
15、Metaprompt
地址:https://metaprompt.vercel.app/?task=gpt
16、OpenAI Playground
地址:https://beta.openai.com/playground
17、OpenPrompt
地址:https://github.com/thunlp/OpenPrompt
18、Playground
地址:https://playgroundai.com
19、Prodia
地址:https://app.prodia.com/#/
20、Prompt Base
地址:https://promptbase.com
21、Prompt Engine
地址:https://github.com/microsoft/prompt-engine
22、Prompt Generator for OpenAIs DALL-E 2
地址:http://dalle2-prompt-generator.s3-website-us-west-2.amazonaws.com
23、Promptable
地址:https://promptable.ai
24、PromptInject
地址:https://github.com/agencyenterprise/PromptInject
25、Prompts.ai
地址:https://github.com/sevazhidkov/prompts-ai
26、PromptPerfect
地址:https://promptperfect.jina.ai/
27、Promptly
地址:https://trypromptly.com/
28、PromptSource
地址:https://github.com/bigscience-workshop/promptsource
29、Promptist
地址:https://promptist.herokuapp.com/
30、Scale SpellBook
地址:https://scale.com/spellbook
31、sharegpt
地址:https://sharegpt.com
32、ThoughtSource
地址:https://github.com/OpenBioLink/ThoughtSource
33、Visual Prompt Builder
地址:https://tools.saxifrage.xyz/prompt
四、Prompt相关数据集
1、Anthropics Red Team dataset
地址:https://github.com/anthropics/hh-rlhf/tree/master/red-team-attempts)
2、Awesome ChatGPT Prompts
地址:https://huggingface.co/datasets/fka/awesome-chatgpt-prompts
3、DiffusionDB
地址:https://github.com/poloclub/diffusiondb
4、Midjourney Prompts
地址:https://huggingface.co/datasets/succinctly/midjourney-prompts
5、P3 – Public Pool of Prompts
地址:https://huggingface.co/datasets/bigscience/P3
6、PartiPrompts
地址:https://parti.research.google
7、Real Toxicity Prompts
地址:https://allenai.org/data/real-toxicity-prompts
8、Stable Diffusion Dataset
地址:https://huggingface.co/datasets/Gustavosta/Stable-Diffusion-Prompts
9、WritingPrompts
地址:https://www.reddit.com/r/WritingPrompts)
总结
本文主要以Prompt-Engineering-Guide项目为基础,从Prompt概述、高级用法、开源代码工具、开源数据集等四个个方面进行总结性论述。
其中比较有意思的是融合外部知识让llm左脚踩右脚进行自我优化,包括Generate Knowledge Prompting、PAL以及REC,这三篇文章对应于文末的三篇参考文献,感兴趣的朋友可以进行查阅,增进自己的理解。
参考文献
1、https://github.com/dair-ai/Prompt-Engineering-Guide
2、https://arxiv.org/pdf/2110.08387.pdf
3、https://arxiv.org/pdf/2211.10435.pdf
4、https://arxiv.org/pdf/2210.03629.pdf
关于我们
老刘,刘焕勇,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。
就职于360人工智能研究院、曾就职于中国科学院软件研究所。
老刘说NLP,将定期发布语言资源、工程实践、技术总结等内容,欢迎关注。
对于想加入更优质的知识图谱、事件图谱实践、相关分享的,可关注公众号,在后台菜单栏中点击会员社区->会员入群加入。
AI时代,掌握AI大模型第一手资讯!AI时代不落人后!
免费ChatGPT问答,办公、写作、生活好得力助手!
扫码右边公众号,驾驭AI生产力!
转载请注明:如何设计有效的ChatGPTPrompt?探索PromptEngineering的最新趋势和实践平 | ChatGPT资源导航