提示词(Prompt)是给 AI 模型的指令,这个指令可能是一个问题,也可能是一个描述,甚至可能是带有参数的描述。
提示工程(Prompt Engineering)是设计和改进Prompt的技术。虽然最新的AI多是支持Prompt使用自然语言的,但为了让AI更好的理解指令并准确、可靠地执行特定任务(或者说是更有利于人类操作和控制AI),需要Prompt Engineering技术。
不同大模型的架构设计、训练方法、训练数据和目标任务不同,它们对提示词有不同的偏好,使得提示词在各大模型中不通用,提示工程不具普适性。由此,提示工程从科学变成艺术,实践中需要根据具体的模型和任务来设计合适的提示词。
作为类比,搜索引擎就需要许多格式和技巧,这就更便于理解Prompt Engineering了。首先,您可以认为提示词就是准备要向AI提问的几个关键词。
OpenAI 的 CEO Sam Altman曾公开表示:五年后,就不再需要 Prompt Engineering。想要不用特定Prompt就能和AI流畅对话,ChatGPT认为需要解决四个挑战:
- AI需要更好地理解语境和连贯性;
- AI需要有丰富的常识和推理能力;
- AI需要理解和处理情感信息;
- AI需要有主动学习和适应能力。
社区用户对于 AI 的能力探索热情极高,目前已经出现了 Prompt 的学习交流网站如 promptoMANIA,社群中也流传着很多 Prompt 数据集的公开 Google 文档及文章教程。
由于用不同的 Prompt 获得的效果差异很大(尤其是图片模型),甚至出现了 Prompt 交易平台。PromptBase 就是一个包含 Midjourney、DALL-E2、GPT-3 等不同平台 Prompt 的交易平台。Prompt Engineer 成为新的创作者,提示工程成了最先繁荣起来的AI产业。
Prompt 交易市场之所以能存在,一方面是因为人们表达能力的不同;另一方面是模型内部逻辑的原因,一些看似不合常理的词语组合却能获得意想不到的效果。
ChatGPT 提示技术
最初Prompt技术是面向ChatGPT的,因为ChatGPT第一次让普罗大众开始AI狂欢并且提出有质量有价值的问题,这可以看作通用的人工智能模型提示技术。在衡量大模型的能力时,出现了三个标准:一是大模型的预训练水平;二是用来进行预训练语料数量和质量;三是提示语的水平。而当用户使用这些模型的时候,只需要考虑用户的Prompt水平。
以下是面向ChatGPT的两个流行提示框架:
Elavis Saravia 总结了 Prompt Framework,包括:
- Instruction(必须): 指令,即你希望模型执行的具体任务。
- Context(选填): 背景信息,或者说是上下文信息,这可以引导模型做出更好的反应。
- Input Data(选填): 输入数据,告知模型需要处理的数据。
- Output Indicator(选填): 输出指示器,告知模型我们要输出的类型或格式。
以及 Matt Nigh 的 CRISPE Framework:
- CR: Capacity and Role(能力与角色)。你希望 ChatGPT 扮演怎样的角色。
- I: Insight(洞察力),背景信息和上下文(坦率说来我觉得用 Context 更好)。
- S: Statement(指令),你希望 ChatGPT 做什么。
- P: Personality(个性),你希望 ChatGPT 以什么风格或方式回答你。
- E: Experiment(尝试),要求 ChatGPT 为你提供多个答案。
Prompt的原则
- 与 AI 对话几乎没有正确或错误的方式。
- 不需要谦逊的指令(比如请或谢谢),只需要清晰的指令。
- 尽可能具体的、专业的、包含完整信息的文本提示。
- 简洁和准确,易懂并减少歧义。
- 首选英语运行指令,并保证正确的语法。Andrej Karpathy曾说,最热门的新编程语言是英语。
- AI擅长已经发生的基本事实而非意见判断。
Prompt的技巧
- 告诉模型能干什么。
- 为提示增加一些案例。
Prompt的应用场景
内容生成:
- 撰写招聘信息。
- 撰写商品描述。
- 撰写视频脚本。
- 编程代码。
内容改写:
- 翻译:包括人类语言和编程语言。
- 修改:语法检查并修改。
- 润色:将内容改成另一种风格,如将复杂内容改写为适用儿童的,将专业内容改写为适用大众的。
- 信息解释:比如解释编程语言的命令和参数含义;解读论文专著。
内容简化:
- 总结,使用
"""
或者###
符号将指令和需要处理的文本分开。 - 提取关键内容并归类。
推理:
- 执行运算和推理。
高级技巧
Zero-shot Prompt(直接提问)
Zero-shot prompt指AI模型基于一些通用的先验知识或模型在先前的训练中学习到的模式,对新的任务或领域进行推理和预测。Zero-Shot Prompting 是一种自然语言处理技术,可以让计算机模型根据提示或指令进行任务处理,而无需事先专门训练。
简单地说,就是直问直答。如:概述《Ai Superpowers》的核心内容
。
当Zero-shot prompt的模型输出结果不太准确时,Kojima 等人 2022 年的论文 Large Language Models are Zero-Shot Reasoners 提到,在问题最后加入 Let‘s think step by step
这句话。
论文详细解释了零样本思维链(Zero-Shot Chain of Thought)的技巧。
Few-Shot Prompt(提供少量样例)
为提示增加一些案例实际上使用了一个叫 Few-Shot 的方法。小样本思维链(Few-Shot Chain of Thought)在此基础上再将逻辑过程告知模型。
Wei 等人在 2022 年的研究表明:通过向大语言模型展示一些少量的样例,并在样例中解释推理过程,大语言模型在回答提示时也会显示推理过程。这种推理的解释往往会引导出更准确的结果。
Wei 等人在 2022 年的论文表明,以上思维链仅在大于等于 100B 参数的模型中使用才会有效。
Midjourney 提示技术
尽管如前所述,尽管我们在使用ChatGPT时习得了通用的人工智能模型提示技术,但Prompt真正的价值体现在于Midjourney为首的图像生成类应用。Midjourney可能需要十几个乃至几十个提示词,大模型可以更准确地理解并输出用户想要的图案。
科技媒体《Venture Beat》的说法:现在已经到了AI艺术的转折点,未来的艺术家无论是自学成才还是科班出身,都需要有创造Prompt的能力,需要理解和学习数据科学,以及大模型的工作原理。
Prompt逐渐成了一门深奥的学问。能否熟练运用Prompt,直接左右了大模型所能释放的生产力;在此过程中如果不断重复调整,还是浪费很多算力成本。
- Midjourney无法理解Prompt的句子结构和语法,你需要给出完整的指令。
- Midjourney有多个Parameter(参数)设置项,可能在
/setting
中设置,或者在以下命令行中给出。
Midjourney的命令行:
/imagine prompt description of what to imagine parameter
Midjourney Prompt 常用参数
- Aspect Ratios(长宽比):
--ar m:n
,各版本的比例规则比较多,可以选用常见的5:4、3:2和7:4 - Chaos(随机性):
--c n
,n为0-100,数字越高,结果越发散 - Niji(Niji 模型):
--niji
,生成漫画风格 - No(不要):
--no text
,text为不要出现的内容 - Stylize(风格化):
--s n
,n默认 100,数值越高艺术性就会越强,但跟 prompt 关联性就会比较弱。 - Version(版本):
--v n
,n为1-5,需要了解各版本差异
如果你觉得Midjourney不好用或者根本不能用,也许是需要订阅。
/subscribe
开始订阅;- 支付服务商为Stripe,只支持信用卡且有诸多环境限制。
提示词示例
生成图片:
A majestic lion in watercolor style, roaring fiercely, standing on a rocky cliff overlooking a savanna, at sunset, with warm golden backlighting, viewed from a low angle, conveying power and dominance, highly detailed 4K resolution
使用图像模型聚合工具NightCafe创作
医学伦理推理:
你是一位经验丰富的AI伦理专家。请分析人工智能在医疗诊断中的应用可能带来的三个主要伦理挑战。对每个挑战,提供一个可能的解决方案。在回答时,请考虑患者隐私、医疗责任和社会公平等方面。请以列表形式呈现你的分析,并在每个观点后提供简短的解释。
推理结果见《使用Ollama本地部署开源语言模型》。
有用的链接
- 提示工程,OpenAI官方文档。
- GPT best practices,OpenAI官方 GPT 最佳实践
- Stable Diffusion prompt: a definitive guide,Stable Diffusion 提示权威指南。
- DreamStudio Prompt Guide:Basics of Prompt Engineering,Stable Diffusion 提示基础知识。
- ChatGPT Prompt Engineering for Developers,面向开发人员的 ChatGPT 提示工程
- Learning Prompt,免费的 Prompt Engineering 教程,已包含 ChatGPT 和 Midjourney 教程。
- Learn Prompting,免费开源的提示工程课程,还提供Prompt Engineering Certificate证书路线。
- Prompter Guide:MidJourney AI 的提示设计资源。
- THE Ultimate Prompting GUIDE,全面的 Stable Diffusion 提示指南,也包括其他图像生成模型如 Midjourney 和 DALL-E。PromptHero 支持通过 Stable Diffusion、Midjourney 等模型搜索数百万 AI 艺术图像,用户从提示标签中获得灵感,或添加您自己的标签并为不断增长的标签库做出贡献。
- Prompt Engineering Guide:用于提示工程的指南、论文、讲座、笔记本和资源。
- Awesome ChatGPT Prompts:包括 ChatGPT 提示管理,以便更好地使用 ChatGPT。
- Guide for prompt writing:BoostPixels是一个生成式 AI,可以生成图像和训练自定义模型。Guide for prompt writing是针对 BoostPixels 引擎的官方提示教程,有完整版本和简短版本。
- A Beginner's Guide to Prompt Design for Text-to-Image Generative Models,文本到图像生成模型的快速设计初学者指南。
楼主残忍的关闭了评论