# Model

[PeftModel](/docs/peft/main/id/package_reference/peft_model#peft.PeftModel) adalah kelas model dasar untuk menentukan model Transformer dasar dan konfigurasinya agar metode PEFT dapat diterapkan. `PeftModel` dasar berisi metode untuk memuat dan menyimpan model dari Hub.

## PeftModel[[peft.PeftModel]]

#### peft.PeftModel[[peft.PeftModel]]

```python
peft.PeftModel(model: torch.nn.Module, peft_config: PeftConfig, adapter_name: str = 'default', autocast_adapter_dtype: bool = True, low_cpu_mem_usage: bool = False)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L140)

**Parameter:**

model (`torch.nn.Module`) : Model dasar yang akan diadaptasi, biasanya model Transformers.

peft_config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig)) : Konfigurasi dari model Peft.

adapter_name (`str`,  *opsional*) : Nama adapter, secara default `"default"`.

autocast_adapter_dtype (`bool`, *opsional*, defaultnya `True`) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 dan bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi beberapa tuner PEFT tertentu. Jika diatur ke `False`, dtype akan tetap sama dengan dtype dari layer yang sesuai.

low_cpu_mem_usage (`bool`, `optional`, defaultnya `False`) : Membuat bobot adapter kosong pada perangkat meta. Berguna untuk mempercepat proses pemuatan. > [!TIP] > Jangan gunakan `low_cpu_mem_usage=True` saat membuat adapter PEFT baru untuk pelatihan.

Model dasar yang mencakup berbagai metode Peft.

**Atribut**:
- **base_model** (`torch.nn.Module`) -- Model transformer dasar yang digunakan untuk Peft.
- **peft_config** ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig)) -- Konfigurasi dari model Peft.
- **modules_to_save** (`list` dari `str`) -- Daftar nama sub-modul yang akan disimpan saat menyimpan model.
- **prompt_encoder** ([PromptEncoder](/docs/peft/main/id/package_reference/p_tuning#peft.PromptEncoder)) -- Prompt encoder yang digunakan untuk Peft jika menggunakan [PromptLearningConfig](/docs/peft/main/id/package_reference/config#peft.PromptLearningConfig).
- **prompt_tokens** (`torch.Tensor`) -- Token prompt virtual yang digunakan untuk Peft jika menggunakan [PromptLearningConfig](/docs/peft/main/id/package_reference/config#peft.PromptLearningConfig).
- **transformer_backbone_name** (`str`) -- Nama transformer backbone pada model dasar jika menggunakan [PromptLearningConfig](/docs/peft/main/id/package_reference/config#peft.PromptLearningConfig).
- **word_embeddings** (`torch.nn.Embedding`) -- Embedding kata dari backbone transformer pada model dasar jika menggunakan [PromptLearningConfig](/docs/peft/main/id/package_reference/config#peft.PromptLearningConfig).

#### add_adapter[[peft.PeftModel.add_adapter]]

```python
add_adapter(adapter_name: str, peft_config: PeftConfig, low_cpu_mem_usage: bool = False, autocast_adapter_dtype: bool = True)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1110)

**Parameter:**

adapter_name (`str`) : Nama adapter yang akan ditambahkan.

peft_config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig)) : Konfigurasi adapter yang akan ditambahkan.

low_cpu_mem_usage (`bool`, `optional`, defaultnya `False`) : Membuat bobot adapter kosong pada meta device. Berguna untuk mempercepat proses saat memuat adapter yang disimpan. Jangan gunakan opsi ini saat membuat adapter PEFT baru untuk pelatihan.

autocast_adapter_dtype (`bool`, *opsional*, defaultnya `True`) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 dan bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi beberapa tuner PEFT tertentu. Jika diatur ke `False`, dtype akan tetap sama dengan dtype dari layer yang sesuai.

Tambahkan adapter ke model berdasarkan konfigurasi yang diteruskan.

Adapter ini tidak dilatih. Untuk memuat adapter yang telah dilatih, lihat [PeftModel.load_adapter()](/docs/peft/main/id/package_reference/peft_model#peft.PeftModel.load_adapter).

Nama untuk adapter baru harus unik.

Adapter baru tidak secara otomatis diset sebagai adapter aktif. Gunakan [PeftModel.set_adapter()](/docs/peft/main/id/package_reference/peft_model#peft.PeftModel.set_adapter) untuk mengatur adapter aktif.

#### create_or_update_model_card[[peft.PeftModel.create_or_update_model_card]]

```python
create_or_update_model_card(output_dir: str)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1881)

Perbarui atau buat kartu model untuk menyertakan informasi tentang peft:
1. Menambahkan tag pustaka `peft`
2. Menambahkan versi peft
3. Menambahkan informasi model dasar
4. Menambahkan informasi kuantisasi jika digunakan

#### delete_adapter[[peft.PeftModel.delete_adapter]]

```python
delete_adapter(adapter_name: str)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1191)

**Parameter:**

adapter_name (str) : Nama adapter yang akan dihapus.

Menghapus adapter yang sudah ada.

#### disable_adapter[[peft.PeftModel.disable_adapter]]

```python
disable_adapter()
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1045)

Manajer konteks yang menonaktifkan modul adapter. Gunakan ini untuk menjalankan inferensi pada model dasar.

Contoh:

```py
>>> with model.disable_adapter():
...     model(inputs)
```

#### forward[[peft.PeftModel.forward]]

```python
forward(*args: Any, **kwargs: Any)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1024)

Forward pass dari model.

#### from_pretrained[[peft.PeftModel.from_pretrained]]

```python
from_pretrained(model: torch.nn.Module, model_id: Union[str, os.PathLike], adapter_name: str = 'default', is_trainable: bool = False, config: Optional[PeftConfig] = None, autocast_adapter_dtype: bool = True, ephemeral_gpu_offload: bool = False, low_cpu_mem_usage: bool = False, key_mapping: Optional[dict[str, str]] = None, **kwargs: Any)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L438)

**Parameter:**

model (`torch.nn.Module`) : Model yang akan diadaptasi. Untuk model 🤗 Transformers, model harus diinisialisasi dengan [from_pretrained](https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel.from_pretrained).

model_id (`str` atau `os.PathLike`) : Nama konfigurasi PEFT yang akan digunakan. Bisa berupa: - String, yaitu `model id` dari konfigurasi PEFT yang dihosting di dalam repo model di Hugging Face Hub. - Path ke direktori yang berisi file konfigurasi PEFT yang disimpan menggunakan metode `save_pretrained` (`./my_peft_config_directory/`).

adapter_name (`str`, *opsional*, defaultnya `"default"`) : Nama adapter yang akan dimuat. Ini berguna untuk memuat beberapa adapter.

is_trainable (`bool`, *opsional*, defaultnya `False`) : Apakah adapter harus dapat dilatih atau tidak. Jika `False`, adapter akan dibekukan dan hanya dapat digunakan untuk inferensi.

config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig), *opsional*) : Objek konfigurasi yang akan digunakan sebagai pengganti konfigurasi yang dimuat secara otomatis. Objek konfigurasi ini bersifat eksklusif dengan `model_id` dan `kwargs`. Hal ini berguna ketika konfigurasi sudah dimuat sebelum memanggil `from_pretrained`.

autocast_adapter_dtype (`bool`, *opsional*, defaultnya `True`) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 dan bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi beberapa tuner PEFT tertentu. Jika diatur ke `False`, dtype akan tetap sama dengan dtype dari layer yang sesuai.

ephemeral_gpu_offload (`bool`, *opsional*) : Apakah akan menggunakan offloading GPU sementara untuk modul yang dimuat sebagian. Nilai defaultnya adalah `False`. Ini berguna ketika sebagian model dan/atau komponen (seperti adapter) disimpan di memori CPU hingga dibutuhkan. Alih-alih melakukan operasi yang mahal pada data kecil, data dipindahkan ke GPU sesuai kebutuhan, operasi dilakukan, dan hasilnya dipindahkan kembali ke memori CPU. Hal ini menimbulkan overhead VRAM sesaat yang sedikit, tetapi memberikan peningkatan kecepatan berorde magnitudo dalam kasus tertentu.

low_cpu_mem_usage (`bool`, `optional`, defaultnya `False`) : Membuat bobot adapter kosong pada perangkat meta sebelum memuat bobot yang disimpan. Berguna untuk mempercepat proses.

key_mapping (dict, *opsional*, default None) : Pemetaan tambahan untuk kunci `state_dict` PEFT yang diterapkan sebelum memuat `state_dict`. Ketika pemetaan ini diterapkan, awalan `"base_model.model"` yang spesifik untuk PEFT dihapus terlebih dahulu dan nama adapter (misalnya `"default"`) belum disisipkan. Hanya berikan argumen ini jika Anda tahu apa yang Anda lakukan.

kwargs : (`optional`): Argumen kata kunci tambahan yang diteruskan ke kelas konfigurasi PEFT tertentu. Ini mencakup `torch_device` (`str`, *optional*): perangkat untuk memuat adapter (diteruskan ke `load_adapter`[PeftModel.load_adapter]); jika `None`, perangkat akan disimpulkan.

Instansiasi model PEFT dari model pretrained dan bobot PEFT yang dimuat.

Perhatikan bahwa `model` yang diteruskan dapat dimodifikasi secara inplace.

#### get_base_model[[peft.PeftModel.get_base_model]]

```python
get_base_model()
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1104)

