深度学习框架中的自动微分及高阶导数

b11110d2bee251c3e96500300d5b9905.png

 

撰文 | 大缺弦

1、高阶导数是怎么样的

先看一个 Stackoverflow 上关于如何用 PyTorch 计算高阶导数的最高票回答(https://stackoverflow.com/questions/50322833/higher-order-gradients-in-pytorch):

b5d42522e597a68e1d0e14cd6ad62534.png

代码很简洁,结果看起来也是对的,然而实际上这个做法是有很大问题的,只是对于作者所测试的这类函数碰巧适用而已。

那高阶导数实际上又该怎么计算呢?

这个问题的标准答案可能是:要看想计算的高阶导数是什么样的。平常的神经网络训练中,我们想让 loss 下降,也就是将 loss 作为损失函数”,所以求出一阶导数 806d9ad206dcd4c87960665c388bc8c8.png、 04e6bf4e40cafec7076a09f908457403.png......也就是 w1_grad、w2_grad......,并用它来更新 w1、w2......如果我们现在有一个需求:想通过更新 w1、w2......来让反向传播得到的 w1_grad 尽可能低,也就是将 w1_grad 作为损失函数(在训练一些 GAN 网络时,不希望梯度的绝对值太大,就会有类似的需求),所以要计算 3dcfc7b51b19cbc9c73a2f8e39a20ecb.png、d5ff24d67c9565d1a2d374d0989be0be.png......也就是二阶导数 9e1611a622a0de952e911d4a10c7605a.png、5632ad1617e119669bf1bad02e06c041.png......

这可以用下面的 PyTorch 代码来简单的实现:

import torch
x = ...
loss = model(x)
w1_grad = torch.autograd.grad(outputs=loss, inputs=model.w1, create_graph=True)
w1_grad.backward()

不过,在大部分场景中想计算的二阶导数是另一种形式:

ffef030477059dc2c8b396c6cb91d51f.png

这个矩阵叫做 Hessian 矩阵。它是正儿八经的 “函数 loss = f(W) 的二阶导数”,即将神经网络看作一个输入为所有权重、输出为 loss 的多输入、单输出的函数 f (注意这里的输入不包括训练数据,因为训练数据实际上是固定的,是整个训练集,神经网络的训练就是通过改变 W 使在给定的训练集下的 loss 最低),对该函数 f 求导、再求导得到的结果。

它可以用来判断某个 W 有没有让 loss 处于极小值点、极大值点或鞍点,它也是对 f(W) 做泰勒展开后二次项的系数的两倍,所以当我们想用一个二次函数来模拟神经网络,并根据二次函数的性质来更新 W、优化 loss 的时候(这个叫作牛顿法),也是一个绕不开的概念。在很多场景,例如常用的优化方法共轭梯度法之中,这个矩阵还会和一个向量相乘,被称为 HVP(Hessian-Vector Product)。

那么这个 Hessian 矩阵以及 HVP 该怎么求?一个容易想到的方法是:考虑到在上面那个希望 7dfd36fb9309853be28635025c76da8f.png 尽可能低的场景里,我们求出的 44e35d1f73771f216504aff85eb83920.png、cfd569851efd1f23f1aca4479535048f.png......是这个矩阵的第一行,那只要对 N 个 b39bf123a484280ff8419edeb6e6a55d.png 都进行一次同样的过程,就能得到完整的 Hessian 矩阵了。再把这个矩阵乘以一个向量,就得到了 HVP。

这样是可行的,但是并不高效。特别是,如果只需要计算 HVP 而不是 Hessian 矩阵本身,其实是不用先把 Hessian 矩阵算出来,再计算和向量的乘积的,而是只需要进行两次反向传播,或者一次反向传播和一次“前向自动微分”就可以。

具体的做法和原理,需要从反向传播背后的自动微分讲起。

2、自动微分

Reverse Mode(反向自动微分/反向传播)

自动微分分两种,reverse mode 和 forward mode。Reverse mode 就是大家熟悉的反向传播,在 PyTorch 中调用 loss.backward() 就可以执行,不过它的背后有一个大部分小伙伴都不了解的机制。

先来看这个 PyTorch 代码:

import torch


x = torch.ones(2).requires_grad_()
y = x * 2


y.backward()

它会报错RuntimeError: grad can be implicitly created only for scalar outputs,即 y 不是一个标量。

如果我们给y.backward()传入任意一个形状和 y 相同的 tensor 作为gradient参数,如y.backward(gradient=torch.tensor([2, 3])),这份代码就可以正常运行。

# 省略了定义 x 和 y 的代码
>>> y.backward(gradient=torch.tensor([2, 3]))
>>> x.gradtensor([4., 6.])

这背后的原因是,反向传播只能应用于一个单输出(即输出为标量)的函数。当我们设置 gradient 为 [2, 3] 时,PyTorch 会将 gradient 和 y 做内积,得到一个标量t = 2 * y[0] + 3 * y[1], 将标量 t 当作函数的输出并运行反向传播,因此 x.grad 的值是dt/dx,根据标量对矩阵的导数的定义容易得到dt/dy = [dt/d(y[0]), dt/d(y[1])] = [2, 3],根据链式法则,dt/dx = dt/dy * dy/dx = [2, 3] * 2 = [4, 6],所以 x.grad 的值会是 [4, 6]。

‍

也就是说,对于任意一个 N 输出 M 输入的函数Y = f(X)(Y 是一个长度为 N 的向量),我们可以将 Y 和 v 做内积,得到一个标量 t 和一个单输出、M 输入的函数 g 满足t = g(X) = v * Y = v * f(X),再通过反向传播求出函数 g 的梯度。

根据链式法则,函数 g 的梯度dt/dX等于dt/dY * dY/dX,而显然dt/dY就是向量 v,也就是 loss.backward() 函数中的 gradient 参数,dY/dX是函数f的导数(形状为 N*M 的 Jacobian 矩阵)。也就是说,以一个长度为 N 的向量 v 和一个 N 输出 M 输入的函数 f 为对象运行反向传播,可以求出向量 v 和函数 f 的导数的乘积,也就是 Vector-Jacobian Product,简称为 VJP。如果想用反向传播求出整个 Jacobian 矩阵,那么可以将 v 设置为第 i 个元素为 1,其它元素均为 0 的向量,这样就可以求出 Jacobian 矩阵的第 i 行,重复 N 次就可以求出整个矩阵。

Forward Mode(前向自动微分)

前向自动微分的思路和反向传播相反,对于同样一个 N 输出M 输入的函数Y = f(X),它假设存在 t 使3e1588acfc82aeb3cdd7cdb3bc19a573.png, 也就是设定

 e2ba24ff08becc38f2626628f2931dba.png,

得到一个 N 输出、单输入的函数 g 满足Y = s(t) = f(h(t))。那么当执行某个 op a = u(b)时,就可以同时算出da/dt = da/db * db/dt, 当整个函数Y = f(h(t))执行完成时,每一个输出相对于标量 t 的导数也都被计算出来了。

同样根据链式法则,dY/dt = dY/dX * dX/dt,dY/dX是 f 的导数(Jacobian 矩阵) ,dX/dt就是向量 v。因此,以一个长度为 M 的向量 v 和一个 N 输出M 输入的函数 f 为对象运行前向自动微分,可以求出函数 f 的导数和向量 v 的乘积,这个积可以被简称为 JVP(Jacobian-Vector Product)。

类似地,如果想用前向自动微分求出整个 Jacobian 矩阵,也是可以将 v 设置为第 i 个元素为 1,其它元素均为 0 的向量来求出 Jacobian 矩阵的第 i 列,重复 M 次就可以求出整个矩阵。

由此可见,如果是想求出整个 Jacobian 矩阵,理论上来说,对于 M > N,也就是输入数量大于输出数量的函数,使用反向传播会更高效,否则使用前向自动微分会更高效。

不过,在实际中,因为前向自动微分是根据输入以及输入的导数一次性算出输出和输出的导数,对 cache 更友好,所以即使输入数量和输出数量相等,前向自动微分的速度也会比反向传播更快。

PyTorch 里也已经有了实验性的 Forward Mode 自动微分的 API,https://pytorch.org/docs/master/autograd.html#forward-mode-automatic-differentiation 。

3、Hessian 以及 HVP

接下来回到 HVP 怎么求的问题。第一节有说到函数 f 的 Hessian 矩阵是对一个 N 输入、单输出的函数 f 求两次导得到的(多输出的函数是没有 Hessian 矩阵这个概念的),也就是说它是对 f' 求一次导得到的,那 Hessian 矩阵也就是 f' 的 Jacobian 矩阵。

注意 f' 是一个 N 输入、N 输出的函数(第 i 个输出就是第 i 个输入的梯度) ,可以联想神经网络训练,N 个输入是神经网络的权重,N 个输出是权重的梯度。以长度为 N 的向量 v 和 f' 为对象进行反向传播,就可以得到 v 和 f' 的 Jacobian 矩阵的乘积,也就是 v 和 f 的 Hessian 矩阵的乘积。另一方面,因为 f' 的输入和输出数量相等,所以以 v 和 f' 为对象也可以进行前向自动微分,得到的结果是 f 的 Hessian 矩阵和 v 的乘积。注意到 Hessian 矩阵是对称的,也就是说,5cb25f582c74a73cced57dd4da50c2ba.png(VHP)和 3bb7b04614ed2a2f1de91de6b03cf62b.png(HVP) 其实是一样的(只是形状上差一个转置)。

在上面我们已经提到过,对于输入和输出数量相等的函数,一次前向微分的时间和一次后向微分相比的速度会更快。而 f' 正是一个输入和输出数量相等的函数,所以,既然 HVP 和 VHP 一样,那么求函数 f 的 HVP(或者 VHP)的最佳方法是,先对 f 进行一次后向微分,得到 f',再对 f' 进行一次前向微分。

jax 的教程(https://jax.readthedocs.io/en/latest/notebooks/autodiff_cookbook.html#hessian-vector-products-using-both-forward-and-reverse-mode)里对几种不同的求 HVP 的方法做了测速,也可以看出 “Forward over reverse”,也就是先进行反向微分,再进行前向微分是速度最快的(“Reverse over forward” 是先进行前向微分再进行反向微分,它速度慢的原因 jax 的教程里有提到,这里就不再重复)。

Forward over reverse
3.66 ms ± 89.7 µs per loop (mean ± std. dev. of 3 runs, 10 loops each)
Reverse over forward
7.43 ms ± 4.22 ms per loop (mean ± std. dev. of 3 runs, 10 loops each)
Reverse over reverse
11.1 ms ± 6.9 ms per loop (mean ± std. dev. of 3 runs, 10 loops each)
Naive full Hessian materialization
55 ms ± 476 µs per loop (mean ± std. dev. of 3 runs, 10 loops each)

自动微分的经典书籍 《Evaluating Derivatives》里甚至总结了这样一条规则:不要做超过一次反向微分。

再回过头来看文章最初的 Stackoverflow 回答,我们现在已有的知识已经可以分析出它到底是在求什么东西了。它在每一次调用grad函数后,将结果grads进行了求和,再对求和结果进行下一次后向微分,相当于通过乘以一个全 1 的向量,将多输出的函数变成了单输出,再进行后向微分。

因此 n=2 时它求的是 v 为全 1 向量时的 HVP,n=3 时是以全 1 向量和 n=2 的结果为对象求 VJP,依次类推。这些东西可能在某些场景下也有用,但显然不能说是 general 的 “高阶导数”。

让我们验证一下我们的分析:

import torch
from torch.autograd import grad


# 注:这个代码是反例,不要直接拿去用
def nth_derivative(f, wrt, n):
    for i in range(n):
        grads = grad(f, wrt, create_graph=True)[0]
        f = grads.sum()


    return grads


x = torch.arange(1, 3, dtype=torch.float, requires_grad=True)
x = x.reshape(2, 1)
x = torch.cat((x[0] + x[1], x[1]), 0)
y = x ** 4
loss = y.sum()


print(nth_derivative(f=loss, wrt=x0, n=2))

这样一段代码,求的是 ca48fcdc170ba60247335a76a9210a04.png当 x0=1, x1=2 时的 2 阶“导数”,通过手算很容易得到 loss 的 Hessian 矩阵是 fb8a5fb33e0c20ecdec36355317b6728.png,然而这段代码打印的结果是 [216., 264.] ,和上述的分析一致。

目前我们已经知道了 HVP 的求法,那么和求完整 Jacobian 矩阵时一样,用不同的 v 去计算 HVP,重复多次之后就可以得到完整的 Hessian 矩阵。但实际应用中,Hessian 矩阵的大小很可能非常非常大,例如对神经网络训练来说,Hessian 矩阵的大小是 N*N,N 是神经网络中的所有权重的元素数量之和,在 10^9 量级,要完整求出这么大的矩阵是不现实的。

所以通常都会想办法绕过 Hessian 矩阵的计算,例如用性质类似的矩阵代替 Hessian 矩阵,或者通过变换用 HVP 代替 Hessian 矩阵的功能(拟牛顿法、共轭梯度法)。

Taylor Mode 求高阶导数

在某些情况下(例如求解初值问题),需要求出下面这样一个单输入、N 输出的函数f83f3251f4ec8e88c66e380150ef7eb0.png的高阶导数,945aefdd1f0f6111c9a298a57ecc81fc.png, 7e2b98093284d107fc1d03e8ae6d6594.png......单输入、N 输出的函数正好是前向自动微分的适用范围。

因此有一个 naive 的方法是,对 f(t) 进行一次前向微分,得到单输入、N 输出的函数 f'(t),再对 f'(t) 进行一次前向微分,得到单输入、N 输出的函数 f''(t),重复 k 次之后,就能得到 k 阶导数。没有了解过的人可能以为 k 阶导数也像一阶导数一样有简单的如 1c746eca2c9318bb899f2f997b1cfacd.png 一样的链式法则,其实并不是这样。

以 16ca88f707563a69c5bd105faf1194b3.png 为例,根据链式法则,y 的一阶导数是 c2f0bb50a525e805fea455a4b248de08.png,对一阶导数再求导,得到二阶导数 66e716be337c6be60a9fbd2585e64ac8.png,到这里其实就可以看出从二阶导数的链式法则没有那么简单了,如果再继续求导,会更加复杂,三阶导数是

02fff8b3c8593cc05130ffd0729eb0c9.png,

四阶导数是

54119260564cb0f649717d4f3665f5c2.png。

可以证明,k 阶导数的表达式中的项数在 c8def9ad24895b0b4b6760d928e74116.png 的量级,也就是说按照这种 naive 的逐次求导的方式计算 k 阶导数的时间复杂度是cc9a17179602bea05aa136819283566a.png。

然而借助泰勒展开式和待求导的算子的性质,我们可以将时间复杂度降低到 O(k^2)。我们知道泰勒展开式里第 i 项的系数,其实就是原始函数的第 i 阶导数除以 i!。仍以 a3d6b828dd8cc5061cd91e4e2e021a17.png 为例,根据一阶导数的链式法则我们有 c562623eb78f4dd1eeeb1d1356ac0f09.png,也就是 a1f09d434c78fbd1032801128834ed33.png,对 y 和 x 做泰勒展开:

11f3cb0589574a8917842a8a598d5d89.png

其中 0cb0b39f138634df96a8f22d6d2d6de4.png 是 x 的泰勒展开式的第 k 项系数,也就是 x 相对于 t 的 k 阶导数除以 k !,是已知的。

上式也就是db4356a4fa5cafcb7a8d5feb6d7238b0.png对照系数,就能得到

8379aba1cfff47e1fbe2b573ce10fce8.png

显然根据这个式子,我们能在 O(k^2) 的时间内算出 c14fa2eaeba3888db1f572402965fcf4.png。

事实上,只要 y = g(x) 满足方程 b(y)g'(y) = a(y)g(y) + c(y),我们都能得到一个类似形式的结果(d5a7471d6f7d7c68e809225b4c9ff6c8.png对应 b(y) = 1,a(y) = 1,c(y) = 0),而几乎所有的操作都满足上述的方程,如 ln(x)、x^c、sin(x)、cos(x) 等等,它们的 k 阶导数都可以通过这种方式在 O(k^2) 时间内算出来。

Taylar Mode 求高阶导数相当于将前向自动微分涉及的对象从实数扩展为了 k 阶泰勒多项式,Jax 的相应 API 是https://jax.readthedocs.io/en/latest/jax.experimental.jet.html。它在深度学习框架界是一个很新的东西,也可以用在反向自动微分里,待更新......

(注:这篇文章假设读者了解梯度和 Jacobian 矩阵的定义,如果不了解可以阅读维基百科。文章一些地方没有完全严谨,比如一些向量可能该加上转置符号。LaTeX 和 Markdown 混打比较麻烦所以只有复杂符号用了 LaTeX。)

其他人都在看

欢迎下载体验OneFlow v0.7.0最新版本:GitHub - Oneflow-Inc/oneflow: OneFlow is a performance-centered and open-source deep learning framework.icon-default.png?t=M3K6https://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深度学习框架 1220

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

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

OneFlow深度学习框架 2120

<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深度学习框架 1157

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

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

OneFlow深度学习框架 139

首发!硅基流动 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深度学习框架 142

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

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

OneFlow深度学习框架 605

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

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

OneFlow深度学习框架 96

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

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

OneFlow深度学习框架 1026

<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深度学习框架 766

资本、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深度学习框架 9530

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
上一篇: 下一代英伟达H100 GPU发布时,国产芯片能追上吗?
下一篇: LLVM之父Chris Lattner:编译器的黄金时代
OneFlow深度学习框架
OneFlow深度学习框架 企业官方账号 企业官方账号
博客等级 码龄6年 5868粉丝 385原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值