Ë
    ÜÓ^jŸ
  ã                   óF   — d Z ddlmZ ddlmZ erddlmZ  G d„ de«      Zy	)
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                   ó\   — e Zd ZU dZded<   dZd„ Zed„ «       Zed„ «       Z	ede
fd	„«       Zy
)ÚGemmaQuantizeraN  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                 ó"  — ddl m} | j                  || j                  j                  |j
                  «      | _         ||| j                  | j                  ¬«      }t        t        |dd «      xs g «      }|j                  ddg«       ||_	        y )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        úr/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/quantizers/quantizer_gemma.pyÚ$_process_model_before_weight_loadingz3GemmaQuantizer._process_model_before_weight_loading.   s‰   € ÝHà&*×&EÑ&EØ�4×+Ñ+×BÑBÀE×D_ÑD_ó'
ˆÔ#ñ *ØØ $× 8Ñ 8Ø#'×#>Ñ#>ô
ˆô ”g˜eÐ%IÈ4ÓPÒVÐTVÓWˆØ�‰Ð-Ð/DÐEÔFØ3:ˆÕ0ó    c                  ó   — y©NT© ©r   s    r   Úis_serializablezGemmaQuantizer.is_serializableA   ó   € àr   c                  ó   — y)NFr   r   s    r   Úis_trainablezGemmaQuantizer.is_trainableE   s   € àr   Úreturnc                  ó   — yr   r   r   s    r   Úis_compileablezGemmaQuantizer.is_compileableI   r!   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__Úrequires_calibrationr   Úpropertyr    r#   Úboolr&   r   r   r   r	   r	   "   s]   … ñð 3Ó2ØÐò;ð& ñó ðð ñó ðð ð ò ó ñr   r	   N)r*   Útypingr   Úbaser   Úutils.quantization_configr   r	   r   r   r   ú<module>r2      s&   ðñõ !å ñ ÝCô)�[õ )r   