Mengembalikan model dasar.

#### get_layer_status[[peft.PeftModel.get_layer_status]]

```python
get_layer_status()
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1245)

**Mengembalikan:** list`peft.peft_model.TunerLayerStatus`

Daftar dataclasses, masing-masing berisi status dari lapisan adapter yang sesuai.

Dapatkan status setiap lapisan adapter dalam model.

Metode ini mengembalikan daftar instance dataclass `TunerLayerStatus`, di mana masing-masing berisi atribut berikut:

- `name` (`str`): Nama dari lapisan adapter, misalnya `model.encoder.block.0.layer.0.SelfAttention.q`.
- `module_type` (`str`): Jenis lapisan adapter, misalnya `lora.Linear`.
- `enabled` (`bool`): Apakah lapisan adapter diaktifkan.
- `active_adapters` (`list[str]`): Nama-nama adapter yang aktif, jika ada, misalnya `["default"]`.
- `merged_adapters` (`list[str]`): Nama-nama adapter yang telah digabungkan, jika ada, misalnya `["default"]`.
- `available_adapters` (`list[str]`): Nama-nama adapter yang tersedia, misalnya `["default"]`.
- `quantization_backend` (`str` atau `None`): Nama dari backend kuantisasi, misalnya `"bnb 4bit"`, atau `None` jika tidak dikuantisasi.

#### get_model_status[[peft.PeftModel.get_model_status]]

```python
get_model_status()
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1273)

**Mengembalikan:** `peft.peft_model.TunerModelStatus`

Dataclass yang berisi status model.

Dapatkan status tuner dari model.

Metode ini mengembalikan instance dataclass `TunerModelStatus`, yang berisi atribut-atribut berikut:

- `base_model_type` (`str`): Jenis model dasar, misalnya `T5Model`.
- `adapter_model_type` (`str`): Jenis model adapter, misalnya `LoraModel`.
- `peft_types` (`dict[str, str]`): Pemetaan dari nama adapter ke tipe adapter, misalnya `{"default": "LORA"}`.
- `trainable_params` (`int`): Jumlah parameter yang dapat dilatih dalam model.
- `total_params` (`int`): Jumlah total parameter dalam model.
- `num_adapter_layers` (`int`): Jumlah lapisan adapter dalam model.
- `enabled` (`bool`, `Literal["irregular"]`): Apakah semua lapisan adapter diaktifkan. Jika sebagian diaktifkan dan sebagian tidak, nilai ini akan menjadi `"irregular"`. Ini berarti model Anda berada dalam keadaan tidak konsisten dan mungkin tidak berfungsi sesuai harapan.
- `active_adapters` (`list[str]`, `Literal["irregular"]`): Nama-nama adapter yang aktif. Jika adapter yang aktif tidak konsisten di semua lapisan, nilai ini akan menjadi `"irregular"`, yang berarti model Anda berada dalam keadaan tidak konsisten dan mungkin tidak berfungsi sesuai harapan.
- `merged_adapters` (`list[str]`, `Literal["irregular"]`): Nama-nama adapter yang digabungkan. Jika adapter yang digabungkan tidak konsisten di semua lapisan, nilai ini akan menjadi `"irregular"`, yang berarti model Anda berada dalam keadaan tidak konsisten dan mungkin tidak berfungsi sesuai harapan.
- `available_adapters` (`list[str]`): Nama-nama adapter yang tersedia, misalnya `["default"]`.
- `quantization_backend` (`str`, `None`, `Literal["irregular"]`): Nama dari backend kuantisasi, misalnya `"bnb 4bit"`, atau `None` jika tidak dikuantisasi. Jika backend tidak konsisten di semua lapisan, nilai ini akan menjadi `"irregular"`.

#### get_nb_trainable_parameters[[peft.PeftModel.get_nb_trainable_parameters]]

```python
get_nb_trainable_parameters()
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L955)

Mengembalikan jumlah parameter yang dapat dilatih dan jumlah seluruh parameter dalam model.

#### get_prompt[[peft.PeftModel.get_prompt]]

```python
get_prompt(batch_size: int, task_ids: Optional[torch.Tensor] = None, max_cache_len: Optional[int] = None)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L788)

Mengembalikan virtual prompt yang akan digunakan untuk Peft. Hanya berlaku saat menggunakan metode pembelajaran prompt.

#### get_prompt_embedding_to_save[[peft.PeftModel.get_prompt_embedding_to_save]]

```python
get_prompt_embedding_to_save(adapter_name: str)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L767)

Mengembalikan embedding prompt untuk disimpan saat menyimpan model. Hanya berlaku saat menggunakan metode pembelajaran prompt.

#### healthcheck[[peft.PeftModel.healthcheck]]

```python
healthcheck(min_trainable_params: int = 1, max_trainable_params_percent = 50)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1312)

**Parameter:**

min_trainable_params (`int`, *opsional*, default=`1`) : Jumlah parameter minimum yang diharapkan. Jika yang ditemukan kurang dari itu, hal ini dilaporkan sebagai kesalahan.

max_trainable_params_percent (`int`, *opsional*, default=`50`) : Persentase maksimum parameter yang harus dapat dilatih. Jika ditemukan lebih dari itu, hal ini dilaporkan sebagai peringatan.

**Mengembalikan:**

result Dictionary yang berisi temuan-temuan yang berbeda. Dictionary yang dikembalikan dapat diserialisasi ke JSON.

Periksa model ini untuk status adapter yang mencurigakan sebelum pelatihan.

Fungsi ini merangkum API status model dan layer, serta mencakup temuan untuk status adapter yang tidak konsisten, adapter yang telah digabungkan, dan jumlah parameter yang dapat dilatih yang tidak masuk akal. Fungsi ini tidak memvalidasi loop pelatihan, optimizer, atau dataset. Status akan dilaporkan sebagai `"irregular"` jika ditemukan inkonsistensi pada model, misalnya ketika untuk adapter yang sama, beberapa layer diaktifkan dan beberapa layer dinonaktifkan. Hal ini hampir selalu berarti bahwa ada sesuatu yang salah dan Anda harus memeriksa bahwa Anda tidak secara tidak sengaja mengubah beberapa atribut pada model dengan cara yang salah.

Jika pemeriksaan menemukan sesuatu yang mencurigakan, hal tersebut akan dilaporkan di bidang `"findings"`. Daftar `"findings""` yang kosong berarti tidak ada status adapter yang mencurigakan yang terdeteksi, bukan berarti jalannya pelatihan dijamin akan berhasil.

#### load_adapter[[peft.PeftModel.load_adapter]]

