Buckets:

hf-doc-build/doc / diffusers /v0.43.0 /ar /api /quantization.md
mishig's picture
|
download
raw
31.2 kB

التكميم

تُقلّل تقنيات التكميم من تكاليف الذاكرة والحساب من خلال تمثيل الأوزان والتفعيلات بأنواع بيانات ذات دقة أقل، مثل الأعداد الصحيحة الثمانية البتات (int8). وهذا يتيح تحميل نماذج أكبر لا يمكن عادةً استيعابها في الذاكرة، وتسريع الاستدلال.

تعلّم كيفية تكميم النماذج في دليل Quantization.

PipelineQuantizationConfig[[diffusers.PipelineQuantizationConfig]]

diffusers.PipelineQuantizationConfig[[diffusers.PipelineQuantizationConfig]]

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)

المصدر

المعاملات:

quant_backend (str) : واجهة الكمية (Quantization backend) التي سيتم استخدامها. عند استخدام هذا الخيار، نفترض أن الواجهة متاحة لكل من diffusers وtransformers.

quant_kwargs (dict) : المعاملات اللازمة لتصفية فئة واجهة الخلفية (backend) للكمّية.

components_to_quantize (list) : مكونات خط الأنابيب الذي سيتم تكميمه.

quant_mapping (dict) : تعيين يحدد مواصفات التكميم (quantization) التي سيتم استخدامها لمكونات خط المعالجة. عند استخدام هذا الحُجج، لا يُتوقع من المستخدمين تقديم quant_backend، وquant_kawargs، وcomponents_to_quantize.

فئة التكوين المستخدمة عند تطبيق التكميم أثناء التشغيل على from_pretrained().

BFLQuantizationConfig[[diffusers.BFLQuantizationConfig]]

diffusers.BFLQuantizationConfig[[diffusers.BFLQuantizationConfig]]

diffusers.BFLQuantizationConfig(compute_dtype: 'torch.dtype' | None = None)

المصدر

المعاملات:

compute_dtype (torch.dtype، الافتراضي هو torch.bfloat16) : نوع البيانات (dtype) للتفعيلات وللطبقات غير المُكمّاة. الأجهزة التي لا تحتوي على نواة FP8 أو NVFP4 مدمجة تقوم بإلغاء تكميم الأوزان إلى هذا النوع من البيانات في كل تمريرة أمامية.

إعدادات لتحميل نقاط التفتيش المُكمّمة باستخدام مخططي fp8r وnvfp4 من Black Forest Labs.

تُقرأ كلا المخططين من نقطة الحفظ عبر ~FromSingleFileMixin.from_single_file؛ ولا يُدعم تكميم النموذج أثناء التشغيل. يتم تكميم طبقة خطية عندما يأتي وزنها مع مصفوفات مقياس:

  • fp8r: weight هو float8_e4m3fn بالشكل [N, K] وweight_scale هو مقياس fp32 لكل صف [N].
  • nvfp4: weight هو uint8 بشكل [N, K/2] (قيمتان E2M1 لكل بايت)، وweight_scale هو مقياس كتلة float8_e4m3fn بشكل [N, K/16]، بينما weight_scale_2 وinput_scale هما قيمتان قياسية fp32 تحملان مقياس الأوزان العام ومقياس التنشيط المُعايَر (تخطيط ModelOpt NVFP4).

BitsAndBytesConfig[[diffusers.BitsAndBytesConfig]]

diffusers.BitsAndBytesConfig[[diffusers.BitsAndBytesConfig]]

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)

المصدر

المعاملات:

load_in_8bit (bool، اختياري، القيمة الافتراضية False) : يُستخدم هذا العلم لتفعيل التكميم 8-بت باستخدام LLM.int8().

load_in_4bit (bool، اختياري، القيمة الافتراضية False) : يُستخدم هذا العلم لتفعيل التكميم 4-بت عن طريق استبدال طبقات Linear بطبقات FP4/NF4 من bitsandbytes.

