Accelerate 文件
Kwargs 處理器
並獲得增強的文件體驗
開始使用
Kwargs 處理器
以下物件可以傳遞給主 Accelerator,以自定義與分散式訓練或混合精度相關的 PyTorch 物件的建立方式。
AutocastKwargs
在您的 Accelerator 中使用此物件來自定義 torch.autocast
的行為。有關每個引數的更多資訊,請參閱此上下文管理器的文件。
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 及更高版本中可用。
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
) — 用於效能分析器的排程選項。可用的鍵有wait
、warmup
、active
、repeat
和skip_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])
使用當前配置構建一個性能分析器物件。
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.GradScaler
或 torch.cuda.amp.GradScaler
。有關每個引數的更多資訊,請參閱此scaler的文件。
`torch.cuda.amp.GradScaler` 僅在 PyTorch 1.5.0 及更高版本中可用,而 `torch.amp.GradScaler` 僅在 PyTorch 2.4.0及更高版本中可用。
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` 的設定。
KwargsHandler
為資料類實現 `to_kwargs()` 方法的內部混合類。
返回一個字典,其中包含值與該類預設值不同的屬性。