```python
load_adapter(model_id: Union[str, os.PathLike], adapter_name: str, is_trainable: bool = False, torch_device: Optional[str] = None, autocast_adapter_dtype: bool = True, ephemeral_gpu_offload: bool = False, low_cpu_mem_usage: bool = False, key_mapping: Optional[dict[str, str]] = None, **kwargs: Any)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1516)

**Parameter:**

model_id (`str` atau `os.PathLike`) : Nama konfigurasi PEFT yang akan digunakan. Bisa berupa: - String, yaitu `model id` dari konfigurasi PEFT yang dihosting di dalam repo model di Hugging Face Hub. - Path ke direktori yang berisi file konfigurasi PEFT yang disimpan menggunakan metode `save_pretrained` (`./my_peft_config_directory/`).

adapter_name (`str`) : Nama adapter yang akan ditambahkan.

is_trainable (`bool`, *opsional*, defaultnya `False`) : Apakah adapter harus dapat dilatih atau tidak. Jika `False`, adapter akan dibekukan dan hanya dapat digunakan untuk inferensi.

torch_device (`str`, *opsional*, defaultnya None) : Perangkat untuk memuat adapter. Jika `None`, perangkat akan disimpulkan.

autocast_adapter_dtype (`bool`, *opsional*, defaultnya `True`) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 dan bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi beberapa tuner PEFT tertentu. Jika diatur ke `False`, dtype akan tetap sama dengan dtype dari layer yang sesuai.

ephemeral_gpu_offload (`bool`, *opsional*, defaultnya `False`) : Apakah akan menggunakan ephemeral GPU offloading untuk modul yang dimuat sebagian. Defaultnya `False`.

low_cpu_mem_usage (`bool`, `optional`, defaultnya `False`) : Membuat bobot adapter kosong pada perangkat meta sebelum memuat bobot yang disimpan. Berguna untuk mempercepat proses.

key_mapping (dict, *opsional*, default None) : Pemetaan tambahan untuk kunci `state_dict` PEFT yang diterapkan sebelum memuat `state_dict`. Ketika pemetaan ini diterapkan, awalan `"base_model.model"` yang spesifik untuk PEFT dihapus terlebih dahulu dan nama adapter (misalnya `"default"`) belum disisipkan. Hanya berikan argumen ini jika Anda tahu apa yang Anda lakukan.

kwargs : (`optional`): Argumen tambahan untuk memodifikasi cara adapter dimuat, misalnya token untuk Hugging Face Hub.

Muat adapter yang telah dilatih ke dalam model.

Nama untuk adapter baru harus unik.

Adapter baru tidak secara otomatis diset sebagai adapter aktif. Gunakan [PeftModel.set_adapter()](/docs/peft/main/id/package_reference/peft_model#peft.PeftModel.set_adapter) untuk mengatur adapter aktif.

#### prepare_model_for_gradient_checkpointing[[peft.PeftModel.prepare_model_for_gradient_checkpointing]]

```python
prepare_model_for_gradient_checkpointing(model: PreTrainedModel)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L745)

Menyiapkan model untuk gradient checkpointing jika diperlukan

#### print_healthcheck[[peft.PeftModel.print_healthcheck]]

```python
print_healthcheck(sink = <built-in function print>, min_trainable_params: int = 1, max_trainable_params_percent = 50, **kwargs)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1342)

**Parameter:**

sink (`callable`, *opsional*, default=`print`) : Fungsi yang dipanggil untuk mencetak output. Secara default, hanya fungsi bawaan `print`, tetapi juga bisa berupa hal lain seperti `logger.info`.

min_trainable_params (`int`, *opsional*, default=`1`) : Jumlah parameter minimum yang diharapkan. Jika yang ditemukan kurang dari itu, hal ini dilaporkan sebagai kesalahan.

max_trainable_params_percent (`int`, *opsional*, default=`50`) : Persentase maksimum parameter yang harus dapat dilatih. Jika ditemukan lebih dari itu, hal ini dilaporkan sebagai peringatan.

kwargs : Argumen kata kunci tambahan diteruskan ke `format_healthcheck`.

Cetak laporan pemeriksaan kesehatan yang ringkas dan mudah dibaca manusia.

Output merangkum status model PEFT Anda dan mencakup temuan untuk status adapter yang tidak konsisten, adapter yang digabungkan, dan jumlah parameter yang dapat dilatih yang tidak masuk akal. Output ini tidak memvalidasi loop pelatihan, optimizer, atau dataset. Status akan dilaporkan sebagai `"irregular"` jika ditemukan inkonsistensi pada model, misalnya ketika untuk adapter yang sama, beberapa layer diaktifkan dan beberapa layer dinonaktifkan. Hal ini hampir selalu berarti bahwa ada sesuatu yang salah dan Anda harus memeriksa bahwa Anda tidak secara tidak sengaja mengubah beberapa atribut pada model dengan cara yang salah.

Jika masalah terdeteksi, masalah tersebut akan ditampilkan di bagian terakhir di bawah "findings". Jika tidak ada masalah yang terdeteksi, hal itu tidak berarti bahwa proses pelatihan dijamin akan berhasil.

#### print_trainable_parameters[[peft.PeftModel.print_trainable_parameters]]

```python
print_trainable_parameters()
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L985)

Menampilkan jumlah parameter yang dapat dilatih dalam model.

Catatan: print_trainable_parameters() menggunakan get_nb_trainable_parameters() yang berbeda dari num_parameters(only_trainable=True) dari huggingface/transformers. get_nb_trainable_parameters() mengembalikan (parameter yang dapat dilatih, semua parameter) dari Model Peft yang mencakup model transformer backbone yang dimodifikasi. Untuk teknik seperti LoRA, model transformer backbone dimodifikasi di tempatnya dengan modul LoRA. Namun, untuk prompt tuning, model transformer backbone tidak dimodifikasi. num_parameters(only_trainable=True) mengembalikan jumlah parameter yang dapat dilatih dari model transformer backbone yang dapat berbeda.

#### save_pretrained[[peft.PeftModel.save_pretrained]]

```python
save_pretrained(save_directory: str, safe_serialization: bool = True, selected_adapters: Optional[list[str]] = None, save_embedding_layers: Union[str, bool] = 'auto', is_main_process: bool = True, path_initial_model_for_weight_conversion: Optional[str] = None, **kwargs: Any)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L258)

**Parameter:**

save_directory (`str`) : Direktori tempat model adapter dan file konfigurasi akan disimpan (akan dibuat jika tidak ada).

safe_serialization (`bool`, *opsional*) : Apakah menyimpan file adapter dalam format safetensors, defaultnya `True`.

selected_adapters (`List[str]`,  *opsional*) : Daftar adapter yang akan disimpan. Jika `None`, akan secara default menggunakan semua adapter.

save_embedding_layers (`Union[bool, str]`, *opsional*, defaultnya `"auto"`) : Jika `True`, simpan lapisan embedding di samping bobot adapter. Jika `auto`, periksa lapisan embedding umum `peft.utils.other.EMBEDDING_LAYER_NAMES` di `target_modules` config jika tersedia, dan secara otomatis mengatur flag boolean. Ini hanya berfungsi untuk model 🤗 transformers.

is_main_process (`bool`, *opsional*) : Apakah proses yang memanggil ini adalah proses utama atau tidak. Secara default akan menjadi `True`. Checkpoint tidak akan disimpan jika tidak berada di proses utama, yang penting untuk setup multi perangkat (misalnya DDP).

path_initial_model_for_weight_conversion (`str`, *opsional*) : Path ke adapter yang diinisialisasi, yang diperoleh setelah menginisialisasi model dengan PiSSA/CorDA/OLoRA dan sebelum melakukan pelatihan apa pun. Ketika `path_initial_model_for_weight_conversion` bukan None, perbedaan adapter sebelum dan sesudah fine-tuning dihitung. Perbedaan ini dapat direpresentasikan sebagai parameter dari adapter LoRA standar. Berbeda dengan PiSSA dan sejenisnya, penggunaan adapter yang dikonversi ini tidak memerlukan perubahan pada model dasar, sehingga dengan nyaman memungkinkan penggunaan beberapa adapter PiSSA/CorDA/OLoRA bersama adapter LoRA, serta aktivasi atau deaktivasi adapter mana pun. Perhatikan bahwa konversi ini tidak didukung jika `rslora` digunakan dalam kombinasi dengan `rank_pattern` atau `alpha_pattern`. Lihat [peft.tuners.lora.LoraModel.subtract_mutated_init()](/docs/peft/main/id/package_reference/lora#peft.LoraModel.subtract_mutated_init) untuk informasi lebih lanjut.

kwargs (argumen kata kunci tambahan, *opsional*) : Argumen kata kunci tambahan yang diteruskan ke metode `push_to_hub`.

Fungsi ini menyimpan model adapter dan file konfigurasi adapter ke sebuah direktori, sehingga dapat dimuat ulang menggunakan metode kelas [PeftModel.from_pretrained()](/docs/peft/main/id/package_reference/peft_model#peft.PeftModel.from_pretrained), dan juga digunakan oleh metode `PeftModel.push_to_hub()`.

#### set_adapter[[peft.PeftModel.set_adapter]]

```python
set_adapter(adapter_name: str, inference_mode: bool = False)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1706)

**Parameter:**

adapter_name (`str`) : Nama adapter yang akan diset sebagai aktif. Adapter harus dimuat terlebih dahulu.

