AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


o1模型的技术分析(2):内部实现的更多信息
发布日期:2024-09-16 17:05:56 浏览次数: 1640


1、官方AMA Hour提供的信息

OpenAI 官方在Twitter上的Ask Me Anything(AMA) Hour 相关链接

推文根节点:https://x.com/OpenAIDevs/status/1834608585151594537
官方回答者列表:https://x.com/OpenAIDevs/status/1834669821641761213可以通过查看每个回答者的回复推文列表来遍历查看所有的信息。
第三方对OpenAI AMA Hour各个回答的整理,但不完整:https://gist.github.com/thenameless7741/2a0438ffad028059b49480086a2a6c0c

1.1、重要信息整理

3个模型之间的具体关系:

  • o1模型尚未发布,大概会在1个月内发布,能力会全方位强于o1-mini

  • o1-preview只是o1模型的早期检查点,模型规模相同,但在STEM任务和代码方面不如o1-mini,但在其他通用方面如推理和知识方面比o1-mini更好。STEM指科学(Science)、技术(Technology)、工程(Engineering)和数学(Mathematics)。

  • o1-mini是正式版本,而非跟o1-preview一样的预览版,目前在STEM任务和代码方面更强。未来o1-mini会提供给免费用户。


关于多模态

  • o1模型训练过程中包含多模态能力,并在MMMU测试中实现SOTA,目前正在进行安全对齐方面的工作。


o1系列模型的后续功能计划:

  • 目前的o1系列模型不支持tools调用(也意味着它目前没有调用搜索),未来会增加tools调用、代码解释器、网页浏览功能等。

  • o1模型会补全gpt-4o的所有其他能力,包括json结构化输出、流式返回、system prompt、多模态等,以及微调支持也在计划中。

  • o1系列模型很快会推出更长上下文能力。

  • 未来会推出对于思考过程时间长短的控制方式。

  • o1-mini计划提供更新数据截至时间的新版本。

  • 未来API中也可能返回类似web端的CoT过程摘要信息。


其他细节信息:

  • o1系列模型使用与gpt-4o一样的tokenizer词表

  • 在prompt中进行指示可以影响思考过程。可以增加边界情况case和推理风格的信息来优化思考效果。

  • @shengjia_zhao一度模糊地表示o1-mini会探索比o1-preview更多的思维链,但后续又改口说是指由于输出token限制能够探索更长的思维链。(具体对话见下一节原文)


1.2、部分帖子原文

关于o1-preview与o1的关系

@gbertb: what is different from o1 preview with o1 seen in the benchmarks o1-preview 与基准测试中看到的 o1 有什么不同

@lukasz_kondr: o1-preview is an early checkpoint coming from the o1 model family :) o1-preview 是来自 o1 模型系列的早期检查点 :)

https://x.com/lukasz_kondr/status/1834642732155125936

关于o1-mini是否探索了更多的思维链

@AIMachineDream: Is o1 mini able to explore more thought chains than o1 preview? o1-mini 能否探索比 o1-preview 更多的思维链?

@shengjia_zhao: Yes 是的

@felixchin1: is this the theory why o1-mini outperforms o1-preview in many tasks? bc its able to get in more cycles of inference from being a smaller model (this resulting in a longer chain of thought)?

这是否是 o1-mini 在许多任务中优于 o1-preview 的理论?因为它能够通过作为一个更小的模型进行更多的推理循环(这导致了更长的思维链)?

@shengjia_zhao: Sry for confusion. I just meant o1-mini is currently allowed a higher maximum token because of the lower cost, so can continue to think for questions that o1-preview is cut-off. It doesn't mean o1-mini will necessarily use more tokens for the same question.

抱歉造成混淆。我只是想说,o1-mini 目前允许更高的最大令牌数,因为成本较低,因此可以继续思考 o1-preview 被截断的问题。这并不意味着 o1-mini 在同一个问题上一定会使用更多的令牌。

https://x.com/shengjia_zhao/status/1834702189517811830

o1模型内部版本支持多模态

@algorusty: Was o1 built multi-modal?

Wondering if its just a matter of building out the infra/code for multi-modal or if it's text only

o1 是多模态构建的吗?

想知道这是否只是构建多模态的基础设施/代码,还是仅限于文本

