Skip to content

实用函数和类

以下是 🤗 Accelerate 提供的各种实用函数,按用途分类。

常量

在整个 🤗 Accelerate 中使用的常量,供参考

以下是在使用 [Accelerator.save_state] 时使用的常量

utils.MODEL_NAME: "pytorch_model"utils.OPTIMIZER_NAME: "optimizer"utils.RNG_STATE_NAME: "random_states"utils.SCALER_NAME: "scaler.pt"utils.SCHEDULER_NAME: "scheduler"

以下是在使用 [Accelerator.save_model] 时使用的常量

utils.WEIGHTS_NAME: "pytorch_model.bin"utils.SAFE_WEIGHTS_NAME: "model.safetensors"utils.WEIGHTS_INDEX_NAME: "pytorch_model.bin.index.json"utils.SAFE_WEIGHTS_INDEX_NAME: "model.safetensors.index.json"

数据类

这些是 🤗 Accelerate 中使用的基本数据类,可以作为参数传递。

独立

这些是用于检查的独立数据类,例如使用的分布式系统类型

[[autodoc]] utils.ComputeEnvironment

[[autodoc]] utils.DistributedType

[[autodoc]] utils.DynamoBackend

[[autodoc]] utils.LoggerType

[[autodoc]] utils.PrecisionType

[[autodoc]] utils.RNGType

[[autodoc]] utils.SageMakerDistributedType

关键字参数

这些是 PyTorch 生态系统中特定交互的可配置参数,Accelerate 在后台处理这些参数。

[[autodoc]] utils.AutocastKwargs

[[autodoc]] utils.DistributedDataParallelKwargs

[[autodoc]] utils.FP8RecipeKwargs

[[autodoc]] utils.GradScalerKwargs

[[autodoc]] utils.InitProcessGroupKwargs

[[autodoc]] utils.KwargsHandler

插件

这些是可以传递给 [Accelerator] 对象的插件。虽然它们在文档的其他部分有定义,但为了方便,这里可以查看所有插件:

[[autodoc]] utils.DeepSpeedPlugin

[[autodoc]] utils.FullyShardedDataParallelPlugin

[[autodoc]] utils.GradientAccumulationPlugin

[[autodoc]] utils.MegatronLMPlugin

[[autodoc]] utils.TorchDynamoPlugin

配置

这些是可以配置并传递给适当集成的类

[[autodoc]] utils.BnbQuantizationConfig

[[autodoc]] utils.DataLoaderConfiguration

[[autodoc]] utils.ProjectConfiguration

环境变量

这些是可以为不同用途启用的环境变量

  • ACCELERATE_DEBUG_MODE (str): 是否以调试模式运行 accelerate。更多信息请参阅 这里

数据操作和处理

这些包括模仿 torch 操作的数据操作,但可以在分布式进程中使用。

[[autodoc]] utils.broadcast

[[autodoc]] utils.broadcast_object_list

[[autodoc]] utils.concatenate

[[autodoc]] utils.convert_outputs_to_fp32

[[autodoc]] utils.convert_to_fp32

[[autodoc]] utils.gather

[[autodoc]] utils.gather_object

[[autodoc]] utils.get_grad_scaler

[[autodoc]] utils.get_mixed_precision_context_manager

[[autodoc]] utils.listify

[[autodoc]] utils.pad_across_processes

[[autodoc]] utils.recursively_apply

[[autodoc]] utils.reduce

[[autodoc]] utils.send_to_device

[[autodoc]] utils.slice_tensors

环境检查

这些功能检查当前工作环境的状态,包括操作系统本身的信息、它支持的功能以及是否安装了特定的依赖项。

[[autodoc]] utils.is_bf16_available

[[autodoc]] utils.is_ipex_available

[[autodoc]] utils.is_mps_available

[[autodoc]] utils.is_npu_available

[[autodoc]] utils.is_torch_version

[[autodoc]] utils.is_torch_xla_available

[[autodoc]] utils.is_xpu_available

环境操作

[[autodoc]] utils.patch_environment

[[autodoc]] utils.clear_environment

[[autodoc]] utils.write_basic_config

在首次设置 🤗 Accelerate 时,可以使用 [~utils.write_basic_config] 作为快速配置的替代方案,而不是运行 accelerate config

[[autodoc]] utils.set_numa_affinity

[[autodoc]] utils.environment.override_numa_affinity

内存

[[autodoc]] utils.find_executable_batch_size

建模

这些实用工具与 PyTorch 模型的交互有关

[[autodoc]] utils.calculate_maximum_sizes

[[autodoc]] utils.compute_module_sizes

[[autodoc]] utils.extract_model_from_parallel

[[autodoc]] utils.get_balanced_memory

[[autodoc]] utils.get_max_layer_size

[[autodoc]] utils.infer_auto_device_map

[[autodoc]] utils.load_checkpoint_in_model

[[autodoc]] utils.load_offloaded_weights

[[autodoc]] utils.load_state_dict

[[autodoc]] utils.offload_state_dict

[[autodoc]] utils.retie_parameters

[[autodoc]] utils.set_module_tensor_to_device

并行

这些包括在并行工作时应使用的通用实用工具。

[[autodoc]] utils.extract_model_from_parallel

[[autodoc]] utils.save

[[autodoc]] utils.load

[[autodoc]] utils.wait_for_everyone

随机

这些实用工具与设置和同步所有随机状态有关。

[[autodoc]] utils.set_seed

[[autodoc]] utils.synchronize_rng_state

[[autodoc]] utils.synchronize_rng_states

PyTorch XLA

这些实用工具在使用 PyTorch 与 XLA 时非常有用。

[[autodoc]] utils.install_xla

加载模型权重

这些实用工具在加载检查点时非常有用。

[[autodoc]] utils.load_checkpoint_in_model

量化

这些实用工具在量化模型时非常有用。

[[autodoc]] utils.load_and_quantize_model