Prompt 工程师指南 [应用篇]:Prompt 应用、ChatGPT|Midjouney Prompt Engineering
Prompt 工程师指南[应用篇]:Prompt 应用、ChatGPT|Midjouney Prompt Engineering
1.ChatGPT Prompt Engineering
主题:
与 ChatGPT 对话 Python 笔记本
Topics:
ChatGPT 介绍
ChatGPT 是OpenAI训练的一种新型模型,可以进行对话交互。该模型经过训练,可以按照提示中的指令,在对话上下文中提供适当的回应。ChatGPT 可以帮助回答问题、建议菜谱、按某种风格写歌词、生成代码等等。
ChatGPT 使用人类反馈强化学习(RLHF)进行训练。虽然这个模型比之前的 GPT 版本更具有能力(还经过训练以减少有害和不真实的输出),但它仍然存在限制。让我们通过具体的例子来了解一些能力和限制。
您可以在这里 使用 ChatGPT 的研究预览,但在下面的例子中,我们将使用 OpenAI Playground 上的“Chat”模式。
1.1 审查对话任务
In one of the previous guides, we covered a bit about conversation capabilities and role prompting. We covered how to instruct the LLM to have a conversation in a specific style, with a specific intent, behavior, and identity.在之前的指南中,我们介绍了一些关于对话能力和角色提示的内容。我们讲解了如何指导 LLM 以特定的风格、意图、行为和身份进行对话。
让我们回顾一下之前的基本示例,我们创建了一个对话系统,能够生成更技术和科学的回答。
Prompt:
从上面的例子中,您可以看到两个重要组成部分:
意图或者解释聊天机器人是什么身份,它指导聊天机器人用什么风格或语气来回复
上述简单示例适用于使用 text-davinci-003 的文本完成 API。最近,OpenAI 宣布了ChatGPT APIs,它是一种更强大和更便宜的模型,名为 gpt-3.5-turbo,专门用于这种类型的功能(聊天完成)。OpenAI 推荐它作为它们的最佳模型,即使是非聊天的用例也是如此。使用 ChatGPT API 的其他好处是显着的成本降低(90%)和效率。Snap Inc.和 Instacart 等大公司已经在他们的产品上集成了由 ChatGPT 支持的对话功能,从个性化推荐到开放式购物目标不等。
1.2 使用 ChatGPT 进行对话
1.2.1 多轮对话
为了展示 ChatGPT 的能力,我们将使用上面的聊天机器人助手示例并讨论结果。与 text-davinci-003 相比,为 ChatGPT 提供动力的 gpt-3.5-turbo 模型使用聊天格式作为输入。模型期望一系列消息作为输入,然后使用这些消息生成响应。
Input:
Output:
请注意,在上面的示例中,我已经简化了输入和输出,但是 ChatGPT 聊天补全 API 要求消息以特定的格式提供。我在下面添加了一个快照,展示了在 OpenAI Playground 中使用 Chat Mode 时,此示例的外观:
对于我们的示例,更正式的 API 调用可能类似于以下示例:
未来开发人员与 ChatGPT 交互的方式预计将通过Chat Markup Language(简称 ChatML)完成。
1.2.2 单轮任务
聊天格式使得多轮对话成为可能,但它也支持类似我们使用 text-davinci-003 进行的单轮任务。这意味着我们可以使用 ChatGPT 执行类似于我们对原始 GPT 模型进行演示的任务。例如,让我们尝试使用 ChatGPT 执行以下问答任务:
Input:
Output:
请注意,我添加了“USER”和“ASSISTANT”标签,以更好地演示如何使用 ChatGPT 执行任务。以下是使用 Playground 的示例:
更正式地说,这是 API 调用(我仅包括请求的消息组件):
1.2.3Instructing Chat Models
根据官方 OpenAI 文档,gpt-3.5-turbo 模型的快照也将提供。例如,我们可以访问 3 月 1 日的快照 gpt-3.5-turbo-0301。这使得开发人员可以选择特定的模型版本。这也意味着指导模型的最佳实践可能会从一个版本变化到另一个版本。
目前针对 gpt-3.5-turbo-0301 的推荐做法是,在 user 消息中添加指令,而不是在可用的 system 消息中添加指令。
1.3Python 笔记本
1.4 参考资料(英文)
Seeing ChatGPT Through Students' Eyes: An Analysis of TikTok Data (March 2023)
Making a Computational Attorney (Mar 2023)
Does Synthetic Data Generation of LLMs Help Clinical Text Mining? (Mar 2023)
MenuCraft: Interactive Menu System Design with Large Language Models (Mar 2023)
ChatGPT: Beginning of an End of Manual Annotation? Use Case of Automatic Genre Identification (Mar 2023)
Is ChatGPT a Good NLG Evaluator? A Preliminary Study (Mar 2023)
Will Affective Computing Emerge from Foundation Models and General AI? A First Evaluation on ChatGPT (Mar 2023)
How to format inputs to ChatGPT models (Mar 2023)
Can ChatGPT Assess Human Personalities? A General Evaluation Framework (Mar 2023)
Cross-Lingual Summarization via ChatGPT (Feb 2023)
ChatAug: Leveraging ChatGPT for Text Data Augmentation (Feb 2023)
Dr ChatGPT, tell me what I want to hear: How prompt knowledge impacts health answer correctness (Feb 2023)
An Independent Evaluation of ChatGPT on Mathematical Word Problems (MWP) (Feb 2023)
ChatGPT: A Meta-Analysis after 2.5 Months (Feb 2023)
Let's have a chat! A Conversation with ChatGPT: Technology, Applications, and Limitations (Feb 2023)
On the Robustness of ChatGPT: An Adversarial and Out-of-distribution Perspective (Feb 2023)
Can ChatGPT Understand Too? A Comparative Study on ChatGPT and Fine-tuned BERT (Feb 2023)
A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT (Feb 2023)
Zero-Shot Information Extraction via Chatting with ChatGPT (Feb 2023)
ChatGPT: Jack of all trades, master of none (Feb 2023)
A Pilot Evaluation of ChatGPT and DALL-E 2 on Decision Making and Spatial Reasoning (Feb 2023)
Linguistic ambiguity analysis in ChatGPT (Feb 2023)
Applying BERT and ChatGPT for Sentiment Analysis of Lyme Disease in Scientific Literature (Feb 2023)
Exploring AI Ethics of ChatGPT: A Diagnostic Analysis (Jan 2023)
ChatGPT for Good? On Opportunities and Challenges of Large Language Models for Education (Jan 2023)
Introducing ChatGPT (Nov 2022)
2.Midjouney Prompt Engineering
2.1 科技品牌插画
**Pormpt 重点 **_**generic productivity illustration for + 你要画的东西+ by slack and dropbox, style of behance **
_generic productivity illustration for a tech company, by slack and dropbox, style of behance _prompt 翻译 一家科技公司的通用生产力插画,由 Slack 和 Dropbox 制作,风格参考 Behance。
generic productivity illustration for a tech company, by slack and behance
Falling in love with your company culture, illustration for a tech company, by slack and dropbox, style of behanceprompt 翻译: 情人节主题,一家科技公司的插画,由 Slack 和 Dropbox 制作,风格参考 Behance。
users at a coffeeshop, illustration for a tech company, by slack and dropbox, style of behance
2.2 Ios App Icons 设计
**提示词重点 **_squared with round edges mobile app logo design, flat vector app icon of a + 你要的 icon_
squared with round edges mobile app logo design, flat vector app icon of a cute shiba inu face, minimalistic, white backgroundprompt 翻译: 圆角正方形的移动应用程序徽标设计,是一只可爱的柴犬头像的扁平化矢量应用程序图标,极简主义风格,白色背景。
squared with round edges mobile app logo design, flat vector app icon of a rocket
minimalistic, wh
te backgroundsquared with round edges mobile app logo design, flat vector app icon of a skull, minimalistic, white background
squared with round edges mobile app logo design, flat vector app icon of a cute onigiri, minimalistic, white background
2.3 手机应用程序设计稿
**Prompt 逻辑为 **_**photography of an iphone + 你要在 iphone 上显示的内容 + ****inspired ****by Behance and Figma and dribbble **_
_photography of an iphone Narrow Weak Beachinspired by Behance and Figma and dribbble _prompt 翻译 一张 iPhone 的照片,灵感来自 Behance、Figma 和 dribbble,主题为“窄弱的海滩(Narrow Weak Beach)”。
photography of an iphone [with a modern user interface food ordering app on the screen] inspired by Behance and Figma and dribbbleprompt 翻译:一张 iPhone 的照片,屏幕上显示着一个现代的用户界面和美食订餐应用程序。灵感来自 Behance、Figma 和 dribbble。
photography of an iphone [with a modern user interface of [vector illustration of plants] plant identification app on the screen]inspired by Behance and Figma and dribbblePrompt 翻译: 一张 iPhone 的照片,屏幕上显示着一个现代的用户界面和[植物矢量插画]的植物识别应用程序。灵感来自 Behance、Figma 和 dribbble。
2.4 网页设计 UI 设计稿
**Prompt 逻辑为 _photo of macbook M1 with [+ 你要在 Mac 上显示的内容 + ] **style of dribbble and Behance and Figma ] on the screen_
photo of macbook M1 with [with a modern user interface of plant identification app on the screen] inspired by Behance and Figma and dribbble
photo of macbook m1 with [modern web user interface of nutrition website, style of dribbble and Behance and Figma ] on the screen
photo of macbook M1 with [with a modern user interface of plant identification app on the screen] inspired by Behance and Figma and dribbble
2.5 基本参数
纵横比--aspect 或--ar 更改生成图像的纵横比。
混沌度--chaos <数字 0-100> 更改结果的多样性程度。更高的值会产生更不寻常和意外的生成图像。
否定提示--no,或--no plants 会尝试从图像中移除植物。
质量--quality <.25,.5,1 或 2>,或--q <.25,.5,1 或 2> 表示您要花费多少时间渲染质量。默认值为 1。更高的值成本更高,更低的值成本更低。
种子--seed <介于 0-4294967295 之间的整数> Midjourney bot 使用种子号创建一组视觉噪声(如电视静态),作为生成初始图像网格的起点。种子号是为每个图像随机生成的,但可以使用--seed 或--sameseed 参数指定。使用相同的种子号和提示将产生类似的最终图像。
停止--stop <介于 10-100 之间的整数> 使用--stop 参数在过程的中途完成作业。在较早的百分比处停止作业可能会产生模糊、细节不清晰的结果。
风格--style <4a、4b 或 4c> 在 Midjourney 模型版本 4 的不同版本之间切换。
样式化--stylize <数字>,或--s <数字> 参数影响 Midjourney 的默认美学风格对作业的应用强度。
提亮--uplight 在选择 U 按钮时使用替代的“提亮”升频器。结果更接近原始网格图像。升频后的图像较不详细,更加平滑。
上调 beta--upbeta 在选择 U 按钮时使用替代的 beta 升频器。结果更接近原始网格图像。升频后的图像添加的细节要少得多。
3.Prompt 应用
在这个指南中,将介绍一些高级和有趣的方式,通过 prompt engineering 来执行有用的更高级别的任务。
请注意,本节正在积极开发中。主题:
3.1 生成数据
LLMs 具有生成文本的强大能力。使用有效的提示策略可以引导模型产生更好、更一致、更真实的响应。LLMs 也可以特别有用于生成数据,这对于运行各种实验非常有用。例如,我们可以使用它来生成情感分类器的快速样本,如下所示:
Prompt:
Output:
这非常有用。我们在指南的另一部分中将使用此示例进行不同的测试。
3.2 程序辅助语言模型
Gao et al., (2022)提出了一种方法,使用 LLMs 来读取自然语言问题并生成程序作为中间推理步骤。称为程序辅助语言模型(PAL),与思维链提示不同,它不是使用自由形式的文本来获取解决方案,而是将解决步骤卸载到编程运行时,例如 Python 解释器。
让我们通过 LangChain 和 OpenAI GPT-3 来看一个例子。我们有兴趣开发一个简单的应用程序,它能够解释所提出的问题并通过利用 Python 解释器提供答案。
具体来说,我们有兴趣创建一个函数,使得可以使用 LLM 回答需要日期理解的问题。我们将向 LLM 提供一个提示,其中包括一些示例,这些示例来自这里。
这些是我们需要的导入:
我们进行一些少量的配置:
设置模型
设置 prompt + question:
这个程序将输出: 02/27/1998
版权声明: 本文为 InfoQ 作者【汀丶】的原创文章。
原文链接:【http://xie.infoq.cn/article/524cf2f7819a1cb036b34d1d3】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论