
    bifK              
      "   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Zd Zdad Z	 d2d3d'Zg d(Z	 	 	 d4d5d1ZdS )6    )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_v3c                 d   i 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%d&gdt          d           t	          d!           g          t          d'dt          d           g          gd(t          ddt          d!d)d*+          t                      g          t          ddt          d!d)d*+          t                      g          gd,t          dd          t          d-d.          t          ddgdt          d           t	          d!           g          t          d"d#t          d           g          gd/t          d0d1gd2t          d           t	          d!           g          t          d3d4t          d           g          gd5t          d6d7          t          d8d9          t          d:d;          t          d<d=          t          d>d?          t          d@dA          t          dBdC          t          dDdE          t          dFdG          t          dHdIt          dd!J          g          t          dKdLt          dd!J          g          t          dMgdNdOgt          d           g          t          dPgdQdRgt          dd!S          g          t          dTdUgdVdWgt          dd!S          g          gdXt          dYdZ          t          d[d\          t          d]d^          t          d_d`          gdat          d[d\          t          d]d^          t          d_d`          t          dbdc          gddt          dYdZ          t          dedf          t          dgdh          t          d]d^          t          d_d`          t          didj          t          dkdl          t          dmdn          t          dodp          t          dqdr          t          dsdt          t          dudv          t          dwdx          t          dydz          t          d{d|          t          d}d~          gdt          dYdZ          t          dedf          t          d]d^          t          d_d`          gdt          d[d\          t          d]d          t          d_d          t          dbdc          gdt          ddgd2t          d           t	          d!           g          t          dd4t          d           g          gdt          dd          gdt          dd          t          dd          gi} | dxx         t          dd          t          dd          gz  cc<   | d$                                         | d<   | dxx         t          dMd          gz  cc<   | d                                         | d<   | dxx         t          dd          gz  cc<   | d$                                         | d<   | dxx         t          dd          gz  cc<   | d                                         | d<   | dxx         | d$                                         z  cc<   t          
                                D ]'\  }}|| v r
| |                                         | |<   (| S )N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/   r0   
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.1jambaz'feed_forward.experts.*.gate_proj.weightz%feed_forward.experts.*.up_proj.weightz'feed_forward.experts.*.down_proj.weighttimm_wrapperz(.+)ztimm_model.\1legacyzLayerNorm.gammazLayerNorm.weightzLayerNorm.betazLayerNorm.biasz
.weight_g$z".parametrizations.weight.original0z
.weight_v$z".parametrizations.weight.original1r   z,mlp.gate.moe_statics.e_score_correction_biasr   z).block_sparse_moe.e_score_correction_biasz.mlp.e_score_correction_biasr(   zmlp.e_score_correction_biasz mlp.gate.e_score_correction_biasqwen3_5_moe_text)r   r   r
   r   r   r   r   r	   copy_MODEL_TO_CONVERSION_PATTERNitems)mapping
model_typebase_patterns      Z/root/projects/butler/venv/lib/python3.11/site-packages/transformers/conversion_mapping.py$_build_checkpoint_conversion_mappingrT   D   sT
   w+CU\]]]
