From 2c5395fdfd5106f353a3894820b75ec3cd1dc43a Mon Sep 17 00:00:00 2001 From: Wenwen Qu Date: Thu, 19 Oct 2023 10:01:12 +0800 Subject: [PATCH] Doc(moe): add documentation for moe training (#411) * add doc for moe * fix moe and zero1 check in args_sanity_check * restore moe config file --- doc/code-docs/locales/en/LC_MESSAGES/index.po | 26 ++- doc/code-docs/locales/en/LC_MESSAGES/moe.po | 208 ++++++++++++++++++ doc/code-docs/source/conf.py | 6 + doc/code-docs/source/index.rst | 8 + doc/code-docs/source/mixed_precision.rst | 7 +- doc/code-docs/source/moe.rst | 65 ++++++ doc/imgs/switch_transformer.png | Bin 0 -> 60451 bytes internlm/initialize/launch.py | 2 +- internlm/model/moe.py | 6 +- 9 files changed, 308 insertions(+), 20 deletions(-) create mode 100644 doc/code-docs/locales/en/LC_MESSAGES/moe.po create mode 100644 doc/code-docs/source/moe.rst create mode 100644 doc/imgs/switch_transformer.png diff --git a/doc/code-docs/locales/en/LC_MESSAGES/index.po b/doc/code-docs/locales/en/LC_MESSAGES/index.po index d7a1bd3..5292029 100644 --- a/doc/code-docs/locales/en/LC_MESSAGES/index.po +++ b/doc/code-docs/locales/en/LC_MESSAGES/index.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: InternLM \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-07 10:56+0800\n" +"POT-Creation-Date: 2023-10-10 17:48+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.12.1\n" +"Generated-By: Babel 2.13.0\n" #: ../../source/index.rst:8 11e029810acf410180311a3c63eb01f4 msgid "InternLM" @@ -46,38 +46,42 @@ msgstr "Parallel Training" msgid "混合精度" msgstr "Mixed Precision" -#: ../../source/index.rst:59 9234725f3c464731993d73607608c874 +#: ../../source/index.rst:59 +msgid "混合专家模型" +msgstr "Mixture-of-Experts" + +#: ../../source/index.rst:67 9234725f3c464731993d73607608c874 msgid "模型备份" msgstr "Model Checkpointing" -#: ../../source/index.rst:67 8e4ce037017f4510b2892a66003877fa +#: ../../source/index.rst:75 8e4ce037017f4510b2892a66003877fa msgid "性能分析" msgstr "Profiler" -#: ../../source/index.rst:75 a36e02819ecd4b448a8cb4ebbecb6600 +#: ../../source/index.rst:83 a36e02819ecd4b448a8cb4ebbecb6600 msgid "训练监控" msgstr "Monitor" -#: ../../source/index.rst:83 b912e292486f455c8b5cdd75962e8ac2 +#: ../../source/index.rst:91 b912e292486f455c8b5cdd75962e8ac2 msgid "训练样例" msgstr "Example" -#: ../../source/index.rst:91 ea9e9281720941a1830e5df7a2badf7a +#: ../../source/index.rst:99 ea9e9281720941a1830e5df7a2badf7a msgid "常见问题" msgstr "Q&A" -#: ../../source/index.rst:99 e08edc5aa1c74965b10084b393b88fae +#: ../../source/index.rst:107 e08edc5aa1c74965b10084b393b88fae msgid "索引和表格" msgstr "Indices and tables" -#: ../../source/index.rst:101 f3fdca059caa49dcad09aa44be7f02d6 +#: ../../source/index.rst:109 f3fdca059caa49dcad09aa44be7f02d6 msgid ":ref:`genindex`" msgstr "" -#: ../../source/index.rst:102 b3791e811315435097bb507edc3f4b9b +#: ../../source/index.rst:110 b3791e811315435097bb507edc3f4b9b msgid ":ref:`modindex`" msgstr "" -#: ../../source/index.rst:103 a164b772960f4ab8b18c7e8820f69f55 +#: ../../source/index.rst:111 a164b772960f4ab8b18c7e8820f69f55 msgid ":ref:`search`" msgstr "" diff --git a/doc/code-docs/locales/en/LC_MESSAGES/moe.po b/doc/code-docs/locales/en/LC_MESSAGES/moe.po new file mode 100644 index 0000000..3765447 --- /dev/null +++ b/doc/code-docs/locales/en/LC_MESSAGES/moe.po @@ -0,0 +1,208 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, InternLM Team +# This file is distributed under the same license as the InternLM package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: InternLM \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-10 19:25+0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../source/moe.rst:2 +msgid "混合专家模型" +msgstr "Mixture-of-Experts" + +#: ../../source/moe.rst:3 +msgid "" +"混合专家模型(Mixture-of-Experts, MoE)是一种特殊的模型结构。 " +"混合专家模型将模型拆分为一系列称为“专家”的子模型,每个“专家” 具有唯一的权重。 " +"混合专家模型可以针对每个输入标记仅激活一个或少量的专家参与运算。 例如,图 :ref:`switch_transformer` 是 `Switch" +" Transformer `_ " +"提出的稀疏混合专家模型结构,其中的前向神经网络(FFN)被分解为多个子网络,在计算时仅有少部分的模型参数参与计算,以实现更有效的计算和资源分配。" +msgstr "" +"Mixture-of-Experts (MoE) is a special model structure. MoE partitions the model into a series of sub-models called \"experts\", " +"each with unique parameters. MoE only activates one or a small number of experts for each input token. For example, the figure :ref:`switch_transformer` " +" shows the sparse MoE architecture proposed by `Switch Transformer `_ . " +"The Forward Neural Network (FFN) is decomposed into multiple sub-networks, and only a small number of model parameters " +"are involved in the calculation to achieve more efficient calculation and resource allocation. " + +#: ../../source/moe.rst:8 +msgid "" +"稀疏混合专家模型通常还包含一个门控(gating)机制,例如图 :ref:`switch_transformer` " +"中的Router网络。门控网络负责选择激活哪些专家参与计算并组合不同专家的预测结果。" +msgstr "" +"Sparse MoE usually also includes a gating mechanism, such as the Router in Figure :ref:`switch_transformer` . " +"The gating network is responsible for selecting which experts to activate and combining the prediction results of " +"different experts." + +#: ../../source/moe.rst:16 +msgid "switch transformer" +msgstr "switch transformer" + +#: ../../source/moe.rst:19 +msgid "参数配置" +msgstr "Parameter Settings" + +#: ../../source/moe.rst:20 +msgid "如果在启动训练时要使用混合专家模型,可进行如下相关配置:" +msgstr "" +"If MoE is expected to be used in the training, please make the following settings in the configuration file:" + +#: ../../source/moe.rst:22 +msgid "模型相关配置" +msgstr "Model related settings" + +#: ../../source/moe.rst:31 +msgid "num_experts:专家网络个数。在InternLM中,每个专家有着相同的网络结构但维护着不同的训练参数。" +msgstr "" +"num_experts: The number of expert networks. In InternLM, each expert has " +"the same network structure but maintains different training parameters." + +#: ../../source/moe.rst:32 +msgid "" +"moe_gate_k:门控策略。决定如何将输入标记路由到不同的专家进行计算。目前InternLM支持top1gating和top2gating两种门控策略。关于这些门控策略的详细的信息可以参考" +" `GShard `_。" +msgstr "" +"moe_gate_k: Gating strategy. Determines how to route input tokens to " +"different experts for calculation. Currently, InternLM supports top1gating" +" and top2gating strategies. For detailed information about " +"these gating strategies, please refer to `GShard `_." + +#: ../../source/moe.rst:34 +msgid "" +"注意:在目前的InternLM中,每个专家都是根据配置文件中HIDDEN_SIZE和MLP_RATIO构造的一个 `SwiGLU网络 `_,同时支持张量并行。用户可以根据需要构造自己的专家网络。" + +msgstr "" +"Note: In the current version of InternLM, each expert is a `SwiGLU network `_ based on " +"HIDDEN_SIZE and MLP_RATIO in the configuration file, and supports tensor parallelism. Users can construct their own expert networks as needed." + +#: ../../source/moe.rst:37 +msgid "损失相关配置" +msgstr "Loss related settings" + +#: ../../source/moe.rst:46 +msgid "" +"在top1gating和top2gating门控策略中,不同的专家处理的标记数量存在差异。为了提高模型效果,应尽量保证输入标记被均匀地路由到不同的专家上。" +"InternLM采用 `GShard `_ 提出的负载平衡损失优化门控策略。 " +"Moe_loss_coeff项决定着负载平衡损失项将如何添加到最终的损失项中( :math:`l=l_{nll}+k·l_{moe}` )。" +"关于该部分的详细信息可以进一步参考 `GShard `_。" +msgstr "" +"In top1gating and top2gating strategies, the number of tokens to process may be different for different experts. " +"In order to improve the model effect, the input tokens should be evenly routed to different experts. " +"InternLM adopts the balancing loss to optimize the gating network proposed by GShard. " +"The moe_loss_coeff determines how the balancing loss should be added to the final loss ( :math:`l=l_{nll}+k·l_{moe}` ). " +"The details can be found in `GShard `_. " + +#: ../../source/moe.rst:49 +msgid "注意:这些参数需要和其他参数一起使用,具体请参考 :doc:`/usage` “训练配置”相关章节的内容。" +msgstr "Note: These parameters need to be used together with other parameters, please refer to :doc:`/usage`: Training Configuration" + +#: ../../source/moe.rst:52 +msgid "模型训练" +msgstr "Model Training" + +#: ../../source/moe.rst:54 +msgid "" +"internlm.model.modeling_moe提供了一个标准的混合专家模型的实现,该模型的网络结构和图 :ref:`switch_transformer` " +"一致,其中使用到internlm.model.moe.MoE实现MoE网络。用户在配置文件中指定模型类型:" +msgstr "" +"internlm.model.modeling_moe provides an implementation of a standard MoE. " +"The model structure is consistent with Figure :ref:`switch_transformer` ," +" which uses internlm.model.moe.MoE to implement the MoE network. " +"To use moe model, specify the model type in the configuration file:" + +#: ../../source/moe.rst:60 +msgid "并配置好稀疏专家网络的相关参数后,就可以像正常启动InternLM一样进行混合专家模型的分布式训练,具体请参考 :doc:`/usage` “启动训练”相关章节的内容。" +msgstr "" +"After configuring the relevant parameters of the sparse MoE, " +"the distributed training can start as the normal training process. please refer to :doc:`/usage`: Start Training" + +#: internlm.model.moe.MoE:1 of +msgid "Initialize an MoE layer." +msgstr "" + +#: internlm.model.moe.MoE of +msgid "参数" +msgstr "parameter" + +#: internlm.model.moe.MoE:3 of +msgid "" +"the hidden dimension of the model, importantly this is also the input and" +" output dimension." +msgstr "" + +#: internlm.model.moe.MoE:5 of +msgid "default=1, the total number of experts per layer." +msgstr "" + +#: internlm.model.moe.MoE:7 of +msgid "default=1, number of ranks in the expert parallel world or group." +msgstr "" + +#: internlm.model.moe.MoE:9 of +msgid "default=1, top-k gating value, only supports k=1 or k=2." +msgstr "" + +#: internlm.model.moe.MoE:11 of +msgid "default=1.0, the capacity of the expert at training time." +msgstr "" + +#: internlm.model.moe.MoE:13 of +msgid "default=1.0, the capacity of the expert at eval time." +msgstr "" + +#: internlm.model.moe.MoE:15 of +msgid "" +"default=4, the minimum capacity per expert regardless of the " +"capacity_factor." +msgstr "" + +#: internlm.model.moe.MoE:17 of +msgid "" +"default=None, noisy gate policy, valid options are 'Jitter', 'RSample' or" +" 'None'." +msgstr "" + +#: internlm.model.moe.MoE:20 of +msgid "default=True, whether to use the default MoE layer." +msgstr "" + +#: internlm.model.moe.MoE:22 of +msgid "" +"default=True, whether to drop tokens - (setting to False is equivalent to" +" infinite capacity)." +msgstr "" + +#: internlm.model.moe.MoE:25 of +msgid "default=True, whether to use Random Token Selection." +msgstr "" + +#: internlm.model.moe.MoE:27 of +msgid "" +"default=False, make this MoE layer a Residual MoE " +"(https://arxiv.org/abs/2201.05596) layer." +msgstr "" + +#: internlm.model.moe.MoE:30 of +msgid "default=None, the torch module that defines the residual MLP." +msgstr "" + +#: ../../source/moe.rst:64 +msgid "注意:InternLM支持用户定义自己的MoE结构。internlm.model.moe.MoE是定义MoE网络的接口,目前使用SwiGLU网络实现了专家模型并支持top1gating和top2gating两种门控策略。用户可以在MoE接口中对专家网络和门控策略进行扩展。" +msgstr "" +"Note: InternLM supports users to define their own MoE structure. " +"internlm.model.moe.MoE is the interface that defines the MoE network. " +"Currently, the SwiGLU network is used to implement the experts and " +"supports two gating strategies: top1gating and top2gating. Users can " +"extend the expert network and gating strategy in the MoE interface as needed." diff --git a/doc/code-docs/source/conf.py b/doc/code-docs/source/conf.py index c752047..7a43463 100644 --- a/doc/code-docs/source/conf.py +++ b/doc/code-docs/source/conf.py @@ -9,6 +9,8 @@ import os import sys +import torch # noqa # pylint: disable=unused-import + project = "InternLM" copyright = "2023, InternLM Team" author = "InternLM Team" @@ -94,6 +96,10 @@ autodoc_mock_imports = [ "apex", "torch", "numpy", + "flash_attn", + "rotary_emb", + "einops", + "torch_scatter", ] # support multi-language docs diff --git a/doc/code-docs/source/index.rst b/doc/code-docs/source/index.rst index 8811af2..da7812e 100644 --- a/doc/code-docs/source/index.rst +++ b/doc/code-docs/source/index.rst @@ -55,6 +55,14 @@ InternLM mixed_precision +混合专家模型 +------------------- + +.. toctree:: + :maxdepth: 2 + + moe + 模型备份 -------------------- diff --git a/doc/code-docs/source/mixed_precision.rst b/doc/code-docs/source/mixed_precision.rst index fdf1d22..2817fa3 100644 --- a/doc/code-docs/source/mixed_precision.rst +++ b/doc/code-docs/source/mixed_precision.rst @@ -1,5 +1,5 @@ 混合精度 ------------------ +============ 混合精度是指在模型训练的过程中同时使用16位和32位浮点数类型,是一种在最小化精度损失的前提下加速模型训练的方法。 混合精度通过让模型的某些部分使用32位浮点数以保持数值稳定性,并在其余部分利用半精度浮点数加速训练并可以减少内存使用,在评估指标(如准确率)方面仍可以获得同等的训练效果。 @@ -22,10 +22,10 @@ InternLM默认将模型转换为16位浮点数类型进行训练(在配置文 super().__init__() self.linear1 = nn.Linear(4, 1, bias=False) self.linear2 = nn.Linear(1, 4, bias=False) + # set model.linear2 as fp32 module + set_fp32_attr_to_module(model.linear2) model = MlpModel() - # set model.linear2 as fp32 module - set_fp32_attr_to_module(model.linear2) # apply mixed precision model = NaiveAMPModel( @@ -78,4 +78,3 @@ InternLM支持使用TF32训练模型,允许用户在config文件中将 ``dtype torch.backends.cudnn.allow_tf32 = True torch.backends.cuda.matmul.allow_tf32 = True - diff --git a/doc/code-docs/source/moe.rst b/doc/code-docs/source/moe.rst new file mode 100644 index 0000000..29b43a5 --- /dev/null +++ b/doc/code-docs/source/moe.rst @@ -0,0 +1,65 @@ +混合专家模型 +============== +混合专家模型(Mixture-of-Experts, MoE)是一种特殊的模型结构。 +混合专家模型将模型拆分为一系列称为“专家”的子模型,每个“专家” 具有唯一的权重。 +混合专家模型可以针对每个输入标记仅激活一个或少量的专家参与运算。 +例如,图 :ref:`switch_transformer` 是 `Switch Transformer `_ 提出的稀疏混合专家模型结构,其中的前向神经网络(FFN)被分解为多个子网络,在计算时仅有少部分的模型参数参与计算,以实现更有效的计算和资源分配。 + +稀疏混合专家模型通常还包含一个门控(gating)机制,例如图 :ref:`switch_transformer` 中的Router网络。门控网络负责选择激活哪些专家参与计算并组合不同专家的预测结果。 + +.. _switch_transformer: + +.. figure:: ../../imgs/switch_transformer.png + :scale: 40% + :class: with-border + :align: center + + switch transformer + +参数配置 +---------------- +如果在启动训练时要使用混合专家模型,可进行如下相关配置: + +1. 模型相关配置 + +.. code-block:: python + + model = dict( + num_experts=16, + moe_gate_k=1, + ) + +* num_experts:专家网络个数。在InternLM中,每个专家有着相同的网络结构但维护着不同的训练参数。 +* moe_gate_k:门控策略。决定如何将输入标记路由到不同的专家进行计算。目前InternLM支持top1gating和top2gating两种门控策略。关于这些门控策略的详细的信息可以参考 `GShard `_。 + +注意:在目前的InternLM中,每个专家都是根据配置文件中HIDDEN_SIZE和MLP_RATIO构造的一个 `SwiGLU网络 `_,同时支持张量并行。用户可以根据需要构造自己的专家网络。 + + +2. 损失相关配置 + +.. code-block:: python + + loss = dict( + moe_loss_coeff=0.1, + ) + + +在top1gating和top2gating门控策略中,不同的专家处理的标记数量存在差异。为了提高模型效果,应尽量保证输入标记被均匀地路由到不同的专家上。InternLM采用 `GShard `_ 提出的负载平衡损失优化门控策略。 +Moe_loss_coeff项决定着负载平衡损失项将如何添加到最终的损失项中( :math:`l=l_{nll}+k·l_{moe}` )。关于该部分的详细信息可以进一步参考 `GShard `_。 + +注意:这些参数需要和其他参数一起使用,具体请参考 :doc:`/usage` “训练配置”相关章节的内容。 + +模型训练 +---------------- + +internlm.model.modeling_moe提供了一个标准的混合专家模型的实现,该模型的网络结构和图 :ref:`switch_transformer` 一致,其中使用到internlm.model.moe.MoE实现MoE网络。用户在配置文件中指定模型类型: + +.. code-block:: python + + model_type = "INTERNLM_MoE" + +并配置好稀疏专家网络的相关参数后,就可以像正常启动InternLM一样进行混合专家模型的分布式训练,具体请参考 :doc:`/usage` “启动训练”相关章节的内容。 + +.. autoclass:: internlm.model.moe.MoE + +注意:InternLM支持用户定义自己的MoE结构。internlm.model.moe.MoE是定义MoE网络的接口,目前使用SwiGLU网络实现了专家模型并支持top1gating和top2gating两种门控策略。用户可以在MoE接口中对专家网络和门控策略进行扩展。 diff --git a/doc/imgs/switch_transformer.png b/doc/imgs/switch_transformer.png new file mode 100644 index 0000000000000000000000000000000000000000..cbeb7aa7075e18175073e043f6d637634cee9d0a GIT binary patch literal 60451 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