llm_int8_threshold (float، اختياري، القيمة الافتراضية 6.0) : يتوافق هذا مع عتبة القيم الشاذة لكشف القيم الشاذة كما هو موصوف في ورقة LLM.int8() : 8-bit Matrix Multiplication for Transformers at Scale: https://huggingface.co/papers/2208.07339 أي قيمة لحالة خفية تتجاوز هذه العتبة ستُعتبر قيمة شاذة، وسيتم تنفيذ العملية على تلك القيم باستخدام fp16. عادةً ما تكون القيم موزعة بشكل طبيعي، أي أن معظمها يقع في النطاق [-3.5، 3.5]، لكن هناك بعض القيم الشاذة المنهجية الاستثنائية التي تكون موزعة بشكل مختلف تمامًا في النماذج الكبيرة. غالبًا ما تقع هذه القيم الشاذة في الفترة [-60، -6] أو [6، 60]. يعمل تكميم Int8 بشكل جيد للقيم ذات المقدار ~5، لكن ما يتجاوز ذلك، هناك عقوبة أداء كبيرة. عتبة افتراضية جيدة هي 6، لكن قد تكون هناك حاجة إلى عتبة أقل للنماذج الأقل استقرارًا (النماذج الصغيرة، الضبط الدقيق).

llm_int8_skip_modules (list[str]، اختياري) : قائمة صريحة بالوحدات التي لا نرغب في تحويلها إلى 8 بت. هذا مفيد للنماذج مثل Jukebox التي تحتوي على عدة رؤوس في مواقع مختلفة وليس بالضرورة في الموقع الأخير. على سبيل المثال، في نماذج CausalLM، يُحافظ عادةً على lm_head الأخير في dtype الأصلي الخاص به.

llm_int8_enable_fp32_cpu_offload (bool، اختياري، القيمة الافتراضية False) : يُستخدم هذا العلم لحالات الاستخدام المتقدمة وللمستخدمين الذين على دراية بهذه الميزة. إذا كنت ترغب في تقسيم نموذجك إلى أجزاء مختلفة وتشغيل بعض الأجزاء بدقة int8 على وحدة معالجة الرسوميات GPU وبعض الأجزاء بدقة fp32 على وحدة المعالجة المركزية CPU، يمكنك استخدام هذا العلم. وهذا مفيد لتحميل النماذج الكبيرة مثل google/flan-t5-xxl. لاحظ أن عمليات int8 لن تُنفَّذ على وحدة المعالجة المركزية CPU.

llm_int8_has_fp16_weight (bool، اختياري، القيمة الافتراضية False) : يعمل هذا العلم على تشغيل LLM.int8() مع أوزان رئيسية بدقة 16 بت. وهذا مفيد للضبط الدقيق (fine-tuning) حيث لا حاجة لتحويل الأوزان ذهابًا وإيابًا من أجل المرور العكسي (backward pass).

bnb_4bit_compute_dtype (torch.dtype أو str، اختياري، الافتراضي torch.float32) : يحدد هذا نوع الحساب الذي قد يختلف عن نوع الإدخال. على سبيل المثال، قد تكون المدخلات من نوع fp32، لكن يمكن ضبط الحساب على bf16 لتحقيق تسريع.

bnb_4bit_quant_type (str، اختياري، القيمة الافتراضية "fp4") : يحدد هذا نوع بيانات التكميم في طبقات bnb.nn.Linear4Bit. الخيارات هي أنواع بيانات FP4 وNF4 التي تُحدد بواسطة fp4 أو nf4.

bnb_4bit_use_double_quant (bool، اختياري، القيمة الافتراضية False) : يُستخدم هذا العلم للتكميم المتداخل، حيث يتم تكميم ثوابت التكميم من التكميم الأول مرة أخرى.

bnb_4bit_quant_storage (torch.dtype أو str، اختياري، الافتراضي torch.uint8) : يحدد نوع التخزين لتعبئة المعاملات الكمّية ذات 4 بت.

kwargs (dict[str, Any]، اختياري) : معلمات إضافية يتم من خلالها تهيئة كائن الإعدادات.

هذه فئة غلاف (wrapper class) تجمع جميع الخصائص والميزات الممكنة التي يمكنك التعامل معها في نموذج تم تحميله باستخدام bitsandbytes.

يستبدل هذا الخيار load_in_8bit أو load_in_4bit وبالتالي فإن كلا الخيارين متنافيان.

يدعم حاليًا LLM.int8()، FP4، وNF4 فقط. إذا أُضيفت طرق أخرى إلى bitsandbytes، فسيتم إضافة حُجج إضافية إلى هذه الفئة.

