Buckets:
| # Kuantisasi | |
| Teknik kuantisasi mengurangi biaya memori dan komputasi dengan merepresentasikan bobot dan aktivasi menggunakan tipe data presisi rendah seperti bilangan bulat 8-bit (int8). Hal ini memungkinkan pemuatan model yang lebih besar yang biasanya tidak muat di memori, serta mempercepat inferensi. | |
| > [!TIP] | |
| > Pelajari cara mengkuantisasi model dalam panduan [Kuantisasi](../quantization/overview). | |
| ## PipelineQuantizationConfig[[diffusers.PipelineQuantizationConfig]] | |
| #### diffusers.PipelineQuantizationConfig[[diffusers.PipelineQuantizationConfig]] | |
| ```python | |
| diffusers.PipelineQuantizationConfig(quant_backend: str = None, quant_kwargs: dict[str, str | float | int | dict] = None, components_to_quantize: list[str] | str | None = None, quant_mapping: dict[str, DiffQuantConfigMixin | 'TransformersQuantConfigMixin'] = None) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/pipe_quant_config.py#L34) | |
| **Parameter:** | |
| quant_backend (`str`) : Backend kuantisasi yang akan digunakan. Saat menggunakan opsi ini, kami mengasumsikan bahwa backend tersebut tersedia untuk `diffusers` dan `transformers`. | |
| quant_kwargs (`dict`) : Parameter untuk menginisialisasi kelas backend kuantisasi. | |
| components_to_quantize (`list`) : Komponen dari pipeline yang akan dikuantisasi. | |
| quant_mapping (`dict`) : Pemetaan yang mendefinisikan spesifikasi kuantisasi yang akan digunakan untuk komponen pipeline. Saat menggunakan argumen ini, pengguna tidak diharapkan untuk menyediakan `quant_backend`, `quant_kawargs`, dan `components_to_quantize`. | |
| Kelas konfigurasi yang digunakan saat menerapkan kuantisasi secara langsung pada [from_pretrained()](/docs/diffusers/main/id/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained). | |
| ## BFLQuantizationConfig[[diffusers.BFLQuantizationConfig]] | |
| #### diffusers.BFLQuantizationConfig[[diffusers.BFLQuantizationConfig]] | |
| ```python | |
| diffusers.BFLQuantizationConfig(compute_dtype: 'torch.dtype' | None = None) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L427) | |
| **Parameter:** | |
| compute_dtype (`torch.dtype`, defaultnya `torch.bfloat16`) : dtype dari aktivasi dan lapisan yang tidak dikuantisasi. Perangkat tanpa kernel FP8 atau NVFP4 yang terintegrasi akan mendekuantisasi bobot ke dtype ini pada setiap langkah maju (forward pass). | |
| Konfigurasi untuk memuat checkpoint yang dikuantisasi dengan skema `fp8r` dan `nvfp4` dari Black Forest Labs. | |
| Kedua skema dibaca dari checkpoint melalui `~FromSingleFileMixin.from_single_file`; kuantisasi model secara langsung tidak didukung. Lapisan linear dikuantisasi ketika bobotnya disertai tensor skala: | |
| - `fp8r`: `weight` adalah `float8_e4m3fn` dengan bentuk `[N, K]` dan `weight_scale` adalah skala fp32 per baris `[N]`. | |
| - `nvfp4`: `weight` adalah `uint8` dengan bentuk `[N, K/2]` (dua nilai E2M1 per byte), `weight_scale` adalah skala blok `float8_e4m3fn` `[N, K/16]`, dan `weight_scale_2` serta `input_scale` adalah skalar fp32 yang menyimpan skala bobot global dan skala aktivasi yang dikalibrasi (layout ModelOpt NVFP4). | |
| ## BitsAndBytesConfig[[diffusers.BitsAndBytesConfig]] | |
| #### diffusers.BitsAndBytesConfig[[diffusers.BitsAndBytesConfig]] | |
| ```python | |
| diffusers.BitsAndBytesConfig(load_in_8bit = False, load_in_4bit = False, llm_int8_threshold = 6.0, llm_int8_skip_modules = None, llm_int8_enable_fp32_cpu_offload = False, llm_int8_has_fp16_weight = False, bnb_4bit_compute_dtype = None, bnb_4bit_quant_type = 'fp4', bnb_4bit_use_double_quant = False, bnb_4bit_quant_storage = None, **kwargs) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L171) | |
| **Parameter:** | |
| load_in_8bit (`bool`, *opsional*, defaultnya `False`) : Flag ini digunakan untuk mengaktifkan kuantisasi 8-bit dengan LLM.int8(). | |
| load_in_4bit (`bool`, *opsional*, defaultnya `False`) : Flag ini digunakan untuk mengaktifkan kuantisasi 4-bit dengan mengganti lapisan Linear dengan lapisan FP4/NF4 dari `bitsandbytes`. | |
| llm_int8_threshold (`float`, *opsional*, default 6.0) : Ini sesuai dengan ambang batas outlier untuk deteksi outlier seperti yang dijelaskan dalam paper `LLM.int8() : 8-bit Matrix Multiplication for Transformers at Scale`: https://huggingface.co/papers/2208.07339 Nilai hidden states mana pun yang berada di atas ambang batas ini akan dianggap sebagai outlier dan operasi pada nilai-nilai tersebut akan dilakukan dalam fp16. Nilai biasanya terdistribusi secara normal, artinya sebagian besar nilai berada dalam rentang [-3.5, 3.5], tetapi ada beberapa outlier sistematis yang sangat berbeda distribusinya pada model besar. Outlier ini sering berada dalam interval [-60, -6] atau [6, 60]. Kuantisasi Int8 bekerja dengan baik untuk nilai dengan magnitudo ~5, tetapi melampaui itu, terdapat penalti kinerja yang signifikan. Ambang batas default yang baik adalah 6, tetapi ambang batas yang lebih rendah mungkin diperlukan untuk model yang lebih tidak stabil (model kecil, fine-tuning). | |
| llm_int8_skip_modules (`list[str]`, *opsional*) : Daftar eksplisit modul yang tidak ingin dikonversi ke 8-bit. Ini berguna untuk model seperti Jukebox yang memiliki beberapa head di berbagai tempat dan tidak selalu di posisi terakhir. Misalnya, untuk model `CausalLM`, `lm_head` terakhir biasanya tetap dipertahankan dalam `dtype` aslinya. | |
| llm_int8_enable_fp32_cpu_offload (`bool`, *opsional*, defaultnya `False`) : Flag ini digunakan untuk kasus penggunaan lanjutan dan pengguna yang memahami fitur ini. Jika Anda ingin membagi model Anda ke dalam bagian-bagian berbeda dan menjalankan beberapa bagian dalam int8 di GPU serta beberapa bagian dalam fp32 di CPU, Anda dapat menggunakan flag ini. Hal ini berguna untuk offloading model besar seperti `google/flan-t5-xxl`. Perhatikan bahwa operasi int8 tidak akan dijalankan di CPU. | |
| llm_int8_has_fp16_weight (`bool`, *opsional*, defaultnya `False`) : Flag ini menjalankan LLM.int8() dengan bobot utama 16-bit. Hal ini berguna untuk fine-tuning karena bobot tidak perlu dikonversi bolak-balik untuk backward pass. | |
| bnb_4bit_compute_dtype (`torch.dtype` atau str, *opsional*, defaultnya `torch.float32`) : Ini mengatur tipe komputasi yang mungkin berbeda dari tipe input. Misalnya, input mungkin fp32, tetapi komputasi dapat diatur ke bf16 untuk percepatan. | |
| bnb_4bit_quant_type (`str`, *opsional*, defaultnya `"fp4"`) : Ini mengatur tipe data kuantisasi di lapisan bnb.nn.Linear4Bit. Opsi yang tersedia adalah tipe data FP4 dan NF4 yang ditentukan oleh `fp4` atau `nf4`. | |
| bnb_4bit_use_double_quant (`bool`, *opsional*, defaultnya `False`) : Flag ini digunakan untuk kuantisasi bersarang, di mana konstanta kuantisasi dari kuantisasi pertama dikuantisasi lagi. | |
| bnb_4bit_quant_storage (`torch.dtype` atau str, *opsional*, defaultnya `torch.uint8`) : Ini mengatur tipe penyimpanan untuk mengemas parameter 4-bit yang dikuantisasi. | |
| kwargs (`dict[str, Any]`, *opsional*) : Parameter tambahan untuk menginisialisasi objek konfigurasi. | |
| Ini adalah kelas pembungkus untuk semua atribut dan fitur yang mungkin dapat Anda gunakan pada model yang telah dimuat menggunakan `bitsandbytes`. | |
| Ini menggantikan `load_in_8bit` atau `load_in_4bit`, sehingga kedua opsi tersebut saling eksklusif. | |
| Saat ini hanya mendukung kuantisasi `LLM.int8()`, `FP4`, dan `NF4`. Jika metode lain ditambahkan ke `bitsandbytes`, maka argumen tambahan akan ditambahkan ke kelas ini. | |
| #### is_quantizable[[diffusers.BitsAndBytesConfig.is_quantizable]] | |
| ```python | |
| is_quantizable() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L343) | |
| Mengembalikan `True` jika model dapat dikuantisasi, `False` jika tidak. | |
| #### post_init[[diffusers.BitsAndBytesConfig.post_init]] | |
| ```python | |
| post_init() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L313) | |
| Pemeriksa keselamatan yang memastikan argumen benar - juga mengganti beberapa argumen NoneType dengan nilai default-nya. | |
| #### quantization_method[[diffusers.BitsAndBytesConfig.quantization_method]] | |
| ```python | |
| quantization_method() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L349) | |
| Metode ini mengembalikan metode kuantisasi yang digunakan untuk model. Jika model tidak dapat dikuantisasi, metode ini mengembalikan `None`. | |
| #### to_diff_dict[[diffusers.BitsAndBytesConfig.to_diff_dict]] | |
| ```python | |
| to_diff_dict() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L380) | |
| **Mengembalikan:** `dict[str, Any]` | |
| Kamus dari semua atribut yang membentuk instance konfigurasi ini, | |
| Menghapus semua atribut dari config yang sesuai dengan atribut config default untuk keterbacaan yang lebih baik dan melakukan serialisasi ke kamus Python. | |
| ## GGUFQuantizationConfig[[diffusers.GGUFQuantizationConfig]] | |
| #### diffusers.GGUFQuantizationConfig[[diffusers.GGUFQuantizationConfig]] | |
| ```python | |
| diffusers.GGUFQuantizationConfig(compute_dtype: 'torch.dtype' | None = None) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L404) | |
| **Parameter:** | |
| compute_dtype : (`torch.dtype`, defaultnya `torch.float32`): Ini mengatur tipe komputasi yang mungkin berbeda dari tipe input. Misalnya, input mungkin fp32, tetapi komputasi dapat diatur ke bf16 untuk percepatan. | |
| Ini adalah kelas konfigurasi untuk teknik kuantisasi GGUF. | |
| ## NunchakuLiteQuantizationConfig[[diffusers.NunchakuLiteQuantizationConfig]] | |
| #### diffusers.NunchakuLiteQuantizationConfig[[diffusers.NunchakuLiteQuantizationConfig]] | |
| ```python | |
| diffusers.NunchakuLiteQuantizationConfig(compute_dtype: 'torch.dtype' | str | None = None, svdq_w4a4: dict[str, Any] | None = None, awq_w4a16: dict[str, Any] | None = None, **kwargs) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L451) | |
| **Parameter:** | |
| compute_dtype (`torch.dtype`, defaultnya `torch.bfloat16`) : dtype runtime yang digunakan oleh buffer floating-point di dalam modul terkuantisasi. | |
| svdq_w4a4 (`dict`, *opsional*) : Konfigurasi target SVDQ W4A4 eksplisit dengan `precision`, `group_size`, `rank`, dan `targets`. | |
| awq_w4a16 (`dict`, *opsional*) : Konfigurasi target AWQ W4A16 eksplisit dengan `precision`, `group_size`, dan `targets`. | |
| Konfigurasi untuk memuat checkpoint Nunchaku Lite. | |
| Dukungan Nunchaku Lite di Diffusers memuat checkpoint prequantized. Untuk membuat checkpoint yang kompatibel, gunakan [`diffuse-compressor`](https://github.com/rootonchair/diffuse-compressor) untuk memilih atau menyesuaikan konfigurasi target untuk arsitektur model, melakukan kuantisasi dan mengekspor transformer, serta mengemasnya sebagai pipeline Diffusers dengan `quantization_config` ringkas yang disimpan di `config.json`. | |
| State dict yang diekspor harus cocok persis dengan arsitektur model Diffusers target. Checkpoint yang dikuantisasi dengan proyeksi QKV yang digabungkan tidak akan dapat dimuat ke dalam konfigurasi model yang mengharapkan modul proyeksi Q, K, dan V yang terpisah. | |
| Contoh konfigurasi `config.json` ringkas: | |
| ```json | |
| { | |
| "_class_name": "ErnieImageTransformer2DModel", | |
| "quantization_config": { | |
| "quant_method": "nunchaku_lite", | |
| "compute_dtype": "bfloat16", | |
| "svdq_w4a4": { | |
| "precision": "nvfp4", | |
| "group_size": 16, | |
| "rank": 32, | |
| "targets": ["layers.0.self_attention.to_q"] | |
| }, | |
| "awq_w4a16": { | |
| "precision": "int4", | |
| "group_size": 64, | |
| "targets": ["final_linear"] | |
| } | |
| } | |
| } | |
| ``` | |
| ## QuantoConfig[[diffusers.QuantoConfig]] | |
| #### diffusers.QuantoConfig[[diffusers.QuantoConfig]] | |
| ```python | |
| diffusers.QuantoConfig(weights_dtype: str = 'int8', modules_to_not_convert: list[str] | None = None, **kwargs) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L669) | |
| **Parameter:** | |
| weights_dtype (`str`, *opsional*, defaultnya `"int8"`) : dtype target untuk bobot setelah kuantisasi. Nilai yang didukung adalah ("float8","int8","int4","int2") | |
| Ini adalah kelas pembungkus untuk semua atribut dan fitur yang mungkin dapat Anda gunakan pada model yang telah dimuat menggunakan `quanto`. | |
| `QuantoConfig` tidak lagi didukung dan akan dihapus pada versi 1.0.0. Pertimbangkan untuk beralih ke salah satu backend kuantisasi lain yang didukung, seperti [BitsAndBytesConfig](/docs/diffusers/main/id/api/quantization#diffusers.BitsAndBytesConfig) atau [TorchAoConfig](/docs/diffusers/main/id/api/quantization#diffusers.TorchAoConfig). | |
| modules_to_not_convert (`list`, *opsional*, default ke `None`): Daftar modul yang tidak akan dikuantisasi, berguna untuk menguantisasi model yang secara eksplisit membutuhkan beberapa modul tetap berada pada presisi aslinya (misalnya encoder Whisper, encoder Llava, lapisan gate Mixtral). | |
| #### post_init[[diffusers.QuantoConfig.post_init]] | |
| ```python | |
| post_init() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L703) | |
| Pemeriksa keselamatan yang memastikan argumen benar | |
| ## SDNQConfig[[diffusers.SDNQConfig]] | |
| #### diffusers.SDNQConfig[[diffusers.SDNQConfig]] | |
| ```python | |
| diffusers.SDNQConfig(*args, **kwargs) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L981) | |
| **Parameter:** | |
| weights_dtype (`str`, *opsional*, defaultnya `"int8"`) : dtype target untuk bobot setelah kuantisasi, misalnya `"int8"`, `"uint4"`, `"float8_e4m3fn"`. Lihat `sdnq.common.accepted_weight_dtypes` untuk semua nilai yang didukung. | |
| group_size (`int`, *opsional*, defaultnya `0`) : Berapa banyak elemen tensor yang berbagi grup kuantisasi yang sama. `0` memilih secara otomatis berdasarkan `weights_dtype`, `-1` menonaktifkan pengelompokan dan menggunakan kuantisasi per baris. | |
| use_svd (`bool`, *opsional*, defaultnya `False`) : Apakah akan menerapkan algoritma SVDQuant di atas kuantisasi SDNQ. | |
| use_quantized_matmul (`bool`, *opsional*, defaultnya `False`) : Apakah akan menggunakan matmul INT8 / FP8 / FP16 yang dikuantisasi pada forward pass alih-alih BF16 / FP16. | |
| modules_to_not_convert (`list`, *opsional*, defaultnya `None`) : Daftar modul yang akan dilewati selama kuantisasi. | |
| kwargs (`dict[str, Any]`, *opsional*) : Argumen kata kunci tambahan yang diteruskan ke `sdnq.SDNQConfig` (mis. `quantized_matmul_dtype`, `svd_rank`, `use_hadamard`, `quant_conv`, `quant_embedding`, `modules_dtype_dict`). | |
| Kelas konfigurasi untuk SDNQ (SD.Next Quantization). | |
| Perpustakaan `sdnq` menyediakan konfigurasi dan kuantizer yang kompatibel dengan diffusers; kelas ini adalah pabrik tipis yang mendelegasikan ke mereka sehingga checkpoint dengan `quant_method="sdnq"` dapat dimuat secara native dengan diffusers. Semua argumen diteruskan ke `sdnq.SDNQConfig`. Memerlukan perpustakaan `sdnq`: `pip install sdnq`. | |
| Referensi: https://github.com/Disty0/sdnq | |
| ## TorchAoConfig[[diffusers.TorchAoConfig]] | |
| #### diffusers.TorchAoConfig[[diffusers.TorchAoConfig]] | |
| ```python | |
| diffusers.TorchAoConfig(quant_type: 'AOBaseConfig', modules_to_not_convert: list[str] | None = None, **kwargs) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L572) | |
| **Parameter:** | |
| quant_type (`AOBaseConfig`) : Instans subclass `AOBaseConfig` yang menentukan tipe kuantisasi. Lihat [dokumentasi torchao](https://docs.pytorch.org/ao/main/api_ref_quantization.html#inference-apis-for-quantize) untuk kelas konfigurasi yang tersedia (misalnya `Int4WeightOnlyConfig`, `Int8WeightOnlyConfig`, `Float8WeightOnlyConfig`, `Float8DynamicActivationFloat8WeightConfig`, dll.). | |
| modules_to_not_convert (`list[str]`, *opsional*, default ke `None`) : Daftar modul yang tidak akan dikuantisasi, berguna untuk mengkuantisasi model yang secara eksplisit membutuhkan beberapa modul tetap berada pada presisi aslinya. | |
| Ini adalah kelas konfigurasi untuk teknik kuantisasi/keroposan torchao. | |
| Contoh: | |
| ```python | |
| from diffusers import FluxTransformer2DModel, TorchAoConfig | |
| from torchao.quantization import Int8WeightOnlyConfig | |
| quantization_config = TorchAoConfig(Int8WeightOnlyConfig()) | |
| transformer = FluxTransformer2DModel.from_pretrained( | |
| "black-forest-labs/Flux.1-Dev", | |
| subfolder="transformer", | |
| quantization_config=quantization_config, | |
| torch_dtype=torch.bfloat16, | |
| ) | |
| ``` | |
| #### from_dict[[diffusers.TorchAoConfig.from_dict]] | |
| ```python | |
| from_dict(config_dict, return_unused_kwargs = False, **kwargs) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L637) | |
| Buat konfigurasi dari kamus. | |
| #### get_apply_tensor_subclass[[diffusers.TorchAoConfig.get_apply_tensor_subclass]] | |
| ```python | |
| get_apply_tensor_subclass() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L659) | |
| Buat metode kuantisasi yang sesuai berdasarkan konfigurasi. | |
| #### to_dict[[diffusers.TorchAoConfig.to_dict]] | |
| ```python | |
| to_dict() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/quantization_config.py#L623) | |
| Mengonversi konfigurasi menjadi kamus. | |
| ## DiffusersQuantizer[[diffusers.DiffusersQuantizer]] | |
| #### diffusers.DiffusersQuantizer[[diffusers.DiffusersQuantizer]] | |
| ```python | |
| diffusers.DiffusersQuantizer(quantization_config: QuantizationConfigMixin, **kwargs) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L34) | |
| Kelas abstrak dari kuantizer HuggingFace. Saat ini mendukung kuantisasi model HF diffusers untuk inferensi dan/atau kuantisasi. Kelas ini hanya digunakan untuk diffusers.models.modeling_utils.ModelMixin.from_pretrained dan belum dapat dengan mudah digunakan di luar cakupan metode tersebut. | |
| Attributes quantization_config (`diffusers.quantizers.quantization_config.QuantizationConfigMixin`): Konfigurasi kuantisasi yang mendefinisikan parameter kuantisasi dari model Anda yang ingin dikuantisasi. modules_to_not_convert (`list[str]`, *opsional*): Daftar nama modul yang tidak akan dikonversi saat mengkuantisasi model. required_packages (`list[str]`, *opsional*): Daftar paket pip yang wajib diinstal sebelum menggunakan kuantizer. requires_calibration (`bool`): Apakah metode kuantisasi memerlukan kalibrasi model sebelum digunakan. | |
| #### adjust_max_memory[[diffusers.DiffusersQuantizer.adjust_max_memory]] | |
| ```python | |
| adjust_max_memory(max_memory: dict[str, int | str]) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L133) | |
| sesuaikan argumen max_memory untuk infer_auto_device_map() jika memori tambahan diperlukan untuk kuantisasi | |
| #### adjust_target_dtype[[diffusers.DiffusersQuantizer.adjust_target_dtype]] | |
| ```python | |
| adjust_target_dtype(torch_dtype: torch.dtype) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L91) | |
| **Parameter:** | |
| torch_dtype (`torch.dtype`, *opsional*) : torch_dtype yang digunakan untuk menghitung device_map. | |
| Override metode ini jika Anda ingin menyesuaikan variabel `target_dtype` yang digunakan dalam `from_pretrained` untuk menghitung device_map dalam kasus device_map berupa `str`. Misalnya, untuk bitsandbytes kami memaksa `target_dtype` menjadi `torch.int8` dan untuk 4-bit kami meneruskan enum kustom `accelerate.CustomDtype.int4`. | |
| #### check_if_quantized_param[[diffusers.DiffusersQuantizer.check_if_quantized_param]] | |
| ```python | |
| check_if_quantized_param(model: ModelMixin, param_value: torch.Tensor, param_name: str, state_dict: dict[str, typing.Any], **kwargs) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L137) | |
| memeriksa apakah komponen state_dict yang dimuat merupakan bagian dari param kuantisasi + beberapa validasi; hanya didefinisikan untuk metode kuantisasi yang memerlukan pembuatan parameter baru untuk kuantisasi. | |
| #### check_quantized_param_shape[[diffusers.DiffusersQuantizer.check_quantized_param_shape]] | |
| ```python | |
| check_quantized_param_shape(*args, **kwargs) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L157) | |
| memeriksa apakah parameter terkuantisasi memiliki bentuk yang diharapkan. | |
| #### create_quantized_param[[diffusers.DiffusersQuantizer.create_quantized_param]] | |
| ```python | |
| create_quantized_param(*args, **kwargs) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L151) | |
| mengambil komponen yang diperlukan dari state_dict dan membuat param yang dikuantisasi. | |
| #### dequantize[[diffusers.DiffusersQuantizer.dequantize]] | |
| ```python | |
| dequantize(model) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L219) | |
| Potensi untuk mendekuantisasi model guna mengambil model asli, dengan sedikit penurunan akurasi / kinerja. Perhatikan bahwa tidak semua skema kuantisasi mendukung ini. | |
| #### get_cuda_warm_up_factor[[diffusers.DiffusersQuantizer.get_cuda_warm_up_factor]] | |
| ```python | |
| get_cuda_warm_up_factor() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L232) | |
| Faktor yang digunakan dalam `caching_allocator_warmup` untuk mendapatkan jumlah byte yang akan dialokasikan sebelumnya guna pemanasan cuda. Faktor 2 berarti kita mengalokasikan semua byte dalam model kosong (karena kita mengalokasikan dalam fp16), faktor 4 berarti kita mengalokasikan setengah memori dari bobot yang berada dalam model kosong, dan seterusnya... | |
| #### get_special_dtypes_update[[diffusers.DiffusersQuantizer.get_special_dtypes_update]] | |
| ```python | |
| get_special_dtypes_update(model, torch_dtype: torch.dtype) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L113) | |
| **Parameter:** | |
| model (`~diffusers.models.modeling_utils.ModelMixin`) : Model yang akan dikuantisasi | |
| torch_dtype (`torch.dtype`) : dtype yang diteruskan ke metode `from_pretrained`. | |
| mengembalikan dtypes untuk modul yang tidak dikuantisasi - digunakan untuk perhitungan device_map dalam kasus di mana str dilewatkan sebagai device_map. Metode ini akan menggunakan `modules_to_not_convert` yang dimodifikasi di `_process_model_before_weight_loading`. Model `diffusers` belum memiliki atribut `modules_to_not_convert` tetapi ini bisa berubah segera di masa depan. | |
| #### postprocess_model[[diffusers.DiffusersQuantizer.postprocess_model]] | |
| ```python | |
| postprocess_model(model: ModelMixin, **kwargs) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L206) | |
| **Parameter:** | |
| model (`~diffusers.models.modeling_utils.ModelMixin`) : Model yang akan dikuantisasi | |
| kwargs (`dict`, *opsional*) : Argumen kata kunci yang diteruskan ke `_process_model_after_weight_loading`. | |
| Lakukan proses pascapemrosesan model setelah pemuatan bobot. Pastikan untuk menimpa metode abstrak `_process_model_after_weight_loading`. | |
| #### preprocess_model[[diffusers.DiffusersQuantizer.preprocess_model]] | |
| ```python | |
| preprocess_model(model: ModelMixin, **kwargs) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L190) | |
| **Parameter:** | |
| model (`~diffusers.models.modeling_utils.ModelMixin`) : Model yang akan dikuantisasi | |
| kwargs (`dict`, *opsional*) : Argumen kata kunci yang diteruskan ke `_process_model_before_weight_loading`. | |
| Mengatur atribut model dan/atau mengonversi model sebelum pemuatan bobot. Pada titik ini, model harus diinisialisasi pada perangkat meta sehingga Anda dapat dengan bebas memanipulasi kerangka model untuk mengganti modul secara in-place. Pastikan untuk menimpa metode abstrak `_process_model_before_weight_loading`. | |
| #### update_device_map[[diffusers.DiffusersQuantizer.update_device_map]] | |
| ```python | |
| update_device_map(device_map: dict[str, typing.Any] | None) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L79) | |
| **Parameter:** | |
| device_map (`dict | str`, *opsional*) : device_map yang diteruskan melalui metode `from_pretrained`. | |
| Override metode ini jika Anda ingin mengganti device map yang ada dengan yang baru. Misalnya, untuk bitsandbytes, karena `accelerate` adalah persyaratan wajib, jika tidak ada device_map yang di-pass, maka device_map akan diset ke `"auto"`` | |
| #### update_missing_keys[[diffusers.DiffusersQuantizer.update_missing_keys]] | |
| ```python | |
| update_missing_keys(model, missing_keys: list[str], prefix: str) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L103) | |
| **Parameter:** | |
| missing_keys (`list[str]`, *opsional*) : Daftar kunci yang hilang di checkpoint dibandingkan dengan state dict dari model | |
| Override metode ini jika Anda ingin menyesuaikan `missing_keys`. | |
| #### update_torch_dtype[[diffusers.DiffusersQuantizer.update_torch_dtype]] | |
| ```python | |
| update_torch_dtype(torch_dtype: torch.dtype) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L68) | |
| **Parameter:** | |
| torch_dtype (`torch.dtype`) : dtype input yang diteruskan dalam `from_pretrained` | |
| Beberapa metode kuantisasi memerlukan pengaturan dtype model secara eksplisit ke dtype target. Anda perlu menimpa metode ini jika ingin memastikan perilaku tersebut tetap terjaga | |
| #### validate_environment[[diffusers.DiffusersQuantizer.validate_environment]] | |
| ```python | |
| validate_environment(*args, **kwargs) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/quantizers/base.py#L163) | |
| Metode ini digunakan untuk memeriksa potensi konflik dengan argumen yang diteruskan dalam `from_pretrained`. Anda perlu mendefinisikannya untuk semua kuantizer masa depan yang diintegrasikan dengan diffusers. Jika tidak ada pemeriksaan eksplisit yang diperlukan, cukup kembalikan apa pun. | |
Xet Storage Details
- Size:
- 25.9 kB
- Xet hash:
- 70befcab281e8bc13d1d357b30cbeedc2057804d8b04532edde432d69fc71cf2
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.