提示工程与提示策略

人工智能 2023-04-19 854 次浏览 0 条评论 次点赞

提示词(Prompt)是给 AI 模型的指令,这个指令可能是一个问题,也可能是一个描述,甚至可能是带有参数的描述。

prompt-engineering.jpg

提示工程(Prompt Engineering)是设计和改进Prompt的技术。虽然最新的AI多是支持Prompt使用自然语言的,但为了让AI更好的理解指令并准确、可靠地执行特定任务(或者说是更有利于人类操作和控制AI),需要Prompt Engineering技术。

不同大模型的架构设计、训练方法、训练数据和目标任务不同,它们对提示词有不同的偏好,使得提示词在各大模型中不通用,提示工程不具普适性。由此,提示工程从科学变成艺术,实践中需要根据具体的模型和任务来设计合适的提示词。

作为类比,搜索引擎就需要许多格式和技巧,这就更便于理解Prompt Engineering了。首先,您可以认为提示词就是准备要向AI提问的几个关键词。

OpenAI 的 CEO Sam Altman曾公开表示:五年后,就不再需要 Prompt Engineering。想要不用特定Prompt就能和AI流畅对话,ChatGPT认为需要解决四个挑战:

  1. AI需要更好地理解语境和连贯性;
  2. AI需要有丰富的常识和推理能力;
  3. AI需要理解和处理情感信息;
  4. AI需要有主动学习和适应能力。

社区用户对于 AI 的能力探索热情极高,目前已经出现了 Prompt 的学习交流网站如 promptoMANIA,社群中也流传着很多 Prompt 数据集的公开 Google 文档及文章教程。

PromptBase.JPG

由于用不同的 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 参数的模型中使用才会有效。

哲学家如何使用人工智能

iA Writer 制造商 iA 的首席执行官兼创始人 Oliver Reichenstein(@reichenstein,有哲学硕士学位)《扭转人工智能局面》(Turning the tables on AI)一文分享了使用人工智能提升自己写作水平的策略,而不是将工作完全交给机器人。一个重要的扭转举措很有见地(via 山巅周刊第225期):

不要问人工智能,让人工智能问你,例如,像这样:

我想写一篇关于 [主题] 的文章。每次问我一个问题,迫使我解释我的想法。


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

5eBzz5pXQt9KmPyLv5qg--1--baoze.jpg
使用图像模型聚合工具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,文本到图像生成模型的快速设计初学者指南。

👍

本文由 cds 整理发布,参考 CC-BY-SA 3.0 协议共享,欢迎转载、引用或改编。
感谢您的支持,以共同推动STEM公益教育!

楼主残忍的关闭了评论