w 	FHjkk>@Z[[@B^__
	w 	+-GHH8%788:';<<
w 	  ; :1334  
  8 71334  
w> 	/99**! !8#    A&&&	   *! !5#  
 
 

?wt 	42! !;+222KA4F4F4FG    @ 7+2223  
uwR 	 : :%at<<<>S>U>UV  
  7 7%at<<<>S>U>UV  
Swj 	/99>+;<<**! !8+222KA4F4F4FG    6 4+2223  
kwL 	66! !D+222KA4F4F4FG    B @+2223  
Mwj 	>>::-/CDD-/CDD-/BCC.0EFF.0EFF.0DEE?A^__9;RSS 3 <%115556  
  1 :%115556  
 !J KKM! "aLLL>   != >02! ?WXYYYZ   0.!
 45! ?WXYYYZ
 
 
O2
kwP 	2J??:x00.0DEE.0DEE	
Qw\ 	:x00.0DEE.0DEE:<UVV	
]wh 	2J??/1CDD24IJJ.0DEE.0DEECErss?AjkkCErss?Ajkk<>cddCEuvv?AmnnCEuvv?Amnn<>fgg9;l %
iwT 	2J??/1CDD.0DEE.0DEE	
Uw` 	:x00.0IJJ.0IJJ:<UVV	
awl 	=;! !D+222KA4F4F4FG    I @+2223  
mwJ 	  ' 0  
KwZ 	 1 2    0 0  	
[w wGp H(@	
 	
 	
 	(@	
 	
 	
	 	 &k27799GNN@Bpqq   $I.3355GLLBDbcc  $K05577GLLn-JLnoopp")."9">">"@"@G7;#7#<#<#>#>>$@$F$F$H$H ; ; 
L  %l388::
N    Nc                z    t           t                      a t          t                               |                     S N)$_checkpoint_conversion_mapping_cacherT   r   get)rQ   s    rS   !get_checkpoint_conversion_mappingrZ   a  s1    +3/S/U/U,8<<ZHHIIIrU   FrQ   strrP   &list[WeightConverter | WeightRenaming]	overwriteboolreturnNonec                    t           t                      a | t           v r|st          d|  d          |t           | <   d S )NzModel type z5 already exists in the checkpoint conversion mapping.)rX   rT   
ValueError)rQ   rP   r]   s      rS   &register_checkpoint_conversion_mappingrc   h  sR     ,3/S/U/U,999)9hzhhhiii7>(444rU   )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paddleocrvlr;   rB   Tr-   r   key_mappingdict[str, str] | Nonehf_quantizerHfQuantizer | None
add_legacyc                   g }|d |                                 D             }nNt          d | j        j        dd         D                       r#d | j                                         D             }t          | j        dd          }|&t          |          }||                    |           |r"|                    t          d                     |'|                    |	                                           |S )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.
    Nc                6    g | ]\  }}t          ||           S r.   r   .0kvs      rS   
<listcomp>z0get_model_conversion_mapping.<locals>.<listcomp>  s-    sssW[WXZ[nQPQRRRsssrU   c              3  `   K   | ])}t           D ]}||j                                        v V   *d S rW   )VLMS__name__lower)r   
class_nameallowed_names      rS   	<genexpr>z/get_model_conversion_mapping.<locals>.<genexpr>  sa            	
+11333      rU   c                6    g | ]\  }}t          ||           S r   r   r   s      rS   r   z0get_model_conversion_mapping.<locals>.<listcomp>  s9     
 
 
1 1a@@@
 
 
rU   rQ   rK   )
rO   any	__class____mro___checkpoint_conversion_mappinggetattrconfigrZ   extendget_weight_conversions)r-   rz   r|   r~   weight_conversionsrQ   model_specific_conversionss          rS   get_model_conversion_mappingr     s:     ss_j_p_p_r_rsss	  /1#2#6   
 
 


 
<BBDD
 
 
 |T::J%Fz%R%R"%1%%&@AAA O!!"CH"M"MNNN  	!!,"E"E"G"GHHHrU   )F)rQ   r[   rP   r\   r]   r^   r_   r`   )NNT)
r-   r   rz   r{   r|   r}   r~   r^   r_   r\   )
__future__r   rM   r   typingr   core_model_loadingr   r   r	   r
   r   r   r   r   modeling_utilsr   
quantizersr   rN   rT   rX   rZ   rc   r   r    rU   rS   <module>r      sV   # " " " " "                  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  (//////'''''' y  y  )	    ;  ;  [  K    [  ;    [   +! " # $ k% & k' ( ! 7      >W W Wt (, $J J J Y^? ? ? ? ?  < *.'+	. . . . . . .rU   