is_quantizable[[diffusers.BitsAndBytesConfig.is_quantizable]]

is_quantizable()

المصدر

يعيد True إذا كان النموذج قابلًا للكمّية، وإلا يعيد False.

post_init[[diffusers.BitsAndBytesConfig.post_init]]

post_init()

المصدر

فاحص الأمان الذي يتحقق من صحة الحُجج - كما يستبدل بعض حُجج نوع NoneType بقيمها الافتراضية.

quantization_method[[diffusers.BitsAndBytesConfig.quantization_method]]

quantization_method()

المصدر

تعيد هذه الطريقة طريقة التكميم المستخدمة للنموذج. إذا لم يكن النموذج قابلاً للتكميم، فإنها تعيد None.

to_diff_dict[[diffusers.BitsAndBytesConfig.to_diff_dict]]

to_diff_dict()

المصدر

يعيد: dict[str, Any]

قاموس بجميع السمات التي تُشكّل هذا المثال من التهيئة،

يزيل جميع الخصائص من config التي تتوافق مع خصائص الإعداد الافتراضي لتحسين قابلية القراءة، ثم يُسلسلها إلى قاموس Python.

GGUFQuantizationConfig[[diffusers.GGUFQuantizationConfig]]

diffusers.GGUFQuantizationConfig[[diffusers.GGUFQuantizationConfig]]

diffusers.GGUFQuantizationConfig(compute_dtype: 'torch.dtype' | None = None)

المصدر

المعاملات:

compute_dtype : (torch.dtype، الافتراضي هو torch.float32): يحدد هذا نوع الحساب، والذي قد يختلف عن نوع الإدخال. على سبيل المثال، قد تكون المدخلات من نوع fp32، لكن يمكن ضبط الحساب على bf16 لتحقيق تسريع.

هذا هو فئة إعدادات لتقنيات تكميم GGUF.

NunchakuLiteQuantizationConfig[[diffusers.NunchakuLiteQuantizationConfig]]

diffusers.NunchakuLiteQuantizationConfig[[diffusers.NunchakuLiteQuantizationConfig]]

diffusers.NunchakuLiteQuantizationConfig(compute_dtype: 'torch.dtype' | str | None = None, svdq_w4a4: dict[str, Any] | None = None, awq_w4a16: dict[str, Any] | None = None, **kwargs)

المصدر

المعاملات:

compute_dtype (torch.dtype، الافتراضي هو torch.bfloat16) : نوع البيانات (dtype) المستخدم وقت التشغيل في المخازن المؤقتة ذات الفاصلة العائمة داخل الوحدات المُكمّمة.

svdq_w4a4 (dict, اختياري) : تكوين SVDQ W4A4 المستهدف الصريح مع precision وgroup_size وrank وtargets.

awq_w4a16 (dict، اختياري) : إعدادات AWQ W4A16 المستهدفة الصريحة مع precision وgroup_size وtargets.

إعدادات لتحميل نقاط التفتيش الخاصة بـ Nunchaku Lite.

يدعم Nunchaku Lite في Diffusers تحميل نقاط التفتيش المُكمّاة مسبقًا. لإنشاء نقطة تفتيش متوافقة، استخدم diffuse-compressor لاختيار أو تكييف إعداد مستهدف لبنية النموذج، ثم قم بتكميم المُحوِّل وتصديره، وجمّعه كخط أنابيب Diffusers مع تخزين quantization_config المدمج في config.json.

يجب أن يطابق state dict المُصدَّر بنية نموذج Diffusers المستهدف تمامًا. لن يتم تحميل نقاط التفتيش المُكمَّاة باستخدام إسقاطات QKV المدمجة في إعدادات نموذج يتوقع وحدات إسقاط منفصلة لكل من Q وK وV.

مثال على إعداد config.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]]

diffusers.QuantoConfig(weights_dtype: str = 'int8', modules_to_not_convert: list[str] | None = None, **kwargs)

المصدر

المعاملات:

weights_dtype (str، اختياري، القيمة الافتراضية "int8") : نوع البيانات المستهدف للأوزان بعد التكميم. القيم المدعومة هي ("float8","int8","int4","int2")

هذه فئة غلاف (wrapper class) تجمع جميع الخصائص والميزات الممكنة التي يمكنك التعامل معها في نموذج تم تحميله باستخدام quanto.

