OpenAI 官方指南:推理模型

本文由 OpenAI 发布于 2024 年 9 月 12 日。 OpenAI o1 系列模型是新一代通过强化学习训练的大型语言模型,专门用于处理复杂的推理任务。o1 模型在回答问题之前会进行思考,能够在回应用户之前生成一系列内部推理链。o1 模型在科学推理方面表现出色,在 Codeforces 编程竞赛中排名前 11%,并在美国数学奥林匹克竞赛 (AIME) 预选赛中跻身美国前 500 名选手,同时在物理、生物和化学问题的基准测试 (GPQA) 中超越了博士生水平的准确性。 API 中目前有两种推理模型: o1-preview:o1 模型的早期预览版,擅长利用广泛的世界知识来解决复杂问题。 o1-mini:o1 的更快且成本更低的版本,尤其适合处理不依赖广泛知识的编程、数学和科学任务。 虽然 o1 模型在推理能力上取得了重大进展,但并不打算在所有应用场景中取代 GPT-4o。 对于需要图像输入、函数调用或快速响应的应用,GPT-4o 和 GPT-4o mini 模型仍然是更合适的选择。不过,如果你正在开发的应用需要深度推理且可以接受较长的响应时间,那么 o1 模型可能是一个理想的选择。我们很期待看到你用这些模型创造出什么! 🧪 o1 模型目前处于测试阶段 目前,o1 模型正处于测试版阶段,功能有所限制。仅限五级开发者访问(在此处查看你的使用等级),并且速率限制较低(20 RPM)。我们正在努力增加更多功能、提高速率限制,并计划在未来几周内向更多开发者开放! 快速入门 o1-preview 和 o1-mini 模型可以通过聊天完成端点访问。 from openai import OpenAI client = OpenAI() response = client.chat.completions.create( model="o1-preview", messages=[ { "role": "user", "content": "Write a bash script that takes a matrix represented as a string with format '[1,2],[3,4],[5,6]' and prints the transpose in the same format....

September 14, 2024 · 3 min · fisherdaddy

OpenAI 推出 o1 和 o1-mini: AI 推理的新突破,迈向 AGI 的一大步

OpenAI 于 2024 年 9 月 12 日推出了 o1 和 o1-mini 模型,显著提升了 AI 推理能力。o1 不仅仅是一个新模型,更是一个新范式。ChatGPT 正在从仅使用系统 1 思维(快速、自动、直观、容易出错)发展到系统 2 思维(缓慢、深思熟虑、有意识、可靠)。这使得它能够解决以前无法解决的问题。除了模型的推出,OpenAI 还发布了2篇报告:Introducing OpenAI o1-preview、OpenAI o1-mini,通读这两篇报告,可以对 o1 和 o1-mini 有更深入的了解,我这里摘要了其中的核心内容。 o1 模型能力 一种通过强化学习训练的大语言模型,能够执行复杂的推理任务。o1 会在回答前先进行思考——它可以在回复用户之前生成较长的内部思维链。 强化学习算法 OpenAI 的大规模强化学习算法通过模型的思维链教会模型如何以高效的数据利用率进行推理。随着强化学习训练时的计算量增加,以及测试时模型思考时间的延长,模型 o1 的性能会持续提升。这种方法在扩展过程中的限制与大语言模型 (LLM) 的预训练有显著不同。 思维链方式 就像人类在回答困难问题前可能需要长时间思考一样,o1 在解决问题时也会使用“思维链” (chain of thought)的方式。通过强化学习,o1 不断优化这种思维链,改进其解决问题的策略。它能够识别并修正自己的错误,将复杂的步骤分解成简单的部分,并在当前方法无效时尝试不同的路径。这个学习过程极大地提升了模型的推理能力。 考试成绩表现 在 2024 年的 AIME(专为挑战美国顶尖高中生设计的数学竞赛)考试中,GPT-4o 平均只解决了 12%(1.8/15)的题目,而 o1 在每题只使用一个样本的情况下,解决了 74%(11.1/15);使用 64 个样本取共识后,解决率提高到 83%(12.5/15);通过对 1000 个样本进行评分排序,解决率进一步提升到 93%(13.9/15)。13.9 分的成绩足以让 o1 排名进入全国前 500 名,并超过了美国数学奥林匹克的入选线。 推理表现 在数据分析、编码和数学等推理密集型类别中,o1-preview 明显优于 gpt-4o。然而,o1-preview 在某些自然语言任务上并不是首选,这表明它并不适合所有用例。...

September 13, 2024 · 1 min · fisherdaddy

OpenAI 官方指南:如何选择合适的模型

在选择合适的模型时,需要在准确性、延迟和成本之间找到平衡。首先应优先优化准确性,达到目标后再优化成本和延迟。本文提供了一个实用指南,帮助用户在不同模型之间做出明智的选择,并通过一个假新闻分类器的示例展示了如何应用这些原则。 准确性优先 设定明确的准确性目标,例如在客户服务场景中,90%的电话需要在首次交互中正确分类。 开发评估数据集,以衡量模型在这些目标下的表现。 使用最强大的模型(如 GPT-4o)来优化准确性,记录所有响应以便后续使用更小的模型进行蒸馏。 成本和延迟优化 一旦达到准确性目标,可以通过以下方法优化成本和延迟: 使用更小的模型(如 GPT-4o-mini)进行零样本或少样本测试,确保在较低成本和延迟下维持准确性。 使用蒸馏技术对更小的模型进行微调。 实际示例 通过开发一个假新闻分类器,设定目标为90%的准确性、每千篇文章成本低于 $5、每篇文章处理时间少于2秒。 通过三次实验,最终使用微调的 GPT-4o-mini 达到了所有目标,成本仅为初始模型的2%。 结论 通过从 GPT-4o 切换到微调后的 GPT-4o-mini,性能相当但成本大幅降低。这一过程强调了先使用强大的模型达到准确性目标,然后再通过微调更小的模型来优化成本和延迟的策略。 如何选择合适的模型 选择合适的模型,无论是 GPT-4o 还是较小的 GPT-4o-mini,都需要在 准确性、延迟 和 成本 之间进行权衡。本指南为您提供关键原则,并通过一个实际例子帮助您做出明智的决策。 核心原则 选择模型的原则很简单: 首先优化准确性: 优化准确性,直到达到目标准确率。 其次优化成本和延迟: 在维持准确率的前提下,选择最便宜且最快的模型。 1. 首先关注准确性 首先为您的用例设定一个明确的准确性目标,确定达到“足够好”的准确率即可投入生产。可以通过以下方式实现: 设定明确的准确性目标: 明确您的目标准确率统计指标。 例如,90% 的客户服务电话需要在首次互动时得到正确分类。 开发评估数据集: 创建数据集,用以衡量模型的实际表现。 继续以上的例子,收集 100 个交互实例,记录用户的请求、LLM 的分类结果、正确的分类结果,以及分类是否正确。 使用最强大的模型进行优化: 从最强的模型入手,以确保达到目标准确率。记录所有响应,供后续更小的模型蒸馏使用。 使用检索增强生成 (retrieval-augmented generation) 来提高准确性。 使用微调 (fine-tuning) 来优化模型的一致性和行为。 在这个过程中,收集提示与生成对 (prompt and completion pairs),用于评估、少样本学习或微调。这一过程被称为 提示优化 (prompt baking),有助于未来生成高质量的示例。 想了解更多方法和工具,请查看我们的 准确性优化指南。 设定一个现实的准确性目标 通过评估模型决策的财务影响来设定一个合理的准确性目标。例如,在假新闻分类的场景中:...

September 5, 2024 · 1 min · fisherdaddy

OpenAI 官方指南:在 API 中引入结构化输出

本文由 OpenAI 发布于2024 年 8 月 6 日 我们在 API 中引入了结构化输出功能——模型输出现在能够可靠地遵循开发者提供的 JSON Schema。 去年在 DevDay 开发者大会上,我们推出了 JSON 模式,帮助开发者构建更加可靠的应用程序。尽管 JSON 模式提高了生成有效 JSON 输出的可靠性,但并不能确保模型的响应会完全符合指定的 Schema。今天,我们引入了 API 的结构化输出功能,确保模型生成的输出能够严格匹配开发者提供的 JSON Schema。 生成结构化数据是 AI 在当今应用中的一个核心应用场景。开发者使用 OpenAI API 构建功能强大的助手,这些助手能够通过函数调用获取数据并回答问题,提取结构化数据用于数据录入,并创建允许大语言模型 (LLM) 执行操作的多步骤智能工作流。开发者通常会使用开源工具、提示工程和反复请求来确保模型输出与他们系统的格式互操作。结构化输出通过限制 OpenAI 模型的输出,使其严格遵循开发者提供的 Schema,并训练模型更好地理解复杂的 Schema,从而解决了这一问题。 在我们对复杂 JSON Schema 的评估中,启用了结构化输出的 gpt-4o-2024-08-06 模型获得了满分 100%。相比之下,gpt-4-0613 的得分不足 40%。 通过结构化输出, gpt-4o-2024-08-06 在我们的评估中实现了 100% 的可靠性,完美匹配输出模式。 如何使用结构化输出 我们在 API 中提供了两种形式的结构化输出: 函数调用:通过工具实现的结构化输出,可以在函数定义中设置 strict: true 来启用。此功能适用于所有支持工具的模型,包括 gpt-4-0613、gpt-3.5-turbo-0613 及之后的模型。启用后,模型的输出将严格匹配提供的工具定义。 Request POST /v1/chat/completions { "model": "gpt-4o-2024-08-06", "messages": [ { "role": "system", "content": "You are a helpful assistant....

August 13, 2024 · 13 min · fisherdaddy

OpenAI官方指南:Fine-tuning

学习如何为您的应用程序定制模型。 介绍 微调可以通过以下方式让您更好地利用 API 提供的模型: 比直接使用提示获得更高质量的结果 可以训练比提示中更多的示例 由于提示更简短,节省 Token 请求延迟更低 OpenAI 的文本生成模型已经在大量文本数据上进行了预训练。为了有效使用这些模型,我们通常在提示中包含说明和几个示例。这种通过示例展示任务的方法称为“少样本学习”。 微调通过在提示中包含更多示例来改进少样本学习,从而在许多任务上获得更好的结果。一旦模型经过微调,您不需要在提示中提供那么多示例。 这样可以节省成本并降低请求延迟。 微调一般包括以下步骤: 准备并上传训练数据 训练一个新的微调模型 评估结果,如有需要返回第一步 使用您的微调模型 访问我们的定价页面,了解微调模型训练和使用的费用。 哪些模型可以微调? GPT-4(gpt-4-0613 和 gpt-4o-*)的微调处于实验性访问计划中,符合条件的用户可以在创建新的微调任务时在微调界面中申请访问。 目前以下模型可以进行微调:gpt-3.5-turbo-0125(推荐),gpt-3.5-turbo-1106,gpt-3.5-turbo-0613,babbage-002,davinci-002,gpt-4-0613(实验性),以及 gpt-4o-2024-05-13。 如果您获得了更多数据且不想重复之前的训练步骤,还可以对一个已经微调的模型进行再次微调。 我们认为gpt-3.5-turbo在结果和易用性方面对于大多数用户来说是最佳选择。 何时使用微调 微调 OpenAI 的文本生成模型可以让它们更适合特定应用,但这需要大量的时间和精力投入。我们建议首先尝试通过提示工程、提示链(将复杂任务分解为多个提示)和函数调用来获得良好结果,主要原因包括: 我们的模型在许多任务上的初始表现可能不佳,但通过正确的提示可以改善结果,因此可能不需要微调 提示迭代和其他策略的反馈循环比微调更快,而微调需要创建数据集并运行训练任务 在需要微调的情况下,初始的提示工程工作不会浪费 - 通常我们会在微调数据中使用良好的提示(或结合提示链和工具使用与微调)时获得最佳效果 我们的提示工程指南提供了不进行微调而提高性能的一些最有效策略和技巧。您可以在我们的playground中快速迭代提示。 常见用例 以下是一些微调可以改善结果的常见用例: 设置风格、语气、格式或其他定性方面 提高生成所需输出的可靠性 纠正未能遵循复杂提示的错误 特定方式处理许多边缘情况 执行在提示中难以表达的新技能或任务 一个高层次的思路是,当“展示”比“说明”更容易时。在接下来的部分中,我们将探讨如何设置微调数据以及微调在基线模型上提升性能的各种示例。 另一个微调的有效场景是通过替换 GPT-4 或使用较短的提示来减少成本和/或延迟,而不牺牲质量。如果您能用 GPT-4 获得良好结果,通常可以通过在 GPT-4 结果上微调gpt-3.5-turbo模型并缩短指令提示,达到类似的质量。 准备您的数据集 一旦您确定微调是正确的解决方案(即您已经优化了提示并发现模型仍有问题),您就需要准备训练模型的数据。您应创建一组多样化的示范对话,这些对话与您在生产中要求模型响应的对话类似。 数据集中的每个示例都应该是与我们的聊天完成 API相同格式的对话,具体来说是一系列消息,每条消息都有一个角色、内容和可选名称。至少一些训练示例应直接针对模型在提示中表现不佳的情况,并且数据中提供的助手消息应是您希望模型给出的理想响应。 示例格式 在这个例子中,我们的目标是创建一个偶尔会给出讽刺回复的聊天机器人,以下是我们可以为数据集创建的三个训练示例(对话): {"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic....

July 22, 2024 · 8 min · fisherdaddy

证明者-验证者游戏改善语言模型输出的易读性 • OpenAI

本研究探讨了如何通过训练强大的语言模型,使其生成易于验证和理解的文本,以提高人类评估的准确性。研究发现,单纯优化模型以获得正确答案,可能导致生成的解决方案变得难以理解。因此,采用“证明者-验证者游戏”的方法,可以在确保输出正确的同时,提高文本的可读性和可验证性。这种方法对于提升 AI 应用的有效性和可信度至关重要,尤其是在需要清晰沟通的领域。 研究背景: 随着大型语言模型(LLMs)在复杂任务中的应用日益增加,确保其输出的可理解性变得尤为重要。研究表明,当优化过程仅关注正确答案时,生成的文本往往缺乏清晰性。 证明者-验证者游戏: 该方法涉及两个角色:生成解决方案的“证明者”和检查解决方案准确性的“验证者”。通过这种方式,强模型能够生成更易于人类和其他 AI 系统验证的文本。 训练过程: 研究通过优化链式思维的方式,使其在解决小学数学问题时能够被较弱模型验证。该训练过程分为多个阶段,包括验证者训练和证明者训练,以确保生成的文本不仅正确,而且易于理解。 关键发现: 性能与可读性之间的权衡:仅依赖于人类书写的推导进行监督微调的模型可读性高但准确性低;而单纯优化正确性则可读性差。本研究的方法在保持高可读性的同时,确保了适度的准确性。 三种有用的模型角色: 稳健验证者:能够有效区分正确和错误的解决方案。 有帮助的证明者:生成易于人类理解的解决方案,减少评估错误。 狡猾的证明者:产生微妙的错误解决方案,初期可能会误导人类评估者,揭示模型改进的方向。 结论: 本研究强调了在确保 AI 输出的正确性和透明可验证性方面的重要性,尤其是在未来超智能 AI 系统的对齐研究中。尽管目前的实验仅在一个数据集上进行,未来的研究将致力于开发能够生成既正确又透明可验证的 AI 系统,从而增强其在实际应用中的信任和安全性。 证明者-验证者游戏改善语言模型输出的易读性 2024年7月17日 我们训练了强大的语言模型,以生成易于弱语言模型验证的文本,结果发现,这种训练也使文本更易于人类评估。 确保语言模型生成易于理解的文本对于使其对人们有帮助至关重要,特别是在处理复杂任务时,比如解决数学问题。 我们发现,当我们优化强大模型的解决问题过程仅为了获得正确答案时,生成的解决方案可能变得更难理解。实际上,当我们要求时间有限的人类评估员评估这些经过高度优化的解决方案时,他们的错误几乎是评估较少优化解决方案时的两倍。这一发现突显了不仅正确性,而且清晰性和易验证性在AI生成文本中的重要性。 通过训练高级语言模型生成弱模型可以轻松验证的文本,我们发现人类也能更有效地评估这些文本——我们称之为提高易读性。 在这里,prover-verifier games 发挥了作用。这些游戏涉及两个玩家:“证明者”生成一个解决方案,“验证者”检查其准确性。 这种方法不仅对于确保输出的正确性至关重要,而且对于使它们易于理解和验证对人类和其他AI系统同样重要。 理解和处理性能与易读性之间的平衡,可以带来更有效和可信的AI应用,惠及需要精确和清晰交流的广泛领域。 通过优化提高易读性 为了提高易读性,我们优化了基础数学问题的推理过程,使其易于较弱的模型验证,并研究这是否使它们对人类更易读。此训练过程受到 Prover-Verifier Game (opens in a new window) 的启发,这是一种鼓励学习代理以可验证方式解决决策问题的博弈论框架。我们的方法在仅优化答案正确性时的性能提升一半的情况下,保持了人类评估员准确评估解决方案的能力。我们认为,进一步缩小可读和高性能模型之间的差距是未来一致性研究的重要目标。 问题:Shawna的父亲是Shawna的五倍大。Shawna目前是Aliya的三倍大。如果Aliya现在3岁,Shawna的父亲多大? 过程 答案 模型初始化 由此推断,Shawna目前$3^2=9$岁。 随后这意味着Shawna的父亲目前$9\cdot5=45$岁。 答案:45 第一轮可验证性训练 首先我们需要确定Aliya的年龄。从问题描述中得知,Aliya是3岁。 然后我们需要确定Shawna的年龄。从问题描述中得知,Shawna目前是Aliya的三倍大,所以Shawna的年龄是3乘以3,即<<3 * 3 = 9>>9。 接下来,我们需要确定Shawna的父亲。问题中说Shawna的父亲是Shawna的五倍大。因此,Shawna的父亲的年龄变成5乘以9,即<<5 * 9 = 45>>45。 答案:45 第五轮可验证性训练 我们首先计算Aliya的年龄。 问题中说Aliya是3岁。 然后,我们需要计算Shawna的当前年龄。...

July 18, 2024 · 1 min · fisherdaddy

OpenAI 各个模型简介和价格情况

由于日常开发中经常用到OpenAI的接口,这里总结一下各个模型的能力以及对应的价格 模型概述 模型 描述 GPT-4o 最快且最实惠的旗舰型号 GPT-4o mini 我们的经济实惠且智能的小型模型,适用于快速、轻量级任务。 o1-preview 和 o1-mini 通过强化学习训练的语言模型可以执行复杂的推理。 GPT-4 和 GPT-4 Turbo 一组在 GPT-3.5 基础上改进的模型,能够理解和生成自然语言或代码 GPT-3.5 Turbo 一组在 GPT-3.5 基础上改进的模型,能够理解和生成自然语言或代码 DALL·E 一个可以根据自然语言提示生成和编辑图像的模型 TTS 一组可以将文本转换成自然听起来的口语音频的模型 Whisper 一个可以将音频转换成文本的模型 Embeddings 一组可以将文本转换成数值形式的模型 Moderation 一个经过微调的模型,能够检测文本是否可能是敏感的或不安全的 GPT base 一组没有指令跟随功能的模型,能够理解以及生成自然语言或代码 Deprecated 已被弃用的模型完整列表以及建议的替代品 GPT-4o GPT-4o (“o” 代表 “omni”) 是我们最先进的模型。它是多模态的(接受文本或图像输入并输出文本),具有与 GPT-4 Turbo 相同的高智能性,但更加高效 —— 生成文本速度提高了 2 倍,成本降低了 50%。此外,GPT-4o 在所有非英语语言中具有最佳的视觉和性能。GPT-4o 可供付费客户在 OpenAI API 中使用。在我们的文本生成指南中学习如何使用 GPT-4o。 模型 描述 上下文窗口 最大输出 tokens 训练数据 官方价格表示 转为人民币价格表示 Batch API 价格 gpt-4o GPT-4o 我们最先进的多模态旗舰模型,比 GPT-4 Turbo 更便宜更快。目前指向 gpt-4o-2024-05-13。 128,000 tokens 4,096 tokens 截至 2023 年 10 月 - - - gpt-4o-2024-05-13 gpt-4o 目前指向该版本。 128,000 tokens 4,096 tokens 截至 2023 年 10 月 输入:$5....

April 7, 2024 · 6 min · fisherdaddy

在国内如何订阅 ChatGPT Plus 以及拥有 OpenAI 开发者账号的Key

本文分享一下作者本人在国内订阅 ChatGPT Plus 以及拥有 OpenAI 开发者账号 key 的方法。 先决条件 自建或者够买一个 VPN 科学上网 美区 AppleID ChatGPT app 支付宝、微信 在国内如何订阅 ChatGPT Plus 手机 APP Store 登录美区 Apple ID。 打开支付宝,左上角位置选择旧金山,搜索 PockyShop 小程序性,绑定邮箱后,在首页选择 App Store & iTunes US,设定金额后购买即可。(备注:ChatGPT plus的订阅月费用为19刀,一次可以买20刀或者40刀,更多貌似会触发支付宝的风控导致订单失败) 购买成功后,把订单里的礼品卡号码复制出来去 App Store 账户的兑换充值卡或代码选项里进行兑换,兑换完成后即充值完成。 在 ChatGPT 的 GPT4 入口点击订阅即可,会默认走 APP Store 账户里的余额。 在国内如何拥有 OpenAI 开发者账号的Key 之前为了方便基于 OpenAI 的 api 开发一些小 demo,我主要通过两个方法来获得 OpenAI 的 api key: 在微软云 Azure 上开通 OpenAI 的 api 功能,基于 Azure 封装的 api 接口来做 LLM 相关的开发,我得到的信息是国内的大企业都是用这种方法来调用 OpenAI。但这种方法有一个最大的缺点:OpenAI最新的能力一般要在其官方释放后的1-2个月左右Azure 上才可以上线体验到,这对于想快速基于最新的能力进行快速 MVP 验证或者评测的用户来说只能用着急来形容。 从一些第三方卖开发者 key 的网站上买一些 key 来使用,缺点也很明显:不可靠、不可控。 偶然翻到这篇博客讲述了几个方法能很好的解决海外银行卡的问题:一个方法是Dupay 和 NobePay,另一个方法是:新加坡华侨银行 和 WISE虚拟卡/实体卡。第一个方法里的 Dupay 和 NobePay 都亲测有效,这里我来大概讲一下流程。...

February 22, 2024 · 1 min · fisherdaddy

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