OpenAI官方指南: Prompt engineering

这篇是去年翻译的OpenAI官方指南Prompt engineering,值得多读几次。写这篇文章时发现OpenAI给这篇指南改了名字,之前的标题是gpt best practices,现在改为了prompt engineering. GPT最佳实践 获得更好结果的六项策略 1 指示要明确 GPT无法读懂你的心思。如果输出内容过长,可要求简短回复;如果输出内容过于简单,可要求专家级写作;如果不喜欢当前的格式,可展示你期望的格式。你的指示越明确,GPT满足你的要求的可能性就越大。 在提问中提供完整信息,以获得更准确的答复。 要求模型扮演不同角色。 使用分隔符明确区分输入的不同部分。 阐明完成任务所需的步骤。 举例说明。 指定输出内容的期望长度。 2 提供参考文字 GPT可以自信地编造虚假答案,特别是在询问关于深奥话题或要求引用和URL时。就像小抄可以帮助学生在考试中做得更好一样,向GPT提供参考文本可以帮助它减少错误信息的回答。 指导模型使用参考文献来回答问题 指导模型在回答时引用参考文献 3 将复杂的任务拆分为更简单的子任务 正如软件工程中将复杂系统拆分为一系列模块化部件的常规做法,对GPT提交的任务同样适用。复杂任务相较于简单任务具有更高的错误率。此外,复杂任务往往可以重新定义为一系列的简单任务的工作流,在这个流程中,前一个任务的输出用于构建后续任务的输入。 利用意图分类来识别用户查询中最相关的指令 对于需要长对话的对话应用,摘要或过滤之前的对话内容 分块摘要长文档,递归地构建完整摘要 4 给GPT时间思考 如果把17乘以28的题目摆在你面前,你可能不会立刻答出来,但给点时间你能慢慢算出来。同样地,GPT在被要求立即回答时,也更容易出错。让它先进行一番逻辑推理,再给出答案,就能更可靠地引导它找到正确的答案。 让模型先不急于下结论,先计算出自己的答案。 利用内心独白或一系列自问自答来掩盖模型的推理过程。 询问模型在之前的回答中是否有遗漏。 5 使用外部工具 通过结合其他工具的功能来弥补GPT的不足之处。举例来说,文本检索系统能够为GPT提供相关文档信息。代码执行引擎则能辅助GPT进行数学计算和运行代码。若外部工具能比GPT更可靠或高效地完成任务,就将任务外包出去,以实现优势互补。 使用嵌入式搜索技术,打造高效的知识检索系统 通过代码执行功能进行精确计算或接入外部API 让模型访问具体的函数 6 系统化地测试更改 衡量改进成效的诀窍在于可量化的数据。有时候,简单的提示修改可能会在零星案例中取得不错的效果,但在更广泛的案例中却适得其反。因此,要确认某项更改确实提升了性能,就需要设立一套全面的测试方案(也称为评估测试)。 以最佳答案为标准,评估模型的输出结果 策略详解 上述策略都可以通过具体的手段来实施。这些手段旨在激发尝试的灵感,但并不是面面俱到。你大可发挥创意,尝试这里未涉及的新点子。 1 指示要明确 1.1 在提问中提供完整信息,以获得更准确的答复。 想要得到精确无误的回答,就得在提问中提供所有必要的信息和情境。不然,你的意图就只能让模型去猜了。 1.2 要求模型扮演不同角色。 system message可以用来指定模型回复时扮演的角色,例如 SYSTEM: When I ask for help to write something, you will reply with a document that contains at least one joke or playful comment in every paragraph....

February 20, 2024 · 17 min · fisherdaddy

作为世界模拟器的视频生成模型 • OpenAI