QuantoConfig لم يعد مدعومًا وسيتم إزالته في الإصدار 1.0.0. يُنصح بالانتقال إلى أحد محركات الكمّية الأخرى المدعومة، مثل BitsAndBytesConfig أو TorchAoConfig.

modules_to_not_convert (list، اختياري، القيمة الافتراضية None): قائمة الوحدات التي يجب عدم تكميمها، وهو مفيد لتكميم النماذج التي تتطلب صراحةً إبقاء بعض الوحدات في دقتها الأصلية (مثل مشفّر Whisper، ومشفّر Llava، وطبقات بوابة Mixtral).

post_init[[diffusers.QuantoConfig.post_init]]

post_init()

المصدر

فاحص الأمان الذي يتحقق من صحة الحُجج

SDNQConfig[[diffusers.SDNQConfig]]

diffusers.SDNQConfig[[diffusers.SDNQConfig]]

diffusers.SDNQConfig(*args, **kwargs)

المصدر

المعاملات:

weights_dtype (str، اختياري، القيمة الافتراضية "int8") : نوع البيانات المستهدف للأوزان بعد التكميم، مثل "int8"، "uint4"، "float8_e4m3fn". راجع sdnq.common.accepted_weight_dtypes لجميع القيم المدعومة.

group_size (int، اختياري، القيمة الافتراضية 0) : عدد عناصر الموتر (Tensor) التي تشترك في نفس مجموعة التكميم. يقوم 0 باختيار تلقائي بناءً على weights_dtype، بينما يعطّل -1 التجميع ويستخدم التكميم على مستوى الصفوف.

use_svd (bool، اختياري، الافتراضي False) : ما إذا كان سيتم تطبيق خوارزمية SVDQuant فوق تكميم SDNQ.

use_quantized_matmul (bool، اختياري، الافتراضي False) : ما إذا كان سيتم استخدام ضرب المصفوفات الكمي INT8 / FP8 / FP16 في المرور الأمامي بدلاً من BF16 / FP16.

modules_to_not_convert (list، اختياري، القيمة الافتراضية None) : قائمة الوحدات التي يجب تجاوزها أثناء التكميم.

kwargs (dict[str, Any]، اختياري) : حُجج إضافية تُمرَّر إلى sdnq.SDNQConfig (مثل quantized_matmul_dtype، svd_rank، use_hadamard، quant_conv، quant_embedding، modules_dtype_dict).

فئة التهيئة لـ SDNQ (SD.Next Quantization).

تأتي مكتبة sdnq مع إعدادات ومكمِّم متوافقين مع diffusers؛ هذه الفئة هي مصنع رفيع يحوّل المهام إليهما بحيث تُحمَّل نقاط التفتيش التي تحتوي على quant_method="sdnq" بشكل أصلي مع diffusers. يتم تمرير جميع الحُجج إلى sdnq.SDNQConfig. تتطلب هذه العملية مكتبة sdnq: pip install sdnq.

مرجع: https://github.com/Disty0/sdnq

TorchAoConfig[[diffusers.TorchAoConfig]]

diffusers.TorchAoConfig[[diffusers.TorchAoConfig]]

diffusers.TorchAoConfig(quant_type: 'AOBaseConfig', modules_to_not_convert: list[str] | None = None, **kwargs)

المصدر

المعاملات:

quant_type (AOBaseConfig) : نسخة من فئة فرعية من AOBaseConfig تحدد نوع التكميم. راجع توثيق torchao لمعرفة فئات الإعدادات المتاحة (مثل Int4WeightOnlyConfig، Int8WeightOnlyConfig، Float8WeightOnlyConfig، Float8DynamicActivationFloat8WeightConfig، وغيرها).

modules_to_not_convert (list[str]، اختياري، الافتراضي None) : قائمة الوحدات التي يجب عدم تكميمها، وهو مفيد لتكميم النماذج التي تتطلب صراحةً إبقاء بعض الوحدات في دقتها الأصلية.

هذا هو فئة إعدادات لتقنيات الكمّ والتخلخل في torchao.

مثال:

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]]

from_dict(config_dict, return_unused_kwargs = False, **kwargs)

المصدر

إنشاء تكوين من قاموس.

get_apply_tensor_subclass[[diffusers.TorchAoConfig.get_apply_tensor_subclass]]

get_apply_tensor_subclass()

