
    3j
                     P    S r SSKJr  SSKJr  \(       a  SSKJr   " S S\5      rg	)
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                   f    \ rS rSr% SrS\S'   SrS r\S 5       r	\S 5       r
\S	\4S
 j5       rSrg)GemmaQuantizer"   a:  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`.
r   quantization_configTc                 "   SSK Jn  U R                  XR                  R                  UR
                  5      U l        U" UU R                  U R                  S9n[        [        USS 5      =(       d    / 5      nUR                  SS/5        XAl	        g )Nr   )replace_with_quant_layers)r   modules_to_not_convert"_keys_to_ignore_on_load_unexpectedz.*\.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        a/home/wildlama/miniconda3/lib/python3.13/site-packages/transformers/quantizers/quantizer_gemma.py$_process_model_before_weight_loading3GemmaQuantizer._process_model_before_weight_loading.   s    H&*&E&E++BBED_D_'
# * $ 8 8#'#>#>
 ge%I4PVTVW-/DEF3:0    c                     gNT r   s    r   is_serializableGemmaQuantizer.is_serializableA       r   c                     g)NFr    r!   s    r   is_trainableGemmaQuantizer.is_trainableE   s    r   returnc                     gr   r    r!   s    r   is_compileableGemmaQuantizer.is_compileableI   r$   r   )r   N)__name__
__module____qualname____firstlineno____doc____annotations__requires_calibrationr   propertyr"   r&   boolr*   __static_attributes__r    r   r   r	   r	   "   s]     32;&       r   r	   N)r0   typingr   baser   utils.quantization_configr   r	   r    r   r   <module>r9      s&    !  C)[ )r   