@zhouwenda: OpenAI o1 is built with multimodal and achieves SOTA on MMMU! We're working hard on making it safe to share with everyone

OpenAI o1 采用多模态技术,并在 MMMU 上达到了 SOTA!我们正在努力使其安全地与大家分享

https://x.com/zhouwenda/status/1834647700249493619

o1-mini未来会提供给免费用户

@legit_rumors:

  • was a larger input tokens context version considered for this? 是否考虑过更大输入令牌上下文版本?

  • how much smaller is o1-mini when compared to o1-preview & o1 o1-mini 与 o1-preview 和 o1 相比小了多少?

  • is o1 bigger / smaller compared to o1-preview o1 与 o1-preview 相比是更大/更小吗

@max_a_schwarzer:

  • We have much larger input contexts coming soon! 我们很快会有更大的输入上下文!

  • We can't discuss the precise sizes of the two models, but o1-mini is much smaller and faster, which is why can offer it to all free users as well. 我们不能讨论这两个模型的确切大小,但 o1-mini 要小得多且速度更快,这就是为什么我们可以将其提供给所有免费用户的原因。

  • o1-preview is an early version of o1, and isn't any larger or smaller. o1-preview 是 o1 的早期版本,大小没有变化。

https://x.com/max_a_schwarzer/status/1834643203800379540

o1大概会在一个月内发布

@dmdohan: It's important to emphasize that this is a huge leap /and/ we're still at the start Give o1-preview a try, we think you'll like it. And in a month, give o1 a try and see all the ways it has improved in such a short time And expect that to keep happening 重要的是要强调,这是一大步 /而且/ 我们仍然处于起步阶段 尝试一下 o1-preview,我们认为你会喜欢它。一个月后,试试 o1,看看它在这么短的时间内有了哪些改进。并期待这种情况继续发生

https://x.com/dmdohan/status/1834284226013003946

对思考过程时间长短控制方式的计划

@_cartick: How is thinking time determined? Can it be increased via a prompt or through some other setting? Hypothetically, let's say if you want to spend $1k on an answer, how to do it?

思考时间是如何确定的?可以通过提示或其他设置来增加吗?假设你想花 1000 美元来获得一个答案,应该怎么做?

@ahelkky: Currently, configuring thinking time is not exposed, but we aim to allow users to customize it in the near future.

目前,思考时间的配置尚未公开,但我们计划在不久的将来允许用户自定义它。

https://x.com/ahelkky/status/1834646730941645073

2、其他信息

2.1、关于思考过程

目前思考过程仅在web端提供一个较为简略的摘要,经过测试该摘要使用的语言与web端用户配置的默认语言一致,与提问语言、内部实际思考语言、返回结果的语言是独立的。

目前思考的摘要可能准确率一般,经常会看到其中混有其他语言、上下文无关的内容等,而这些错误似乎不影响回答的结果,可能只是思考过程摘要本身的问题。

目前有些API代理商已经适配了web端的思考过程信息,有需要大量获取或者对其进行延迟分析的读者可以去找这些代理商。不过目前代理商的适配还在不断调整,尚不稳定。由于官方API不支持流式返回,而web端又不提供reason token的usage,所以现在获得每个token的到达时间和获取精确的reason token数量无法兼得。

2.2、o1-mini并不是o1-preview的缩减版

与一般人直觉不同,本次的o1-mini并不是o1-preview的缩减版本,而是尚未发布的o1的缩减版本。

OpenAI甚至在o1-preview外还给了o1-mini一个单独的发布文:

https://openai.com/index/openai-o1-mini-advancing-cost-efficient-reasoning/

从官方透露的各种信息来看,o1-mini相对于o1-preview会更特化于代码和科学类问题,这些方面往往也需要更长的推理过程。而o1-preview更偏向通用知识领域,未来o1会全方位超过o1-mini。

所以现在的o1-mini其实并不是一个缩水版本,也是一个很值得使用和研究的版本,它与o1-preview各有优劣。

2.3、关于定价

目前的o1系列模型定价是有些奇怪的:

  • o1-preview-2024-09-12:输入$15,输出$60

  • o1-mini-2024-09-12:输入$3,输出$12

  • gpt-4o-2024-08-06:输入$2.5,输出$10

  • gpt-4o-2024-05-13:输入$5,输出$15

  • gpt-4o-mini-2024-07-18:输入$0.15,输出$0.6