本文翻译了OpenAI发布的有关Sora的技术报告,原文戳Video generation models as world simulators 。 我们研究了在视频数据上进行生成式模型的大规模训练。更具体地说,我们对不同时长、分辨率和宽高比的视频及图片进行了文本条件下的扩散模型联合训练。我们采用了一种 Transformer 架构,这种架构可以处理视频和图像潜在编码的时空片段。我们开发的最大型号模型,Sora,具备生成一分钟长的高质量视频的能力。我们的研究成果显示,扩展视频生成模型的规模是向着创建能模拟物理世界的通用工具迈进的一个充满希望的方向。 这份技术报告主要关注于: (1)我们将各类视觉数据转化为统一表示的方法,该方法使得生成模型的大规模训练成为可能; (2)对Sora能力和限制的定性评估。模型和实现的细节没有包含在这份报告中。 众多先前的研究通过各种方式探索了视频数据的生成模型,涉及方法包括循环网络[1,2,3]、生成对抗网络[4,5,6,7]、自回归 Transformer[8,9] 以及扩散模型[10,11,12]。这些研究往往专注于特定种类的视觉数据、时长较短的视频,或者是固定尺寸的视频。而 Sora 是一个对视觉数据具有广泛适用性的模型——它能够创造出在持续时间、纵横比和分辨率上多样化的视频和图片,甚至能生成长达一分钟的高清视频。 把视觉数据分割成补丁 我们受到大语言模型的启发,这类模型通过在互联网大规模的数据集上进行训练,获得了通用的能力[13,14]。大语言模型成功的关键之一在于使用了能够优雅地统一不同文本形态(如代码、数学公式以及多种自然语言)的tokens。在这项工作中,我们探讨了视觉数据的生成模型如何借鉴此类优势。与大语言模型使用文本令牌不同,Sora 使用的是视觉补丁。先前的研究已经证明,对于视觉数据模型而言,补丁Patches是一种有效的表现形式[15,16,17,18]。我们发现,补丁是一种高度可扩展且有效的方式,适用于训练多样化视频和图片的生成模型。 从宏观角度来看,我们将视频转换成补丁的过程首先是将视频压缩到一个低维度的潜在空间[19],接着将这种表示分解为时空补丁。 视频压缩网络 我们开发了一个能够降低视觉数据维度的网络[20]。这个网络接受原始视频作为输入,输出一个在时间和空间维度上均进行了压缩的潜在表示。Sora 就是在这种压缩的潜在空间中接受训练,并能够在其中生成视频。此外,我们还设计了一个对应的解码模型,用于将生成的潜在数据重新映射到像素空间。 时空补丁 对于一个被压缩的输入视频,我们会提取一系列的时空补丁,它们在此过程中充当 Transformer 的令牌。这一方法同样适用于图片,因为从本质上讲,图片就是单帧的视频。我们采用的基于补丁的表示方法,使得 Sora 能够处理不同分辨率、时长和纵横比的视频和图片。在生成视频的推理阶段,我们可以通过按照适当的大小排列随机初始化的补丁,来控制最终视频的尺寸。 用于视频生成的扩展Transformer Sora 属于扩散模型[21,22,23,24,25];它能够接受带有噪声的补丁(以及如文本提示这样的条件信息)作为输入,并被训练以预测出原始的“干净”补丁。值得注意的是,Sora 实际上是一个diffusion Transformer[26]。在多个领域,包括语言模型[13,14]、计算机视觉[15,16,17,18]以及图像生成[27,28,29],Transformer 都展现出了令人瞩目的扩展能力。 在本研究中,我们还发现diffusion transformers 同样能够在视频模型方面有效扩展。接下来,我们将展示一个比较:随着训练进程的推进,使用固定种子和输入条件的视频样本展示。可以明显看到,随着训练计算量的增加,样本的质量有了显著的提升。 基础计算 4倍计算 32倍计算 持续时间、分辨率、纵横比的可变性 以往在图像和视频生成领域,常见的做法是将视频调整至标准尺寸——比如,4秒长的视频以256x256的分辨率呈现。然而,我们发现直接在视频的原始尺寸上进行训练能够带来多重好处。 采样灵活性 Sora 能够生成各种尺寸的视频,包括宽屏的1920x1080p、竖屏的1080x1920,以及这两者之间的任何尺寸。这让 Sora 能够直接针对不同设备的原生纵横比制作内容。此外,这还使我们能够在进行全分辨率输出之前,先以较低分辨率快速制作出原型内容——所有这些都可以通过同一个模型完成。 构图与构成的改进 我们的实验发现,在视频的原生纵横比上进行训练能显著改进视频的构图和画面布局。我们比较了 Sora 和另一个版本的模型,这个版本将所有训练用的视频裁剪成正方形——这是训练生成模型的一种常规做法。结果显示,那些在正方形视频上训练的模型(左侧)有时会生成主体只部分出现在画面中的视频。相比之下,Sora 生成的视频(右侧)在画面布局上有了明显的提升。 语言理解 训练文本生成视频的系统需依赖大量配有对应文字说明的视频。我们采用了 DALL·E 3[30] 中介绍的重新标注技术,将其应用于视频。首先,我们训练了一个能够生成高度描述性文字说明的模型,然后利用这个模型为我们训练集中的全部视频生成文本说明。我们的发现表明,使用这些高度描述性的视频说明进行训练,不仅能提高文本的准确度,也能显著提升视频的整体品质。 与 DALL·E 3 类似,我们也采用 GPT 技术将用户的简短提示转化为更加详尽的描述,然后这些描述会被送到视频生成模型中。这一策略使得 Sora 能够根据用户的具体提示生成高质量且内容准确的视频。 通过图像和视频进行提示 我们网站上的示例,主要展示了从文本到视频的生成样本。然而,Sora 也能接受其他形式的输入,比如已有的图片或视频。这项能力让 Sora 能够完成多种图像和视频编辑任务,如制作完美循环的视频、为静态图片添加动效、以及在时间线上前后扩展视频等。...

February 15, 2024 · 1 min · fisherdaddy