class_docstr: :param model: 训练使用的模型。
  
      * 如果不想自己初始化分布式环境，类型应为 :class:`paddle.nn.Layer`；
      * 如果已经在外面初始化了分布式环境，类型应为 :class:`paddle.DataParallel`；
  
  :param parallel_device: 多卡训练时使用的设备，必须是一个列表。
      当使用 ``python -m paddle.distributed.launch`` 启动时，该参数无效。
  :param is_pull_by_paddle_run: 标记当前进程是否为通过 ``python -m paddle.distributed.launch`` 启动的。
      这个参数仅在 :class:`~fastNLP.core.Trainer` 中初始化 driver 时使用
  :param fp16: 是否开启混合精度训练
  :param paddle_kwargs:
      * *fleet_kwargs* -- 用于在使用 ``PaddleFleetDriver`` 时指定 ``DataParallel`` 和 ``fleet`` 初始化时的参数，包括：
          
          * *is_collective* -- 是否使用 paddle 集群式的分布式训练方法，目前仅支持为 ``True`` 的情况。
          * *role_maker* -- 初始化 ``fleet`` 分布式训练 API 时使用的 ``RoleMaker``。
          * 其它用于初始化 ``DataParallel`` 的参数。
      * *gradscaler_kwargs* -- 用于 ``fp16=True`` 时，提供给 :class:`paddle.amp.GradScaler` 的参数
  
  :kwargs:
      * *wo_auto_param_call* (``bool``) -- 是否关闭在训练时调用我们的 ``auto_param_call`` 函数来自动匹配 batch 和前向函数的参数的行为
  
      .. note::
  
          关于该参数的详细说明，请参见 :class:`~fastNLP.core.controllers.Trainer` 中的描述；函数 ``auto_param_call`` 详见 :func:`fastNLP.core.utils.auto_param_call`。
code: def global_rank(self, rank: int) -> None:
      self._global_rank = rank
  
imports: import os
  from typing import List, Union, Optional, Dict, Tuple, Callable
  from .paddle_driver import PaddleDriver
  from .fleet_launcher import FleetLauncher
  from .utils import _FleetWrappingModel, replace_sampler, replace_batch_sampler, _check_dataloader_args_for_distributed
  from .dist_utils import fastnlp_paddle_all_gather, fastnlp_paddle_broadcast_object
  from fastNLP.envs.imports import _NEED_IMPORT_PADDLE
  from fastNLP.core.utils import auto_param_call, check_user_specific_params, is_in_paddle_dist, get_paddle_device_id
  from fastNLP.core.utils.paddle_utils import _convert_data_device
  from fastNLP.envs.distributed import rank_zero_rm
  from fastNLP.core.samplers import ReproduceBatchSampler, ReproducibleSampler, ReproducibleBatchSampler, RandomSampler, UnrepeatedSampler, UnrepeatedSequentialSampler, re_instantiate_sampler, conversion_between_reproducible_and_unrepeated_sampler
  from fastNLP.envs.env import FASTNLP_DISTRIBUTED_CHECK, FASTNLP_GLOBAL_SEED, FASTNLP_NO_SYNC, USER_CUDA_VISIBLE_DEVICES
  from fastNLP.core.log import logger
label_desc: Use image node_id 11 for calling the PaddleFleetDriver obj's underlying member method code with example usage: obj.global_rank(rank) without return types