inference_mode (`bool`, opsional) : Apakah adapter yang diaktifkan harus dibekukan (yaitu `requires_grad=False`). Default adalah False.

Menetapkan adapter yang aktif.

Hanya satu adapter yang dapat aktif pada satu waktu karena tidak semua metode PEFT mendukung beberapa adapter aktif. Untuk mengaktifkan beberapa adapter pada metode yang didukung, gunakan `model.base_model.set_adapter(adapter_names)`.

Selain itu, fungsi ini akan mengatur adapter yang ditentukan agar dapat dilatih (yaitu, requires_grad=True) kecuali inference_mode bernilai True.

#### set_requires_grad[[peft.PeftModel.set_requires_grad]]

```python
set_requires_grad(adapter_names: str | Sequence[str], requires_grad: bool = True)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1752)

**Parameter:**

adapter_names (`str` atau `Sequence[str]`) : Nama adapter yang gradiennya harus diaktifkan/dinonaktifkan.

requires_grad (`bool`, *opsional*) : Apakah akan mengaktifkan (`True`, default) atau menonaktifkan (`False`).

Aktifkan atau nonaktifkan gradien pada adapter yang diberikan.

Catatan: Tidak didukung untuk metode pembelajaran prompt seperti prompt tuning.

#### supports_lora_conversion[[peft.PeftModel.supports_lora_conversion]]

```python
supports_lora_conversion(adapter_name: str = 'default')
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1946)

Apakah adapter dari model ini dapat dikonversi ke LoRA.

Biasanya, ini berfungsi jika metode PEFT bersifat aditif, yaitu W' = W_base + delta_weight.

## PeftModelForSequenceClassification[[peft.PeftModelForSequenceClassification]]

`PeftModel` untuk tugas klasifikasi urutan.

#### peft.PeftModelForSequenceClassification[[peft.PeftModelForSequenceClassification]]

```python
peft.PeftModelForSequenceClassification(model: torch.nn.Module, peft_config: PeftConfig, adapter_name: str = 'default', **kwargs)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L1962)

**Parameter:**

model ([PreTrainedModel](https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel)) : Model transformer dasar.

peft_config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig)) : Konfigurasi Peft.

adapter_name (`str`,  *opsional*) : Nama adapter, secara default `"default"`.

autocast_adapter_dtype (`bool`, *opsional*, defaultnya `True`) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 dan bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi beberapa tuner PEFT tertentu. Jika diatur ke `False`, dtype akan tetap sama dengan dtype dari layer yang sesuai.

Model Peft untuk tugas klasifikasi urutan.

**Atribut**:
- **config** (`PretrainedConfig`) -- Objek konfigurasi dari model dasar.
- **cls_layer_name** (`str`) -- Nama dari lapisan klasifikasi.

Contoh:

```py
>>> from transformers import AutoModelForSequenceClassification
>>> from peft import PeftModelForSequenceClassification, get_peft_config

>>> config = {
...     "peft_type": "PREFIX_TUNING",
...     "task_type": "SEQ_CLS",
...     "inference_mode": False,
...     "num_virtual_tokens": 20,
...     "token_dim": 768,
...     "num_transformer_submodules": 1,
...     "num_attention_heads": 12,
...     "num_layers": 12,
...     "encoder_hidden_size": 768,
...     "prefix_projection": False,
... }

>>> peft_config = get_peft_config(config)
>>> model = AutoModelForSequenceClassification.from_pretrained("bert-base-cased")
>>> peft_model = PeftModelForSequenceClassification(model, peft_config)
>>> peft_model.print_trainable_parameters()
trainable params: 370178 || all params: 108680450 || trainable%: 0.3406113979101117
```

## PeftModelForTokenClassification[[peft.PeftModelForTokenClassification]]

`PeftModel` untuk tugas klasifikasi token.

#### peft.PeftModelForTokenClassification[[peft.PeftModelForTokenClassification]]

```python
peft.PeftModelForTokenClassification(model: torch.nn.Module, peft_config: PeftConfig = None, adapter_name: str = 'default', **kwargs)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L2803)

**Parameter:**

model ([PreTrainedModel](https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel)) : Model transformer dasar.

peft_config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig)) : Konfigurasi Peft.

adapter_name (`str`,  *opsional*) : Nama adapter, secara default `"default"`.

autocast_adapter_dtype (`bool`, *opsional*, defaultnya `True`) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 dan bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi beberapa tuner PEFT tertentu. Jika diatur ke `False`, dtype akan tetap sama dengan dtype dari layer yang sesuai.

Model Peft untuk tugas klasifikasi token.

**Atribut**:
- **config** (`PretrainedConfig`) -- Objek konfigurasi dari model dasar.
- **cls_layer_name** (`str`) -- Nama dari lapisan klasifikasi.

Contoh:

```py
>>> from transformers import AutoModelForTokenClassification
>>> from peft import PeftModelForTokenClassification, get_peft_config

>>> config = {
...     "peft_type": "PREFIX_TUNING",
...     "task_type": "TOKEN_CLS",
...     "inference_mode": False,
...     "num_virtual_tokens": 20,
...     "token_dim": 768,
...     "num_transformer_submodules": 1,
...     "num_attention_heads": 12,
...     "num_layers": 12,
...     "encoder_hidden_size": 768,
...     "prefix_projection": False,
... }

>>> peft_config = get_peft_config(config)
>>> model = AutoModelForTokenClassification.from_pretrained("bert-base-cased")
>>> peft_model = PeftModelForTokenClassification(model, peft_config)
>>> peft_model.print_trainable_parameters()
trainable params: 370178 || all params: 108680450 || trainable%: 0.3406113979101117
```

#### add_adapter[[peft.PeftModelForTokenClassification.add_adapter]]

```python
add_adapter(adapter_name: str, peft_config: PeftConfig, low_cpu_mem_usage: bool = False, autocast_adapter_dtype: bool = True)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L2868)

**Parameter:**

adapter_name (`str`) : Nama adapter yang akan ditambahkan.

peft_config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig)) : Konfigurasi adapter yang akan ditambahkan.

low_cpu_mem_usage (`bool`, `optional`, defaultnya `False`) : Membuat bobot adapter kosong pada meta device. Berguna untuk mempercepat proses saat memuat adapter yang disimpan. Jangan gunakan opsi ini saat membuat adapter PEFT baru untuk pelatihan.

autocast_adapter_dtype (`bool`, *opsional*, defaultnya `True`) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 dan bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi beberapa tuner PEFT tertentu. Jika diatur ke `False`, dtype akan tetap sama dengan dtype dari layer yang sesuai.

Tambahkan adapter ke model berdasarkan konfigurasi yang diteruskan.

Adapter ini tidak dilatih. Untuk memuat adapter yang telah dilatih, lihat [PeftModel.load_adapter()](/docs/peft/main/id/package_reference/peft_model#peft.PeftModel.load_adapter).

Nama untuk adapter baru harus unik.

Adapter baru tidak secara otomatis diset sebagai adapter aktif. Gunakan [PeftModel.set_adapter()](/docs/peft/main/id/package_reference/peft_model#peft.PeftModel.set_adapter) untuk mengatur adapter aktif.

## PeftModelForCausalLM[[peft.PeftModelForCausalLM]]

`PeftModel` untuk pemodelan bahasa kausal.

#### peft.PeftModelForCausalLM[[peft.PeftModelForCausalLM]]

```python
peft.PeftModelForCausalLM(model: torch.nn.Module, peft_config: PeftConfig, adapter_name: str = 'default', **kwargs)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L2209)

**Parameter:**

model ([PreTrainedModel](https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel)) : Model transformer dasar.

peft_config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig)) : Konfigurasi Peft.

adapter_name (`str`,  *opsional*) : Nama adapter, secara default `"default"`.

autocast_adapter_dtype (`bool`, *opsional*, defaultnya `True`) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 dan bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi beberapa tuner PEFT tertentu. Jika diatur ke `False`, dtype akan tetap sama dengan dtype dari layer yang sesuai.

Model Peft untuk pemodelan bahasa kausal.

Contoh:

```py
>>> from transformers import AutoModelForCausalLM
>>> from peft import PeftModelForCausalLM, get_peft_config

>>> config = {
...     "peft_type": "PREFIX_TUNING",
...     "task_type": "CAUSAL_LM",
...     "inference_mode": False,
...     "num_virtual_tokens": 20,
...     "token_dim": 1280,
...     "num_transformer_submodules": 1,
...     "num_attention_heads": 20,
...     "num_layers": 36,
...     "encoder_hidden_size": 1280,
...     "prefix_projection": False,
... }

>>> peft_config = get_peft_config(config)
>>> model = AutoModelForCausalLM.from_pretrained("gpt2-large")
>>> peft_model = PeftModelForCausalLM(model, peft_config)
>>> peft_model.print_trainable_parameters()
trainable params: 1843200 || all params: 775873280 || trainable%: 0.23756456724479544
```

