解读谷歌Pathways架构(二):向前一步是OneFlow

3f023b92da62cd5d972b0037b1b497fc.png

撰文|袁进辉

本文目录如下:

  1. 下一代 AI 架构是否成立?

  2. 问题设定

  3. Pathways 如何工作?

  4. 数据流执行引擎 PLAQUE

  5. 关于 PLAQUE 的一些问题

  6. 从 Pathways 的视角理解 OneFlow SBP

  7. 从 Pathways 的视角理解 OneFlow Actor

  8. OneFlow 可以向 Pathways 学习什么?

  9. Ray 距离Pathways 有多远?

  10. 总结

1

下一代 AI 架构是否成立?

多数情况下,在学术界提“下一代”、“重新思考”、“重新设计” 这样的字眼是一件很讨人厌的事,其令人反感的程度堪比“我不是针对谁,我是说在座的都不如我厉害”,归根结底,不是谁都可以站出来定义真正的“下一代”。

最近几年,在分布式计算系统领域,印象中有 3 篇论文这么做过:

第一篇是 《Ray: a distributed framework for emgerging AI applications(https://www.usenix.org/system/files/osdi18-moritz.pdf)》,主张面向未来的 AI 应用必须重新思考分布式计算框架,结果就是 Ray。这篇论文据说也被拒过,不过最终被 OSDI 录用。其作者是伯克利 AMP Lab 的 Ion Stoica,其神奇履历见访谈《Ion Stoica: 做成 Spark 和 Ray 两个明星项目的秘笈》。虽然 Ray 以强化学习场景为目标,但我所知道的大规模的强化学习系统都不是用它实现的,原因是用 Ray 时遇到无法搞定的问题。我个人认为 Ray 已经很有影响力,但仍未解决自己的定位问题,它好似介于 K8S 和深度学习框架之间的位置,但在这两个领地都无法真正实现取而代之。

第二篇是OneFlow团队写的《OneFlow: Redesign the Distributed Deep Learning Framework from Scratch(https://arxiv.org/pdf/2110.15032.pdf)》,论文称,为了灵活、高效的支持近些年的大模型需求,不能在已有深度学习框架基础上修修补补,必须另起炉灶,相对于在已有框架上做增量式改进,从零开始设计的 OneFlow 更有优势。不幸的是,这篇论文被 OSDI, SOSP, MLSys 拒稿。为什么要重新设计?在原有系统上改造不香吗?你能证明在原有系统上增量修改不能实现一样的目标吗?

第三篇就是本文要进一步讨论的《Pathways: asynchronous distributed dataflow for ML》,虽然论文标题没有写下一代 AI 架构,但作者之一 Jeff Dean 投稿时在 Google 官网发了一篇震动世界的博客《Pathways:下一代 AI 架构》。如果从 SPMD 的需求来看框架,真是再简单不过了,但是,MPMD 是由多个 SPMD 组成。Pathways 要思考为 MPMD 服务的最优架构,就要跳出传统深度学习框架的藩篱,在更高层次进行设计。如果把之前的 PyTorch 和 JAX 等为 SPMD 场景设计的深度学习框架理解成狭义的框架,那么 Pathways 之所以敢自称下一代 AI 架构,是因为它可以被理解成框架的框架。

一般来说,这样的论文立意宏大,难写。在论文里论证研发下一代架构的必要性也很难,必须要有理有据的证明。强如 Google Brain 这样的团队也只能说,尽管 TF v1 可以做到这个以及那个,但它有这样及那样的问题,需求发生变化了,我们需要重新思考这个问题。

The implementation choices made by TF v1 were over-specialized to assume a single, smallish, exclusively-owned island of accelerators. This over-specialization makes it practically infeasible to use TF for contemporary or future ML workloads.

但这个论证并不能以理服人。毕竟,为了训练 GPT-3, TensorFlow 团队还是研发了Mesh-tensorflow、GPipe、GShard、GSPMD,虽然 PyTorch 还没有解决这些问题,但英伟达在其基础上做了Megatron-LM,微软做了 DeepSpeed 都还可以训练大模型和 MoE,用户也不少,你怎么能说人家这些增量式的改进行不通?

这样的论文也难懂。在上一篇《解读Pathways(一):Single-controller与Multi-controller》中,我说 Pathways 的论文不好理解,因为绝大部分人思维的舒适区还是在 SPMD,理解起来 MPMD 不那么顺理成章。

所以,写文章解读 Pathways 也有一定的价值吧。

2

问题设定

为便于理解 Pathways 的设计理念,我们先简要回顾一下它的设计目标是什么。Pathways 认为未来的 AI 模型不是 SPMD 所能描述的,得用MPMD(譬如流水并行这样的任务)。简单来说, MPMD 是由多个 SPMD 构成的,每个 SPMD 是同一个 computation 在一组设备上通过 GShard 或 GSPMD 的方式来均匀、对称的划分。我们用 Pathways 论文里的一个例子来说明。

c2c8e6d8ddce4b2802943408162532f0.png

上图展示了 Pathways 可以运行的 MPMD 类型的 program,这个 program 由 a, b, c, a 四个 computation 构成,每个 computation 都是一个 SPMD 类型的任务,每个 computation 需要被 sharding 到若干设备上去,例如 a,b,c 都被分配了 2 个设备。

2ef6c194fa64eecf4e9b75c71b8cb942.png

上图则展示了 Pathways 执行 Figure 2 代码时内部发生的事情。需要注意的是,尽管 A, B, C 每一个 computation 在多个设备上并行执行,数据和代码都对应着多份,但最左边的数据流图仍把每个 computation 抽象成数据流图的一个节点来表示。

集群中设备被分成很多组,每个组包含一批互联成 mesh 拓扑的同质设备,称为一个 island (一般表示一个 POD),一个 island 内部的设备可以通过称为 ICI 的高速连接通信,island 之间则需要通过带宽低一些的DCN(RDMA)来通信。每个 island 上有一个中心化的 scheduler 来实现该 island 上的群调度,一个island 内部每个设备都有一个运行在对应 host (CPU)上的 executor,同一个 island 上的 SPMD 内部会发生集群通信,相邻的 SPMD 之间也会通过 ICI 传输中间结果。

3

Pathways 如何工作?

e8f94f203c07e8b3ad0e835129490adc.png

首先对 Pathways 系统做一个鸟瞰式介绍,再去深入讨论每一个具体问题。

第①步,用户想运行一个由多个 computations(SPMD)构成的 traced program(MPMD)时,通过调用 Client library 来使用 Pathways 系统。

第②步,Client 为之前没有运行过的 computation 分配虚拟设备(virtual devices),并向 Resource Manager 注册这个 computation,也就是获得虚拟设备对应的物理设备(physical devices)。

第③步,client 触发后台服务器对 computations 进行编译:首先,基于 MLIR 的 dialect 构造一个设备无感(location-agnostic)的中间表示 (IR),这个 IR 通过一系列标准的编译(pass)被逐步降低(lowered)成一个感知设备物理位置的底层表示。值得一提的是,这个底层表示已经考虑了物理设备之间的网络连接,以及不同 computation 之间的数据路由操作。如果 program 的虚拟设备对应的物理设备不发生变化,就可以非常迅捷地重复使用这个已生成的底层表示;如果 Resource Manager 改变了一个 program 的虚拟设备,就需要重新编译。

个人把①②③这三个步骤称之为 Pathways 的前端(front-end),这基本是常规做法,比较容易理解,但还没有进入到 Pathways 的核心。

第④步,Client 把编译生成的底层表示转换成一个能被 PLAQUE 识别的数据流图(dataflow graph),并发送给运行时(runtime)系统去执行。Pathways 运行时系统缺失很多细节,特别是依赖于一个语焉不详的闭源系统 PLAQUE,这是一个谷歌内部使用的、闭源的数据流执行引擎。

分布式被表示成数据流图后,就托管给 PLAQUE 来执行,分布式的协调机制(coordination)是其核心。PLAQUE 由 scheduler 和 executor 两种 long-running 的值守进程(daemon)组成,它们可以通过互相通信(箭头⑤⑥⑦)来完成分布式协调(coordination),这些是控制平面的通信。下文会详细讨论控制平面的机制。

executor 则通过调用 TensorFlow,PyTorch 或 JAX 等传统深度学习框架(箭头⑧)来完成深度学习的计算或箭头⑨表示的数据平面通信(主要是集群通信)。大家应该对传统深度学习框架都很熟悉,本文就不过多介绍了。

值得注意的是,数据平面和控制平面的通信可能使用了不同的传输介质,前者是蓝色箭头表示 ICI,带宽更高,后者是绿色箭头表示的 DCN,带宽更低一些。

4

数据流执行引擎 PLAQUE

Pathways 论文对 PLAQUE 介绍的并不多,本文尽力把这个拼图补全。

数据流(dataflow)就是把任务之间的依赖关系用一个有向无环图(DAG)表示,并基于 DAG 的拓扑顺序去执行任务。相关文献有很多,感兴趣的朋友也可以看之前的博客《对抗软件系统复杂性①:如无必要,勿增实体》。

数据流引擎有很多种实现办法,基于消息传递的 actor 系统是一个很好的选择,另一篇博客《对抗软件系统复杂性②:全局一致,统一隐喻》对此做过讨论。

虽然 Pathways 论文没有明确说 PLAQUE 是一个 actor 系统,但这基本是一个事实,原因如下:

首先,论文明确了 PLAQUE 主要用跨 host(CPU)通信来协调分布式计算,通信则是通过消息传递来实现,无论是规则的 fanin/fanout 还是不规则的 sparse 模式。

其次,论文提到了 PLAQUE 需要使用标准的进度跟踪机制(progress tracking mechanism),这其实就是 actor 抽象里的有限状态机,一般就是用计数器来记录一个 actor 的依赖条件已经了满足几个,特别是此处引用了一篇数据流系统的经典论文 《Naiad: a timely dataflow system(https://dl.acm.org/doi/pdf/10.1145/2517349.2522738)》,这篇论文获得了 SOSP 2013 最佳论文奖,Naiad 全文没有一处提到 actor 这个词,又无处不是 actor ,论文中的 graph vertex 之间的 message passing 其实就是 actor 。值得注意的是,Naiad 论文的主创也是 TensorFlow 和 Pathways 的主创,譬如 Barham、Murray、Isard、Abardi 都是当年从微软的硅谷研究院跳槽到 Google Brain 的数据流系统的大佬,他们把之前的得意之作拿过来解决新的问题再正常不过。

最后,Google 之外没有 PLAQUE 的人想实现 Pathways 该怎么办?论文在 4.3 节说了,PLAQUE 可以被任何一个通用的数据流引擎所取代(当然是在满足苛刻性能要求的前提下)。同时,论文还是为其他同行推荐了一个可能的办法,就是基于 Ray 的 long-running actor 来自己实现一个数据流引擎,当然论文也指出了 Ray 要达到 PLAQUE 的效果仍有挺多工作要做,后文也会详细讨论。

5

关于 PLAQUE 的一些问题

让我们来细致地考察一下基于 PLAQUE 实现的数据流协调系统有没有潜在的问题。

问题1:scheduler 和 executor 之间的通信是单向还是双向的?肯定是双向的,scheduler 当然可以向 executor 发送命令,executor 也可以向 scheduler 发送关于任务完成的消息,另外论文有这样一句话进行佐证,(executor) communicating with the scheduler to determine a consistent order of function executions across all programs running on the island。

问题2:不同 island 的 executor 是否可以直接通信?论文没写,理论上可以,但应该是禁止的,因为这么做会给系统带来极大的麻烦,executor 上的执行顺序本来是它所属的 scheduler 安排好的,如果允许 island #1 上的 exectuor 跳过 island #2 上的 scheduler 直接和 island #2上的 executor 通信,那么为 gang scheduling 准备的中心化的 scheduler per island 就形同虚设,仍会有死锁风险。

问题3:island #1 上的 executor 是否可以跳过 island #1 的 scheduler 直接和 island #2 的 scheduler 通信?论文没写,理论上可以。不过,如果 island #1 和 island #2 上都有数据的消费者时,生产者 executor 还是需要同时与 island #1 和 island #2 的 scheduler 协调。

这里引入了一个新问题, 在 Pathways 举的例子里,任何一个 computation (compiled function) 都能完全放在某一个 island (POD) 之内。但假如用满一个 island (POD) 的设备都无法满足这个  computation 的需求,这个 computation 必须跨越多个 island 时怎么办?这时底下的集群通信就需要同时通过 DCN 和 ICI,多个 island 的 scheduler 肯定需要协调,但 Pathways 论文没有讨论这种情况。

问题4:island #1 的 scheduler 可以和 island #2 的 scheduler 通信吗?肯定可以,不然就需要在 island scheduler 之上设置一个更大范围的中心调度器来协调。

6

从 Pathways 的视角理解 OneFlow SBP

Pathways 这篇论文的重心是运行时系统,只用了比较少的篇幅讨论了编译器如何适应这个运行时系统。论文对编译相关的内容惜墨如金,但还是在多处反复强调了同一个问题:sharded dataflow graph,想必这是作者眼中很重要的事情。

不熟悉这个领域的人很容易忽略字眼背后的意思,我把论文中和 sharded dataflow 相关的句子都摘抄出来(可以跳过这些英文先看后面的讨论,回头再用英文印证)。

PATHWAYS uses a sharded dataflow graph of asynchronous operators that consume and produce futures, and efficiently gang-schedules heterogeneous parallel computations on thousands of accelerators while coordinating data transfers over their dedicated interconnects. (Abstract)

We have addressed the key limitations of older client-server ML systems using a sharded dataflow model and asynchronous gang-scheduling. (1. Introduction)

Finally, a system for modern ML workloads must be designed to run computations distributed over thousands of accelerators, with first class support for sharded representations and data structures. For instance, a naive dataflow graph representing an edge between an M-way sharded computation and an N-way sharded computation would require M + N nodes and M × N edges, rapidly becoming unwieldy. (2. Design motivation)

TF also materializes the full sharded computation graph, which introduces substantial overhead in both graph serialization and execution when the number of shards reaches into the thousands, leading to millions of graph edges between sub-computations. (2. Design motivation)

These XLA computations are usually characterized by known input and output types and shapes, bounded loops, and with few (if any) conditionals (see Appendix B for more details) making it feasible to estimate the resource requirements of computations in advance. We refer to these computations with known resource requirements as “compiled functions”. Each such function maps to a single (sharded) computation node in a PATHWAYS program. (3. Pathways programming model)

We convert each compiled function into a standalone PATHWAYS program containing just one (sharded) computation. (3. Pathways programming model)

The tracer generates a single PATHWAYS program where each compiled function is represented by a computation node in a dataflow graph. (3. Pathways programming model)

The client in older single controller systems can quickly become a performance bottleneck as it coordinates thousands of individual computations and data buffers corresponding to each shard of computations spread across thousands of accelerators. The PATHWAYS client uses a sharded buffer abstraction to represent a logical buffer that may be distributed over multiple devices. This abstraction helps the client scale by amortizing the cost of bookkeeping tasks (including reference counting) at the granularity of logical buffers instead of individual shards. (4.2 Client)

First, the representation used to describe the PATHWAYS IR must contain a single node for each sharded computation, to ensure a compact representation for computations that span many shards, i.e. a chained execution of 2 computations A and B with N computation shards each should have 4 nodes in the dataflow representation: Arg → Compute(A) → Compute(B) → Result, regardless of the choice of N. In the PLAQUE runtime implementation each node generates output data tuples tagged with a destination shard, so when performing data-parallel execution N data tuples would flow, one between each adjacent pair of IR nodes. (4.3 Coordination implementation)

其实,上面所有的文字都在说一件事:把每个 SPMD 当成一个节点,MPMD 可以表示成多个 SPMD 构成的抽象层次相对高的 DAG。每个 SPMD 做规则和对称的并行计算,可以被编译成一个 compiled function,内部是更低层次的 DAG。

61b07bbd4bd5e8bbe170100fea00c2ea.png

如上图所示,左半部分表示由 A 和 B 两个 SPMD 构成的 DAG (逻辑层次)。假设 A 并行度是 3,B 并行度是 2,右半部分表示把 A 和 B 按照 sharding 展开后更细致的 DAG (物理层次)。Pathways 的想法是,如果在最细致的 DAG 层次来推理和处理,工作量太大,开销很大,所以在 Client 等处只需要处理逻辑层次的 DAG 就可以。

其实 OneFlow 早已用了这个想法,用 global tensor 表示逻辑张量,用 local tensor 表示物理张量,通过 SBP 实现了逻辑和物理表示之间的转换规则。

58f610cff6bf64a1d6b58959fa41a315.png

上图左半部分相当于逻辑层次的数据流图,右半部分相当于是物理层次的数据流图。对这个问题感兴趣的朋友可以阅读 GSPMD 论文《GSPMD: General and Scalable Parallelization for ML Computation Graphs(https://arxiv.org/pdf/2105.04663.pdf)》和 OneFlow论文《OneFlow: Redesign the Distributed Deep Learning Framework from Scratch(https://arxiv.org/pdf/2110.15032.pdf)》。二者还有一些微妙的区别,我在博客 《如何超越数据并行和模型并行:从 GShard 谈起》也做过对比讨论。值得一提的是,PyTorch 正在推进一个和 SBP 抽象一样的方案(https://github.com/pytorch/pytorch/issues/72138),不过那里的逻辑张量被称为 ShardedTensor。百度 PaddlePaddle 也在最近引入了 global tensor 这样的抽象。

7

从 Pathways 的视角理解 OneFlow Actor

前面我们介绍了 Pathways 使用 PLAQUE 实现的数据流引擎来协调分布式设备上运行的传统深度学习框架。PLAQUE 实质上是一个用 actor 机制实现的数据流执行引擎,很多朋友知道 OneFlow 的运行时系统就是用 actor 实现的,二者有什么异同?如果把 Pathways 的运行时系统用 OneFlow 的理念代替,整个系统会变成下图这样。

1ee0fbf3f02f9f7240bd17a15e456b8f.png

第一,OneFlow actor 实现了运行时真正的去中心化调度。为避免一些死锁问题,Pathways 通过为每个 island 准备一个中心化的 scheduler 来实现群调度(gang scheduling)。但正如我们刚才讨论的那样,这种 scheduler per island 的方案还是有缺陷的。


在博客《解读 Pathways(一)》文末,我提到,不见得非得用中心调度才能避免死锁,也可以通过完全静态调度实现,静态调度相当于一种 ahead of time 的中心调度,OneFlow 正是这么做的,不需要为每个 island 设置一个中心化的 scheduler,也不需要所谓 gang scheduling,这是一种更极致的去中心化调度。

第二,OneFlow 消除了 executor 和传统深度学习框架之间的隔阂。在 Pathways 里,PLAQUE 的 executor 会调用本地安装的深度学习框架 TensorFlow/PyTorch/JAX,二者之间有一个基于 future 的异步交互机制:(i) enqueueing the execution of local compiled functions at each accelerator, with buffer futures as inputs; (ii) enqueueing network sends to remote accelerators for the buffer futures output by function executions。

这也是 TensorFlow 正在重构的新版 runtime 所使用的机制(https://github.com/tensorflow/runtime/blob/master/documents/async_value.md),它可以被理解成一种用于在线、动态的构建数据流图的语法糖。Pathways 宏观的分布式用了 message passing 的方式实现异步 coordination,在局部单设备内部使用了 async value 的方式实现异步。而 OneFlow 重起炉灶从零设计和研发分布式框架,有机会在宏观和微观上使用统一的方式来实现异步,那就是全部基于 actor 之间的 message passing。这一点在博客《对抗软件系统复杂性②:全局一致,统一隐喻》里有详细讨论。

第三,OneFlow 已自然而优雅地支持了 Pathways 的并行异步分发(Parallel asynchronous dispatch)。

fe3bf2710469d6fa70cf2bd43a549755.png

如上图(a)所示,Pathways 举了一个串行派发任务的例子:有三个计算任务 A, B, C 分别运行在三个不同的设备 A, B, C 上(不产生混淆的情况下,我们把设备、设备对应的host以及在它们上面运行的任务用同一个字母来表示)。生产和消费关系是 A->B->C。Host A 把任务 A 异步地插入设备 A 的任务队列,返回一个保存任务 A 输出结果的 future,并把这个 future 发送给 host B 使用。host B 为任务 B 的输入分配内存,并把内存地址传给 host A (同时在 host B 上启动recv),并为启动任务 B 做好必要准备。当任务 A 执行结束时,它的输出被直接通过高速连接 ICI 从设备 A 发送到为任务 B 分配好的输入缓冲区,随后 host B 可以在设备 B 上启动任务 B。从 B 到 C 的执行过程和从A到B类似,不再赘述。

上述过程有什么问题?当任务在设备上执行时间相对于 host 上做准备的时间(包括调度、分配资源和 host 之间的协调等)明显长的多的情况,上述方案问题不大。但当任务在设备上执行时间非常短的时候(上图(a)所示的情况),异步流水线就会出现停顿,因为 host 上的执行逻辑变成了系统瓶颈。

怎么解决这个问题?核心洞察是:大部分深度学习模型都是静态的,下游输入对应的张量形状都可以在编译阶段提前获得,不需要等到上游任务异步入队列那一刻。因此,如上图(b)所示,Pathways 用了所谓的并行异步分发,基于 compiled function 提前可知的、静态的资源需求量的事实,提前启动 host 上的工作,譬如上图中的 recv 就被提前启动了。

这个想法还是很高明的。其实,OneFlow 也早就利用了这一点,我们称之为静态调度(利用静态已知的信息)和流式执行(提前启动可以提前的工作以实现流水线),关于这一点,此前的博客《对抗软件系统复杂性①:如无必要,勿增实体》也有详细讨论。

3e0d80392ce351075e53e43bc1716164.png

第四,OneFlow 设计了基于消息传递的内存所有权(ownership)转移和引用计数规则来高效率地使用内存资源。内存管理是分布式深度学习框架极其关键的问题,Pathways 建议使用像 Ray 一样的 Object store 和所有权归属机制(ownership)来管理内存,不过对此仅用一句话一带而过(The objects are tagged with ownership labels so that they can be garbage collected if a program or client fails.)。如果你想补全这个拼图,可以看 Ray 团队在 NSDI 2021 上发表的论文《Ownership: A Distributed Futures System for Fine-Grained Tasks(https://stephanie-wang.github.io/pdfs/nsdi21-ownership.pdf)》。

PyTorch 的 remote reference 机制也使用了类似的思路(https://pytorch.org/docs/stable/rpc/rref.html)。这还是一种动态内存管理的思路,在深度学习场景不是最优的办法。不利用深度学习模型的领域知识,就只能做基于作用域的垃圾回收,作用域可能比某些 object 的真实生命周期宽(一个 object 还没出作用域就可能已经可以释放了)。在用户用 Ray 写的代码里,一个 object 甚至可能没有作用域,生命周期是无限的,系统永远都不敢删除,为此 Ray 还实现了一个定期把数据从内存向磁盘 flush 的机制,这在深度学习里都是不可接受的。下文我们还会专门讨论 Ray。

正如可以利用静态已知信息来设计并行异步分发一样,深度学习框架的内存管理也可以充分利用静态图的完整信息进行优化。OneFlow 定义了内存所有权的机制,张量的生产者对张量有读写权限,可以通过消息传递来转移对内存的读写权限,这样既可以解决读写冲突,也可以基于消息传递的引用计数方法来解决内存的及时回收(比 Ray 的 distributed reference counting protocol 出现的更早,在深度学习里也更优),感兴趣的朋友可以阅读 OneFlow 论文。总之,当利用深度学习的领域知识时,内存管理可以变得更有效。

第五,OneFlow 已基于 credit-based flow control 方法实现了背压机制(back-pressure)。这对全链路异步的流水线非常重要,但 Pathways 只用一句话提到了这个问题,并没有详细讨论(We can use simple back-pressure to stall a computation if it cannot allocate memory because other computations’buffers are temporarily occupying HBM)。


OneFlow 核心的想法是:在静态分析阶段,通过软件流水线(software pipelining)技术分析得到每个流水线阶段的最优资源配额(内存或显存),如上图的 a1 有 3 个配额,a2 和 a3 只有 2 个配额,每个算子都只能在自己的配额范围内使用资源,一旦用完即使输入数据都就绪也不能启动(即 Pathways 描述的stall)。感兴趣的朋友可以阅读OneFlow论文或此前的博客《Credit-based flow control 的前世今生》。

上述每个问题都挺复杂,展开讨论都可以单独写一篇文章,但无论如何,OneFlow 用一个统一、简洁的机制就把上述问题都解决了,所以我们在刚开始写 OneFlow 的论文时,一度想用《OneFlow: a minimal design of distributed deep learning framework》这样一个也属于“找死”类型的标题。我们设计和研发 OneFlow 时的确秉持了”最简即最正确“的理念 ,从各种角度看,用 actor 这个抽象来实现分布式深度学习系统都是最简单的选项。

我们注意到,最近华为 Mindspore 和百度 PaddlePaddle 都已经跟进了 actor 这个理念,现在 Google Pathways 也来为这个想法站台了。还有一件值得注意的事情是,actor 抽象也会为软硬件协同设计带来极大便利,最近大火的 Tenstorrent 简洁的软件栈也有所体现《Tenstorrent 虫洞芯片分析》。

8

OneFlow 可以向 Pathways 学习什么?

OneFlow 使用了极致的静态调度理念,每个 actor 在运行时是绑定到固定的CPU和设备上,显然,这会给容错、弹性计算、多租户共享资源带来一些挑战,博客《动态调度的“诅咒”》讨论过这一问题。

Pathways 论文对此用较多篇幅进行了讨论,基本思路是引入虚拟设备,先解决 compiled function 和虚拟设备的映射,然后再用 Resource Manager 来解决虚拟设备和物理设备的映射。这是计算机系统里很经典的解决问题的思路,即额外引入一层抽象或虚拟化,这比较容易理解,在此不再展开讨论,感兴趣的朋友可以阅读博客《再谈“去虚拟化”对深度学习系统的必要性》。

OneFlow 可以直接使用 Pathways 引入的中心调度器和 Resource Manager 来解决任务和设备的映射问题。在基于 actor 的数据流系统中,每个 actor 可以被理解成一个路由器,数据在 actor 系统里的流动就像在网络里传输的数据包,引入的 Resource Manager 有点像 DNS 服务器,当消息发出方发现目的地的地址发生变化时,可以在从 Resource Manager 这里查询到目的地的新地址之后再发消息和传输数据。

Pathways 花了不少篇幅讨论这个问题,但论证以及实验支撑存在不足,即使是随后不久发表的PaLM 大模型也并没有体现出来多少动态性。既然无法充分论证这个问题,完全可以把这部分内容全部删除,用另外一篇论文专门研究这个问题。不知道审稿人有没有提出意见,我怀疑,如果换成其他人在一篇论文里“兜售”过多观点,但又无法提供有力支撑,一定会被 challenge。这种做法也很不公平,一些大佬在工作不成熟的情况下先把坑占住,后来者即使做的再好都会被审稿人挑战 novelty,恐怕最后就没法发表。

最近学术界的确有几个相关工作在研究 elastic training,需要解决 exclusive ownership of resource 的问题,我的谨慎判断是,这个现状在中短期内不会发生改变,有可能长期也不会改变,主要原因是让任务飘来飘去得不偿失,computation 对应的设备每发生一次变化,都要重新编译一次 (It is efficient to repeatedly run the low-level program in the common case that the virtual device locations do not change, and the program can be re-lowered if the resource manager changes the mapping between virtual and physical devices),迅速解决这个问题非常具有挑战性(The scheduler must implement policies for allocating accelerators at a time-scale of milliseconds)。

9

Ray 距离 Pathways 有多远?

Pathways 论文已经讨论了使用 Ray 来实现的可能性,指出了一些很重要但 Ray 还没做的事,包括:(1) object store 支持 HBM 等设备内存管理;(2)支持设备间高速数据传输,譬如NVLink 和 RDMA;(3) 基于 Ray 开发一个数据流引擎进行依赖管理。

第一个问题是显而易见的,前文我们也讨论过,设备内存(显存)非常珍贵,一定要有效利用,但 Ray 作为一个通用计算框架不能利用面向特定领域的需求引入对通用系统显得过度的假设,只能使用作用域来管理生命周期,作用域来管理深度学习张量的生命周期并非最优,还有的场合没有显式的作用域,Ray 的作者非常清楚这一点,论文里也提到了:

Given the workload generality, specialized optimizations are hard. For example, we must make scheduling decisions without full knowledge of the computation graph. Scheduling optimizations in Ray might require more complex runtime profiling. In addition, storing lineage for each task requires the implementation of garbage collection policies to bound storage costs in the GCS, a feature we are actively developing.

b26330c078d19569fb43e3618855722c.png

第二个问题,如上图所示,Ray 主要使用 gRPC 通信,缺乏对 NVLink 和 RDMA 的支持,也缺乏集群通信的支持。不过,Ray 在积极向深度学习系统领域发展,他们也意识到了这个问题,已开展各种增强 Ray 通信功能的工作,包括让 Ray 支持高速集群通信(https://arxiv.org/pdf/2002.05814.pdf)。对这个问题感兴趣的朋友可以阅读《对抗软件系统复杂性③:恰当分层,不多不少》。

第三个问题,有人可能以为用 Ray 的 actor 实现一个数据流引擎即可,没错,Ray 如果连这个都实现不了那还称得上通用分布式计算框架吗?事实上 Ray 已经有了一套用于解决 Workflow 的接口,问题是是否满足深度学习的性能要求。另外,把 Ray 用到深度学习系统里还是有一个不易察觉的大“陷阱”,那就是 Ray 通过 object store 和 RPC 机制实现了一套“自动”的数据搬运机制 (object 在 object store 之间的隐式迁移),本意当然是帮上层用户着想,让他们不用再操心复杂的数据搬运,但这个“自作主张”,“越俎代庖”之举在深度学习里会帮倒忙,不是做少了,而是做过了。

在深度学习系统里,数据搬运是一等公民,深度学习框架需要像对待数据计算一样重视且全权管理,不能把数据搬运委托给更底层的机制以至于数据搬运隐式地在背后发生,丧失宝贵的确定性和可预测性,必须把数据搬运像计算一样作为算子显式的调度管理。虽然 TensorFlow 没有基于 Ray 开发,但也存在这个问题,感兴趣的朋友可以阅读《数据搬运的“诅咒”》。多说一句,做 AI 芯片的朋友对这一点体会最深,通用 CPU 都使用 cache 机制,硬件自动完成预取的工作,让软件开发更简单,但仍存在 cache miss rate 的问题,AI 芯片不能承受这个代价,再加上深度学习任务有显著的规律,所以更希望让软件显式的管理缓存何时预取数据,这里普遍使用一种叫 scratchpad 的技术,以实现100%的”命中“。

总之,Ray 作为通用分布式计算框架(RPC, actor, object store三件套),当应用到深度学习系统时,还是要向专门化和静态化的方向做不少工作。

OneFlow 在向 MLSys 投稿时,有个审稿人说,Ray 已经用了 actor, 这篇论文没有 novelty,他显然没有思考过这些问题,也没有仔细阅读我们的论文。

10

总结

Pathways 在 single-controller 和 multi-controller 上花了不少篇幅,但正如在上一篇博客中讨论的那样,这一点并不本质。

Pathways 提出用 centralized scheduler 和 Resource Manager 解决设备共享、弹性计算的问题,这一点是有趣,但文章几乎仅仅是抛出观点,实验证据非常薄弱。

Pathways 提出的 sharded dataflow graph,以及基于 PLAQUE 的协调系统是最有价值的部分,但几乎全方位弱于 OneFlow 的设计方案,每个方面都再向前走一步才是 OneFlow。

如果 Google 认为 Pathways 是下一代 AI 架构,那么,比 Pathways 更超前的 OneFlow 是哪一代?

Pathways 被 MLSys 录用了,而投稿的 OneFlow 却被拒了。那么,MLSys 的录用标准是什么?

其他人都在看

欢迎下载体验OneFlow v0.7.0最新版本:GitHub - Oneflow-Inc/oneflow: OneFlow is a performance-centered and open-source deep learning framework.https://github.com/Oneflow-Inc/oneflow/

相关推荐

<span class=“js_title_inner“>OpenAI 前首席研究官:AGI 核心突破已实现</span>

归根结底,与人合作时要理解他们的诉求,既要让他们实现创作目标,又要协调所有人的贡献形成整体成果,并持续反复地解决这个问题。但如果他们知道你是在为他们争取最大利益,那么当你要求他们去做那件极其困难且令他们恐惧的事情时,有时你就能帮助他们跨越鸿沟,解决问题,避免他们做出愚蠢的举动,最终获得圆满的结果。,包括在实现方式上的品味,其中可能存在不明显的后果——也许是性能上的隐性影响,也许是用户界面演变过程中难以预见的连锁反应,进而需要改变系统更深层的抽象结构——这些只能依靠人类来完成,目前别无选择。

OneFlow深度学习框架 738

<span class=“js_title_inner“>OpenAI 前首席研究官:AGI 核心突破已实现</span>

归根结底,与人合作时要理解他们的诉求,既要让他们实现创作目标,又要协调所有人的贡献形成整体成果,并持续反复地解决这个问题。但如果他们知道你是在为他们争取最大利益,那么当你要求他们去做那件极其困难且令他们恐惧的事情时,有时你就能帮助他们跨越鸿沟,解决问题,避免他们做出愚蠢的举动,最终获得圆满的结果。,包括在实现方式上的品味,其中可能存在不明显的后果——也许是性能上的隐性影响,也许是用户界面演变过程中难以预见的连锁反应,进而需要改变系统更深层的抽象结构——这些只能依靠人类来完成,目前别无选择。

OneFlow深度学习框架 423

<span class=“js_title_inner“>LLM 推理经济学</span>

作者 | Piotr Mazurek & Felix GabrielOneFlow 编译翻译|张雪聃题图由 SiliconCloud 生成当前 LLM 公司的主要商业模式是通过 API 提供模型访问服务,推理成本结构是决定其盈利能力的关键。本文将从底层原理阐释大模型托管/服务的成本来源、单个 GPU 可生成的词元(Token)数量及其成因,本文以开源模型 LLaMA 3.3 为基础,搭建一个简化版的大模型推理运算世界模型,旨在建立关于 LLM 推理的精确直觉认知。大模型推理的经济学影响远超过技术范畴本身。随

OneFlow深度学习框架 643

Databricks“三级跳”:600 亿美元独角兽的战略跃迁

本文以 S 曲线理论为分析框架,深度解构 Databricks 的三次关键战略跃迁,还原了其技术商业化路径中的关键决策——如拒绝本地化部署的短期利益、与微软 Azure 的生态合作以及从开源社区到企业级服务的平衡艺术。Databricks 作为数据与 AI 领域的代表性企业,从开源项目 Spark 起步,逐步发展为估值超 600 亿美元的行业巨头,其成长历程不仅折射出大数据技术的演进史,更揭示了科技公司如何通过连续的战略跃迁实现指数级增长。当时的背景是:互联网的迅速发展催生了海量数据,尤其是非结构化数据。

OneFlow深度学习框架 1221

AI 云服务之争:CoreWeave 向上,Nebius 向下

平台中的大多数工具均为自主研发,包括支持大规模调度的托管 Kubernetes、基于 Slurm 的集群调度系统、用于实验管理的 MLflow、自研的可观测性工具,以及一个具备安全保障的云端基础设施控制平台。它跳过了这一环节,设计了自己的服务器机架,以建立一个更加垂直整合的系统,从数据中心架构到托管式 Kubernetes 服务,再到像 Nebius AI Studio 这样的应用层工具(该工具为 DeepSeek、Llama 和 Flux 这样的开源模型提供推理 API)。的策略更全面和“全栈”。

OneFlow深度学习框架 2121

<span class=“js_title_inner“>AI 云服务之争:CoreWeave 向上,Nebius 向下</span>

平台中的大多数工具均为自主研发,包括支持大规模调度的托管 Kubernetes、基于 Slurm 的集群调度系统、用于实验管理的 MLflow、自研的可观测性工具,以及一个具备安全保障的云端基础设施控制平台。它跳过了这一环节,设计了自己的服务器机架,以建立一个更加垂直整合的系统,从数据中心架构到托管式 Kubernetes 服务,再到像 Nebius AI Studio 这样的应用层工具(该工具为 DeepSeek、Llama 和 Flux 这样的开源模型提供推理 API)。的策略更全面和“全栈”。

OneFlow深度学习框架 157

关于 DeepSeek-R1 API 评测,至少有 7 个误区

xx 58.33%。以某评测者的“人类头发数量的乘积是多少?市面上基本不存在“非满血版 R1”,也基本不存在所谓模型“降智”,而 R1 蒸馏版(70B、1.5B等)与满血版的效果差距很明显,一般知名服务商都会注明,如果这些平台提供所谓“非满血版 R1”,很容易测试出来,这完全是自砸招牌,他们没有动机“以次充好”。可以确定的是,市面上知名的第三方平台部署的都是“满血版 R1(671B)”,之所以用户使用感受有差异,是因为模型输出的随机性、平台提供的配套功能及超参数设置等可能不一致,而非底层模型本身的差异。

OneFlow深度学习框架 1158

<span class=“js_title_inner“>关于 DeepSeek-R1 API 评测,至少有 7 个误区</span>

xx 58.33%。以某评测者的“人类头发数量的乘积是多少?市面上基本不存在“非满血版 R1”,也基本不存在所谓模型“降智”,而 R1 蒸馏版(70B、1.5B等)与满血版的效果差距很明显,一般知名服务商都会注明,如果这些平台提供所谓“非满血版 R1”,很容易测试出来,这完全是自砸招牌,他们没有动机“以次充好”。可以确定的是,市面上知名的第三方平台部署的都是“满血版 R1(671B)”,之所以用户使用感受有差异,是因为模型输出的随机性、平台提供的配套功能及超参数设置等可能不一致,而非底层模型本身的差异。

OneFlow深度学习框架 140

首发!硅基流动 x 华为云联合推出基于昇腾云的 DeepSeek R1 & V3 推理服务

DeepSeek-R1、DeepSeek-V3 开源后引发全球震动,它们是深度求索团队为全人类献上的一份大礼,我们由衷为他们取得的成功感到高兴。经过硅基流动和华为云团队连日攻坚,今天,我们也为国内用户献上春节礼物:大模型云服务平台 SiliconCloud 首发上线基于华为云昇腾云服务的 DeepSeek-V3、DeepSeek-R1。 需要特别强调的是,无论是在昇腾上适配 DeepSeek-R...

OneFlow深度学习框架 4249

<span class=“js_title_inner“>首发!硅基流动 x 华为云联合推出基于昇腾云的 DeepSeek R1 & V3 推理服务</span>

5. 与 DeepSeek 官方优惠期价格保持一致,SiliconCloud 上的 DeepSeek-V3 的优惠期价格(截止 2 月 8 日 24:00)为 ¥1 / M tokens(输入)& ¥2 / M tokens (输出),DeepSeek-R1 的价格为 ¥4 / M tokens(输入)& ¥16 / M tokens (输出)。华为云昇腾云服务可提供澎湃、弹性、充足的算力。双模型,还是在此前上线其他模型的过程中,我们都得到了 DeepSeek 与华为云的大力支持,向他们致以深深的谢意与。

OneFlow深度学习框架 143

站在 AI 十字路口:直面智能体与机器人狂潮

生成式 AI 正在迅速介入人类世界。随着 AI 大模型不断进步,我们正面临着巨大的社会变革。本文探讨了一个由高度智能的智能体和机器人主导的世界——AI 亚特兰蒂斯世界(指在数字领域拥有几乎无限的 AI 资源)。本文分析了当前的 AI 模型为何从根本上不同于以往的技术范式,它们如何重塑各行业,以及人类面临的关键选择。作者认为,每个人都必须理解 AI 的进步将如何重塑经济、创造力和人类潜力的规则。除...

OneFlow深度学习框架 606

<span class=“js_title_inner“>站在 AI 十字路口:直面智能体与机器人狂潮</span>

拥有 AI 的政府能够提供更好的服务,制定数据驱动的政策,增强国家安全,并为民众提供更高的透明度和问责制。这里有一个令人难以置信的想法:你现在可以雇佣智能体员工和机器人工作者,他们的薪水甚至低于你花在咖啡上的费用——然而他们却拥有与普通大学毕业生相同的技能。拥有更多的闲暇时间当然不错,但真正的关键是,AI 为你腾出了精神空间,让你能专注于更大的挑战。像 ComfyUI 这样的工具是这一转变的早期例子——人们现在可以创建复杂的 AI 工作流,其中信息和任务从一个阶段无缝流向另一个阶段。这些模型是通用翻译器。

OneFlow深度学习框架 97

迈向 AI 驱动型经济:当资本不需要打工人

AI 的迅猛发展与普及,引发了学术界与工业界对现在的社会结构与经济模型的根本性反思。此前 OneFlow 发布的《资本、AGI 与人类雄心》、《AGI 时代的智能诅咒》、《AGI 崛起之后:重构经济模式与社会结构》三篇文章,深入探讨了劳动力替代性 AI 改变人力与非人力生产要素的相对重要性后,给整个社会带来的好处与风险,以及应对挑战的解决方案。在本文中,借助一众经济学家和科幻作家的理论观点,Int...

OneFlow深度学习框架 1027

<span class=“js_title_inner“>迈向 AI 驱动型经济:当资本不需要打工人</span>

相对而言,伊恩·M·班克斯(https://en.wikipedia.org/wiki/Iain_Banks)的《文明》系列丛书则描绘了一个后匮乏的社会,在这个社会中,拥有感知能力的 “AI 智能体(AI Minds)” 管理着星舰和栖息地,根据需求分配资源,而非货币。例如,《星际迷航》中,技术(如复制器和先进的星舰 AI )消除了物质匮乏,推动了一个专注于探索和文化发展的社会。而 AI 的引入,使非人类智能体成为生产力的主要推动者,将剩余价值的核心转移到了算法、数据集和计算系统的所有权上。

OneFlow深度学习框架 107

AGI 崛起之后:重构经济模式与社会结构

AGI 日益临近,这也迫使我们重新审视现有的社会结构和经济模式。在《资本、AGI 与人类雄心》一文中,Rudolf 指出,AGI 到来之后,劳动力替代性 AI 将改变人力与非人力生产要素的相对重要性,这会降低社会对人类的关注度,同时使现有的权力更加有效和根深蒂固。基于资源诅咒现象,Luke Drago 在《AGI 时代的智能诅咒》一文中将 Rudolf 的上述核心观点描述为智能诅咒。他认为,智能诅...

OneFlow深度学习框架 1310

AGI 时代的智能诅咒

经济学研究指出,依赖出售石油等自然资源获得收入而非公民税收的国家,会受到资源诅咒的影响,结果是权贵们攫取了大量财富,却停止了对普通人的投资。当 AGI 实现后,人类是否会面临类似的“智能诅咒”?在此前发布的《资本、AGI 与人类雄心》一文中,Rudolf 指出,AGI 到来之后,劳动力替代性 AI 将改变人力与非人力生产要素的相对重要性,这会降低社会对人类的关注度,同时使现有的权力更加有效和根深蒂...

OneFlow深度学习框架 767

资本、AGI 与人类雄心

通用人工智能(AGI)正在不可阻挡地走向人类社会,有人期待它带来的巨大生产力突破,有人也在警告它可能成为洪水猛兽,也有人对它的发展只是持观望态度。不管怎样,基于你所了解的信息,你可以尝试描绘一幅 AGI 图景,并畅想它在人类政治、经济、社会发展会产生的影响。在本文中,作者 Rudolf 深入剖析了 AGI 到来之后的资本、人类劳动与社会权力结构之间的复杂关系。其核心观点是,劳动力替代性 AI 将改...

OneFlow深度学习框架 886

2025 年 AI 十大展望:软件市场扩大 10 倍、系统比模型更重要、OpenAI 先发优势消退...

尽管有 Scaling Law 放缓这样的疑虑,但整体而言,多数业内人士对AI过去一年的诸多进展感到兴奋,对新的一年 AI 的发展更是充满期待,尽管他们对未来的预测可能不尽相同。在本文中,Foundation Capital 合伙人Ashu Grag回顾了 2024 年 AI 发展的里程碑事件,并重点介绍了 2025 年的前景,主要包括:1.预训练局限将推动新的 AI 突破2.AI系...

OneFlow深度学习框架 1590

900页免费“生成式AI与大模型”电子书|OneFlow年货

难以想象,如果不是Scaling Law放缓,2024年AI领域会发生哪些惊人变化,但你可能又会感到庆幸,正是由于Scaling Law放缓,它给了这个行业的后来者们追赶的机会,也给了更多普通人搭乘这一轮技术革命的机会。AI领域的变化激荡人心。一年前,AI社区普遍认为,与OpenAI的模型相比,大部分模型与它有半年或一年的差距,但大模型预训练逐渐没有秘密,它的入局门槛数量级降低。令国内外科技界深感...

OneFlow深度学习框架 659

2024年AI盘点:投资高歌猛进、基础设施重构、技术采用加速

本文全面分析了今年AI 的发展,包含AI 技术栈的基础设施层、基础模型层、应用层、工具层,尤其是各个层面的主要收获、值得关注的趋势与值得关注的初创公司。此外,本文还概括了 AI 领域的投资和并购情况,以及其他AI 趋势。需要指出的是,可能限于作者KelvinMu的关注重心,本文除了对中国基础模型的介绍,没有更多关于中国 AI 其他技术栈的进展。不过,这并不妨碍本文仍是我们了解 2024...

OneFlow深度学习框架 2010

从零实现极速LLM推理

作者 | Andrew Chen翻译|张雪聃、刘乾裕OneFlow编译题图由SiliconCloud平台生成本文旨在从零开始,仅使用C++和CUDA构建一个大语言模型(LLM)推理引擎,且不借助其他外部库。为何要这样做?通过这种方式,我们能够全面了解LLM推理的整个技术栈——这一点正变得日益重要[1]——从CUDA kernel到模型架构,并且切实体会不同的优化方式如何影响推理速度。其中一个最为重...

OneFlow深度学习框架 1207

AI数据中心历史、技术与关键企业

过去一年,通过模型架构创新、更优质训练数据和更大算力规模来训练模型,顶尖大模型之间的性能差距急剧缩小。如果Scaling law依然有效,为了进一步扩展模型规模与性能,在模型架构创新存在极大不确定性情况下,通过获得更多的算力来建造全新的数据中心,从而更快地训练模型以取得领先地位,这是确定性更高的收益。目前,以马斯克xAI为代表的大模型公司,快速部署了10万台GPU集群,成为数据中心扩展的领头羊,可...

OneFlow深度学习框架 971

红杉资本2025年AI三大展望:大模型厂商各显神通;杀手级应用AI搜索;AI支出变稳...

2024年,随着Scaling law放缓,AI领域在大模型、基础设施上的能力稳步提升,尽管应用层出现了各种有趣的探索,但是更大的潜能有待挖掘。2025年即将来临,将出现哪些变化?近日,红杉资本投资人David Cahn对2024年AI领域的发展作了简要总结并对2025年作了三大预测。他认为,今年是AI发展的萌芽期,其构建基石已经稳固建立,只待2025年发芽结果。他在本文中阐述了三点预言:首次,基...

OneFlow深度学习框架 1675

AI半导体技术、市场与未来

过去两年,英伟达崛起是科技领域的一个经典案例。通过CUDA系统,他们创建了一个使用GPU进行机器学习的开发者生态系统;通过Mellanox,他们成为了数据中心网络的领导者。然后,他们将所有硬件集成到服务器中,提供垂直集成的算力一体机。凭借这一系列组合性技术优势,英伟达在“AI淘金热”中提供的铲子占据行业核心地位,这导致它成为有史以来最成功的公司之一。随之而来的是,不少挑战者入局以求从英伟达主导的市...

OneFlow深度学习框架 1万+

比GPU快20倍?d-Matrix推理性价比分析

AI推理算力需求正在大幅增长。一方面,像硅基流动、Fireworks这样的AI基础设施软件公司通过软件层面的优化以提供高性价比的大模型推理服务,另一方面,以Cerebras、Groq为代表的芯片公司相继推出了专用AI推理芯片,通过硬件层面的创新,以数量级的推理速度与成本优势来挑战英伟达GPU的市场地位。AI推理芯片市场的竞争者还在增加。近日,成立于2019年的硅谷推理芯片创业公司d-Matrix的...

OneFlow深度学习框架 2035

生成式AI推理技术、市场与未来

OpenAI o1、QwQ-32B-Preview、DeepSeek R1-Lite-Preview的相继发布,预示着生成式AI研究正从预训练转向推理(Inference),以提升AI逻辑推理(reasoning)能力,这一转变将极大推动上层应用的发展。红杉资本近期指出,在可预见的未来,逻辑推理和推理时计算将是一个重要主题,并开启生成式AI的下一阶段。新一轮竞赛已然开始。那么,在推理这一新兴市场,...

OneFlow深度学习框架 2091

50张图,直观理解混合专家(MoE)大模型

Mixtral 8x7B的高效训练与推理效果曾引发AI社区对混合专家(MoE)模型的广泛关注,后来居上的国产开源大模型De‍epSeek以及腾讯近期开源的Hunyuan-Large(基于Transformer的最大MoE模型)也选择了MoE框架路线。为何大语言模型总是离不开MoE的身影?借助50多个图例,数据科学家Maarten Grootendorst由浅入深多维度剖析了MoE模型,从基础概念出...

OneFlow深度学习框架 9531

LLM后训练绝招:1%预训练成本,实现最高20倍算力扩展效果

根据规模定律,扩大训练计算规模可以提高大型语言模型(LLM)性能的关键,但调研机构Epoch AI的研究,LLM再训练无需高额费用,也能让AI能力获得显著提升。在该研究中,他们引入了一个基本框架,用于量化后训练增强的收益和成本,特别是通过计算等效增益来衡量收益。他们将该框架应用于一系列具有代表性的后训练增强,并发现性能提升非常显著,但微调成本通常与预训练成本相比非常小,某些后训练增强技术可以在不到...

OneFlow深度学习框架 4620

LLM逻辑推演策略选择:推理时计算 vs 训练时计算

AGI实现的一大标志是,具备人类级别的逻辑推理(reasoning)能力。近期,随着推理(inference)模型GPT o1、DeepSeek R1-Lite的发布,模型的逻辑推理能力得到显著提升,也预示着对LLM潜力的深度挖掘正在转向推理阶段。围绕增强LLM逻辑推理能力这一目标,美国人工智能与密码学研究实验室Bagel团队结合最新研究,从算术、常识和符号这三种主要逻辑推理类型出发,对比了在推理...

OneFlow深度学习框架 4206

探索AI框架前沿|OneFlow招聘深度学习研发工程师(实习)

一、岗位名称:深度学习研发工程师-框架开发方向(实习)岗位职责1. 参与 OneFlow 框架开发、重构与性能优化;2. 参与深度学习编译、高阶自动微分等深度学习框架相关技术演进工作。岗位要求1. 计算机或电子通信相关专业,本科及以上学历;2. 具备C/C++、Python编程基础,有良好的软件开发素养,熟悉TDD、CI/CD、敏捷开发流程等;3. 了解深度学习模型,有一定机器学习基础;4. 熟悉...

OneFlow深度学习框架 571
上一篇: 解读谷歌Pathways架构(一):Single-controller与Multi-controller
下一篇: 王世杰:读博被美国拒签之后|OneFlow U
OneFlow深度学习框架
OneFlow深度学习框架 企业官方账号 企业官方账号
博客等级 码龄6年 5868粉丝 385原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值