
    qi%T                    B   d dl mZ d dlmZ d dlmZ ddlmZmZm	Z	m
Z
mZmZmZmZ erddlmZ ddlmZ i ddd	dd
ddddddddddddddddddddddddddddddddddddddd	Zd Zdad Z	 d!	 	 	 	 	 	 	 d"dZg dZ	 	 	 d#	 	 	 	 	 	 	 	 	 d$d Zy)%    )annotations)deepcopy)TYPE_CHECKING   )ChunkConcatenate"ErnieFuseAndSplitTextVisionExpertsForce16BytesAlignmentMergeModulelist	TransposeWeightConverterWeightRenaming)PreTrainedModel)HfQuantizermixtralminimax
minimax_m2	qwen2_moedeepseek_v2deepseek_v3dots1ernie4_5_moeglm4_moeglm4_moe_liteglm_moe_dsa	glm4v_moelongcat_flash
solar_open	qwen3_moeqwen3_omni_moeqwen3_omni_moe_thinkerrt_detr)	
qwen3_nextqwen3_5_moehunyuan_v1_moe	flex_olmoolmoe
exaone_moe
rt_detr_v2pp_doclayout_v2pp_doclayout_v3c                    i dt        dd      t        dd      gdt        dd      t        d	d
      gdt        dd      gdt        dd      t        dd      t        dd      gdt        dd      t        dd      t        dd      gdt        ddt               g       t        d!d"t               g       gd#t        d$d%      t        d&d'gd(t        d)*      t	        d+*      g       t        d,gd-t        d)*      g       gd.t        d/d0gdt        d)*      t	        d+*      g       t        d1d"t        d)*      g       gd2t        ddt        d+d3d45      t               g       t        d"d"t        d+d3d45      t               g       gd6t        d$d%      t        d7d8      t        d&d'gd(t        d)*      t	        d+*      g       t        d,d-t        d)*      g       gd9t        d:d;gd<t        d)*      t	        d+*      g       t        d=d>t        d)*      g       gd?t        d@dA      t        dBdC      t        dDdE      t        dFdG      t        dHdI      t        dJdK      t        dLdM      t        dNdO      t        dPdQ      t        dRdSt        d)d+T      g       t        dUdVt        d)d+T      g       t        dWgdXdYgt        d)*      g       t        dZgd[d\gt        d)d+]      g       t        d^d_gd`dagt        d)d+]      g       gdbt        dcdd      t        dedf      t        dgdh      t        didj      gdkt        dedf      t        dgdh      t        didj      t        dldm      gdnt        dcdd      t        dodp      t        dqdr      t        dgdh      t        didj      t        dsdt      t        dudv      t        dwdx      t        dydz      t        d{d|      t        d}d~      t        dd      t        dd      t        dd      t        dd      t        dd      gdt        dcdd      t        dodp      t        dgdh      t        didj      gdt        dedf      t        dgd      t        did      t        dldm      gt        dd      t        dd      t        dgdt        d)*      g       t        dgdt        d)*      g       gt        ddgd<t        d)*      t	        d+*      g       t        dd>t        d)*      g       gt        dd      gt        dd      t        dd      gd} | dxx   t        dd      t        dd      gz  cc<   t        dWd      t        d/d0gdt        d)*      t	        d+*      t               g       t        d1d"t        d)*      t               g       g| d<   | d#   j                         | d<   | dxx   t        dd      gz  cc<   | d.   j                         | d<   | dxx   t        dd      gz  cc<   t        d/d0gdt        d)*      t	        d+*      t               g       t        d1d"t        d)*      t               g       g| d<   | d   j                         | d<   | dxx   | d.   j                         z  cc<   t        j                         D ]   \  }}|| v r| |   j                         | |<   " | S )N
