+
    QV-jŸ
  ã                   óT   € R t ^ RIHt ^RIHt ]'       d   ^RIHt  ! R R]4      tR# )aH  HfQuantizer implementation for pre-quantized Gemma checkpoints.

Handles loading of checkpoints that contain:
  - Packed integer weights (INT2/4/8) with per-channel scales
  - Static Range Quantization (SRQ) activation scales
  - Audio residual quantization (rqv2_muls)
  - Quantized embeddings
  - KV cache quantization scales
)ÚTYPE_CHECKING)ÚHfQuantizer)ÚGemmaQuantizationConfigc                   óv   a € ] tR t^"t o RtRtR t]R 4       t]R 4       t	]V 3R lR l4       t
V 3R ltR	tV tR
# )ÚGemmaQuantizera:  HfQuantizer for pre-quantized Gemma checkpoints.

Replaces `nn.Linear` / `nn.Embedding` modules with their quantized
counterparts during model loading, and loads quantized weights + SRQ
scales directly from safetensors. Wrappers and unquantized layers are
skipped via `quantization_config.modules_to_not_convert`.
Tc                ó,  € ^RI Hp V P                  WP                  P                  VP
                  4      V n        V! VV P                  V P                  R7      p\        \        VRR4      ;'       g    . 4      pVP                  RR.4       WAn	        R# )é   )Úreplace_with_quant_layers)Úquantization_configÚmodules_to_not_convertÚ"_keys_to_ignore_on_load_unexpectedNz.*\.k_cache_scale$z.*\.v_cache_scale$)
Úintegrations.gemma_quantr	   Úget_modules_to_not_convertr
   r   Ú_keep_in_fp32_modulesÚsetÚgetattrÚupdater   )ÚselfÚmodelÚkwargsr	   Úignoreds   &&,  Úx/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/transformers/quantizers/quantizer_gemma.pyÚ$_process_model_before_weight_loadingÚ3GemmaQuantizer._process_model_before_weight_loading.   sˆ   € ÝHà&*×&EÑ&EØ×+Ñ+×BÑBÀE×D_ÑD_ó'
ˆÔ#ñ *ØØ $× 8Ñ 8Ø#'×#>Ñ#>ô
ˆô ”g˜eÐ%IÈ4ÓP×VÐVÐTVÓWˆØ�‰Ð-Ð/DÐEÔFØ3:Ö0ó    c                ó   € R # ©T© ©r   s   &r   Úis_serializableÚGemmaQuantizer.is_serializableA   ó   € ár   c                ó   € R # )Fr   r   s   &r   Úis_trainableÚGemmaQuantizer.is_trainableE   s   € ár   c                ó    <€ V ^8„  d   QhRS[ /# )r   Úreturn)Úbool)ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚGemmaQuantizer.__annotate__J   s   ø€ ÷ ñ ¡ñ r   c                ó   € R # r   r   r   s   &r   Úis_compileableÚGemmaQuantizer.is_compileableI   r!   r   c                ó$   <€ V ^8„  d   Qh/ R;R&   # )r   r   r
   r   )r(   r)   s   "€r   r*   r+   "   s   ø‡ ‚ ð 3Ñ2ò r   )r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úrequires_calibrationr   Úpropertyr   r#   r-   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r)   s   @r   r   r   "   s[   ø‡ € ñð  Ðò;ð& ñó ðð ñó ðð ÷ó ð÷Q ƒ r   r   N)r4   Útypingr   Úbaser   Úutils.quantization_configr   r   r   r   r   Ú<module>r=      s&   ðñõ !å ÷ ÝCô)�[ö )r   