Accelerate 文件

Kwargs 處理器

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

Kwargs 處理器

以下物件可以傳遞給主 Accelerator,以自定義與分散式訓練或混合精度相關的 PyTorch 物件的建立方式。

AutocastKwargs

class accelerate.AutocastKwargs

< >

( enabled: bool = True cache_enabled: bool = None )

在您的 Accelerator 中使用此物件來自定義 torch.autocast 的行為。有關每個引數的更多資訊,請參閱此上下文管理器的文件。

示例

from accelerate import Accelerator
from accelerate.utils import AutocastKwargs

kwargs = AutocastKwargs(cache_enabled=True)
accelerator = Accelerator(kwargs_handlers=[kwargs])

DistributedDataParallelKwargs

class accelerate.DistributedDataParallelKwargs

< >

( dim: int = 0 broadcast_buffers: bool = True bucket_cap_mb: int = 25 find_unused_parameters: bool = False check_reduction: bool = False gradient_as_bucket_view: bool = False static_graph: bool = False comm_hook: DDPCommunicationHookType = <DDPCommunicationHookType.NO: 'no'> comm_wrapper: typing.Literal[<DDPCommunicationHookType.NO: 'no'>, <DDPCommunicationHookType.FP16: 'fp16'>, <DDPCommunicationHookType.BF16: 'bf16'>] = <DDPCommunicationHookType.NO: 'no'> comm_state_option: dict = <factory> )

在您的 Accelerator 中使用此物件,以自定義如何將您的模型包裝在 `torch.nn.parallel.DistributedDataParallel` 中。有關每個引數的更多資訊,請參閱此包裝器的文件。

`gradient_as_bucket_view` 僅在 PyTorch 1.7.0及更高版本中可用。

`static_graph` 僅在 PyTorch 1.11.0 及更高版本中可用。

示例

from accelerate import Accelerator
from accelerate.utils import DistributedDataParallelKwargs

kwargs = DistributedDataParallelKwargs(find_unused_parameters=True)
accelerator = Accelerator(kwargs_handlers=[kwargs])

FP8RecipeKwargs

class accelerate.utils.FP8RecipeKwargs

< >

( opt_level: typing.Literal['O1', 'O2'] = None use_autocast_during_eval: bool = None margin: int = None interval: int = None fp8_format: typing.Literal['HYBRID', 'E4M3', 'E5M2'] = None amax_history_len: int = None amax_compute_algo: typing.Literal['max', 'most_recent'] = None override_linear_precision: tuple = None backend: typing.Literal['MSAMP', 'TE'] = None )

已棄用。請改用適當的 FP8 配方 kwargs 類,例如 `TERecipeKwargs` 或 `MSAMPRecipeKwargs`。

ProfileKwargs

class accelerate.ProfileKwargs

< >

( activities: typing.Optional[list[typing.Literal['cpu', 'xpu', 'mtia', 'cuda', 'hpu']]] = None schedule_option: typing.Optional[dict[str, int]] = None on_trace_ready: typing.Optional[typing.Callable] = None record_shapes: bool = False profile_memory: bool = False with_stack: bool = False with_flops: bool = False with_modules: bool = False output_trace_dir: typing.Optional[str] = None )

引數

  • activities (List[str], 可選, 預設為 None) — 在效能分析中使用的活動組列表。必須是 "cpu""xpu""mtia""hpu""cuda" 之一。
  • schedule_option (Dict[str, int], 可選, 預設為 None) — 用於效能分析器的排程選項。可用的鍵有 waitwarmupactiverepeatskip_first。效能分析器將跳過前 skip_first 個步驟,然後等待 wait 個步驟,接著為接下來的 warmup 個步驟進行預熱,然後為接下來的 active 個步驟進行活動記錄,最後從 wait 步驟開始重複這個週期。可選的週期數由 repeat 引數指定,值為零表示週期將持續到效能分析結束。
  • on_trace_ready (Callable, 可選, 預設為 None) — 在效能分析期間,當排程返回 ProfilerAction.RECORD_AND_SAVE 時,每一步都會呼叫的可呼叫物件。
  • record_shapes (bool, 可選, 預設為 False) — 儲存有關運算子輸入形狀的資訊。
  • profile_memory (bool, 可選, 預設為 False) — 跟蹤張量記憶體分配/釋放
  • with_stack (bool, 可選, 預設為 False) — 記錄操作的源資訊(檔案和行號)。
  • with_flops (bool, 可選, 預設為 False) — 使用公式估算特定運算子的 FLOPS
  • with_modules (bool, 可選, 預設為 False) — 記錄與操作呼叫棧對應的模組層次結構(包括函式名)。
  • output_trace_dir (str, 可選, 預設為 None) — 以 Chrome JSON 格式匯出收集的跟蹤資料。Chrome 使用 'chrome://tracing' 檢視檢視 json 檔案。預設為 None,表示效能分析不儲存 json 檔案。

在您的 Accelerator 中使用此物件來自定義效能分析器的初始化。有關每個引數的更多資訊,請參閱此上下文管理器的文件。

`torch.profiler` 僅在 PyTorch 1.8.1及更高版本中可用。

示例

from accelerate import Accelerator
from accelerate.utils import ProfileKwargs

kwargs = ProfileKwargs(activities=["cpu", "cuda"])
accelerator = Accelerator(kwargs_handlers=[kwargs])

build

< >

( ) torch.profiler.profile

返回

返回型別:torch.profiler.profile

效能分析器物件。

使用當前配置構建一個性能分析器物件。

GradScalerKwargs

class accelerate.GradScalerKwargs

< >

( init_scale: float = 65536.0 growth_factor: float = 2.0 backoff_factor: float = 0.5 growth_interval: int = 2000 enabled: bool = True )

在您的 Accelerator 中使用此物件來自定義混合精度的行為,特別是如何建立所使用的 torch.amp.GradScalertorch.cuda.amp.GradScaler。有關每個引數的更多資訊,請參閱此scaler的文件。

`torch.cuda.amp.GradScaler` 僅在 PyTorch 1.5.0 及更高版本中可用,而 `torch.amp.GradScaler` 僅在 PyTorch 2.4.0及更高版本中可用。

示例

from accelerate import Accelerator
from accelerate.utils import GradScalerKwargs

kwargs = GradScalerKwargs(backoff_factor=0.25)
accelerator = Accelerator(kwargs_handlers=[kwargs])

InitProcessGroupKwargs

class accelerate.InitProcessGroupKwargs

< >

( backend: typing.Optional[str] = 'nccl' init_method: typing.Optional[str] = None timeout: typing.Optional[datetime.timedelta] = None )

在您的 Accelerator 中使用此物件來自定義分散式程序的初始化。有關每個引數的更多資訊,請參閱此方法的文件。

注意:如果 `timeout` 設定為 `None`,則預設值將基於 `backend` 的設定。

from datetime import timedelta
from accelerate import Accelerator
from accelerate.utils import InitProcessGroupKwargs

kwargs = InitProcessGroupKwargs(timeout=timedelta(seconds=800))
accelerator = Accelerator(kwargs_handlers=[kwargs])

KwargsHandler

class accelerate.utils.KwargsHandler

< >

( )

為資料類實現 `to_kwargs()` 方法的內部混合類。

to_kwargs

< >

( )

返回一個字典,其中包含值與該類預設值不同的屬性。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.