timesfm2_5ff0fc1ff1fc2olmo_hybridattention_layer_norminput_layernormfeedforward_layer_normpost_attention_layernormqwen3_5_textz^model.language_modelmodelsource_patternstarget_patternst5gemma2z((?<!vision_model\.)encoder.embed_tokens.z encoder.text_model.embed_tokens.z (?<!vision_model\.)encoder.norm.zencoder.text_model.norm.z"(?<!vision_model\.)encoder.layers.zencoder.text_model.layers.t5gemma2_encoderz^embed_tokens.ztext_model.embed_tokens.z^norm.ztext_model.norm.z^layers.ztext_model.layers.gpt_osszmlp.experts.gate_up_proj$zmlp.experts.gate_up_proj)r:   r;   
operationszmlp.experts.down_proj$zmlp.experts.down_projr   z.block_sparse_moe.z.mlp.z.experts.*.w1.weightz.experts.*.w3.weightz.experts.gate_up_projr   )dimr   z.experts.*.w2.weightz.experts.down_projr   zmlp.experts.*.gate_proj.weightzmlp.experts.*.up_proj.weightzmlp.experts.*.down_proj.weightqwen3_vl_moe   T)
check_dimsphimoez.gate.weightz.router.weightlfm2_moez feed_forward.experts.*.w1.weightz feed_forward.experts.*.w3.weightz!feed_forward.experts.gate_up_projz feed_forward.experts.*.w2.weightzfeed_forward.experts.down_projernie4_5_vl_moevision_modelvision_towerzspatial_linear.0zspatial_linear.fc1zspatial_linear.2zspatial_linear.fc2zspatial_linear.3zspatial_linear.lnztemporal_linear.0ztemporal_linear.fc1ztemporal_linear.2ztemporal_linear.fc2ztemporal_linear.3ztemporal_linear.lnz!(?<!language_model\.)embed_tokenszlanguage_model.embed_tokensz(?<!language_model\.)layerszlanguage_model.layerszmlp.gate.weight_1zmlp.vision_moe.gate.weight)dim0dim1zmlp.gate.weightzmlp.text_moe.gate.weightz'mlp.moe_statics.e_score_correction_biasz5mlp.text_moe.gate.moe_statics.e_score_correction_biasz7mlp.vision_moe.gate.moe_statics.e_score_correction_biaszexperts.*.down_proj.weightztext_moe.experts.down_projzvision_moe.experts.down_proj)	stack_dim
concat_dimzexperts.*.gate_proj.weightzexperts.*.up_proj.weightztext_moe.experts.gate_up_projzvision_moe.experts.gate_up_projdetrzbackbone.conv_encoderbackboneout_projo_projzlayers.(\d+).fc1zlayers.\1.mlp.fc1zlayers.(\d+).fc2zlayers.\1.mlp.fc2r"   zencoder.encoder.(\d+).layerszencoder.aifi.\1.layersconditional_detrzself_attn.out_projzself_attn.o_projzencoder_attn.out_projzencoder_attn.o_projz%decoder.layers.(\d+).sa_qcontent_projz*decoder.layers.\1.self_attn.q_content_projz!decoder.layers.(\d+).sa_qpos_projz&decoder.layers.\1.self_attn.q_pos_projz%decoder.layers.(\d+).sa_kcontent_projz*decoder.layers.\1.self_attn.k_content_projz!decoder.layers.(\d+).sa_kpos_projz&decoder.layers.\1.self_attn.k_pos_projzdecoder.layers.(\d+).sa_v_projz"decoder.layers.\1.self_attn.v_projz%decoder.layers.(\d+).ca_qcontent_projz-decoder.layers.\1.encoder_attn.q_content_projz!decoder.layers.(\d+).ca_qpos_projz)decoder.layers.\1.encoder_attn.q_pos_projz%decoder.layers.(\d+).ca_kcontent_projz-decoder.layers.\1.encoder_attn.k_content_projz!decoder.layers.(\d+).ca_kpos_projz)decoder.layers.\1.encoder_attn.k_pos_projzdecoder.layers.(\d+).ca_v_projz%decoder.layers.\1.encoder_attn.v_projz&decoder.layers.(\d+).ca_qpos_sine_projz.decoder.layers.\1.encoder_attn.q_pos_sine_projdeformable_detrd_finezlayers.\1.mlp.layers.0zlayers.\1.mlp.layers.1z	backbone.zmodel.zembedding.weightzembeddings.weightzmixer.experts.*.up_proj.weightzmixer.experts.up_projz mixer.experts.*.down_proj.weightzmixer.experts.down_projz'feed_forward.experts.*.gate_proj.weightz%feed_forward.experts.*.up_proj.weightz'feed_forward.experts.*.down_proj.weightz(.+)ztimm_model.\1zLayerNorm.gammazLayerNorm.weightzLayerNorm.betazLayerNorm.bias)
nemotron_hjambatimm_wrapperlegacyrW   z
.weight_g$z".parametrizations.weight.original0z
.weight_v$z".parametrizations.weight.original1z,mlp.gate.moe_statics.e_score_correction_biasr   r   z).block_sparse_moe.e_score_correction_biasz.mlp.e_score_correction_biasr(   zmlp.e_score_correction_biasz mlp.gate.e_score_correction_biasr   qwen3_5_moe_text)r   r   r
   r   r   r   r   r	   copy_MODEL_TO_CONVERSION_PATTERNitems)mapping