特别是o1-mini的价格超过gpt-4o-mini非常多,价格倍数远超o1-preview相对于gpt-4o。而且o1-mini并非preview版本,是一个正式版,它的定价这么高是比较奇怪的。

从官方AMA来看,o1-preview的定价是否值得分析是个问题。因为在OpenAI来看o1-preview只是一个早期版本,而且正式版可能很快(1个月)就会发布。这个定价可能由于多种原因暂时时性偏高,是不是能跟之前一样作为模型实际成本的推测依据是存疑的。

2.4、token生成速度分析

首先可以从web端的token返回速度来观察o1系列模型。

这里我使用了一个接入了OpenAI web端接口转成API的API代理商进行测试,发现对于不太长的输入和输出(6k token以下),o1-preview的回答部分token生成速度大致为100 tokens/s,o1-mini的速度大致为200 tokens/s。由于web端在回答的倒数第3个token会有一个明显的延迟,大概是等待web端内容审核的原因,所以末尾3个token的时间进行了剔除。

思考部分的token生成速度呢?以下采用一种拟合的方式进行估计:调用非流式的API,根据其中的completion_tokens(即推理和回答两部分的总token)与整个响应的时间进行线性拟合,其中的线性项斜率就可以折算为token的生成速度。

从测试结果来看,数据的线性度较好,拟合出的速度与上述通过web端的结果基本一致。

综上来说,o1系列模型的思考部分token生成应该是线性的,且思考部分生成速度与回答部分速度一致

与gpt-4o系列相比:

  • o1-preview的token生成速度比gpt-4o稍慢,常数项(大致对应于首token延迟)也比gpt-4o大。

  • o1-mini的token生成速度明显快于gpt-4o-mini,但并没有快超过1倍。常数项比gpt-4o-mini大。


让人惊讶的是,o1-mini的速度明显比gpt-4o-mini还要快这点,虽然有人会把它解读为使用了多路思考生成,但我目前不支持这个推测。我目前认为这是OpenAI在推理阶段对于速度做了更侧重的优化,类似于智谱glm-4-airx相对于glm-4-air的差异。

3、总体分析 与 展望

3.1、o1-preview是个仓促发布的早期版本

OpenAI官方确认了o1-preview只是一个早期检查点,一些方面的功能甚至落后于o1-mini,o1正式版大约一个月左右会放出来。其他一些主要的功能也都在补充过程中,整体来看确实发布的很仓促。

为什么要这么仓促的放一个版本呢?大概是为了融资相关。

o1正式版还会更强一些,尤其是在代码和科学相关领域。

3.2、o1-mini比想象中更值得关注

o1-mini并不是o1-preview的缩减版,它是o1正式版的缩减版,而我们尚未见到o1正式版。

有不少方面说明o1-mini并不简单:

  • 它相对于gpt-4o-mini的高额定价,

  • o1-mini的STEM和代码效果好于o1-preview

  • o1-mini的推理速度快于gpt-4o-mini,而o1-preview是慢于gpt-4o


甚至让我有了一个疑问:它是基于gpt-4o-mini的模型架构和参数量规模的么?

3.3、单路CoT推理 与 思考过程的内部状态

我目前仍然判断o1系列模型在推理阶段是单路CoT推理。虽然我已经遇到一些人很倾向于觉得OpenAI使用了更复杂更高级的方式,但我目前并不认同这些猜测。

理由无非以下:

  • 奥卡姆剃刀,现在的表现我靠单路CoT推理都能解释。

  • 无论是OpenAI还是其他的谁,要做一个很好很鲁棒的更复杂流程难度都大不少,即使哪怕是最简单的多路推理再合并,要能贴合目前o1的各方便表现的特征是很难的。


目前觉得o1的推理阶段是更复杂的方案的人,在我来看都没实际去做过这种更复杂的方案。谁觉得行谁上,我个人是觉得这类完善的方案并不好做。很多学术论文做个24点可以,但真让它处理一个无法被简单结构化的任意场景问题,一大堆问题就接踵而至了。