المصدر

أنشئ طريقة التكميم المناسبة بناءً على الإعداد.

to_dict[[diffusers.TorchAoConfig.to_dict]]

to_dict()

المصدر

تحويل الإعدادات إلى قاموس.

DiffusersQuantizer[[diffusers.DiffusersQuantizer]]

diffusers.DiffusersQuantizer[[diffusers.DiffusersQuantizer]]

diffusers.DiffusersQuantizer(quantization_config: QuantizationConfigMixin, **kwargs)

المصدر

فئة مجردة لمُكمِّم HuggingFace. تدعم حاليًا كمّ نماذج HF diffusers للاستدلال و/أو الكمّ. تُستخدم هذه الفئة فقط في diffusers.models.modeling_utils.ModelMixin.from_pretrained ولا يمكن استخدامها بسهولة خارج نطاق تلك الطريقة بعد.

خصائص quantization_config (diffusers.quantizers.quantization_config.QuantizationConfigMixin): إعدادات التكميم التي تحدد معاملات التكميم لنموذجك الذي تريد تكميمه. modules_to_not_convert (list[str]، اختياري): قائمة بأسماء الوحدات التي يجب عدم تحويلها عند تكميم النموذج. required_packages (list[str]، اختياري): قائمة بحزم pip المطلوبة التي يجب تثبيتها قبل استخدام مُكمِّم requires_calibration (bool): ما إذا كانت طريقة التكميم تتطلب معايرة النموذج قبل استخدامه.

adjust_max_memory[[diffusers.DiffusersQuantizer.adjust_max_memory]]

adjust_max_memory(max_memory: dict[str, int | str])

المصدر

اضبط معامل max_memory للدالة infer_auto_device_map() إذا كانت هناك حاجة إلى ذاكرة إضافية للكمّ

adjust_target_dtype[[diffusers.DiffusersQuantizer.adjust_target_dtype]]

adjust_target_dtype(torch_dtype: torch.dtype)

المصدر

المعاملات:

torch_dtype (torch.dtype، اختياري) : نوع torch_dtype المستخدم لحساب device_map.

تجاوز هذه الطريقة إذا كنت ترغب في تعديل متغير target_dtype المستخدم في from_pretrained لحساب device_map في حال كان device_map من نوع str. على سبيل المثال، في حالة bitsandbytes، نُجبر على تعيين target_dtype إلى torch.int8، وفي حالة 4-bit، نمرر enum مخصصًا accelerate.CustomDtype.int4.

check_if_quantized_param[[diffusers.DiffusersQuantizer.check_if_quantized_param]]

check_if_quantized_param(model: ModelMixin, param_value: torch.Tensor, param_name: str, state_dict: dict[str, typing.Any], **kwargs)

المصدر

يتحقق مما إذا كان مكوّن state_dict المحمّل جزءًا من معامل مُكمَّم + بعض التحقق؛ يُعرَّف فقط لطرق الكمّ التي تتطلب إنشاء معاملات جديدة للكمّ.

check_quantized_param_shape[[diffusers.DiffusersQuantizer.check_quantized_param_shape]]

check_quantized_param_shape(*args, **kwargs)

المصدر

يتحقق من أن المعامل المُكمَّم له الشكل المتوقع.

create_quantized_param[[diffusers.DiffusersQuantizer.create_quantized_param]]

create_quantized_param(*args, **kwargs)

المصدر

يستخرج المكونات المطلوبة من state_dict وينشئ معاملًا مُكمَّمًا.

إلغاء التكميم[[diffusers.DiffusersQuantizer.dequantize]]

dequantize(model)

المصدر

قد يؤدي إلغاء التكميم إلى استعادة النموذج الأصلي، مع بعض الفقدان في الدقة / الأداء. لاحظ أن مخططات التكميم لا تدعم جميعها هذه العملية.

get_cuda_warm_up_factor[[diffusers.DiffusersQuantizer.get_cuda_warm_up_factor]]

get_cuda_warm_up_factor()

المصدر

العامل الذي يُستخدم في caching_allocator_warmup للحصول على عدد البايتات التي يجب تخصيصها مسبقًا لإحماء cuda. يعني عامل بقيمة 2 تخصيص جميع البايتات في النموذج الفارغ (بما أننا نخصص في fp16)، ويعني عامل بقيمة 4 تخصيص نصف ذاكرة الأوزان الموجودة في النموذج الفارغ، وهكذا...