model_typebase_patterns      Q/opt/pipecat/venv/lib/python3.12/site-packages/transformers/conversion_mapping.py$_build_checkpoint_conversion_mappingr`   E   s   Q5%(5%(
Q
 	13DE35OP
Q 	+CU\]
Q 	FHjk>@Z[@B^_
Q" 	+-GH8%78:';<
#Q, 	  ; :134
  8 7134
-QN 	/9**! !8#  A&	 *! !5#

OQD 	42! !;+2KA4FG  @ 7+23
EQb 	 : :%at<>S>UV
  7 7%at<>S>UV
cQz 	/9>+;<**! !8+2KA4FG  6 4+23
{Q\ 	66! !D+2KA4FG  B @+23
]Qz 	>>:-/CD-/CD-/BC.0EF.0EF.0DE?A^_9;RS 3 <%1156
  1 :%1156
 !J KKM! "aL> != >02! ?WXYZ 0.!
 45! ?WXYZ
O2
{Q` 	2J?:x0.0DE.0DE	
aQl 	:x0.0DE.0DE:<UV	
mQx 	2J?/1CD24IJ.0DE.0DECErs?AjkCErs?Ajk<>cdCEuv?AmnCEuv?Amn<>fg9;l%
yQd 	2J?/1CD.0DE.0DE	
eQp 	:x0.0IJ.0IJ:<UV	
qQ~ ;1-/BC4! !8+23 6! !:+23
& =;! !D+2KA4FG  I @+23
$  ' 0
  1 2  0 0	
OQGd H(@	
 	(@	
	 	 	@Bpq0. 7'A.0BDYD[\	
 	<3'A.0E0GH	
GN  $I.335GLLBDbc  $K0557GLLn-JLnopp 	0. 7'A.0BDYD[\	
 	<3'A.0E0GH	
GL  #*."9">">"@G7;#7#<#<#>>$@$F$F$H ; 
L %l388:
;
 N    Nc                ^    t         
t               a t        t         j                  |             S N)$_checkpoint_conversion_mapping_cacher`   r   get)r]   s    r_   !get_checkpoint_conversion_mappingrf     s(    +3/S/U,8<<ZHIIra   c                h    t         
t               a | t         v r|st        d|  d      |t         | <   y )NzModel type z5 already exists in the checkpoint conversion mapping.)rd   r`   
ValueError)r]   r\   	overwrites      r_   &register_checkpoint_conversion_mappingrj     s>     ,3/S/U,99);zl2ghii7>(4ra   )aria	ayavisioncolpaliemu3fuyugotocr2gemma3internvlllavamistral3mllama	paligemmashieldgemma2qwen2vl
qwen2_5_vl
videollavavipllava
sam3_videosam3sam3_trackersam3_tracker_videopaddleocrvlernie4_5_vlmoerF   rM   c                *   g }|.|j                         D cg c]  \  }}t        ||       }}}n`t        d | j                  j                  dd D              r7| j
                  j                         D cg c]  \  }}t        ||       }}}t        | j                  dd      }|t        |      }||j                  |       |r|j                  t        d             ||j                  |j                                |S c c}}w c c}}w )z
    For a given `model`, obtain the weight conversion mapping if any are registered either as a simple renaming
    `_checkpoint_conversion_mapping` class argument, or in the general WeightConverter mapping.
    Nr9   c              3  j   K   | ]+  }t         D ]   }||j                  j                         v  " - y wrc   )VLMS__name__lower).0
class_nameallowed_names      r_   	<genexpr>z/get_model_conversion_mapping.<locals>.<genexpr>  sA         	
++11333s   13r]   rW   )r[   r   any	__class____mro___checkpoint_conversion_mappinggetattrconfigrf   extendget_weight_conversions)	r8   key_mappinghf_quantizer
add_legacyweight_conversionskvr]   model_specific_conversionss	            r_   get_model_conversion_mappingr     s"     _j_p_p_rsW[WXZ[nQPQRss	 //11#26 
 <<BBD
1 1a@
 
 |T:J%Fz%R"%1%%&@A!!"CH"MN  	!!,"E"E"GHA t
s   D	9D)F)r]   strr\   &list[WeightConverter | WeightRenaming]ri   boolreturnNone)NNT)
r8   r   r   zdict[str, str] | Noner   zHfQuantizer | Noner   r   r   r   )
__future__r   rY   r   typingr   core_model_loadingr   r   r	   r
   r   r   r   r   modeling_utilsr   
quantizersr   rZ   r`   rd   rf   rj   r   r    ra   r_   <module>r      s   #   	 	 	 /' y  y  )	    ;  ;  [  K    [  ;    [   +! " # $ k% & k' ( !  9  @M`
 (, $J Y^??D?QU?	?@ *.'+	..&. %. 	.
 ,.ra   