@@ -352,8 +352,8 @@ class Trainer(TrainerEventTrigger): | |||||
则将替换为 :class:`~fastNLP.UnrepeatedSequentialSampler`,如果这个行为不是期待的,请本参数设置为 ``False``,并针对每个卡控制其可以 | 则将替换为 :class:`~fastNLP.UnrepeatedSequentialSampler`,如果这个行为不是期待的,请本参数设置为 ``False``,并针对每个卡控制其可以 | ||||
用到的数据。 | 用到的数据。 | ||||
* *output_from_new_proc* -- 应当为一个字符串,表示在多进程的 driver 中其它进程的输出流应当被做如何处理;其值应当为以下之一: | * *output_from_new_proc* -- 应当为一个字符串,表示在多进程的 driver 中其它进程的输出流应当被做如何处理;其值应当为以下之一: | ||||
``["all", "ignore", "only_error"]``;当该参数的值不是以上值时,该值应当表示一个文件夹的名字,我们会将其他 rank 的输出流重定向到 | |||||
log 文件中,然后将 log 文件保存在通过该参数值设定的文件夹中;默认为 ``"only_error"``; | |||||
``["all", "ignore", "only_error"]`` ,分别代表 *全部输出*、 *全部忽略* 和 *仅输出错误* ,而 rank0 的 **所有信息** 都将被打印出来; | |||||
当该参数的值不是以上值时,该值应当表示一个文件夹的名字,我们会将其他 rank 的输出流重定向到 log 文件中,然后将 log 文件保存在通过该参数值设定的文件夹中;默认为 ``"only_error"``; | |||||
注意该参数仅当使用分布式的 ``driver`` 时才有效,例如 ``TorchDDPDriver``; | 注意该参数仅当使用分布式的 ``driver`` 时才有效,例如 ``TorchDDPDriver``; | ||||
* *progress_bar* -- 显示进度条的方式,目前支持 ``[None, 'raw', 'rich', 'auto', 'tqdm']`` 或者 :class:`~fastNLP.RichCallback` 、 :class:`~fastNLP.RawTextCallback` 等对象, | * *progress_bar* -- 显示进度条的方式,目前支持 ``[None, 'raw', 'rich', 'auto', 'tqdm']`` 或者 :class:`~fastNLP.RichCallback` 、 :class:`~fastNLP.RawTextCallback` 等对象, | ||||
@@ -194,7 +194,7 @@ class TorchDDPDriver(TorchDriver): | |||||
trainer = Trainer( | trainer = Trainer( | ||||
... | ... | ||||
driver='torch', | driver='torch', | ||||
device=None | |||||
device=None, # fastNLP 会忽略传入的 device,并根据 local_rank 自动分配 | |||||
) | ) | ||||
trainer.run() | trainer.run() | ||||
@@ -222,7 +222,7 @@ class TorchDDPDriver(TorchDriver): | |||||
trainer = Trainer( | trainer = Trainer( | ||||
... | ... | ||||
driver='torch', | driver='torch', | ||||
device=None | |||||
device=None, # fastNLP 会忽略传入的 device,并根据 local_rank 自动分配 | |||||
) | ) | ||||
trainer.run() | trainer.run() | ||||
@@ -39,7 +39,7 @@ class DeepSpeedDriver(TorchDDPDriver): | |||||
``DeepSpeedDriver`` 目前支持的三种启动方式: | ``DeepSpeedDriver`` 目前支持的三种启动方式: | ||||
1. 用户自己不进行任何操作,直接使用我们的 ``Trainer``,这时是由我们自己使用 ``open_subprocesses`` 拉起多个进程, | 1. 用户自己不进行任何操作,直接使用我们的 ``Trainer``,这时是由我们自己使用 ``open_subprocesses`` 拉起多个进程, | ||||
然后 ``DeepSpeedDriver`` 自己通过调用 ``deepspeed.initialize`` 来初始化模型和同心组;(情况 A) | |||||
然后 ``DeepSpeedDriver`` 自己通过调用 ``deepspeed.initialize`` 来初始化模型和通信组;(情况 A) | |||||
.. code-block:: | .. code-block:: | ||||
@@ -60,7 +60,7 @@ class DeepSpeedDriver(TorchDDPDriver): | |||||
trainer = Trainer( | trainer = Trainer( | ||||
... | ... | ||||
driver='deepspeed', | driver='deepspeed', | ||||
device=None | |||||
device=None, # fastNLP 会忽略传入的 device,并根据 local_rank 自动分配 | |||||
) | ) | ||||
trainer.run() | trainer.run() | ||||
@@ -79,7 +79,7 @@ class DeepSpeedDriver(TorchDDPDriver): | |||||
trainer = Trainer( | trainer = Trainer( | ||||
... | ... | ||||
driver='deepspeed', | driver='deepspeed', | ||||
device=None | |||||
device=None, # fastNLP 会忽略传入的 device,并根据 local_rank 自动分配 | |||||
) | ) | ||||
trainer.run() | trainer.run() | ||||