o1 研发团队/奥特曼/王小川/杨植麟对 OpenAI o1 的观点

o1 研发团队访谈 Hyung Won Chung:o1 是个推理模型,它在回答你的问题之前会做更多思考。我们将发布两个模型:o1 preview,还有采用了与 o1 相似的训练框架、更小更快的 o1 mini 什么是推理?Giambattista Parascandolo:可以这么理解:对于一些需要立即回答的简单问题,例如,「意大利的首都是哪里?」,不用想太多,就知道答案是罗马。但是如果想要解一个复杂的谜题、想精心策划一份商业企划书、或者想写小说,那可能需要很多思考。想得越多,可能成果越好。因此,可以说推理是一种把思考时间转化为更好成果的能力。 Mark Chen:很难确切指出 o1 是从哪个具体的时刻开始的。最早和 Yakob 进行了一些探索,后来又和Łukasz 和 Ilya 进行了早期的探索。关键时刻是 Jerry 一起整合了这些内容,并由 Jerry 来推动项目。 Trapit Bansal:当我们开始考虑要训练一个推理模型时,我最先想到的方法就是,可以让人类写下他们的思维过程,然后以此进行训练。我的「Aha Moment」是当我们发现,通过使用强化学习来训练模型生成和打磨它自己的思维链,效果竟然比让人类为其写下思维链更好。我们意识到可以真正扩展这个方法,并且专家模型也可以通过这种方式进行推理。 Jerry Tworek:从本质上讲,训练大型模型是非常困难的事情,有成千上万的事情可能出错,实际在每一轮训练中至少有数百个地方确实出错了。几乎每个人都投入了大量的心血、汗水和眼泪去训练这些模型,并想办法让它们继续学习和改进。通向成功的道路非常狭窄,而失败的可能性却很多。 Ilge Akkaya:这个模型非常优秀,很多时候甚至表现得比人类还要好,就像拥有好几个博士学位的水平。但这有时也是一种挑战,因为我们经常需要验证模型是否没有偏离轨道,或者是否在做一些不合理的事情。随着模型规模的扩大,这开始变得非常耗时;我们已经用尽了所有行业级资源,但我们不知道接下来应该找什么,所以这也是一个挑战。 Jason Wei:对我来说,我喜欢把 o1 当作一个头脑风暴的伙伴,从解决某个非常具体的机器学习问题到如何写一篇博客都适用。比如,我最近写了一篇关于语言模型评估的博客,我向 o1 询问了有关博文结构的想法、某些基准测试的优缺点,甚至包括写作风格的建议。因为它在给出最终答案之前会思考,更好地更好地连接起思路,它还可以修改和评估备选的方案。 Jakub Pachocki:每次我们将某件事扩大一个数量级时,都会遇到一组新的问题 —— 包括算法和基础设施方面的问题 ——OpenAI 无疑已经发展出了同时解决这两个方面问题的强大能力。 Hongyu Ren:我们的动机是希望将 o1 系列带给更多的用户,并降低成本。因此,我们创建了 o1 Mini,它的设计目的是展示整个 o1 框架的简化版本。我们让它成为一个推理专家,它可能不一定知道你最喜欢的名人的生日,但它确实能够非常有效地理解如何进行推理。它比我们之前最好的推理模型要聪明得多,并且几乎与我们最好的模型 o1 持平。它确实有一些限制,比如可能不知道很多外界的信息,尤其是与科学或技术无关的内容。但我们努力让它大致与我们之前最好的模型(如 GPT-4o mini)相当。我们正在进一步改进它,我非常期待外部用户能够尝试体验这种「闪电般」的推理和思维。 原文:https://www.thepaper.cn/newsDetail_forward_28821226 o1 研究团队三位核心技术人(Noam Brown、Hunter Lightman、Ilge Akkaya)对话红杉美国合伙人 o1 模型系列使用了强化学习,能够进行推理,或者你也可以称之为“思考”。它与我们过去使用的大型语言模型有本质上的不同。 我们从一开始就相信这一方向有潜力,但实际走到今天的路径并不清晰。你看看 o1 ,这并不是一夜之间的成果。实际上,这背后有多年研究,而其中很多研究并没有取得成效。 OpenAI 整体上采取了一种非常实证、数据驱动的方式,当数据开始向你展示趋势并且变得有意义时,我们就会追随这些线索。而这也是我信心确立的时刻。...

October 1, 2024 · 1 min · fisherdaddy

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 的接口,这里列一下 OpenAI 各个模型的简单介绍以及各模型 api 的收费标准、上下文窗口、最大输出token、训练数据截止日期等信息。为了更加的直观的看到OpenAI各个模型价格一览,做了一个网页版的各模型价格对比。 模型概述 GPT-5系列模型 最新旗舰模型。 模型 描述 输入 输出 上下文窗口 最大输出 token 训练数据截止日期 链接 GPT-5 GPT-5 是我们旗舰的编码、推理和跨领域代理任务模型。 文本、图像 文本 400K 128K 2024.9.30 GPT-5 GPT-5 Chat GPT-5 Chat 表示当前在 ChatGPT 中使用的 GPT-5 快照。 我们建议大多数 API 使用 GPT-5,但您可以随意使用此 GPT-5 Chat模型来测试我们针对聊天用例的最新改进。 文本、图像 文本 128K 16,384 2024.9.30 GPT-5 Chat GPT-5 mini GPT-5 mini 是一个更快、更经济的 GPT-5 版本。 它非常适合明确的任务和精确的提示。 文本、图像 文本 400K 128K 2024.9.30 GPT-5 mini GPT-5 nano GPT-5 Nano 是我们速度最快、成本最低的 GPT-5 版本。它非常适合摘要和分类任务。 文本、图像 文本 128K 16K 2024....

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