同样,我认为目前o1的思考过程内部仍然是非结构化的文本,没有显性结构化的step或者sub message。因为这些方式目前还很难做得通用和完善。如果OpenAI真的做了比较强结构化的处理,例如实现了ToT想做的那种thought,它应该很容易做出更复杂的方案,取得更好的效果。毕竟能做ToT/MCTS的话,说想说只做了CoT。

3.4、旁路策略的可能性

虽然目前我觉得其主要过程是单路CoT推理,但我并不否定存在一些旁路策略的可能性,例如安全审核、内部思考过程摘要这样的旁路功能。

虽然说在内部思考过程没有结构化的前提下,旁路的流式策略也不好做的很完善,但还是凑合能做的。现在web端思考过程的摘要表现的各种问题可能也是实现方案不完美+成本约束的结果。

旁路策略如果存在,那么它对token的生成速度和总延迟影响不会太大,在不少时候可以做到不影响。很难从各种表现上进行推测。

不过旁路策略大概也是一些LLM模型,虽然便宜,但成本还是不为0的。我们从o1系列模型的定价上可以进行一些推测,目前o1-mini的成本显著高于gpt-4o-mini,里面藏一些旁路的gpt-4o-mini调用的成本完全没有问题。

所以说我认为:目前无法否定旁路策略存在的可能性,但很难获得直接可观测的证据。

3.5、内部思考过程的不完全结构化的可能途径

旁路策略一般还是需要能够进行某种半流式的处理,即监控的输入输出了一段内容之后,对该段增量内容进行处理。

一种比较好的模式是在输入流的内容相对完整的片段结束后触发一次旁路策略的调用。(或者是要做一个类似我在 展望LLM的流式输入增量计算能力 V2【2024Q1】中提到的能够处理流式增量输入的LLM模型,目前我还没有看到哪里实际做了这样的方案并且其效果能够用于实际场景。)

目前并没有很好的流式识别语义完整性的方式,简单的方式可以靠标点符号进行处理,但很难保证语义完整。在可以通过浪费多次触发来保证时效性的场景下可以用,但不太适合目前思考摘要的那种等待一大段才输出一句话的场景。不是说不能做,只是说它不适合。

一种途径是,在合成的语料数据中加入一些基于语义分节的特殊token,这些token可以由单独的分析过程对完整的文档进行插入。这样训练后的LLM可以在预测时直接输出这些分节token,基于这些token来触发依赖于语义完整性的旁路策略。这种方式比较优雅,且不会浪费推理时候的计算量。输出时直接剔除这些特殊token,对用户没有影响,用户也无法感知。

所以很难推测OpenAI是否使用了类似的技术。但我目前推测它可能没有做这种方式,如果做的了话,目前的web思考过程摘要的表现应该能够更好。

3.6、不能以单路CoT来推测它的能力

虽然我相信它在推理阶段是单路径CoT,但这并不意味着它的表现等同于gpt-4o + CoT,实际上它在模型方面的能力有着很大的加强,为这种使用场景做了很充分的特化。

我前期也习惯性按照我用CoT能实现的效果来推断o1的效果,但实际使用了一段时间后让我惊讶了。它能做一些我觉得一个CoT Agent做不好的事情。

所以这里要特地提醒读者,它的效果不能仅从其推理阶段的实现来分析。不同的问题需要实测。

3.7、一波跟风潮可能即将到来

我得说,o1的方式是有用的,它确实让单prompt和一些通用Agent的能力前进了一些。

但它的这种表现很容易被人做一个劣质的模仿,随便再微调一下模型,做一个隐藏的CoT就拿出来号称说“我们追上了o1”对于各家LLM炼丹厂来说做个样子并不难。但实际能追上o1的效果并非易事,至少是需要一段时间的。

而国内的大厂小厂,有多少会基于各方面的压力不得不很快拿出一个拙劣的模仿版本呢?我无法预判,但如果出现了很多,我是并不奇怪的。

但鸡肋的东西终究不会有那么多用户的,最终效果是能见到炼丹水平的真功夫的。希望这次不会再次消耗公众和应用层对模型公司信心。

国内的第一个同类方式的首发就在下周,qwen已经宣布2.5版本会在9.19发布,很大可能性包含了o1类似物。我相信qwen团队还是要脸的,不至于拿出一个太烂的方案。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询