## PeftModelForSeq2SeqLM[[peft.PeftModelForSeq2SeqLM]]

`PeftModel` untuk pemodelan bahasa berurutan-ke-berurutan.

Catatan: ini akan secara otomatis menghasilkan token input decoder dengan menggeser token input satu langkah ke kanan menggunakan `shift_tokens_right()` jika Anda menyediakan token input tetapi tidak menyediakan token input decoder secara eksplisit.

#### peft.PeftModelForSeq2SeqLM[[peft.PeftModelForSeq2SeqLM]]

```python
peft.PeftModelForSeq2SeqLM(model: torch.nn.Module, peft_config: PeftConfig, adapter_name: str = 'default', **kwargs)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L2552)

**Parameter:**

model ([PreTrainedModel](https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel)) : Model transformer dasar.

peft_config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig)) : Konfigurasi Peft.

adapter_name (`str`,  *opsional*) : Nama adapter, secara default `"default"`.

autocast_adapter_dtype (`bool`, *opsional*, defaultnya `True`) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 dan bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi beberapa tuner PEFT tertentu. Jika diatur ke `False`, dtype akan tetap sama dengan dtype dari layer yang sesuai.

Model Peft untuk pemodelan bahasa sequence-to-sequence.

Contoh:

```py
>>> from transformers import AutoModelForSeq2SeqLM
>>> from peft import PeftModelForSeq2SeqLM, get_peft_config

>>> config = {
...     "peft_type": "LORA",
...     "task_type": "SEQ_2_SEQ_LM",
...     "inference_mode": False,
...     "r": 8,
...     "target_modules": ["q", "v"],
...     "lora_alpha": 32,
...     "lora_dropout": 0.1,
...     "fan_in_fan_out": False,
...     "bias": "none",
... }

>>> peft_config = get_peft_config(config)
>>> model = AutoModelForSeq2SeqLM.from_pretrained("t5-base")
>>> peft_model = PeftModelForSeq2SeqLM(model, peft_config)
>>> peft_model.print_trainable_parameters()
trainable params: 884736 || all params: 223843584 || trainable%: 0.3952474242013566
```

## PeftModelForQuestionAnswering[[peft.PeftModelForQuestionAnswering]]

`PeftModel` untuk menjawab pertanyaan.

#### peft.PeftModelForQuestionAnswering[[peft.PeftModelForQuestionAnswering]]

```python
peft.PeftModelForQuestionAnswering(model: torch.nn.Module, peft_config: PeftConfig, adapter_name: str = 'default', **kwargs)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L3031)

**Parameter:**

model ([PreTrainedModel](https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel)) : Model transformer dasar.

peft_config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig)) : Konfigurasi Peft.

adapter_name (`str`,  *opsional*) : Nama adapter, secara default `"default"`.

autocast_adapter_dtype (`bool`, *opsional*, defaultnya `True`) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 dan bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi beberapa tuner PEFT tertentu. Jika diatur ke `False`, dtype akan tetap sama dengan dtype dari layer yang sesuai.

Model Peft untuk menjawab pertanyaan ekstraktif.

**Atribut**:
- **config** (`PretrainedConfig`) -- Objek konfigurasi dari model dasar.
- **cls_layer_name** (`str`) -- Nama dari lapisan klasifikasi.

Contoh:

```py
>>> from transformers import AutoModelForQuestionAnswering
>>> from peft import PeftModelForQuestionAnswering, get_peft_config

>>> config = {
...     "peft_type": "LORA",
...     "task_type": "QUESTION_ANS",
...     "inference_mode": False,
...     "r": 16,
...     "target_modules": ["query", "value"],
...     "lora_alpha": 32,
...     "lora_dropout": 0.05,
...     "fan_in_fan_out": False,
...     "bias": "none",
... }

>>> peft_config = get_peft_config(config)
>>> model = AutoModelForQuestionAnswering.from_pretrained("bert-base-cased")
>>> peft_model = PeftModelForQuestionAnswering(model, peft_config)
>>> peft_model.print_trainable_parameters()
trainable params: 592900 || all params: 108312580 || trainable%: 0.5473971721475013
```

#### add_adapter[[peft.PeftModelForQuestionAnswering.add_adapter]]

```python
add_adapter(adapter_name: str, peft_config: PeftConfig, low_cpu_mem_usage: bool = False, autocast_adapter_dtype: bool = True)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L3096)

**Parameter:**

adapter_name (`str`) : Nama adapter yang akan ditambahkan.

peft_config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig)) : Konfigurasi adapter yang akan ditambahkan.

low_cpu_mem_usage (`bool`, `optional`, defaultnya `False`) : Membuat bobot adapter kosong pada meta device. Berguna untuk mempercepat proses saat memuat adapter yang disimpan. Jangan gunakan opsi ini saat membuat adapter PEFT baru untuk pelatihan.

autocast_adapter_dtype (`bool`, *opsional*, defaultnya `True`) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 dan bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi beberapa tuner PEFT tertentu. Jika diatur ke `False`, dtype akan tetap sama dengan dtype dari layer yang sesuai.

Tambahkan adapter ke model berdasarkan konfigurasi yang diteruskan.

Adapter ini tidak dilatih. Untuk memuat adapter yang telah dilatih, lihat [PeftModel.load_adapter()](/docs/peft/main/id/package_reference/peft_model#peft.PeftModel.load_adapter).

Nama untuk adapter baru harus unik.

Adapter baru tidak secara otomatis diset sebagai adapter aktif. Gunakan [PeftModel.set_adapter()](/docs/peft/main/id/package_reference/peft_model#peft.PeftModel.set_adapter) untuk mengatur adapter aktif.

## PeftModelForFeatureExtraction[[peft.PeftModelForFeatureExtraction]]

`PeftModel` untuk mengekstrak fitur/embedding dari model transformer.

#### peft.PeftModelForFeatureExtraction[[peft.PeftModelForFeatureExtraction]]

```python
peft.PeftModelForFeatureExtraction(model: torch.nn.Module, peft_config: PeftConfig, adapter_name: str = 'default', **kwargs)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L3283)

**Parameter:**

model ([PreTrainedModel](https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel)) : Model transformer dasar.

peft_config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig)) : Konfigurasi Peft.

adapter_name (`str`,  *opsional*) : Nama adapter, secara default `"default"`.

autocast_adapter_dtype (`bool`, *opsional*, defaultnya `True`) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 dan bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi beberapa tuner PEFT tertentu. Jika diatur ke `False`, dtype akan tetap sama dengan dtype dari layer yang sesuai.

Model Peft untuk mengekstrak fitur/embedding dari model transformer

**Atribut**:
- **config** (`PretrainedConfig`) -- Objek konfigurasi dari model dasar.

Contoh:

```py
>>> from transformers import AutoModel
>>> from peft import PeftModelForFeatureExtraction, get_peft_config

>>> config = {
...     "peft_type": "LORA",
...     "task_type": "FEATURE_EXTRACTION",
...     "inference_mode": False,
...     "r": 16,
...     "target_modules": ["query", "value"],
...     "lora_alpha": 32,
...     "lora_dropout": 0.05,
...     "fan_in_fan_out": False,
...     "bias": "none",
... }
>>> peft_config = get_peft_config(config)
>>> model = AutoModel.from_pretrained("bert-base-cased")
>>> peft_model = PeftModelForFeatureExtraction(model, peft_config)
>>> peft_model.print_trainable_parameters()
```

## PeftMixedModel[[peft.PeftMixedModel]]

`PeftModel` untuk mencampur berbagai jenis adapter (misalnya LoRA dan LoHa).

#### peft.PeftMixedModel[[peft.PeftMixedModel]]