get_special_dtypes_update[[diffusers.DiffusersQuantizer.get_special_dtypes_update]]

get_special_dtypes_update(model, torch_dtype: torch.dtype)

المصدر

المعاملات:

model (~diffusers.models.modeling_utils.ModelMixin) : النموذج الذي سيتم تكميمه

torch_dtype (torch.dtype) : نوع البيانات المُمرَّر في طريقة from_pretrained.

returns dtypes for modules that are not quantized - used for the computation of the device_map in case one passes a str as a device_map. The method will use the modules_to_not_convert that is modified in _process_model_before_weight_loading. diffusers models don't have any modules_to_not_convert attributes yet but this can change soon in the future.

postprocess_model[[diffusers.DiffusersQuantizer.postprocess_model]]

postprocess_model(model: ModelMixin, **kwargs)

المصدر

المعاملات:

model (~diffusers.models.modeling_utils.ModelMixin) : النموذج الذي سيتم تكميمه

kwargs (dict، اختياري) : الحُجج المُسمّاة التي تُمرَّر مع _process_model_after_weight_loading.

قم بمعالجة النموذج بعد تحميل الأوزان. تأكد من تجاوز الطريقة المجردة _process_model_after_weight_loading.

preprocess_model[[diffusers.DiffusersQuantizer.preprocess_model]]

preprocess_model(model: ModelMixin, **kwargs)

المصدر

المعاملات:

model (~diffusers.models.modeling_utils.ModelMixin) : النموذج الذي سيتم تكميمه

kwargs (dict، اختياري) : الحُجج المُسمّاة التي تُمرَّر مع _process_model_before_weight_loading.

ضبط سمات النموذج و/أو تحويل النموذج قبل تحميل الأوزان. في هذه المرحلة يجب أن يكون النموذج مُهيأً على جهاز meta حتى تتمكن من التلاعب بحُزمة النموذج بحرية من أجل استبدال الوحدات في مكانها. تأكد من تجاوز الطريقة المجردة _process_model_before_weight_loading.

update_device_map[[diffusers.DiffusersQuantizer.update_device_map]]

update_device_map(device_map: dict[str, typing.Any] | None)

المصدر

المعاملات:

device_map (dict | str، اختياري) : خريطة الأجهزة (device_map) التي يتم تمريرها عبر طريقة from_pretrained.

Override this method if you want to pass a override the existing device map with a new one. E.g. for bitsandbytes, since accelerate is a hard requirement, if no device_map is passed, the device_map is set to `"auto"``

update_missing_keys[[diffusers.DiffusersQuantizer.update_missing_keys]]

update_missing_keys(model, missing_keys: list[str], prefix: str)

المصدر

المعاملات:

missing_keys (list[str]، اختياري) : قائمة المفاتيح المفقودة في نقطة الحفظ مقارنةً بـ state dict الخاص بالنموذج

استبدل هذه الطريقة إذا كنت ترغب في تعديل missing_keys.

update_torch_dtype[[diffusers.DiffusersQuantizer.update_torch_dtype]]

update_torch_dtype(torch_dtype: torch.dtype)

المصدر

المعاملات:

torch_dtype (torch.dtype) : نوع البيانات المُدخل الذي يُمرَّر في from_pretrained

تتطلب بعض طرق التكميم ضبط نوع البيانات (dtype) للنموذج بشكل صريح على نوع البيانات المستهدف. يجب عليك تجاوز هذه الطريقة إذا كنت ترغب في التأكد من الحفاظ على هذا السلوك

validate_environment[[diffusers.DiffusersQuantizer.validate_environment]]

validate_environment(*args, **kwargs)

المصدر

يُستخدم هذا الأسلوب للتحقق من وجود تعارضات محتملة مع الحُجج المُمرَّرة في from_pretrained. يجب عليك تعريفه لجميع مُكمِّسات المستقبل المُدمجة مع diffusers. إذا لم تكن هناك حاجة إلى تحقق صريح، فبمجرد عدم إرجاع أي شيء.

Xet Storage Details

Size:
31.2 kB
·
Xet hash:
6364e04d7f8beb8c2723ad8d78a3a2665e2460581f29e459e89d5facfd9d93d3

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.