From 6f6cc947ef7890cde6c91b2a52bd5d395b8a3e2a Mon Sep 17 00:00:00 2001 From: mapingshuo Date: Fri, 15 Nov 2019 21:21:47 +0800 Subject: [PATCH] add recompute document (#1598) * add recompute document --- doc/fluid/api/index_en.rst | 1 + doc/fluid/api/recompute.rst | 196 +++++++++++++++++++++++++++ doc/fluid/api_cn/image/recompute.png | Bin 0 -> 142785 bytes doc/fluid/api_cn/index_cn.rst | 1 + doc/fluid/api_cn/recompute.rst | 160 ++++++++++++++++++++++ 5 files changed, 358 insertions(+) create mode 100644 doc/fluid/api/recompute.rst create mode 100644 doc/fluid/api_cn/image/recompute.png create mode 100644 doc/fluid/api_cn/recompute.rst diff --git a/doc/fluid/api/index_en.rst b/doc/fluid/api/index_en.rst index 4e7bbf50d..922633cb8 100644 --- a/doc/fluid/api/index_en.rst +++ b/doc/fluid/api/index_en.rst @@ -25,3 +25,4 @@ API Reference regularizer.rst transpiler.rst unique_name.rst + recompute.rst diff --git a/doc/fluid/api/recompute.rst b/doc/fluid/api/recompute.rst new file mode 100644 index 000000000..02df7e7cb --- /dev/null +++ b/doc/fluid/api/recompute.rst @@ -0,0 +1,196 @@ + +Forward Recomputation Backpropagation +============= + +Context +--------- + +As the amount of training data increases, training deeper neural network models becomes more and more popular. Current deep-learning training usually keeps the hidden layer outputs in memory during the forward propagation, +and the number of outputs increases linearly with +the increase of the number of model layers, +which becomes a challenge of the memory size +for common devices. + + +Theory +--------- + +As we know, a training process of a deep-learning network contains 3 steps: + +- **Forward Propagation**:Running forward operators and generate temporary variables as output +- **Backward Propagation**:Running backward operators to compute gradients of parameters +- **Optimization**:Applying optimization algorithm to update parameters + +When the model becomes deeper, the number of temporary variables +generated in the forward propagation process can reach tens +of thousands, occupying a large amount of memory. +The `Garbage Collection mechanism `_ +in Paddle can delete useless variables for the sake of saving memory. +However, some variables serve as inputs of backward operators, +they must be kept in memory until particular operator finish. + +Take a simple example, define a network contains two `mul` operators, +the forward propagation works as follows: + +.. math:: + + y = W_1 * x + + z = W_2 * y + +where :math:`x, y, z` are vectors, :math:`W_1, W_2` are matrix。It is easy to conduct that the gradient of :math:`W_2` is: + +.. math:: + W_{2}^{'} = z^{'} / y + +We can see that :math:`y` is used in the backward propagation process, +thus it must be kept in the memory during the whole forward propagation. +When network grows deeper, more 'y's need to be stored, +adding more requirements to the memory. + +Forward Recomputation Backpropagation(FRB) splits a deep network to k segments. +For each segment, in forward propagation, +most of the temporary variables are erased in time, +except for some special variables (we will talk about that later); +in backward propagation, the forward operators will be recomputed +to get these temporary variables before running backward operators. +In short, FBR runs forward operators twice. + +But how to split the network? A deep learning network usually consists +of connecting modules in series: +ResNet-50 contains 16 blocks and Bert-Large contains 24 transformers. +It is a good choice to treat such modules as segments. +The variables among segments are +called as checkpoints. + +The following picture is a network with 4 fc layers, 3 relu layers, +1 sigmoid layer and 1 log-loss layer in series. +The left column is the forward propagation, +the middle column is the normal backward propagation, +and the right column is the FRB. +Rectangular boxes represent the operators, red dots represent +the intermediate variables in forward computation, blue dots +represent checkpoints and arrows represent the dependencies between operators. + +.. image:: image/recompute.png + +Note: the complete source code of this example: `source `_ + +After applying FBR, the forward computation only needs to store +2 variables (the blue dots) instead of 4 variables (the red +dots), saving the corresponding memories. It is notable that +recomputing operators generate new intermediate variables at the same time, +a trade-off needs to be considered in this situation. +While according to our experiments, +FBR usually saves rather than increase the memory load. + +Usage +--------- + +We have implemented the FRB algorithm named "RecomputeOptimizer" +based on Paddle. More information about this algorithm can +be learned by the `source code `_ +and the +`document `_ +of RecomputeOptimizer. + +There are 2 methods to apply RecomputeOptimizer in your Paddle +program: call RecomputeOptimizer directly or use it with Fleet +API. For single-GPU card training or CPU training, we recommend +directly calling; For multi-GPU training, we +recommend using with Fleet API. + +**1. Directly calling** + +Calling RecomputeOptimizer is very easy: first, define a classic +optimizer, such as Adam; second, wrap it with RecomputeOptimizer; +third, set the checkpoints. + +.. code-block:: python + + import paddle.fluid as fluid + # Define the network + def mlp(input_x, input_y, hid_dim=128, label_dim=2): + print(input_x) + fc_1 = fluid.layers.fc(input=input_x, size=hid_dim) + prediction = fluid.layers.fc(input=[fc_1], size=label_dim, act='softmax') + cost = fluid.layers.cross_entropy(input=prediction, label=input_y) + sum_cost = fluid.layers.reduce_mean(cost) + return sum_cost, fc_1, prediction + input_x = fluid.layers.data(name="x", shape=[32], dtype='float32') + input_y = fluid.layers.data(name="y", shape=[1], dtype='int64') + cost, fc_1, pred = mlp(input_x, input_y) + # define RecomputeOptimizer + sgd = fluid.optimizer.Adam(learning_rate=0.01) + sgd = fluid.optimizer.RecomputeOptimizer(sgd) + # set checkpoints + sgd._set_checkpoints([fc_1, pred]) + # apply optimization + sgd.minimize(cost) + +In principle, recompute is for all kinds of optimizers in Paddle. + +**2. Using Recompute in Fleet API** + +`Fleet API `_ +is a high-level API for distributed training in Fluid. Adding +RecomputeOptimizer to Fluid takes two steps: + +- set dist_strategy.forward_recompute to True + +- set dist_strategy.recompute_checkpoints + +.. code-block:: python + + from paddle.fluid.incubate.fleet.collective import fleet, DistributedStrategy + dist_strategy = DistributedStrategy() + dist_strategy.forward_recompute = True + dist_strategy.recompute_checkpoints=checkpoints + optimizer = fleet.distributed_optimizer(optimizer, strategy=dist_strategy) + optimizer.minimize(loss) + +We supply some examples of using recompute in Fleet API for users. +We also post corresponding training speed, +test results and memory usages of these examples for reference. + + +- Fine-tuning Bert Large model with recomputing: `source `_ + +- Training object detection models with recomputing:developing. + +Q&A +------- + +- **Does RecomputeOptimizer support operators with random outputs?** + +We currently found that the dropout operator has random results +and RecomputeOptimizer is able to keep the outputs of +first-computation and recomputation consistent. + + +- **Are there more official examples of Recompute?** + + More examples will be updated at `examples `_ +and `Fleet `_ . Feel free to +raise issues if you get any problem with these examples. + +- **How should I set checkpoints?** + +The position of checkpoints is important: +we suggest setting the variable between the sub-model as checkpoints, +that is, set a variable as a checkpoint if it +can separate the network into two parts without short-cut connections. +The number of checkpoints is also important: +too few checkpoints will reduce the memory saved by recomputing while +too many checkpoints will occupy a lot of memory themselves. +We will add a tool to estimate the memory usage with specific checkpoints, +helping users to choose checkpointing variables. + +[1] Tianqi Chen, Bing Xu, Chiyuan Zhang, and Carlos Guestrin . Training deep nets with sublinear memory cost. +arXiv preprint, arXiv:1604.06174, 2016. + +[2] Audrunas Gruslys , Rémi Munos , Ivo Danihelka , Marc Lanctot , and Alex Graves. Memory efficient +backpropagation through time. In Advances in Neural Information Processing Systems (NIPS), pages 4125 4133, +2016. + +[3] Kusumoto, Mitsuru, et al. "A Graph Theoretic Framework of Recomputation Algorithms for Memory-Efficient Backpropagation." arXiv preprint arXiv:1905.11722 (2019). diff --git a/doc/fluid/api_cn/image/recompute.png b/doc/fluid/api_cn/image/recompute.png new file mode 100644 index 0000000000000000000000000000000000000000..11e9778305c8fc11b659bfdcf965117149b0a317 GIT binary patch literal 142785 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 b43>ZLdbWM0`Z=>47=Xaj)z4*}Q$iB}?8Sbc literal 0 HcmV?d00001 diff --git a/doc/fluid/api_cn/index_cn.rst b/doc/fluid/api_cn/index_cn.rst index fdfd88ecd..27874cd69 100644 --- a/doc/fluid/api_cn/index_cn.rst +++ b/doc/fluid/api_cn/index_cn.rst @@ -27,3 +27,4 @@ API Reference regularizer_cn.rst transpiler_cn.rst unique_name_cn.rst + recompute.rst diff --git a/doc/fluid/api_cn/recompute.rst b/doc/fluid/api_cn/recompute.rst new file mode 100644 index 000000000..a0923d60a --- /dev/null +++ b/doc/fluid/api_cn/recompute.rst @@ -0,0 +1,160 @@ + +Forward Recomputation Backpropagation +============= + +背景 +--------- + +随着训练数据规模的逐渐增加,训练更大、更深的深度学习模型成为一个主流趋势。目前的深度学习模型训练,通常要求保留前向计算的隐层结果,并且需要保存结果的数量会随着模型层数的增加线性增加,这对于目前能够使用的AI芯片的内存大小是个挑战。Forward Recomputation Backpropagation(FRB)可以在额外增加少量计算的情况下,显著增加模型的层数和宽度,同时也可以显著提升模型训练的batch大小。 + +原理 +--------- + +我们知道,深度学习网络的一次训练迭代包含三个步骤: + +- **前向计算**:运行前向算子(Operator) 来计算中间隐层(Variable)的值 +- **反向计算**:运行反向算子来计算参数(Parameter)的梯度 +- **优化**:应用优化算法以更新参数值 + +在前向计算过程中,前向算子会输出大量的中间计算结果,在Paddle中,使用 +Variable来存储这些隐层的中间结果。当模型层数加深时,其数量可达成千上万个, +占据大量的内存。Paddle的 `显存回收机制 `_ +会及时清除无用的中间结果,以节省存储。 +然而,有些中间结果是反向算子的输入,这些Variable必须存储在内存中,直到相应的反向算子计算完毕。 + +举个简单的例子, 我们定义一个由mul算子构成的网络,其前向计算为: + +.. math:: + + y = W_1 * x + + z = W_2 * y + +其中 :math:`x, y, z` 为向量, :math:`W_1, W_2` 为矩阵。容易知道,求 :math:`W_2` 梯度的反向计算为: + +.. math:: + W_{2}^{'} = z^{'} / y + +可以看到反向计算中用到了前向计算生成的变量 :math:`y` ,因此变量 :math:`y` 必须存储在内存中,直到这个反向算子计算完毕。当模型加深时,我们会有大量的“ :math:`y` ”,占据了大量的内存。 + +Forward Recomputation Backpropagation(FRB)的思想是将深度学习网络切分为k个部分(segments)。对每个segment而言:前向计算时,除了小部分必须存储在内存中的Variable外(我们后续会讨论这些特殊Variable),其他中间结果都将被删除;在反向计算中,首先重新计算一遍前向算子,以获得中间结果,再运行反向算子。简而言之,FRB和普通的网络迭代相比,多计算了一遍前向算子。 + +我们把切分网络的变量叫做checkpoints。 +那么问题来了,如何选择checkpoints呢?自从FRB方法提出以来 \ :sup:`[1], [2]`,大量学者在研究这一关键问题。 +我们知道深度学习网络通常是由一个个模块串联得到的,比如ResNet-50由16个block串联而成, +Bert-Large由24个transformer串联而成,以两个子模块中间的变量作为切分点就是一个很好的选择。 +对于非串联的网络(比如含有大量shortcut结构的网络),FRB也支持对其做切分, +只是可能多耗费一点内存(用于存储shortcut的Variable)。 +Mitsuru Kusumoto \ :sup:`[3]` 等提出了一种基于动态规划的算法, +可以根据指定的内存自动搜索合适的checkpoints,支持各种各样的网络结构。 + +下图是由4个fc Layer、3个relu Layer、1个sigmoid Layer和1个log-loss Layer串联而成的一个网络:最左侧为其前向计算流程、中间是普通的前向计算和反向计算流程、最右侧为添加FRB后的前向计算和反向计算流程。其中方框代表算子(Operator),红点代表前向计算的中间结果、蓝点代表checkpoints。 + +.. image:: image/recompute.png + +注:该例子完整代码位于 `source `_ + +添加FRB后,前向计算中需要存储的中间Variable从4个(红点)变为2个(蓝点), +从而节省了这部分内存。当然了,重计算的部分也产生了新的中间变量, +这就需要根据实际情况来做权衡了。这个例子里的网络比较浅,通常来讲, +对层数较深的网络,FRB节省的内存要远多于新增加的内存。 + +使用方法 +--------- + +我们实现了基于Paddle的FRB算法,叫做RecomputeOptimizer, +您可以根据其 `源码 `_ +与 +`文档 `_ +更深入地了解这一算法。我们为用户提供了两个使用RecomputeOptimizer的方法: +直接调用与Fleet API中使用。在单机单卡或者CPU训练中建议您直接调用RecomputeOptimizer, +在多卡训练或者多机训练任务上建议您在Fleet API中使用Recompute。 + +**1. 直接调用** + +直接调用RecomputeOptimizer非常简单,首先要定义一个经典的Optimizer,比如Adam; +然后在外面包一层RecomputeOptimizer;最后设置checkpoints即可。 + +.. code-block:: python + + import paddle.fluid as fluid + # 定义网络 + def mlp(input_x, input_y, hid_dim=128, label_dim=2): + print(input_x) + fc_1 = fluid.layers.fc(input=input_x, size=hid_dim) + prediction = fluid.layers.fc(input=[fc_1], size=label_dim, act='softmax') + cost = fluid.layers.cross_entropy(input=prediction, label=input_y) + sum_cost = fluid.layers.reduce_mean(cost) + return sum_cost, fc_1, prediction + input_x = fluid.layers.data(name="x", shape=[32], dtype='float32') + input_y = fluid.layers.data(name="y", shape=[1], dtype='int64') + cost, fc_1, pred = mlp(input_x, input_y) + # 定义RecomputeOptimizer + sgd = fluid.optimizer.Adam(learning_rate=0.01) + sgd = fluid.optimizer.RecomputeOptimizer(sgd) + # 设置checkpoints + sgd._set_checkpoints([fc_1, pred]) + # 运行优化算法 + sgd.minimize(cost) + +Recompute原则上适用于所有Optimizer。 + +**2. 在Fleet API中使用Recompute** + +`Fleet API `_ +是基于Fluid的分布式计算高层API。在Fleet API中添加RecomputeOptimizer +仅需要2步: + +- 设置dist_strategy.forward_recompute为True; + +- 设置dist_strategy.recompute_checkpoints。 + +.. code-block:: python + + from paddle.fluid.incubate.fleet.collective import fleet, DistributedStrategy + dist_strategy = DistributedStrategy() + dist_strategy.forward_recompute = True + dist_strategy.recompute_checkpoints=checkpoints + optimizer = fleet.distributed_optimizer(optimizer, strategy=dist_strategy) + optimizer.minimize(loss) + +为了帮助您快速地用Fleet API使用Recompute任务,我们提供了一些例子, +并且给出了这些例子的计算速度、效果和显存节省情况: + +- 用Recompute做Bert Fine-tuning: `source `_ + +- 用Recompute做目标检测:开发中. + +Q&A +------- + +- **是否支持带有随机性的Op?** + + 目前Paddle中带随机性的Op有:dropout,Recompute支持 + dropout Operator,可以保证重计算与初次计算结果保持一致。 + +- **有没有更多Recompute的官方例子?** + + 更多Recompute的例子将更新在 `examples `_ + 和 `Fleet `_ 库下,欢迎关注。 + +- **有没有添加checkpoints的建议?** + + 我们建议将子网络连接部分的变量添加为checkpoints,即: + 如果一个变量能将网络完全分为前后两部分,那么建议将其加入checkpoints。 + checkpoints的数目会影响内存的消耗:如果checkpoints很少, + 那么Recompute起的作用有限;如果checkpoints数量过多, + 那么checkpoints本身占用的内存量就较大,内存消耗可能不降反升。 + + 我们后续会添加一个估算内存用量的工具, + 可以对每个Operator运算前后的显存用量做可视化, + 帮助用户定位问题。 + +[1] Tianqi Chen, Bing Xu, Chiyuan Zhang, and Carlos Guestrin . Training deep nets with sublinear memory cost. +arXiv preprint, arXiv:1604.06174, 2016. + +[2] Audrunas Gruslys , Rémi Munos , Ivo Danihelka , Marc Lanctot , and Alex Graves. Memory efficient +backpropagation through time. In Advances in Neural Information Processing Systems (NIPS), pages 4125 4133, +2016. + +[3] Kusumoto, Mitsuru, et al. "A Graph Theoretic Framework of Recomputation Algorithms for Memory-Efficient Backpropagation." arXiv preprint arXiv:1905.11722 (2019). -- GitLab