```python
peft.PeftMixedModel(model: nn.Module, peft_config: PeftConfig, adapter_name: str = 'default')
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/mixed_model.py#L67)

**Parameter:**

model (`torch.nn.Module`) : Model yang akan disetel.

config (`PeftConfig`) : Konfigurasi model yang akan disetel. Jenis adapter harus kompatibel.

adapter_name (`str`, `optional`, defaultnya `"default"`) : Nama adapter pertama.

low_cpu_mem_usage (`bool`, `optional`, defaultnya `False`) : Membuat bobot adapter kosong pada perangkat meta. Berguna untuk mempercepat proses pemuatan.

PeftMixedModel untuk memuat campuran berbagai jenis adapter untuk inferensi.

Kelas ini tidak mendukung pemuatan/penyimpanan, dan biasanya tidak seharusnya diinisialisasi secara langsung. Sebagai gantinya, gunakan `get_peft_model` dengan argumen `mixed=True`.

> [!TIP] > Baca panduan [Jenis adapter campuran](https://huggingface.co/docs/peft/en/developer_guides/mixed_models)
untuk mempelajari > lebih lanjut tentang penggunaan berbagai jenis adapter.

Contoh:

```py
>>> base_model = ...  # load the base model, e.g. from transformers
>>> peft_model = PeftMixedModel.from_pretrained(base_model, path_to_adapter1, "adapter1").eval()
>>> peft_model.load_adapter(path_to_adapter2, "adapter2")
>>> peft_model.set_adapter(["adapter1", "adapter2"])  # activate both adapters
>>> peft_model(data)  # forward pass using both adapters
```

#### add_adapter[[peft.PeftMixedModel.add_adapter]]

```python
add_adapter(adapter_name: str, peft_config: PeftConfig, low_cpu_mem_usage: bool = False, autocast_adapter_dtype: bool = True)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/mixed_model.py#L203)

**Parameter:**

adapter_name (`str`) : Nama adapter yang akan ditambahkan.

peft_config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig)) : Konfigurasi adapter yang akan ditambahkan.

low_cpu_mem_usage (`bool`, `optional`, defaultnya `False`) : Membuat bobot adapter kosong pada perangkat meta. Berguna untuk mempercepat proses saat memuat adapter yang disimpan.  > [!TIP] > Jangan gunakan `low_cpu_mem_usage=True` saat membuat adapter PEFT baru untuk pelatihan (pelatihan belum diuji > dan tidak disarankan untuk PeftMixedModel secara umum).

autocast_adapter_dtype (`bool`, *opsional*, defaultnya `True`) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 dan bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi beberapa tuner PEFT tertentu. Jika diatur ke `False`, dtype akan tetap sama dengan dtype dari layer yang sesuai.

Tambahkan adapter ke model berdasarkan konfigurasi yang diteruskan.

Adapter ini tidak dilatih. Untuk memuat adapter yang telah dilatih, lihat [PeftModel.load_adapter()](/docs/peft/main/id/package_reference/peft_model#peft.PeftModel.load_adapter).

Nama untuk adapter baru harus unik.

Adapter baru tidak secara otomatis diset sebagai adapter aktif. Gunakan [PeftModel.set_adapter()](/docs/peft/main/id/package_reference/peft_model#peft.PeftModel.set_adapter) untuk mengatur adapter aktif.

#### disable_adapter[[peft.PeftMixedModel.disable_adapter]]

```python
disable_adapter()
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/mixed_model.py#L192)

Menonaktifkan modul adapter.

#### forward[[peft.PeftMixedModel.forward]]

```python
forward(*args: Any, **kwargs: Any)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/mixed_model.py#L180)

Forward pass dari model.

#### from_pretrained[[peft.PeftMixedModel.from_pretrained]]

```python
from_pretrained(model: nn.Module, model_id: str | os.PathLike, adapter_name: str = 'default', is_trainable: bool = False, config: Optional[PeftConfig] = None, **kwargs: Any)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/mixed_model.py#L405)

**Parameter:**

model (`nn.Module`) : Model yang akan diadaptasi.

model_id (`str` atau `os.PathLike`) : Nama konfigurasi PEFT yang akan digunakan. Bisa berupa: - String, yaitu `model id` dari konfigurasi PEFT yang dihosting di dalam repo model di Hugging Face Hub. - Path ke direktori yang berisi file konfigurasi PEFT yang disimpan menggunakan metode `save_pretrained` (`./my_peft_config_directory/`).

adapter_name (`str`, *opsional*, defaultnya `"default"`) : Nama adapter yang akan dimuat. Ini berguna untuk memuat beberapa adapter.

is_trainable (`bool`, *opsional*, defaultnya `False`) : Apakah adapter harus dapat dilatih atau tidak. Jika `False`, adapter akan dibekukan dan digunakan untuk inferensi

config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig), *opsional*) : Objek konfigurasi yang akan digunakan sebagai pengganti konfigurasi yang dimuat secara otomatis. Objek konfigurasi ini bersifat eksklusif dengan `model_id` dan `kwargs`. Hal ini berguna ketika konfigurasi sudah dimuat sebelum memanggil `from_pretrained`.

low_cpu_mem_usage (`bool`, `optional`, defaultnya `False`) : Membuat bobot adapter kosong pada perangkat meta sebelum memuat bobot yang disimpan. Berguna untuk mempercepat proses.

kwargs : (`optional`): Argumen kata kunci tambahan yang diteruskan ke kelas konfigurasi PEFT tertentu.

Instansiasi model PEFT campuran dari model pretrained dan bobot PEFT yang dimuat.

Perhatikan bahwa `model` yang diteruskan dapat dimodifikasi secara inplace.

#### generate[[peft.PeftMixedModel.generate]]

```python
generate(*args: Any, **kwargs: Any)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/mixed_model.py#L186)

Generate output.

#### get_nb_trainable_parameters[[peft.PeftMixedModel.get_nb_trainable_parameters]]

```python
get_nb_trainable_parameters()
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/mixed_model.py#L126)

Mengembalikan jumlah parameter yang dapat dilatih dan jumlah seluruh parameter dalam model.

#### load_adapter[[peft.PeftMixedModel.load_adapter]]

```python
load_adapter(model_id: str, adapter_name: str, *args: Any, **kwargs: Any)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/mixed_model.py#L348)

**Parameter:**

adapter_name (`str`) : Nama adapter yang akan ditambahkan.

peft_config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig)) : Konfigurasi adapter yang akan ditambahkan.

is_trainable (`bool`, *opsional*, defaultnya `False`) : Apakah adapter harus dapat dilatih atau tidak. Jika `False`, adapter akan dibekukan dan hanya dapat digunakan untuk inferensi.

torch_device (`str`, *opsional*, defaultnya None) : Perangkat untuk memuat adapter. Jika `None`, perangkat akan disimpulkan.

autocast_adapter_dtype (`bool`, *opsional*, defaultnya `True`) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 dan bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi tuner PEFT tertentu.

ephemeral_gpu_offload (`bool`, *opsional*, defaultnya `False`) : Apakah akan menggunakan ephemeral GPU offloading untuk modul yang dimuat sebagian. Defaultnya `False`.

low_cpu_mem_usage (`bool`, `optional`, defaultnya `False`) : Membuat bobot adapter kosong pada perangkat meta sebelum memuat bobot yang disimpan. Berguna untuk mempercepat proses.

kwargs : (`optional`): Argumen tambahan untuk memodifikasi cara adapter dimuat, misalnya token untuk Hugging Face Hub.

Muat adapter yang telah dilatih ke dalam model.

Nama untuk adapter baru harus unik.

