实用函数和类
以下是 🤗 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