# Handler Kwargs

Objek-objek berikut dapat diteruskan ke [Accelerator](/docs/accelerate/main/id/package_reference/accelerator#accelerate.Accelerator) utama untuk menyesuaikan cara beberapa objek PyTorch yang terkait dengan pelatihan terdistribusi atau presisi campuran dibuat.

## AutocastKwargs[[accelerate.AutocastKwargs]]

#### accelerate.AutocastKwargs[[accelerate.AutocastKwargs]]

```python
accelerate.AutocastKwargs(enabled: bool = True, cache_enabled: bool | None = None)
```

[Sumber](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/dataclasses.py#L109)

Gunakan objek ini di [Accelerator](/docs/accelerate/main/id/package_reference/accelerator#accelerate.Accelerator) Anda untuk menyesuaikan perilaku `torch.autocast`. Silakan merujuk ke dokumentasi [context manager](https://pytorch.org/docs/stable/amp.html#torch.autocast) ini untuk informasi lebih lanjut tentang setiap argumen.

Contoh:

```python
from accelerate import Accelerator
from accelerate.utils import AutocastKwargs

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

## DistributedDataParallelKwargs[[accelerate.DistributedDataParallelKwargs]]

#### accelerate.DistributedDataParallelKwargs[[accelerate.DistributedDataParallelKwargs]]

```python
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>)
```

[Sumber](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/dataclasses.py#L151)

Gunakan objek ini di [Accelerator](/docs/accelerate/main/id/package_reference/accelerator#accelerate.Accelerator) Anda untuk menyesuaikan cara model Anda dibungkus dalam `torch.nn.parallel.DistributedDataParallel`. Silakan merujuk ke dokumentasi [wrapper](https://pytorch.org/docs/stable/generated/torch.nn.parallel.DistributedDataParallel.html) ini untuk informasi lebih lanjut tentang setiap argumen.

Contoh:

```python
from accelerate import Accelerator
from accelerate.utils import DistributedDataParallelKwargs

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

## ProfileKwargs[[accelerate.ProfileKwargs]]

#### accelerate.ProfileKwargs[[accelerate.ProfileKwargs]]

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

[Sumber](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/dataclasses.py#L421)

**Parameter:**

activities (`List[str]`, *opsional*, default ke `None`) : Daftar grup aktivitas yang akan digunakan dalam profiling. Harus salah satu dari `"cpu"`, `"xpu"`, `"mtia"`, "hpu" atau `"cuda"`.

schedule_option (`Dict[str, int]`, *opsional*, default ke `None`) : Opsi jadwal yang akan digunakan untuk profiler. Kunci yang tersedia adalah `wait`, `warmup`, `active`, `repeat` dan `skip_first`. Profiler akan melewati `skip_first` langkah pertama, kemudian menunggu selama `wait` langkah, kemudian melakukan warmup untuk `warmup` langkah berikutnya, kemudian melakukan perekaman aktif untuk `active` langkah berikutnya dan kemudian mengulang siklus dimulai dengan `wait` langkah. Jumlah siklus opsional ditentukan dengan parameter `repeat`, nilai nol berarti siklus akan terus berlanjut sampai profiling selesai.

on_trace_ready (`Callable`, *opsional*, default ke `None`) : Callable yang dipanggil pada setiap langkah ketika schedule mengembalikan `ProfilerAction.RECORD_AND_SAVE` selama profiling.

record_shapes (`bool`, *opsional*, default ke `False`) : Simpan informasi tentang bentuk input operator.

profile_memory (`bool`, *opsional*, default ke `False`) : Lacak alokasi/dealokasi memori tensor

with_stack (`bool`, *opsional*, default ke `False`) : Catat informasi sumber (file dan nomor baris) untuk ops.

with_flops (`bool`, *opsional*, default ke `False`) : Gunakan rumus untuk memperkirakan FLOPS dari operator tertentu

with_modules (`bool`, *opsional*, default ke `False`) : Merekam hierarki modul (termasuk nama fungsi) yang sesuai dengan callstack dari op.

output_trace_dir (`str`, *opsional*, default ke `None`) : Mengekspor trace yang dikumpulkan dalam format JSON Chrome. Chrome menggunakan 'chrome://tracing' untuk melihat file json. Defaultnya None, yang berarti profiling tidak menyimpan file json.

Gunakan objek ini di [Accelerator](/docs/accelerate/main/id/package_reference/accelerator#accelerate.Accelerator) Anda untuk menyesuaikan inisialisasi profiler. Silakan merujuk ke dokumentasi [context manager](https://pytorch.org/docs/stable/profiler.html#torch.profiler.profile) ini untuk informasi lebih lanjut tentang setiap argumen.

Contoh:

```python
from accelerate import Accelerator
from accelerate.utils import ProfileKwargs

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

#### build[[accelerate.ProfileKwargs.build]]

```python
build()
```

[Sumber](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/dataclasses.py#L503)

**Mengembalikan:** `torch.profiler.profile`

Objek profiler.

Bangun objek profiler dengan konfigurasi saat ini.

## GradScalerKwargs[[accelerate.GradScalerKwargs]]

#### accelerate.GradScalerKwargs[[accelerate.GradScalerKwargs]]

```python
accelerate.GradScalerKwargs(init_scale: float = 65536.0, growth_factor: float = 2.0, backoff_factor: float = 0.5, growth_interval: int = 2000, enabled: bool = True)
```

[Sumber](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/dataclasses.py#L229)

Gunakan objek ini di [Accelerator](/docs/accelerate/main/id/package_reference/accelerator#accelerate.Accelerator) Anda untuk menyesuaikan perilaku presisi campuran, khususnya bagaimana `torch.amp.GradScaler` atau `torch.cuda.amp.GradScaler` yang digunakan dibuat. Silakan merujuk ke dokumentasi [scaler](https://pytorch.org/docs/stable/amp.html?highlight=gradscaler) ini untuk informasi lebih lanjut tentang setiap argumen.

Contoh:

```python
from accelerate import Accelerator
from accelerate.utils import GradScalerKwargs

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

## InitProcessGroupKwargs[[accelerate.InitProcessGroupKwargs]]

#### accelerate.InitProcessGroupKwargs[[accelerate.InitProcessGroupKwargs]]

```python
accelerate.InitProcessGroupKwargs(backend: str | None = 'nccl', init_method: str | None = None, timeout: datetime.timedelta | None = None)
```

[Sumber](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/dataclasses.py#L254)

Gunakan objek ini di [Accelerator](/docs/accelerate/main/id/package_reference/accelerator#accelerate.Accelerator) Anda untuk menyesuaikan inisialisasi proses terdistribusi. Silakan merujuk ke dokumentasi [method](https://pytorch.org/docs/stable/distributed.html#torch.distributed.init_process_group) ini untuk informasi lebih lanjut tentang setiap argumen.

Catatan: Jika `timeout` diatur ke `None`, nilai default akan didasarkan pada pengaturan `backend`.

```python
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[[accelerate.utils.KwargsHandler]]

#### accelerate.utils.KwargsHandler[[accelerate.utils.KwargsHandler]]

```python
accelerate.utils.KwargsHandler()
```

[Sumber](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/dataclasses.py#L64)

Mixin internal yang mengimplementasikan metode `to_kwargs()` untuk dataclass.

#### to_kwargs[[accelerate.utils.KwargsHandler.to_kwargs]]

```python
to_kwargs()
```

[Sumber](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/dataclasses.py#L72)

Mengembalikan kamus yang berisi atribut dengan nilai yang berbeda dari nilai bawaan kelas ini.