Adapter baru tidak secara otomatis diset sebagai adapter aktif. Gunakan [PeftModel.set_adapter()](/docs/peft/main/id/package_reference/peft_model#peft.PeftModel.set_adapter) untuk mengatur adapter aktif.

#### merge_and_unload[[peft.PeftMixedModel.merge_and_unload]]

```python
merge_and_unload(*args: Any, **kwargs: Any)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/mixed_model.py#L311)

**Parameter:**

progressbar (`bool`) : apakah akan menampilkan progressbar yang menunjukkan proses unload dan merge

safe_merge (`bool`) : apakah akan mengaktifkan pemeriksaan penggabungan aman untuk memeriksa apakah ada potensi Nan pada bobot adapter

adapter_names (`List[str]`, *opsional*) : Daftar nama adapter yang harus digabungkan. Jika None, semua adapter aktif akan digabungkan. Bawaan adalah `None`.

Metode ini menggabungkan lapisan adapter ke dalam model dasar. Hal ini diperlukan jika seseorang ingin menggunakan model dasar sebagai model mandiri.

#### print_trainable_parameters[[peft.PeftMixedModel.print_trainable_parameters]]

```python
print_trainable_parameters()
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/mixed_model.py#L151)

Menampilkan jumlah parameter yang dapat dilatih dalam model.

Catatan: print_trainable_parameters() menggunakan get_nb_trainable_parameters() yang berbeda dari num_parameters(only_trainable=True) dari huggingface/transformers. get_nb_trainable_parameters() mengembalikan (parameter yang dapat dilatih, semua parameter) dari Model Peft yang mencakup model transformer backbone yang dimodifikasi. Untuk teknik seperti LoRA, model transformer backbone dimodifikasi di tempatnya dengan modul LoRA. Namun, untuk prompt tuning, model transformer backbone tidak dimodifikasi. num_parameters(only_trainable=True) mengembalikan jumlah parameter yang dapat dilatih dari model transformer backbone yang dapat berbeda.

#### set_adapter[[peft.PeftMixedModel.set_adapter]]

```python
set_adapter(adapter_name: Union[str, list[str]], inference_mode: bool = False)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/mixed_model.py#L269)

**Parameter:**

adapter_name (str, list[str]) : Nama adapter yang akan disetel sebagai aktif

inference_mode (bool, opsional) : Apakah adapter yang diaktifkan harus dibekukan (yaitu `requires_grad=False`). Default adalah False.

Menetapkan adapter aktif untuk model.

Perhatikan bahwa urutan penerapan adapter selama forward pass mungkin tidak sama dengan urutan yang diberikan ke fungsi ini. Sebaliknya, urutan selama forward pass ditentukan oleh urutan pemuatan adapter ke dalam model. Adapter yang aktif hanya menentukan adapter mana yang aktif selama forward pass, tetapi tidak menentukan urutan penerapannya.

Selain itu, fungsi ini akan mengatur adapter yang ditentukan agar dapat dilatih (yaitu, requires_grad=True) kecuali inference_mode bernilai True.

#### unload[[peft.PeftMixedModel.unload]]

```python
unload(*args: Any, **kwargs: Any)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/mixed_model.py#L328)

Mengambil kembali model dasar dengan menghapus semua modul adapter tanpa penggabungan. Ini mengembalikan model dasar aslinya.

## Utilitas[[peft.cast_mixed_precision_params]]

#### peft.cast_mixed_precision_params[[peft.cast_mixed_precision_params]]

```python
peft.cast_mixed_precision_params(model: torch.nn.Module, dtype: torch.dtype)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/utils/other.py#L1529)

**Parameter:**

model (`torch.nn.Module`) : Model yang parameter non-trainable-nya akan di-cast.

dtype (`torch.dtype`) : dtype untuk meng-cast parameter yang tidak dapat dilatih. `dtype` dapat berupa `torch.float16` atau

Cast semua parameter model yang tidak dapat dilatih ke `dtype` yang diberikan. `dtype` dapat berupa `torch.float16` atau `torch.bfloat16` sesuai dengan pelatihan mixed-precision yang Anda lakukan. Parameter yang dapat dilatih di-cast ke presisi penuh. Hal ini dimaksudkan untuk mengurangi penggunaan memori GPU saat menggunakan metode PEFT dengan menggunakan dtype half-precision untuk parameter yang tidak dapat dilatih. Mempertahankan parameter yang dapat dilatih dalam presisi penuh menjaga stabilitas pelatihan saat menggunakan pelatihan automatic mixed-precision.

`torch.bfloat16` sesuai dengan pelatihan presisi campuran yang Anda lakukan.

#### peft.get_peft_model[[peft.get_peft_model]]

```python
peft.get_peft_model(model: nn.Module, peft_config: PeftConfig, adapter_name: str = 'default', mixed: bool = False, autocast_adapter_dtype: bool = True, revision: Optional[str] = None, low_cpu_mem_usage: bool = False)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/mapping_func.py#L105)

**Parameter:**

model (`torch.nn.Module`) : Model yang akan dibungkus. Biasanya ini adalah model Transformers, tetapi `nn.Module` apa pun dapat digunakan, dengan catatan bahwa fitur khusus tugas (`peft_config.task_type`) mengharuskan model untuk mengikuti konvensi Transformers.

peft_config ([PeftConfig](/docs/peft/main/id/package_reference/config#peft.PeftConfig)) : Objek konfigurasi yang berisi parameter dari model Peft.

adapter_name (`str`, `optional`, defaultnya `"default"`) : Nama adapter yang akan disuntikkan; jika tidak diberikan, nama adapter default ("default") akan digunakan.

mixed (`bool`, `optional`, defaults to `False`) : Whether to allow mixing different (compatible) adapter types.

autocast_adapter_dtype (`bool`, *opsional*) : Apakah akan melakukan autocast pada dtype adapter. Defaultnya adalah `True`. Saat ini, ini hanya akan meng-cast bobot adapter yang menggunakan float16 atau bfloat16 menjadi float32, karena hal ini biasanya diperlukan untuk pelatihan yang stabil, dan hanya memengaruhi beberapa tuner PEFT tertentu.

revision (`str`, `optional`, defaultnya `main`) : Revisi dari model dasar. Jika ini tidak diatur, model peft yang disimpan akan memuat revisi `main` untuk model dasar

low_cpu_mem_usage (`bool`, `optional`, defaultnya `False`) : Membuat bobot adapter kosong pada meta device. Berguna untuk mempercepat proses pemuatan. Biarkan pengaturan ini sebagai False jika Anda bermaksud melatih model, kecuali bobot adapter akan diganti dengan bobot yang berbeda sebelum pelatihan dimulai.

Mengembalikan objek model Peft dari sebuah model dan konfigurasi, di mana model akan dimodifikasi secara in-place.

#### peft.inject_adapter_in_model[[peft.inject_adapter_in_model]]

```python
peft.inject_adapter_in_model(peft_config: PeftConfig, model: torch.nn.Module, adapter_name: str = 'default', low_cpu_mem_usage: bool = False, state_dict: Optional[dict[str, torch.Tensor]] = None)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/mapping.py#L47)

**Parameter:**

peft_config (`PeftConfig`) : Objek konfigurasi yang berisi parameter model PEFT.

model (`torch.nn.Module`) : Model input tempat adapter akan disuntikkan.

adapter_name (`str`, `optional`, defaultnya `"default"`) : Nama adapter yang akan disuntikkan; jika tidak diberikan, nama adapter default ("default") akan digunakan.

low_cpu_mem_usage (`bool`, `optional`, defaultnya `False`) : Membuat bobot adapter kosong pada perangkat meta. Berguna untuk mempercepat proses pemuatan.

state_dict (`dict`, *opsional*, defaultnya `None`) : Jika `state_dict` diberikan di sini, adapter akan disuntikkan berdasarkan entri dari state_dict. Hal ini dapat berguna ketika `target_modules` yang tepat dari metode PEFT tidak diketahui, misalnya karena checkpoint dibuat tanpa meta data. Perhatikan bahwa nilai dari `state_dict` tidak digunakan, hanya kuncinya yang digunakan untuk menentukan lapisan yang benar yang harus diadaptasi.

Buat lapisan PEFT dan suntikkan ke dalam model secara in-place.

Saat ini, API tidak mendukung metode pembelajaran prompt, adaption prompt, atau tuner yang mempertahankan status adapter yang dibagikan di antara beberapa lapisan target. Gunakan [get_peft_model()](/docs/peft/main/id/package_reference/peft_model#peft.get_peft_model) untuk yang terakhir.

Fungsi ini mirip dengan [get_peft_model()](/docs/peft/main/id/package_reference/peft_model#peft.get_peft_model) tetapi tidak mengembalikan instance [PeftModel](/docs/peft/main/id/package_reference/peft_model#peft.PeftModel). Sebagai gantinya, fungsi ini mengembalikan instance asli dari model yang diteruskan, yang telah dimodifikasi.

#### peft.get_peft_model_state_dict[[peft.get_peft_model_state_dict]]

```python
peft.get_peft_model_state_dict(model, state_dict = None, adapter_name: str = 'default', unwrap_compiled: bool = False, save_embedding_layers: bool | Literal['auto'] = 'auto')
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/utils/save_and_load.py#L175)

**Parameter:**

model ([PeftModel](/docs/peft/main/id/package_reference/peft_model#peft.PeftModel)) : Model Peft. Saat menggunakan torch.nn.DistributedDataParallel, DeepSpeed, atau FSDP, model harus berupa model dasar/model yang tidak dibungkus (yaitu model.module).

state_dict (`dict`, *opsional*, defaultnya `None`) : state dict dari model. Jika tidak disediakan, state dict dari model yang diberikan akan digunakan.

adapter_name (`str`, *opsional*, defaultnya `"default"`) : Nama adapter yang state dict-nya harus dikembalikan.

unwrap_compiled (`bool`, *opsional*, defaultnya `False`) : Apakah akan membuka bungkus model jika torch.compile digunakan.

save_embedding_layers (`Union[bool, str]`, , *opsional*, defaultnya `auto`) : Jika `True`, simpan lapisan embedding di samping bobot adapter. Jika `auto`, periksa lapisan embedding umum `peft.utils.other.EMBEDDING_LAYER_NAMES` di `target_modules` config jika tersedia. Berdasarkan itu, set flag boolean. Ini hanya berfungsi untuk model 🤗 transformers.

Dapatkan state dict dari adapter tertentu dari model PEFT.

Ini hanya mencakup parameter PEFT, bukan parameter dari model dasar. Dengan demikian, `state_dict` yang dikembalikan umumnya kecil dibandingkan dengan ukuran model penuh. Untuk mengambil `state_dict` penuh, cukup panggil `model.state_dict()`.

Perhatikan bahwa nama adapter dihapus dari `state_dict`, karena ini hanyalah nama sewenang-wenang yang dapat diubah saat memuat adapter. Jadi, misalnya, jika nama adapter adalah `'default'` dan kunci aslinya adalah `'model.q_proj.lora_A.default.weight'`, kunci yang dikembalikan akan menjadi `'model.q_proj.lora_A.weight'`. Gunakan fungsi ini bersama dengan [set_peft_model_state_dict()](/docs/peft/main/id/package_reference/functional#peft.set_peft_model_state_dict) untuk menangani nama adapter saat memuat bobot.

#### peft.prepare_model_for_kbit_training[[peft.prepare_model_for_kbit_training]]

```python
peft.prepare_model_for_kbit_training(model, use_gradient_checkpointing = True, gradient_checkpointing_kwargs = None, auto_clear_cache = True)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/utils/other.py#L160)

**Parameter:**

model (`transformers.PreTrainedModel`) : Model yang dimuat dari `transformers`

use_gradient_checkpointing (`bool`, *opsional*, defaultnya `True`) : Jika True, gunakan gradient checkpointing untuk menghemat memori dengan mengorbankan kecepatan backward pass.

gradient_checkpointing_kwargs (`dict`, *opsional*, defaultnya `None`) : Argumen kata kunci untuk diteruskan ke fungsi gradient checkpointing, silakan lihat dokumentasi `torch.utils.checkpoint.checkpoint` untuk detail lebih lanjut tentang argumen yang dapat Anda teruskan ke metode tersebut. Perhatikan bahwa ini hanya tersedia di versi transformers terbaru (> 4.34.1).

auto_clear_cache (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengosongkan cache accelerator setelah upcasting parameter ke fp32. Ini melepaskan memori yang dipegang oleh caching allocator, yang sangat membantu pada perangkat yang berbagi memori host dan accelerator. Atur ke `False` untuk melewati langkah ini.

Perhatikan bahwa metode ini hanya berfungsi untuk model `transformers`.

Metode ini membungkus seluruh protokol untuk menyiapkan model sebelum menjalankan pelatihan. Ini mencakup: 1- Mengubah layernorm ke fp32 2- Membuat lapisan output embedding memerlukan grads 3- Menambahkan upcasting dari lm head ke fp32 4- Membekukan lapisan model dasar untuk memastikan mereka tidak diperbarui selama pelatihan

#### peft.get_layer_status[[peft.get_layer_status]]

```python
peft.get_layer_status(model: torch.nn.Module)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L3398)

**Parameter:**

model ([Union[`~PeftModel`, `~transformers.PreTrainedModel`, `nn.Module`]]) : Model untuk mendapatkan status lapisan adapter.

**Mengembalikan:** list`peft.peft_model.TunerLayerStatus`

Daftar dataclasses, masing-masing berisi status dari lapisan adapter yang sesuai.

Dapatkan status setiap lapisan adapter dalam model.

Fungsi ini mengembalikan daftar instance dataclass `TunerLayerStatus`, di mana masing-masing berisi atribut berikut:

- `name` (`str`): Nama dari lapisan adapter, misalnya `model.encoder.block.0.layer.0.SelfAttention.q`.
- `module_type` (`str`): Jenis lapisan adapter, misalnya `lora.Linear`.
- `enabled` (`bool`): Apakah lapisan adapter diaktifkan.
- `active_adapters` (`list[str]`): Nama-nama adapter yang aktif, jika ada, misalnya `["default"]`.
- `merged_adapters` (`list[str]`): Nama-nama adapter yang telah digabungkan, jika ada, misalnya `["default"]`.
- requires_grad : dict[str, bool | Literal["irregular"]] Status requires_grad dari parameter untuk setiap modul adapter. Idealnya, nilainya harus `True` atau `False`. Jika status requires_grad tidak konsisten di antara semua parameter, nilainya akan diatur menjadi `"irregular"`.
- `available_adapters` (`list[str]`): Nama-nama adapter yang tersedia, misalnya `["default"]`.
- `devices` (`dict[str, list[str]]`): Perangkat tempat parameter adapter yang diberikan disimpan, misalnya `["cuda","xpu"]`.
- `quantization_backend` (`str` atau `None`): Nama dari backend kuantisasi, misalnya `"bnb 4bit"`, atau `None` jika tidak dikuantisasi.

#### peft.get_model_status[[peft.get_model_status]]

```python
peft.get_model_status(model: torch.nn.Module)
```

[Sumber](https://github.com/huggingface/peft/blob/main/src/peft/peft_model.py#L3532)

**Parameter:**

model ([Union[`~PeftModel`, `~transformers.PreTrainedModel`, `nn.Module`]]) : Model untuk mendapatkan status lapisan adapter.

**Mengembalikan:** `peft.peft_model.TunerModelStatus`

Dataclass yang berisi status model.

Dapatkan status tuner dari model.

Fungsi ini mengembalikan instance dataclass `TunerModelStatus`, yang berisi atribut-atribut berikut:

- `base_model_type` (`str`): Jenis model dasar, misalnya `T5Model`.
- `adapter_model_type` (`str`): Jenis model adapter, misalnya `LoraModel`.
- `peft_types` (`dict[str, str]`): Pemetaan dari nama adapter ke tipe adapter, misalnya `{"default": "LORA"}`.
- `trainable_params` (`int`): Jumlah parameter yang dapat dilatih dalam model.
- `total_params` (`int`): Jumlah total parameter dalam model.
- `num_adapter_layers` (`int`): Jumlah lapisan adapter dalam model.
- `enabled` (`bool`, `Literal["irregular"]`): Apakah semua lapisan adapter diaktifkan. Jika sebagian diaktifkan dan sebagian tidak, nilai ini akan menjadi `"irregular"`. Ini berarti model Anda berada dalam keadaan tidak konsisten dan mungkin tidak berfungsi sesuai harapan.
- `active_adapters` (`list[str]`, `Literal["irregular"]`): Nama-nama adapter yang aktif. Jika adapter yang aktif tidak konsisten di semua lapisan, nilai ini akan menjadi `"irregular"`, yang berarti model Anda berada dalam keadaan tidak konsisten dan mungkin tidak berfungsi sesuai harapan.
- `merged_adapters` (`list[str]`, `Literal["irregular"]`): Nama-nama adapter yang digabungkan. Jika adapter yang digabungkan tidak konsisten di semua lapisan, nilai ini akan menjadi `"irregular"`, yang berarti model Anda berada dalam keadaan tidak konsisten dan mungkin tidak berfungsi sesuai harapan.
- `requires_grad` (`dict[str, bool | Literal["irregular"]]`): Apakah untuk adapter yang diberikan, semua lapisan adapter memiliki `requires_grad` yang diatur ke `True` atau `False`. Jika ada campuran, nilai ini akan diatur ke `"irregular"`, yang berarti model Anda berada dalam keadaan tidak konsisten dan mungkin tidak berfungsi sesuai harapan.
- `available_adapters` (`list[str]`): Nama-nama adapter yang tersedia, misalnya `["default"]`.
- `devices` (`dict[str, list[str]]`): Perangkat tempat parameter adapter yang diberikan disimpan, misalnya `["cuda","xpu"]`.
- `quantization_backend` (`str`, `None`, `Literal["irregular"]`): Nama dari backend kuantisasi, misalnya `"bnb 4bit"`, atau `None` jika tidak dikuantisasi. Jika backend tidak konsisten di semua lapisan, nilai ini akan menjadi `"irregular"`.

