§
    ‚Štj±é  ã                   ó  — d dl Z d dlmZ d dlZd dlmZ d dlmc mZ d dl	m
Z
 ddlmZ ddlmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ ddlmZmZmZ ddl m!Z! ddl"m#Z#m$Z$ ddl%m&Z&m'Z' ddl(m)Z) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6m7Z7m8Z8 ddl9m:Z: ddl;m<Z<m=Z= ddl>m?Z? ddl@mAZA  e.jB        eC¦  «        ZDe
 G d„ de¦  «        ¦   «         ZEe
 G d„ de¦  «        ¦   «         ZFe
 G d„ de¦  «        ¦   «         ZGe
 G d „ d!e¦  «        ¦   «         ZH G d"„ d#e8¦  «        ZI G d$„ d%e5¦  «        ZJ G d&„ d'e<¦  «        ZK G d(„ d)ejL        ¦  «        ZM	 	 dkd+ejL        d,ejN        d-ejN        d.ejN        d/ejN        dz  d0eOd1eOd2ejN        dz  fd3„ZP G d4„ d5ejL        ¦  «        ZQ G d6„ d7e7¦  «        ZR G d8„ d9e?¦  «        ZS G d:„ d;ejL        ¦  «        ZT G d<„ d=ejL        ¦  «        ZU G d>„ d?ejL        ¦  «        ZV ed@¦  «        	 	 dldAejN        dBejN        dCejW        dDejW        dz  dEeXdz  f
dF„¦   «         ZY edG¦  «        	 	 dldAejN        dCejW        dDejW        dz  dEeXdz  fdH„¦   «         ZZ eeYeZg¦  «         G dI„ dJejL        ¦  «        ¦   «         Z[ G dK„ dLe!¦  «        Z\e, G dM„ dNe'¦  «        ¦   «         Z]e, G dO„ dPe]¦  «        ¦   «         Z^ G dQ„ dRe6¦  «        Z_ G dS„ dTe:¦  «        Z` G dU„ dVe]¦  «        Za G dW„ dXejL        ¦  «        ZbdYecdZedec         fd[„Ze	 dmd]ecd^ecd_ecd`ecdZejf        f
da„Zg G db„ dce]¦  «        Zh e,dd¬e¦  «         G df„ dge]¦  «        ¦   «         Zi e,dd¬e¦  «         G dh„ die]e¦  «        ¦   «         Zjg dj¢ZkdS )né    N)ÚCallable)Ústricté   )Úinitialization)ÚACT2FN)ÚCacheÚDynamicCache)ÚPreTrainedConfig)ÚGenerationMixin)Úuse_kernel_func_from_hubÚuse_kernelized_func)Úforce_accelerate_hooks)Úcreate_causal_maskÚcreate_recurrent_attention_maskÚ!create_sliding_window_causal_mask)ÚGradientCheckpointingLayer)ÚBaseModelOutputWithPastÚBaseModelOutputWithPooling)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚloggingÚtorch_compilable_check)Úmerge_with_config_defaults)Úcapture_outputsé   )ÚGemma3CausalLMOutputWithPastÚGemma3ForCausalLMÚ	Gemma3MLPÚGemma3ModelOutputWithPast)ÚHiggsAudioV2Embeddings)ÚLlamaRMSNormÚ	repeat_kv)ÚMixtralExperts)Úapply_mask_to_padding_statesc                   óP  ‡ — e Zd ZU dZdZddddddddddddœZd	gd
gfddgdgfdgdgfdœZdddddœZddddddœZdZ	e
ed<   dZe
dz  ed<   dZe
ed<   dZe
ed<   dZe
ed <   d!Ze
ed"<   d#Ze
ed$<   dZe
ed%<   d&Ze
ed'<   d#Ze
ed(<   d)Ze
ed<   d&Ze
ed*<   d+Ze
ed,<   dZe
dz  ed-<   d.Zeed/<   dZee
         dz  ed0<   dZee         dz  ed1<   d2Ze
ed<   d3Z eed4<   d5Z!e
ed<   dZ"ee         dz  ed6<   d7Z#e
ed8<   d9Z$eed:<   d;Z%e
ed<<   d=Z&e
ed<   d>Z'e
ed?<   d@Z(e
edA<   dBZ)e*edC<   dDZ+eedE<   dFZ,eed<   d3Z-eedG<   dHZ.eedI<   dJZ/eedK<   dZ0e
dz  edL<   dMZ1e
dz  edN<   d@Z2e
dz  edO<   dZ3e
dz  edP<   dQZ4e*edR<   dBZ5e*edS<   dZ6ee
         dz  edT<   ˆ fdU„Z7e8dV„ ¦   «         Z9e8dW„ ¦   «         Z:ˆ xZ;S )XÚInklingTextConfigÚinkling_textÚtext_configÚembedding_rowwiseÚcolwiseÚrowwiseÚmoe_tp_expertsÚ
all_reduce)Úembed_tokensú!layers.*.mlp.experts.gate_up_projúlayers.*.mlp.experts.down_projúlayers.*.mlp.expertsz%layers.*.mlp.shared_experts.gate_projz#layers.*.mlp.shared_experts.up_projz%layers.*.mlp.shared_experts.down_projzlayers.*.mlp.shared_expertszlayers.*.mlp.gate_projzlayers.*.mlp.up_projzlayers.*.mlp.down_projÚ	input_idsÚinputs_embedsÚhidden_statesÚattention_mask)r2   ÚlayersÚnormÚ	ep_routerÚgrouped_gemm)zlayers.*.mlp.gater3   r4   r5   Úlogits_mup_width_multiplierÚsliding_window_sizeÚn_routed_expertsÚconv_kernel_sizeÚmax_position_embeddings)Úembedding_multiplierÚsliding_windowÚnum_local_expertsÚsconv_kernel_sizeÚmodel_max_lengthi@ Ú
vocab_sizeNÚunpadded_vocab_sizeé   Úhidden_sizeéB   Únum_hidden_layersé@   Únum_attention_headsé   Únum_key_value_headsé€   Úhead_dimÚswa_num_attention_headsé   Úswa_num_key_value_headsÚswa_head_dimi   Úd_relé   Ú
rel_extentÚlog_scaling_n_floorgš™™™™™¹?Úlog_scaling_alphaÚlocal_layer_idsÚlayer_typesi   ç�íµ ÷Æ°>Úrms_norm_epsé   Úmlp_layer_typesi `  Úintermediate_sizeÚsiluÚ
hidden_acti   Úmoe_intermediate_sizeé   é   Únum_experts_per_tokr   Ún_shared_expertsTÚshared_expert_sinkg       @Úroute_scaleg      8@Úrms_norm_eps_moe_gateç        Úattention_dropoutç{®Gáz”?Úinitializer_rangeÚpad_token_idé   Úbos_token_idÚeos_token_idÚnum_mtp_layersFÚchain_hidden_post_normÚmtp_hidden_states_firstÚmtp_local_layer_idsc                 óú  •‡‡— | j         €_| j        �t          | j        ¦  «        Šnd„ t          | j        ¦  «        D ¦   «         Šˆfd„t          | j        ¦  «        D ¦   «         | _         | j        €;|                     dd¦  «        Šˆfd„t          | j        ¦  «        D ¦   «         | _        |                     d¦  «        �|                     d¦  «        | _        d| _	         t          ¦   «         j        di |¤Ž d S )	Nc                 ó"   — h | ]}|d z   dz  ¯
|’ŒS )rs   rh   © )Ú.0Úis     úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/inkling/modular_inkling.pyú	<setcomp>z2InklingTextConfig.__post_init__.<locals>.<setcomp>–   s)   € Ð"[Ð"[Ð"[¨ÐPQÐTUÑPUÐYZÉ{Ð"[ 1Ð"[Ð"[Ð"[ó    c                 ó    •— g | ]
}|‰v rd nd‘ŒS ©Úhybrid_slidingÚhybridr|   )r}   r~   r]   s     €r   ú
<listcomp>z3InklingTextConfig.__post_init__.<locals>.<listcomp>—   s6   ø€ ð  ð  ð  ØKL A¨Ð$8Ð$8Ð Ð ¸hð ð  ð  r�   Údense_mlp_idxr   c                 ó$   •— g | ]}|‰k     rd nd‘ŒS )ÚdenseÚsparser|   )r}   r~   r‡   s     €r   r†   z3InklingTextConfig.__post_init__.<locals>.<listcomp>œ   s(   ø€ Ð#vÐ#vÐ#vÐST¨q°=Ò/@Ð/@ G GÀhÐ#vÐ#vÐ#vr�   Údense_intermediate_sizera   r|   )r^   r]   ÚsetÚrangerM   rb   ÚpopÚgetrc   Únumber_of_conv_statesÚsuperÚ__post_init__)ÚselfÚkwargsr‡   r]   Ú	__class__s     @@€r   r’   zInklingTextConfig.__post_init__‘   s  øøø€ ØÔÐ#ØÔ#Ð/Ý"% dÔ&:Ñ";Ô";��à"[Ð"[­e°DÔ4JÑ.KÔ.KÐ"[Ñ"[Ô"[�ð ð  ð  ð  ÝPUÐVZÔVlÑPmÔPmð ñ  ô  ˆDÔð ÔÐ'Ø"ŸJšJ ¸Ñ:Ô:ˆMØ#vÐ#vÐ#vÐ#vÕX]Ð^bÔ^tÑXuÔXuÐ#vÑ#vÔ#vˆDÔ à�:Š:Ð/Ñ0Ô0Ð<Ø%+§Z¢ZÐ0IÑ%JÔ%JˆDÔ"ð &'ˆÔ"à�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r�   c                 óz   ‡ — ‰ j         �2‰ j        €dg‰ j         z  S ˆ fd„t          ‰ j         ¦  «        D ¦   «         S d S )Nr…   c                 ó*   •— g | ]}|‰j         v rd nd‘ŒS rƒ   )ry   )r}   r~   r“   s     €r   r†   z5InklingTextConfig.mtp_layer_types.<locals>.<listcomp>¬   s9   ø€ ð ð ð ØXY¨¨TÔ-EÐ(EÐ(EÐ$Ð$È8ðð ð r�   )rv   ry   r�   ©r“   s   `r   Úmtp_layer_typesz!InklingTextConfig.mtp_layer_types¦   sc   ø€ àÔÐ*ØÔ'Ð/Ø �z DÔ$7Ñ7Ð7ðð ð ð Ý]bÐcgÔcvÑ]wÔ]wðñ ô ð ð ˆtr�   c                 ó*   — | j         �dg| j         z  S d S )Nr‰   )rv   r˜   s    r   Úmtp_mlp_layer_typesz%InklingTextConfig.mtp_mlp_layer_types²   s    € àÔÐ*Ø�9˜tÔ2Ñ2Ð2Øˆtr�   )<Ú__name__Ú
__module__Ú__qualname__Ú
model_typeÚbase_config_keyÚbase_model_tp_planÚbase_model_pp_planÚbase_model_ep_planÚattribute_maprH   ÚintÚ__annotations__rI   rK   rM   rO   rQ   rS   rT   rV   rW   r?   rX   rZ   r[   r\   Úfloatr]   Úlistr^   ÚstrrB   r`   rA   rb   rc   re   rf   r@   ri   rj   rk   Úboolrl   r>   rm   ro   rq   rr   rt   ru   rv   rw   rx   ry   r’   Úpropertyr™   r›   Ú__classcell__©r•   s   @r   r*   r*   <   sð  ø€ € € € € € à€JØ#€Oà+Ø-6Ø*3Ø 0Ø1:Ø/8Ø1:Ø'3Ø"+Ø )Ø"+ðð Ðð &˜¨Ð(9Ð:Ø#Ð%5Ð6¸Ð8IÐJØ!Ð" _Ð$5Ð6ðð Ðð )Ø-;Ø*8Ø 0ð	ð Ðð !>Ø/Ø/ð 0à5ð	ð 	€Mð €J�ÐÐÑà&*Ð˜˜t™Ð*Ð*Ñ*Ø€K�ÐÐÑØÐ�sÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø Ð˜Ð Ð Ñ Ø€HˆcÐÐÑØ#%Ð˜SÐ%Ð%Ñ%Ø#%Ð˜SÐ%Ð%Ñ%Ø€L�#ÐÐÑØ"Ð˜Ð"Ð"Ñ"Ø€Eˆ3€O€O�OØ€J�ÐÐÑØ&*Ð˜˜t™Ð*Ð*Ñ*Ø"Ð�uÐ"Ð"Ñ"Ø(,€O�T˜#”Y Ñ%Ð,Ð,Ñ,Ø$(€K��c”˜TÑ!Ð(Ð(Ñ(Ø#)Ð˜SÐ)Ð)Ñ)Ø€L�%ÐÐÑØÐ�cÐÐÑØ(,€O�T˜#”Y Ñ%Ð,Ð,Ñ,Ø"Ð�sÐ"Ð"Ñ"Ø€J�ÐÐÑà!%Ð˜3Ð%Ð%Ñ%ØÐ�cÐÐÑØ Ð˜Ð Ð Ñ ØÐ�cÐÐÑØ#Ð˜Ð#Ð#Ñ#Ø€K�ÐÐÑà)-Ð Ð-Ð-Ñ-Ø#'Ð˜5Ð'Ð'Ñ'Ø"Ð�uÐ"Ð"Ñ"Ø#Ð�uÐ#Ð#Ñ#Ø#€L�#˜‘*Ð#Ð#Ñ#Ø €L�#˜‘*Ð Ð Ñ Ø €L�#˜‘*Ð Ð Ñ à!%€N�C˜$‘JÐ%Ð%Ñ%Ø#(Ð˜DÐ(Ð(Ñ(Ø$(Ð˜TÐ(Ð(Ñ(Ø,0Ð˜˜cœ TÑ)Ð0Ð0Ñ0ð(ð (ð (ð (ð (ð* ðð ñ „Xðð ðð ñ „Xðð ð ð ð r�   r*   c                   ój   — e Zd ZU dZdZddddœZdZeed<   dZ	eed<   d	Z
eed<   d
Zeed<   dZeed<   dS )ÚInklingAudioConfigÚinkling_audioÚaudio_configÚ
n_mel_binsÚmel_vocab_sizeÚtext_hidden_size)Únum_codebooksÚcodebook_sizerK   éP   rg   rJ   r_   r`   rp   rq   N)rœ   r�   rž   rŸ   r    r¤   r²   r¥   r¦   r³   r´   r`   r§   rq   r|   r�   r   r¯   r¯   ¹   s…   € € € € € € à €JØ$€Oà%Ø)Ø)ðð €Mð €J�ÐÐÑØ€N�CÐÐÑØ Ð�cÐ Ð Ñ Ø€L�%ÐÐÑØ#Ð�uÐ#Ð#Ñ#Ð#Ð#r�   r¯   c                   óž   — e Zd ZU dZdZddiZdZeed<   dZ	eed<   d	Z
eed
<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   dS )ÚInklingVisionConfigÚinkling_visionÚvision_configrM   Ún_layersrJ   r´   é(   Ú
patch_sizer   Útemporal_patch_sizer   Únum_channelsrY   rK   é   rU   rO   r_   r`   rp   rq   N)rœ   r�   rž   rŸ   r    r¤   r´   r¥   r¦   r¾   r¿   rÀ   rK   rM   rO   r`   r§   rq   r|   r�   r   r¹   r¹   Ê   s»   € € € € € € à!€JØ%€OØ(¨*Ð5€Mà Ð�cÐ Ð Ñ Ø€J�ÐÐÑØ Ð˜Ð Ð Ñ Ø€L�#ÐÐÑØ€K�ÐÐÑØÐ�sÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø€L�%ÐÐÑØ#Ð�uÐ#Ð#Ñ#Ð#Ð#r�   r¹   c                   óº   ‡ — e Zd ZU dZdZeeedœZdZ	ee
z  dz  ed<   dZee
z  dz  ed<   dZee
z  dz  ed<   dZeed	<   d
Zeed<   dZeed<   dZeed<   ˆ fd„Zˆ xZS )ÚInklingConfigzETop-level multimodal config (`InklingMMConfig` in the SGLang source).Úinkling_mm_model)r,   r±   r»   Nr,   r±   r»   iv Úimage_token_idiu Úaudio_token_idiE Úimage_bos_token_idiT Úaudio_bos_token_idc                 ó   •— |                      d¦  «        pi }t          | j        t          ¦  «        r‹| j                             d|                      d¦  «        ¦  «         | j                             d|                      dd¦  «        ¦  «         | j                             d|                      d¦  «        ¦  «         t          | j        t          ¦  «        r | j        d         di | j        ¤Ž| _        n!| j        € | j        d         ¦   «         | _        t          | j        t          ¦  «        r | j        d	         di | j        ¤Ž| _        n!| j        € | j        d	         ¦   «         | _        t          | j        t          ¦  «        r | j        d
         di | j        ¤Ž| _        n!| j        € | j        d
         ¦   «         | _        | j        j        | j        _	        | j        j        | j        _	         t          ¦   «         j        di |¤Ž d S )NÚ
mtp_configrv   Únum_nextn_predict_layersrw   Fry   r]   r±   r»   r,   r|   )r�   Ú
isinstancer,   ÚdictÚ
setdefaultr±   Úsub_configsr»   rK   r´   r‘   r’   )r“   r”   rÊ   r•   s      €r   r’   zInklingConfig.__post_init__î   s  ø€ à—Z’Z Ñ-Ô-Ð3°ˆ
Ý�dÔ&­Ñ-Ô-ð 	bØÔ×'Ò'Ð(8¸*¿.º.ÐIcÑ:dÔ:dÑeÔeÐeØÔ×'Ò'Ð(@À*Ç.Â.ÐQiÐkpÑBqÔBqÑrÔrÐrØÔ×'Ò'Ð(=¸z¿~º~ÐN_Ñ?`Ô?`ÑaÔaÐaå�dÔ'­Ñ.Ô.ð 	CØ @ Ô 0°Ô @Ð UÐ UÀ4ÔCTÐ UÐ UˆDÔÐØÔÐ&Ø @ Ô 0°Ô @Ñ BÔ BˆDÔå�dÔ(­$Ñ/Ô/ð 	EØ!B Ô!1°/Ô!BÐ!XÐ!XÀTÔEWÐ!XÐ!XˆDÔÐØÔÐ'Ø!B Ô!1°/Ô!BÑ!DÔ!DˆDÔå�dÔ&­Ñ-Ô-ð 	AØ>˜tÔ/°Ô>ÐRÐRÀÔAQÐRÐRˆDÔÐØÔÐ%Ø>˜tÔ/°Ô>Ñ@Ô@ˆDÔà.2Ô.>Ô.JˆÔÔ+Ø-1Ô-=Ô-IˆÔÔ*Ø�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r�   )rœ   r�   rž   Ú__doc__rŸ   r*   r¯   r¹   rÏ   r,   rÍ   r¦   r±   r»   rÅ   r¥   rÆ   rÇ   rÈ   r’   r¬   r­   s   @r   rÃ   rÃ   Û   sï   ø€ € € € € € àOÐOà#€Jà(Ø*Ø,ðð €Kð 48€KÐ" TÑ)¨DÑ0Ð7Ð7Ñ7Ø59€LÐ$ tÑ+¨dÑ2Ð9Ð9Ñ9Ø7;€MÐ&¨Ñ-°Ñ4Ð;Ð;Ñ;Ø €N�CÐ Ð Ñ Ø €N�CÐ Ð Ñ Ø$Ð˜Ð$Ð$Ñ$Ø$Ð˜Ð$Ð$Ñ$ð(ð (ð (ð (ð (ð (ð (ð (ð (r�   rÃ   c                   ó   — e Zd ZdS )ÚInklingModelOutputWithPastN©rœ   r�   rž   r|   r�   r   rÒ   rÒ   
  ó   € € € € € Ø€Dr�   rÒ   c                   ó   — e Zd ZdS )ÚInklingCausalLMOutputWithPastNrÓ   r|   r�   r   rÖ   rÖ     rÔ   r�   rÖ   c                   ó   — e Zd ZdS )ÚInklingRMSNormNrÓ   r|   r�   r   rØ   rØ     rÔ   r�   rØ   c                   ól   ‡ — e Zd ZdZdedefˆ fd„Zdej        dej        dej        dej        fd	„Zˆ xZ	S )
ÚInklingRelativeLogitsa|  hidden states conditioned relative position bias. `proj` is a trained bank of bias-vs-distance profiles; each token's
    `relative_states` mixes them into one bias value per backward distance
    (`sglang RelLogitsProj` + the FA4 `score_mod`, materialized densely). The bias is zero
    outside `0 <= distance < rel_extent`; causality and padding stay in the attention mask.
    rX   rZ   c                 ó®   •— t          ¦   «                              ¦   «          || _        t          j        t          j        ||¦  «        ¦  «        | _        d S ©N)r‘   Ú__init__rZ   ÚnnÚ	ParameterÚtorchÚemptyÚproj)r“   rX   rZ   r•   s      €r   rÝ   zInklingRelativeLogits.__init__  sA   ø€ Ý‰Œ×ÒÑÔÐØ$ˆŒÝ”L¥¤¨U°JÑ!?Ô!?Ñ@Ô@ˆŒ	ˆ	ˆ	r�   Úrelative_statesÚquery_positionsÚkey_positionsÚreturnc                 óx  — || j         z                       dd¦  «        }|d d …d f         |d d d …f         z
  d d d d …d d …f         } |                     d| j        dz
  ¦  «        j        g |j        d d…         ¢d‘d‘R Ž }|                     d|¦  «        }|                     |dk     || j        k    z  d¦  «        S )Nrs   r   r   éÿÿÿÿrn   )râ   Ú	transposeÚclamprZ   ÚexpandÚshapeÚgatherÚmasked_fill)r“   rã   rä   rå   Ú
rel_logitsÚdistanceÚgather_indexÚposition_biass           r   ÚforwardzInklingRelativeLogits.forward"  sä   € ð &¨¬	Ñ1×<Ò<¸QÀÑBÔBˆ
Ø# A A A t GÔ,¨}¸TÀ1À1À1¸WÔ/EÑEÀtÈTÐSTÐSTÐSTÐVWÐVWÐVWÐGWÔXˆØD�x—~’~ a¨¬¸1Ñ)<Ñ=Ô=ÔDÐcÀjÔFVÐWYÐXYÐWYÔFZÐcÐ\^ÐcÐ`bÐcÐcÐcˆØ"×)Ò)¨"¨lÑ;Ô;ˆØ×(Ò(¨(°Qª,¸8ÀtÄÒ;VÑ)WÐY\Ñ]Ô]Ð]r�   )
rœ   r�   rž   rÐ   r¥   rÝ   rà   ÚTensorró   r¬   r­   s   @r   rÚ   rÚ     s«   ø€ € € € € ðð ðA˜cð A¨sð Að Að Að Að Að Að
^àœð^ð œð^ð ”|ð	^ð
 
Œð^ð ^ð ^ð ^ð ^ð ^ð ^ð ^r�   rÚ   rn   ÚmoduleÚqueryÚkeyÚvaluer9   ÚscalingÚdropoutrò   c                 ó"  — t          || j        ¦  «        }	t          || j        ¦  «        }
t          j        ||	                     dd¦  «        ¦  «        |z  }|�||z   }|�||z   }t
          j                             |dt          j        ¬¦  «         	                    |j
        ¦  «        }t
          j                             ||| j        ¬¦  «        }t          j        ||
¦  «        }|                     dd¦  «                             ¦   «         }||fS )Nr   r   rè   )ÚdimÚdtype)ÚpÚtrainingrs   )r&   Únum_key_value_groupsrà   Úmatmulré   rÞ   Ú
functionalÚsoftmaxÚfloat32Útorý   rú   rÿ   Ú
contiguous)rõ   rö   r÷   rø   r9   rù   rú   rò   r”   Ú
key_statesÚvalue_statesÚattn_weightsÚattn_outputs                r   Úeager_attention_forwardr  0  sù   € õ ˜3 Ô ;Ñ<Ô<€JÝ˜U FÔ$?Ñ@Ô@€Lå”<  z×';Ò';¸A¸qÑ'AÔ'AÑBÔBÀWÑL€LØÐ Ø# mÑ3ˆØÐ!Ø# nÑ4ˆå”=×(Ò(¨¸2ÅUÄ]Ð(ÑSÔS×VÒVÐW\ÔWbÑcÔc€LÝ”=×(Ò(¨¸È6Ì?Ð(Ñ[Ô[€LÝ”,˜|¨\Ñ:Ô:€KØ×'Ò'¨¨1Ñ-Ô-×8Ò8Ñ:Ô:€Kà˜Ð$Ð$r�   c                   ó´   ‡ — e Zd Zdedefˆ fd„Z	 	 ddej        dej        dz  dej        dz  dedz  d	e	e
         d
eej        ej        dz  f         fd„Zˆ xZS )ÚInklingAttentionÚconfigÚ	layer_idxc                 ó2  •— t          ¦   «                              ¦   «          || _        || _        |j        | j                 dk    | _        | j        r|j        n|j        | _        | j        r|j        n|j	        | _
        | j        r|j        n|j        | _        | j
        | j        z  | _        | j        r|j        nd | _        | j        r|j        n|j        | _        d| j        z  | _        |j        | _        d| _        t)          j        |j        | j
        | j        z  d¬¦  «        | _        t)          j        |j        | j        | j        z  d¬¦  «        | _        t)          j        |j        | j        | j        z  d¬¦  «        | _        t)          j        |j        | j
        |j        z  d¬¦  «        | _        t)          j        | j
        | j        z  |j        d¬¦  «        | _        t;          | j        | j        z  |j        |d¬¦  «        | _        t;          | j        | j        z  |j        |d¬¦  «        | _         tC          | j        |j"        ¬	¦  «        | _#        tC          | j        |j"        ¬	¦  «        | _$        tK          |j        | j        ¦  «        | _&        d S )
Nr„   ç      ð?TF©Úbiasr   )Úconv_idxrs   ©Úeps)'r‘   rÝ   r  r  r^   Ú
is_slidingrW   rS   rT   rO   Ú	num_headsrV   rQ   r   r?   rD   rZ   rù   ro   Ú	is_causalrÞ   ÚLinearrK   Úq_projÚk_projÚv_projrX   Úr_projÚo_projÚInklingShortConvolutionrF   Úk_sconvÚv_sconvrØ   r`   Úq_normÚk_normrÚ   Úrel_logits_proj©r“   r  r  r•   s      €r   rÝ   zInklingAttention.__init__M  sW  ø€ Ý‰Œ×ÒÑÔÐØˆŒØ"ˆŒØ Ô,¨T¬^Ô<Ð@PÒPˆŒØ/3¬ÐS˜Ô+Ð+ÀFÄOˆŒØ;?¼?Ðj˜Ô7Ð7ÐPVÔPjˆŒØEIÄ_Ð#t 6Ô#AÐ#AÐZ`ÔZtˆÔ Ø$(¤N°dÔ6NÑ$NˆÔ!Ø<@¼OÐU˜fÔ8Ð8ÐQUˆÔØ8<¼Ð^˜&Ô4Ð4ÈVÔM^ˆŒà˜Tœ]Ñ*ˆŒØ!'Ô!9ˆÔØˆŒå”i Ô 2°D´NÀTÄ]Ñ4RÐY^Ð_Ñ_Ô_ˆŒÝ”i Ô 2°DÔ4LÈtÌ}Ñ4\ÐchÐiÑiÔiˆŒÝ”i Ô 2°DÔ4LÈtÌ}Ñ4\ÐchÐiÑiÔiˆŒÝ”i Ô 2°D´NÀVÄ\Ñ4QÐX]Ð^Ñ^Ô^ˆŒÝ”i ¤°´Ñ >ÀÔ@RÐY^Ð_Ñ_Ô_ˆŒÝ.ØÔ$ t¤}Ñ4°fÔ6NÐPYÐdeð
ñ 
ô 
ˆŒõ /ØÔ$ t¤}Ñ4°fÔ6NÐPYÐdeð
ñ 
ô 
ˆŒõ % T¤]¸Ô8KÐLÑLÔLˆŒÝ$ T¤]¸Ô8KÐLÑLÔLˆŒÝ4°V´\À4Ä?ÑSÔSˆÔÐÐr�   Nr8   r9   Ú	conv_maskÚpast_key_valuesr”   ræ   c                 ó"  — |j         d d…         }g |¢d‘| j        ‘R }|                      |¦  «        }|                      |                      |¦  «        ||¬¦  «        }	|                      |                      |¦  «        ||¬¦  «        }
|                      |¦  «        }|                      | 	                    |¦  «        ¦  «         
                    dd¦  «        }|                      |	 	                    |¦  «        ¦  «         
                    dd¦  «        }	|
 	                    |¦  «         
                    dd¦  «        }
|j         d         }|�X|                     || j        ¦  «        \  }}|                     | j        ¦  «        }|                     |	|
| j        ¦  «        \  }	}
n|	j         d         }d\  }}t!          j        ||j        ¬¦  «        |z   }t!          j        ||j        ¬¦  «        |z   } |j	        g |¢| j        ‘d‘R Ž }|                      |||¦  «        }| j        sÞ| j        j        �Ò|dz                        ¦   «         }d| j        j        t!          j        || j        j        z                       d¬¦  «        ¦  «        z  z   }| 	                    dddd¦  «        }|                     ¦   «         |z                       |j        ¦  «        }|                     ¦   «         |z                       |j        ¦  «        }t=          j        | j        j         tB          ¦  «        } || ||	|
|f| j"        sd	n| j#        | j$        | j%        |d
œ|¤Ž\  }} |j&        g |¢d‘R Ž  '                    ¦   «         }|  (                    |¦  «        }||fS )Nrè   ©r(  r'  rs   r   )r   r   ©Údevicer  )Úminrn   )rú   rù   rD   rò   ))rì   rS   r  r!  r  r"  r  r  r#  Úviewré   r$  Úget_mask_sizesr  Úget_query_offsetÚupdaterà   Úaranger,  r  r%  r  r  r[   r§   r\   Úlogrê   r  rý   r   Úget_interfaceÚ_attn_implementationr  rÿ   ro   rù   rD   Úreshaper  r  )r“   r8   r9   r'  r(  r”   Úinput_shapeÚhidden_shapeÚquery_statesr  r  rã   Úq_lengthÚ	kv_lengthÚ	kv_offsetÚq_offsetÚkv_positionsÚq_positionsrò   Úeffective_nÚtauÚattention_interfacer
  r	  s                           r   ró   zInklingAttention.forwardl  s   € ð $Ô)¨#¨2¨#Ô.ˆØ8˜Ð8 bÐ8¨$¬-Ð8Ð8ˆà—{’{ =Ñ1Ô1ˆØ—\’\ $§+¢+¨mÑ"<Ô"<ÈoÐir�\ÑsÔsˆ
Ø—|’| D§K¢K°Ñ$>Ô$>ÐP_Ðkt�|ÑuÔuˆØŸ+š+ mÑ4Ô4ˆà—{’{ <×#4Ò#4°\Ñ#BÔ#BÑCÔC×MÒMÈaÐQRÑSÔSˆØ—[’[ §¢°Ñ!>Ô!>Ñ?Ô?×IÒIÈ!ÈQÑOÔOˆ
Ø#×(Ò(¨Ñ6Ô6×@Ò@ÀÀAÑFÔFˆàÔ% aÔ(ˆØÐ&à#2×#AÒ#AÀ(ÈDÌNÑ#[Ô#[Ñ ˆI�yØ&×7Ò7¸¼ÑGÔGˆHà'6×'=Ò'=¸jÈ,ÐX\ÔXfÑ'gÔ'gÑ$ˆJ˜˜à"Ô(¨Ô+ˆIØ"&ÑˆH�iå”| I°mÔ6JÐKÑKÔKÈiÑWˆÝ”l 8°MÔ4HÐIÑIÔIÈHÑTˆØ.˜/Ô.ÐP°ÐP¸T¼^ÐPÈRÐPÐPÐPˆØ×,Ò,¨_¸kÈ<ÑXÔXˆð Œð 	R 4¤;Ô#BÐ#NØ&¨™?×1Ò1Ñ3Ô3ˆKØ˜œÔ5½¼	Ø˜tœ{Ô>Ñ>×EÒEÈ#ÐEÑNÔNñ9ô 9ñ ñ ˆCð —(’(˜1˜a  QÑ'Ô'ˆCØ(×.Ò.Ñ0Ô0°3Ñ6×:Ò:¸<Ô;MÑNÔNˆLØ*×0Ò0Ñ2Ô2°SÑ8×<Ò<¸]Ô=PÑQÔQˆMå(?Ô(MØŒKÔ,Õ.Eñ)
ô )
Ðð %8Ð$7ØØØØØð%
ð  $œ}ÐH�C�C°$Ô2HØ”LØÔ.Ø'ð%
ð %
ð ð%
ð %
Ñ!ˆ�\ð *�kÔ)Ð;¨;Ð;¸Ð;Ð;Ð;×FÒFÑHÔHˆØ—k’k +Ñ.Ô.ˆØ˜LÐ(Ð(r�   ©NN)rœ   r�   rž   r*   r¥   rÝ   rà   rô   r   r   r   Útupleró   r¬   r­   s   @r   r  r  L  sì   ø€ € € € € ðTÐ0ð T¸Sð Tð Tð Tð Tð Tð TðF *.Ø(,ðA)ð A)à”|ðA)ð œ tÑ+ðA)ð ”< $Ñ&ð	A)ð
  ™ðA)ð Ð+Ô,ðA)ð 
ˆuŒ|˜Uœ\¨DÑ0Ð0Ô	1ðA)ð A)ð A)ð A)ð A)ð A)ð A)ð A)r�   r  c                   óH   ‡ — e Zd Zdefˆ fd„Zdej        dej        fd„Zˆ xZS )Ú
InklingMLPr  c                 óÎ   •— t          ¦   «                              |¦  «         t          |j                 | _        t          j        t          j        d¦  «        ¦  «        | _	        d S ©Nrs   )
r‘   rÝ   r   re   Úact_fnrÞ   rß   rà   ÚonesÚglobal_scale©r“   r  r•   s     €r   rÝ   zInklingMLP.__init__±  sJ   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ý˜VÔ.Ô/ˆŒÝœL­¬°A©¬Ñ7Ô7ˆÔÐÐr�   r8   ræ   c                 ó¸   — |                       |                      |                      |¦  «        ¦  «        |                      |¦  «        z  ¦  «        }|| j        z  S rÜ   )Ú	down_projrI  Ú	gate_projÚup_projrK  ©r“   r8   s     r   ró   zInklingMLP.forward¶  sN   € ØŸš t§{¢{°4·>²>À-Ñ3PÔ3PÑ'QÔ'QÐTX×T`ÒT`ÐanÑToÔToÑ'oÑpÔpˆØ˜tÔ0Ñ0Ð0r�   )	rœ   r�   rž   r*   rÝ   rà   rô   ró   r¬   r­   s   @r   rF  rF  °  sk   ø€ € € € € ð8Ð0ð 8ð 8ð 8ð 8ð 8ð 8ð
1 U¤\ð 1°e´lð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1r�   rF  c                   ó$   ‡ — e Zd Zdefˆ fd„Zˆ xZS )ÚInklingExpertsr  c                 óz   •— t          ¦   «                              |¦  «         |j        | _        |j        | _        d S rÜ   )r‘   rÝ   r@   Únum_expertsrf   Úintermediate_dimrL  s     €r   rÝ   zInklingExperts.__init__¼  s7   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ø!Ô2ˆÔØ &Ô <ˆÔÐÐr�   )rœ   r�   rž   r*   rÝ   r¬   r­   s   @r   rS  rS  »  sE   ø€ € € € € ð=Ð0ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =r�   rS  c                   óZ   ‡ — e Zd Zˆ fd„Zdeej        ej        ej        f         fd„Zˆ xZS )ÚInklingTopkRouterc                 ó
  •— t          ¦   «                              ¦   «          |j        | _        |j        | _        | j        | j        z   | _        |j        | _        |j        | _        |j	        | _
        t          j        t          j        | j        |j        ¦  «        ¦  «        | _        t          j        t          j        d¦  «        ¦  «        | _        t          j        t          j        | j        ¦  «        ¦  «        | _        d S rH  )r‘   rÝ   r@   rU  rj   Ún_total_expertsrK   Ú
hidden_dimrl   ri   Útop_krÞ   rß   rà   rá   ÚweightrJ  rK  Úe_score_correction_biasrL  s     €r   rÝ   zInklingTopkRouter.__init__Ã  sÃ   ø€ Ý‰Œ×ÒÑÔÐØ!Ô2ˆÔØ &Ô 7ˆÔØ#Ô/°$Ô2GÑGˆÔØ Ô,ˆŒØ!Ô-ˆÔØÔ/ˆŒ
å”l¥5¤;¨tÔ/CÀVÔEWÑ#XÔ#XÑYÔYˆŒÝœL­¬°A©¬Ñ7Ô7ˆÔÝ')¤|µE´KÀÔ@PÑ4QÔ4QÑ'RÔ'RˆÔ$Ð$Ð$r�   ræ   c                 óð  — |                      d| j        ¦  «        }t          j        || j        ¦  «        }|                     ¦   «         }|dd | j         …f         }|| j        z   }t          j	        || j
        dd¬¦  «        d         }|dd | j         …f         }|d| j         d …f         }	t          j        |                     d|¦  «        |	gd¬¦  «        }
t          j        |
¦  «        }t          j        |t          j        |dd¬¦  «        z
  ¦  «        }|| j        z  | j        z  }|d| j         d …f                              ¦   «         }|dd | j
        …f                              ¦   «         }||||fS )	Nrè   .F)rü   Úsortedrs   ©rü   T)rü   Úkeepdim)r6  r[  ÚFÚlinearr]  Úsigmoidrj   r^  rà   Útopkr\  Úcatrí   Ú
logsigmoidÚexpÚ	logsumexprl   rK  r  )r“   r8   ÚflatÚrouter_logitsÚscoresÚrouted_scoresÚscores_for_choiceÚtopk_indicesÚrouted_logitsÚshared_logitsÚtopk_logitsÚtopk_log_probsÚtopk_weightsÚshared_gammass                 r   ró   zInklingTopkRouter.forwardÐ  sŒ  € Ø×$Ò$ R¨¬Ñ9Ô9ˆÝœ  t¤{Ñ3Ô3ˆð ×&Ò&Ñ(Ô(ˆØ˜sÐ$< tÔ'<Ð&<Ð$<Ð<Ô=ˆØ)¨DÔ,HÑHÐÝ”zÐ"3°T´ZÀRÐPUÐVÑVÔVÐWXÔYˆà% cÐ+C¨dÔ.CÐ-CÐ+CÐ&CÔDˆØ% c¨DÔ,AÐ+AÐ+CÐ+CÐ&CÔDˆÝ”i ×!5Ò!5°b¸,Ñ!GÔ!GÈÐ WÐ]_Ð`Ñ`Ô`ˆÝœ kÑ2Ô2ˆÝ”y µ%´/À.ÐVXÐbfÐ2gÑ2gÔ2gÑ!gÑhÔhˆà# dÔ&6Ñ6¸Ô9JÑJˆà$ S¨4Ô+@Ð*@Ð*BÐ*BÐ%BÔC×NÒNÑPÔPˆØ# C¨¨4¬:¨Ð$5Ô6×AÒAÑCÔCˆà˜l¨L¸-ÐGÐGr�   )	rœ   r�   rž   rÝ   rD  rà   rô   ró   r¬   r­   s   @r   rX  rX  Â  ss   ø€ € € € € ðSð Sð Sð Sð SðH¨¨e¬l¸E¼LÈ%Ì,Ð.VÔ(Wð Hð Hð Hð Hð Hð Hð Hð Hr�   rX  c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚInklingSharedExpertsc                 óæ  •— t          ¦   «                              ¦   «          |j        | _        |j        }t	          j        t          j        |j        ||j        ¦  «        ¦  «        | _	        t	          j        t          j        |j        ||j        ¦  «        ¦  «        | _
        t	          j        t          j        |j        |j        |¦  «        ¦  «        | _        t          |j                 | _        d S rÜ   )r‘   rÝ   rj   rf   rÞ   rß   rà   rá   rK   rO  rP  rN  r   re   rI  )r“   r  rV  r•   s      €r   rÝ   zInklingSharedExperts.__init__é  s¶   ø€ Ý‰Œ×ÒÑÔÐØ &Ô 7ˆÔØ!Ô7Ðõ
 œ¥e¤k°&Ô2IÐK[Ð]cÔ]oÑ&pÔ&pÑqÔqˆŒÝ”|¥E¤K°Ô0GÐIYÐ[aÔ[mÑ$nÔ$nÑoÔoˆŒÝœ¥e¤k°&Ô2IÈ6ÔK]Ð_oÑ&pÔ&pÑqÔqˆŒÝ˜VÔ.Ô/ˆŒˆˆr�   c                 óÒ  — |j         }|                     dd|d         ¦  «                             | j        dd¦  «        }|                     d| j        d¦  «                             dd¦  «        }t          j        || j                             dd¦  «        ¦  «        }t          j        || j                             dd¦  «        ¦  «        }|  	                    |¦  «        |z  |z  }t          j        || j
                             dd¦  «        ¦  «        }|                     ¦   «                              d¬¦  «                             |j        ¦  «        }|                     |¦  «        S )Nrs   rè   r   r   ra  )rì   r6  rë   rj   ré   rà   ÚbmmrO  rP  rI  rN  r§   Úsumr  rý   r.  )	r“   r8   Úgammasr7  ÚgateÚupÚ	activatedÚdownÚouts	            r   ró   zInklingSharedExperts.forwardö  s)  € Ø#Ô)ˆØ%×-Ò-¨a°°[À´_ÑEÔE×LÒLÈTÔMbÐdfÐhjÑkÔkˆØ—’  DÔ$9¸1Ñ=Ô=×GÒGÈÈ1ÑMÔMˆåŒy˜¨¬×(@Ò(@ÀÀAÑ(FÔ(FÑGÔGˆÝŒY�} d¤l×&<Ò&<¸QÀÑ&BÔ&BÑCÔCˆØ—K’K Ñ%Ô%¨Ñ*¨VÑ3ˆ	ÝŒy˜ D¤N×$<Ò$<¸QÀÑ$BÔ$BÑCÔCˆà�jŠj‰lŒl×Ò 1ÐÑ%Ô%×(Ò(¨Ô)<Ñ=Ô=ˆØ�xŠx˜Ñ$Ô$Ð$r�   )rœ   r�   rž   rÝ   ró   r¬   r­   s   @r   rx  rx  è  sG   ø€ € € € € ð0ð 0ð 0ð 0ð 0ð%ð %ð %ð %ð %ð %ð %r�   rx  c                   ó8   ‡ — e Zd ZdZˆ fd„Zdej        fd„Zˆ xZS )Ú
InklingMoEz7Gate -> routed experts (+ shared experts), TML flavour.c                 óÎ   •— t          ¦   «                              ¦   «          || _        t          |¦  «        | _        t          |¦  «        | _        t          |¦  «        | _        d S rÜ   )	r‘   rÝ   r  rX  r~  rS  Úexpertsrx  Úshared_expertsrL  s     €r   rÝ   zInklingMoE.__init__  sT   ø€ Ý‰Œ×ÒÑÔÐØˆŒÝ% fÑ-Ô-ˆŒ	Ý% fÑ-Ô-ˆŒÝ2°6Ñ:Ô:ˆÔÐÐr�   ræ   c                 ó   — |}|j         }|                      |¦  «        \  }}}}|                     d|j         d         ¦  «        } |                      |||¦  «        j        |Ž }||                      ||¬¦  «        z   }|S )Nrè   )r}  )rì   r~  r.  r†  r‡  )r“   r8   Ú	residualsr7  Ú_ru  rp  rv  s           r   ró   zInklingMoE.forward  s‰   € Ø!ˆ	Ø#Ô)ˆØ7;·y²yÀÑ7OÔ7OÑ4ˆˆ<˜ }Ø%×*Ò*¨2¨}Ô/BÀ2Ô/FÑGÔGˆØT˜Ÿš ]°LÀ,ÑOÔOÔTÐVaÐbˆØ%¨×(;Ò(;¸IÈmÐ(;Ñ(\Ô(\Ñ\ˆØÐr�   )	rœ   r�   rž   rÐ   rÝ   rà   rô   ró   r¬   r­   s   @r   r„  r„    s[   ø€ € € € € ØAÐAð;ð ;ð ;ð ;ð ;ð¨¬ð ð ð ð ð ð ð ð r�   r„  Úcausal_conv1d_updater8   Ú
conv_stater]  r  Ú
activationc                 óº  — | j         \  }}}|j         d         }t          j        || gd¬¦  «                             |j        ¦  «        }	|                     |	d d …d d …| d …f         ¦  «         t          j        |	|                     d¦  «        |d|¬¦  «        }
|
d d …d d …| d …f         }
|�t          |         |
¦  «        }
|
                     | j        ¦  «        S )Nrè   ra  rs   r   )ÚpaddingÚgroups)
rì   rà   rg  r  rý   Úcopy_rc  Úconv1dÚ	unsqueezer   )r8   rŒ  r]  r  r�  rŠ  rK   Úseq_lenÚ	state_lenÚhidden_states_newr‚  s              r   r‹  r‹    sî   € ð ,Ô1Ñ€A€{�GØÔ  Ô$€Iåœ	 :¨}Ð"=À2ÐFÑFÔF×IÒIÈ&Ì,ÑWÔWÐØ×ÒÐ& q q q¨!¨!¨!¨i¨Z¨[¨[Ð'8Ô9Ñ:Ô:Ð:Ý
Œ(Ð$ f×&6Ò&6°qÑ&9Ô&9¸4ÈÐS^Ð
_Ñ
_Ô
_€CØ
ˆaˆaˆa����W�H�I�IˆoÔ
€CØÐÝ�ZÔ  Ñ%Ô%ˆØ�6Š6�-Ô%Ñ&Ô&Ð&r�   Úcausal_conv1d_fnc                 ó@  — | j         \  }}}|j         d         dz
  }t          j        |                      |j        ¦  «        |                     d¦  «        |||¬¦  «        d d …d d …d |…f         }	|�t          |         |	¦  «        }	|	                     | j        ¦  «        S )Nrè   rs   )r]  r  r�  r�  )rì   rc  r’  r  rý   r“  r   )
r8   r]  r  r�  r”   rŠ  rK   r”  r�  r‚  s
             r   r—  r—  ,  s²   € ð ,Ô1Ñ€A€{�GØŒl˜2Ô Ñ"€Gå
Œ(Ø×Ò˜œÑ&Ô&Ø×Ò Ñ"Ô"ØØØðñ ô ð €a€aˆˆˆˆHˆWˆH€nô€Cð ÐÝ�ZÔ  Ñ%Ô%ˆØ�6Š6�-Ô%Ñ&Ô&Ð&r�   c                   óœ   ‡ — e Zd Zdedededefˆ fd„Z ed¦  «        	 	 ddej        d	edz  d
ej        dz  de	e
         fd„¦   «         Zˆ xZS )r   rK   rA   r  r  c                 ó¶   •— t          ¦   «                              ¦   «          || _        || _        || _        t          j        |||||dz
  d¬¦  «        | _        d S )Nrs   F)Úin_channelsÚout_channelsÚkernel_sizer�  r�  r  )r‘   rÝ   r  r  rA   rÞ   ÚConv1dr’  )r“   rK   rA   r  r  r•   s        €r   rÝ   z InklingShortConvolution.__init__E  sb   ø€ Ý‰Œ×ÒÑÔÐØ"ˆŒØ ˆŒØ 0ˆÔå”iØ#Ø$Ø(ØØ$ qÑ(Øð
ñ 
ô 
ˆŒˆˆr�   r’  Nr8   r(  r'  r”   c                 óX  — |j         }|                     ¦   «         }|}t          ||¦  «        }|j        d         }|                     dd¦  «        }|d uo|                     | j        | j        ¦  «        }|ry|dk    rs|j        | j                 j	        s\|j        | j                 j
        | j                 }	t          ||	| j        j                             d¦  «        | j        j        ¦  «        }n‹|�(|                     || j        | j        | j        ¬¦  «        }t%          || j        j                             d¦  «        | j        j        |                     d¦  «        ¬¦  «        }|r|d d …d d …| d …f         }|                     dd¦  «        }||z                        |¬¦  «        }|S )Nrs   r   )Ú	state_idxrA   Úseq_idx)r¡  )rý   )rý   r§   r(   rì   ré   Úhas_previous_stater  r  r:   Úrecord_pastÚconv_statesr‹  r’  r]  Úsqueezer  Úupdate_conv_staterA   r—  r�   r  )
r“   r8   r(  r'  r”   Úinput_dtypeÚresidualr”  Úuse_precomputed_statesrŒ  s
             r   ró   zInklingShortConvolution.forwardT  sÉ  € ð $Ô)ˆØ%×+Ò+Ñ-Ô-ˆà ˆÝ4°]ÀIÑNÔNˆØÔ% aÔ(ˆØ%×/Ò/°°1Ñ5Ô5ˆà!0¸Ð!<ð "
À×AcÒAcØŒN˜DœMñB
ô B
Ðð "ð 	? g°¢l l¸?Ô;QÐRVÔR`Ô;aÔ;m lØ(Ô/°´Ô?ÔKÈDÌMÔZˆJå0Ø˜z¨4¬;Ô+=×+EÒ+EÀaÑ+HÔ+HÈ$Ì+ÔJZñô ˆMˆMð Ð*Ø /× AÒ AØ! 4¤>¸T¼]Ð]aÔ]rð !Bñ !ô !�õ -Ø˜tœ{Ô1×9Ò9¸!Ñ<Ô<¸d¼kÔ>NÐX^×XbÒXbÐclÑXmÔXmðñ ô ˆMð
 &ð ?Ø -¨a¨a¨a°°°°W°H°I°I¨oÔ >�à%×/Ò/°°1Ñ5Ô5ˆØ&¨Ñ1×5Ò5¸KÐ5ÑHÔHˆØÐr�   rC  )rœ   r�   rž   r¥   rÝ   r   rà   rô   r   r   r   ró   r¬   r­   s   @r   r   r   C  sÌ   ø€ € € € € ð
 Cð 
¸3ð 
È3ð 
ÐZ]ð 
ð 
ð 
ð 
ð 
ð 
ð Ð˜HÑ%Ô%ð )-Ø)-ð	*ð *à”|ð*ð  ™ð*ð ”< $Ñ&ð	*ð
 Ð+Ô,ð*ð *ð *ñ &Ô%ð*ð *ð *ð *ð *r�   r   c                   ó–   ‡ — e Zd Zdedefˆ fd„Z	 	 	 ddej        dej        dz  dej        dz  dedz  d	e	e
         d
ej        fd„Zˆ xZS )ÚInklingDecoderLayerr  r  c                 ó&  •— t          ¦   «                              ¦   «          |j        | _        t          ||¦  «        | _        |j        |         dk    rt          |¦  «        | _        nt          |¦  «        | _        t          |j        |j
        ¦  «        | _        t          |j        |j
        ¦  «        | _        |j        |         | _        t          |j        |j        |d¬¦  «        | _        t          |j        |j        |d¬¦  «        | _        d S )NrŠ   r   )r  r  r   )r‘   rÝ   rK   r  Ú	self_attnrb   r„  ÚmlprF  rØ   r`   Úinput_layernormÚpost_attention_layernormr^   Ú
layer_typer   rA   Ú
attn_sconvÚ	mlp_sconvr&  s      €r   rÝ   zInklingDecoderLayer.__init__ƒ  sù   ø€ Ý‰Œ×ÒÑÔÐØ!Ô-ˆÔÝ)¨&°)Ñ<Ô<ˆŒàÔ! )Ô,°Ò8Ð8Ý! &Ñ)Ô)ˆDŒHˆHå! &Ñ)Ô)ˆDŒHå-¨fÔ.@À&ÔBUÑVÔVˆÔÝ(6°vÔ7IÈ6ÔK^Ñ(_Ô(_ˆÔ%Ø Ô,¨YÔ7ˆŒÝ1ØÔ Ô 7À9ÐWXð
ñ 
ô 
ˆŒõ 1ØÔ Ô 7À9ÐWXð
ñ 
ô 
ˆŒˆˆr�   Nr8   r9   r'  r(  r”   ræ   c                 ó*  — |}|                       |¦  «        } | j        d||||dœ|¤Ž\  }}|                      |||¬¦  «        }||z   }|}|                      |¦  «        }|                      |¦  «        }|                      |||¬¦  «        }||z   }|S )N)r8   r9   r'  r(  r*  r|   )r¯  r­  r²  r°  r®  r³  )r“   r8   r9   r'  r(  r”   r¨  rŠ  s           r   ró   zInklingDecoderLayer.forward—  sÉ   € ð !ˆØ×,Ò,¨]Ñ;Ô;ˆØ)˜4œ>ð 
Ø'Ø)ØØ+ð	
ð 
ð
 ð
ð 
Ñˆ�qð Ÿš¨ÀÐbk˜ÑlÔlˆØ  =Ñ0ˆà ˆØ×5Ò5°mÑDÔDˆØŸš Ñ/Ô/ˆØŸš }ÀoÐaj˜ÑkÔkˆØ  =Ñ0ˆØÐr�   )NNN)rœ   r�   rž   r*   r¥   rÝ   rà   rô   r   r   r   ró   r¬   r­   s   @r   r«  r«  ‚  sÆ   ø€ € € € € ð
Ð0ð 
¸Sð 
ð 
ð 
ð 
ð 
ð 
ð. /3Ø)-Ø(,ðð à”|ðð œ tÑ+ðð ”< $Ñ&ð	ð
  ™ðð Ð+Ô,ðð 
Œðð ð ð ð ð ð ð r�   r«  c                   óŒ   ‡ — e Zd ZeZdZdZdgZdgZdZ	dZ
dZdZdZdgZg d¢ZeedœZ ej        ¦   «         ˆ fd	„¦   «         Zˆ xZS )
ÚInklingPreTrainedModelÚmodelTr«  r(  Fzmodel\.mtp\..*)r²  r³  r!  r"  )r8   Ú
attentionsc                 ó`  •— t          ¦   «                              |¦  «         | j                             ¦   «         j        }t          |t          ¦  «        rt          j        |j	        d|¬¦  «         d S t          |t          ¦  «        rt          j        |j        ¦  «         d S t          |t          ¦  «        r:t          j        |j        d|¬¦  «         t          j        |j        d|¬¦  «         d S t          |t           ¦  «        rPt          j        |j        d|¬¦  «         t          j        |j        ¦  «         t          j        |j        ¦  «         d S t          |t(          ¦  «        rVt          j        |j        d|¬¦  «         t          j        |j        d|¬¦  «         t          j        |j        d|¬¦  «         d S t          |t.          ¦  «        rVt1          | j        d| j        ¦  «        }t          j        |j        t7          j        |j        ¦  «        |j        z  ¦  «         d S d S )Nrn   )ÚmeanÚstdr±   )r‘   Ú_init_weightsr  Úget_text_configrq   rÌ   rÚ   ÚinitÚnormal_râ   rF  Úones_rK  rS  Úgate_up_projrN  rX  r]  Úzeros_r^  rx  rO  rP  ÚInklingAudioModelEmbeddingsÚgetattrr‘  Úaudio_tokens_offsetsrà   r2  r²   r³   )r“   rõ   r»  r±   r•   s       €r   r¼  z$InklingPreTrainedModel._init_weightsÈ  s  ø€ å‰Œ×Ò˜fÑ%Ô%Ð%ØŒk×)Ò)Ñ+Ô+Ô=ˆÝ�fÕ3Ñ4Ô4ð 	ÝŒL˜œ¨3°CÐ8Ñ8Ô8Ð8Ð8Ð8Ý˜¥
Ñ+Ô+ð 	ÝŒJ�vÔ*Ñ+Ô+Ð+Ð+Ð+Ý˜¥Ñ/Ô/ð 	ÝŒL˜Ô,°3¸CÐ@Ñ@Ô@Ð@ÝŒL˜Ô)°¸Ð=Ñ=Ô=Ð=Ð=Ð=Ý˜Õ 1Ñ2Ô2ð 	ÝŒL˜œ¨S°cÐ:Ñ:Ô:Ð:ÝŒJ�vÔ*Ñ+Ô+Ð+ÝŒK˜Ô6Ñ7Ô7Ð7Ð7Ð7Ý˜Õ 4Ñ5Ô5ð 	ÝŒL˜Ô)°¸Ð=Ñ=Ô=Ð=ÝŒL˜œ¨c°sÐ;Ñ;Ô;Ð;ÝŒL˜Ô)°¸Ð=Ñ=Ô=Ð=Ð=Ð=Ý˜Õ ;Ñ<Ô<ð 	õ # 4¤;°ÀÄÑLÔLˆLÝŒJØÔ+Ý”˜\Ô4Ñ5Ô5¸Ô8SÑSñô ð ð ð ð		ð 	r�   )rœ   r�   rž   rÃ   Úconfig_classÚbase_model_prefixÚsupports_gradient_checkpointingÚ_no_split_modulesÚ_skip_keys_device_placementÚ_supports_flash_attnÚ_supports_sdpaÚ_supports_flex_attnÚ_can_compile_fullgraphÚ_supports_attention_backendÚ"_keys_to_ignore_on_load_unexpectedÚ_keep_in_fp32_modules_strictr«  r  Ú_can_record_outputsrà   Úno_gradr¼  r¬   r­   s   @r   r¶  r¶  ³  s¶   ø€ € € € € à €LØÐØ&*Ð#Ø.Ð/ÐØ#4Ð"5Ðð !ÐØ€NØÐØ"ÐØ"'ÐØ*;Ð)<Ð&Ø#TÐ#TÐ#TÐ à,Ø&ðð Ðð
 €U„]�_„_ðð ð ð ñ „_ðð ð ð ð r�   r¶  c                   óî   ‡ — e Zd ZU eed<   defˆ fd„Zeee	 	 	 	 	 	 dde	j
        dz  de	j        dz  de	j
        dz  dedz  de	j        dz  d	edz  d
ee         defd„¦   «         ¦   «         ¦   «         Zˆ xZS )ÚInklingTextModelr  c                 óô  •‡— t          ¦   «                              ‰¦  «         ‰j        | _        ‰j        | _        t          j        ‰j        ‰j        | j        ¦  «        | _        t          j	        ˆfd„t          ‰j        ¦  «        D ¦   «         ¦  «        | _        t          ‰j        ‰j        ¬¦  «        | _        t          ‰j        ‰j        ¬¦  «        | _        d| _        |                      ¦   «          d S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS r|   )r«  )r}   r  r  s     €r   r†   z-InklingTextModel.__init__.<locals>.<listcomp>ð  s$   ø€ ÐeÐeÐe¸	Õ  ¨Ñ3Ô3ÐeÐeÐer�   r  F)r‘   rÝ   rr   Úpadding_idxrH   rÞ   Ú	EmbeddingrK   r2   Ú
ModuleListr�   rM   r:   rØ   r`   r;   Ú
embed_normÚgradient_checkpointingÚ	post_initrL  s    `€r   rÝ   zInklingTextModel.__init__é  sÜ   øø€ Ý‰Œ×Ò˜Ñ Ô Ð Ø!Ô.ˆÔØ Ô+ˆŒåœL¨Ô):¸FÔ<NÐPTÔP`ÑaÔaˆÔÝ”mØeÐeÐeÐeÅUÈ6ÔKcÑEdÔEdÐeÑeÔeñ
ô 
ˆŒõ # 6Ô#5¸6Ô;NÐOÑOÔOˆŒ	Ý(¨Ô);ÀÔATÐUÑUÔUˆŒØ&+ˆÔ#ð 	�ŠÑÔÐÐÐr�   Nr6   r9   Úposition_idsr(  r7   Ú	use_cacher”   ræ   c                 óâ  — |d u |d uz  rt          d¦  «        ‚|€(|                      |                      |¦  «        ¦  «        }|r|€t          | j        ¬¦  «        }|€V|�|                     ¦   «         nd}t          j        |j        d         |j	        ¬¦  «        |z   }| 
                    d¦  «        }t          |x}	t          ¦  «        s1| j        ||||dœ}
t          di |
¤Žt          di |
¤Žt          di |
¤Ždœ}	|}t!          | j        ¦  «        D ]8\  }}| j        j        |         dk    rd	nd
} ||f|	|         |	d         |dœ|¤Ž}Œ9|                      |¦  «        }t)          ||¬¦  «        S )Nú:You must specify exactly one of input_ids or inputs_embeds)r  r   rs   r+  ©r  r7   r9   r(  rÞ  ©Úfull_attentionÚsliding_attentionÚlinear_attentionr…   rä  rå  ræ  )r9   r'  r(  )Úlast_hidden_stater(  r|   )Ú
ValueErrorrÛ  r2   r	   r  Úget_seq_lengthrà   r2  rì   r,  r“  rÌ   rÍ   r   r   r   Ú	enumerater:   r^   r;   r   )r“   r6   r9   rÞ  r(  r7   rß  r”   Úpast_seen_tokensÚcausal_mask_mappingÚmask_kwargsr8   r~   Údecoder_layerÚattention_types                  r   ró   zInklingTextModel.forwardù  sö  € ð ˜Ð -°tÐ";Ñ<ð 	[ÝÐYÑZÔZÐZàÐ Ø ŸOšO¨D×,=Ò,=¸iÑ,HÔ,HÑIÔIˆMàð 	?˜Ð0Ý*°$´+Ð>Ñ>Ô>ˆOàÐØCRÐC^˜×=Ò=Ñ?Ô?Ð?ÐdeÐÝ œ<¨Ô(;¸AÔ(>À}ÔG[Ð\Ñ\Ô\Ð_oÑoˆLØ'×1Ò1°!Ñ4Ô4ˆLõ °Ð?Ð-ÅÑFÔFð 	àœ+Ø!.Ø"0Ø#2Ø ,ðð ˆKõ #5Ð"CÐ"C°{Ð"CÐ"CÝ%FÐ%UÐ%UÈÐ%UÐ%UÝ$CÐ$RÐ$RÀkÐ$RÐ$Rð#ð #Ðð &ˆÝ )¨$¬+Ñ 6Ô 6ð 	ð 	ÑˆAˆ}Ø15´Ô1HÈÔ1KÈxÒ1WÐ1WÐ-Ð-Ð]pˆNØ)˜MØðà2°>ÔBØ-Ð.@ÔAØ /ð	ð ð
 ðð ˆMˆMð Ÿ	š	 -Ñ0Ô0ˆÝ&Ø+Ø+ð
ñ 
ô 
ð 	
r�   )NNNNNN)rœ   r�   rž   r*   r¦   rÝ   r   r   r   rà   Ú
LongTensorrô   r   ÚFloatTensorrª   r   r   r   ró   r¬   r­   s   @r   rÕ  rÕ  å  s  ø€ € € € € € àÐÐÑðÐ0ð ð ð ð ð ð ð   ØØð .2Ø.2Ø04Ø(,Ø26Ø!%ð6
ð 6
àÔ# dÑ*ð6
ð œ tÑ+ð6
ð Ô&¨Ñ-ð	6
ð
  ™ð6
ð Ô(¨4Ñ/ð6
ð ˜$‘;ð6
ð Ð+Ô,ð6
ð 
!ð6
ð 6
ð 6
ñ „^ñ „_ñ  Ôð6
ð 6
ð 6
ð 6
ð 6
r�   rÕ  c                   óô   — e Zd Zi ZddiZee	 	 	 	 	 	 	 	 ddej        dz  dej	        dz  dej        dz  de
dz  d	ej        dz  d
ej        dz  dedz  deej	        z  dee         defd„¦   «         ¦   «         ZdS )ÚInklingForCausalLMÚlm_headÚrowwise_split_inputNr   r6   r9   rÞ  r(  r7   Úlabelsrß  Úlogits_to_keepr”   ræ   c	           
      óÂ  —  | j         d||||||dœ|	¤Ž}
|
j        | j        j        z  }t	          |t
          ¦  «        rt          | d ¦  «        n|}|                      |d d …|d d …f         ¦  «        }| j        j        }|�||j	        d         k     r|dd |…f         }d }|� | j
        d|||j	        d         dœ|	¤Ž}t          |||
j        |
j        |
j        ¬¦  «        S )N)r6   r9   rÞ  r(  r7   rß  rè   .©Úlogitsrö  rH   )Úlossrú  r(  r8   r¸  r|   )r·  rç  r  r>   rÌ   r¥   Úslicerô  rI   rì   Úloss_functionrÖ   r(  r8   r¸  )r“   r6   r9   rÞ  r(  r7   rö  rß  r÷  r”   Úoutputsr8   Úslice_indicesrú  rI   rû  s                   r   ró   zInklingForCausalLM.forward:  s;  € ð �$”*ð 
ØØ)Ø%Ø+Ø'Øð
ð 
ð ð
ð 
ˆð  Ô1°D´KÔ4[Ñ[ˆå8BÀ>ÕSVÑ8WÔ8WÐk�˜~˜o¨tÑ4Ô4Ð4Ð]kˆØ—’˜m¨A¨A¨A¨}¸a¸a¸aÐ,?Ô@ÑAÔAˆØ"œkÔ=ÐØÐ*Ð/BÀVÄ\ÐRTÔEUÒ/UÐ/UØ˜CÐ!5Ð"5Ð!5Ð5Ô6ˆFàˆØÐØ%�4Ô%Ðj¨V¸FÈvÌ|Ð\^ÔO_ÐjÐjÐciÐjÐjˆDå,ØØØ#Ô3Ø!Ô/ØÔ)ð
ñ 
ô 
ð 	
r�   )NNNNNNNr   )rœ   r�   rž   Ú_tied_weights_keysÚ_tp_planr   r   rà   rð  rô   r   rñ  rª   r¥   r   r   rÖ   ró   r|   r�   r   ró  ró  5  s  € € € € € àÐØÐ0Ð1€HàØð .2Ø.2Ø04Ø(,Ø26Ø*.Ø!%Ø-.ð(
ð (
àÔ# dÑ*ð(
ð œ tÑ+ð(
ð Ô&¨Ñ-ð	(
ð
  ™ð(
ð Ô(¨4Ñ/ð(
ð Ô  4Ñ'ð(
ð ˜$‘;ð(
ð ˜eœlÑ*ð(
ð Ð+Ô,ð(
ð 
'ð(
ð (
ð (
ñ „^ñ Ôð(
ð (
ð (
r�   ró  c                   ó   — e Zd ZdS )rÃ  NrÓ   r|   r�   r   rÃ  rÃ  g  s   € € € € € € € r�   rÃ  c                   óH   ‡ — e Zd Zdefˆ fd„Zdej        dej        fd„Zˆ xZS )ÚInklingAudioModelr  c                 ó¨   •— t          ¦   «                              |¦  «         t          |¦  «        | _        t	          |j        d¬¦  «        | _        d S )Nr_   r  )r‘   rÝ   rÃ  Úembed_audio_tokensrØ   r´   r;   rL  s     €r   rÝ   zInklingAudioModel.__init__k  sF   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ý"=¸fÑ"EÔ"EˆÔÝ" 6Ô#:ÀÐEÑEÔEˆŒ	ˆ	ˆ	r�   Úaudio_input_idsræ   c                 óx   — |                       |¦  «        }|                      |¦  «        }t          ||¬¦  «        S )N©rç  Úpooler_output)r  r;   r   )r“   r  r8   s      r   ró   zInklingAudioModel.forwardp  sC   € Ø×/Ò/°Ñ@Ô@ˆØŸ	š	 -Ñ0Ô0ˆÝ)Ø+Ø'ð
ñ 
ô 
ð 	
r�   )	rœ   r�   rž   r¯   rÝ   rà   rô   ró   r¬   r­   s   @r   r  r  j  sr   ø€ € € € € ðFÐ1ð Fð Fð Fð Fð Fð Fð

 u¤|ð 
¸¼ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r�   r  c            
       ó|   ‡ — e Zd Zdededededef
ˆ fd„Zdej        dej        fd	„Zdej        dej        fd
„Z	ˆ xZ
S )ÚInklingVisionEncoderLayerÚ	input_dimÚ
output_dimÚt_foldÚhw_foldÚadd_normc                 óÖ   •— t          ¦   «                              ¦   «          t          j        ||d¬¦  «        | _        |rt          |¦  «        | _        || _        || _        || _	        d S ©NFr  )
r‘   rÝ   rÞ   r  Ú
projectionrØ   Ú
layer_normr  r  r  )r“   r  r  r  r  r  r•   s         €r   rÝ   z"InklingVisionEncoderLayer.__init__z  sa   ø€ Ý‰Œ×ÒÑÔÐÝœ) I¨zÀÐFÑFÔFˆŒØð 	9Ý,¨ZÑ8Ô8ˆDŒOØˆŒØˆŒØ ˆŒˆˆr�   r8   ræ   c           
      óL  — |j         \  }}}}}|| j        z  }|| j        z  }|| j        z  }	|                     ||| j        || j        |	| j        |¦  «        }|                     dddddddd¦  «        }|                     ||||	| j        | j        z  | j        z  |z  ¦  «        }|S )	z€
        Convert a tensor of shape (B, T, H, W, C) to a tensor of shape (B, T // t, H // hw, W //  hw, C * (t * hw**2))
        r   rs   r   é   r   ra   rh   é   )rì   r  r  r6  Úpermute)
r“   r8   ÚBÚTÚHÚWÚCÚt_newÚh_newÚw_news
             r   Úfold_timespace_to_depthz1InklingVisionEncoderLayer.fold_timespace_to_depthƒ  sÁ   € ð &Ô+‰ˆˆ1ˆa��Aà�T”[Ñ ˆØ�T”\Ñ!ˆØ�T”\Ñ!ˆà%×-Ò-¨a°¸¼ÀUÈDÌLÐZ_ÐaeÔamÐopÑqÔqˆà%×-Ò-¨a°°A°q¸!¸QÀÀ1ÑEÔEˆØ%×-Ò-¨a°¸¸uÀdÄkÐTXÔT`ÑF`ÐcgÔcoÑFoÐrsÑFsÑtÔtˆØÐr�   c                 óæ   — | j         dk    s| j        dk    r|                      |¦  «        }|                      |¦  «        }| j        r)|                      |¦  «        }t          j        |¦  «        }|S rH  )r  r  r"  r  r  r  rc  ÚgelurQ  s     r   ró   z!InklingVisionEncoderLayer.forward“  sm   € ØŒ<˜!ÒÐ˜tœ{¨Qš˜Ø ×8Ò8¸ÑGÔGˆMàŸš¨Ñ6Ô6ˆØŒ=ð 	2Ø ŸOšO¨MÑ:Ô:ˆMÝœF =Ñ1Ô1ˆMØÐr�   )rœ   r�   rž   r¥   rª   rÝ   rà   rô   r"  ró   r¬   r­   s   @r   r  r  y  s­   ø€ € € € € ð! #ð !°3ð !Àð !Ècð !Ð]að !ð !ð !ð !ð !ð !ð°U´\ð ÀeÄlð ð ð ð ð  U¤\ð °e´lð ð ð ð ð ð ð ð r�   r  Únumberræ   c                 óB  — g }| dz  dk    r#|                      d¦  «         | dz  } | dz  dk    °#t          dt          j        | ¦  «        dz   d¦  «        D ].}| |z  dk    r#|                      |¦  «         | |z  } | |z  dk    °#Œ/| dk    r|                      | ¦  «         |S )Nr   r   r   rs   )Úappendr�   ÚmathÚisqrt)r%  Úfactorsrþ   s      r   Úprime_factorsr+  ž  sÄ   € Ø€Gà
�1‰*˜Š/ˆ/Ø�Š�qÑÔÐØ�1‰ˆð �1‰*˜Š/ˆ/õ �1•d”j Ñ(Ô(¨1Ñ,¨aÑ0Ô0ð ð ˆØ�q‰j˜AŠoˆoØ�NŠN˜1ÑÔÐØ�q‰LˆFð �q‰j˜AŠoˆoøð �‚z€zØ�Š�vÑÔÐØ€Nr�   Úcpur¿   r¾   r¼   Ú
n_channelsc           	      óø  — t          j        t          j        t          |¦  «        ddd…         |¬¦  «        d¬¦  «        }t          j        t          j        t          | ¦  «        ddd…         |¬¦  «        d¬¦  «        }t          j        |dz  |z  dz  ¦  «                             ¦   «         dz  }t          j        |d         dz  |z  |z  ¦  «                             ¦   «         dz  }t          j        ddd|gg|¬¦  «        }	t          j        t          j        |¦  «        |||gd¬¦  «        }
t          j        |t          j        ||d         ¦  «        t          j        ||d         ¦  «        |gd¬¦  «        }t          j	        |	|
|gd¬¦  «        }t          j
        |dd…dd…f         d¬¦  «                             ¦   «         }||z  | z  |z  }t          j        dt          j        t          j        ||¬¦  «        ¦  «        |dz   |¬¦  «        }t          j        |                     d¦  «        t          j        |¦  «                             d¦  «        z
  ¦  «        }||j        d         k    rt          j        |d¬¦  «        }nNdd	lm}  ||                     ¦   «                              ¦   «         ¦  «        \  }}t          j        ||¬¦  «        }d|d<   |j        d         dz
  |d<   ||         S )
a  
    Plan out the dimensions for each layer in the HMLP encoder.

    This function determines the progression of dimensions (temporal, height, width, channels)
    for a multi-layer perceptual model that processes image/video patches. It follows these
    principles:
    1. Start with small dimensions and increase to full size
    2. Expand spatial dimensions (height/width) first, then temporal
    3. Increase channel count to avoid information bottlenecks
    4. Round channel dimensions to multiples of 64 for hardware efficiency

    The function computes optimal assignments of scale configurations to layers using either:
    - For n_layers >= len(scales): Individual best matching scales for each layer (allowing duplicates)
    - For n_layers < len(scales): Global optimal assignment via linear_sum_assignment

    The first and last scales are always fixed to ensure the proper input and output dimensions.

    Args:
        temporal_patch_size: Temporal dimension of input patches
        patch_size: Spatial dimension (height/width) of input patches
        n_layers: Number of layers in the encoder
        n_channels: Number of input channels (default: 3 for RGB)

    Returns:
        torch.LongTensor of shape `(n_layers + 1, 4)` where the last dim holds values for (t, h, w, c) grids.
    Nrè   r+  r   ra  r   rN   rs   )Úlinear_sum_assignment)rà   ÚcumprodÚtensorr+  Úceilr¥   ÚstackÚ	ones_likeÚ	full_likerg  Úprodr§   Úlinspacer3  Úabsr“  rì   ÚargminÚscipy.optimizer/  r,  Únumpy)r¿   r¾   r¼   r-  r,  ÚhÚtÚh_chÚt_chÚbaseÚspatialÚtemporalÚscalesÚsize_reductionÚtotal_elementsÚlog_ideal_scalesÚcost_matrixÚidxsr/  rŠ  Úidxs_nps                        r   Úplan_out_scalesrJ  ¯  sÖ  € õ: 	Œ•e”l¥=°Ñ#<Ô#<¸T¸T¸r¸TÔ#BÈ6ÐRÑRÔRÐXYÐZÑZÔZ€AÝŒ•e”l¥=Ð1DÑ#EÔ#EÀdÀdÈÀdÔ#KÐTZÐ[Ñ[Ô[ÐabÐcÑcÔc€AåŒ:�a˜‘d˜ZÑ'¨"Ñ,Ñ-Ô-×1Ò1Ñ3Ô3°bÑ8€DÝŒ:�a˜”e˜q‘j :Ñ-°Ñ1Ñ2Ô2×6Ò6Ñ8Ô8¸2Ñ=€DåŒ<˜!˜Q  :Ð.Ð/¸Ð?Ñ?Ô?€DÝŒk�5œ?¨1Ñ-Ô-¨q°!°TÐ:ÀÐBÑBÔB€GÝŒ{˜A�uœ¨q°!°B´%Ñ8Ô8½%¼/È!ÈQÈrÌUÑ:SÔ:SÐUYÐZÐ`aÐbÑbÔb€HÝŒY˜˜g xÐ0°aÐ8Ñ8Ô8€Få”Z  q q q¨#¨2¨# v¤°AÐ6Ñ6Ô6×<Ò<Ñ>Ô>€Nà *Ñ,Ð/BÑBÀZÑO€NÝ”~Ø	�5Œ9•U”\ .¸Ð@Ñ@Ô@ÑAÔAÀ8ÈaÁ<ÐX^ðñ ô Ðõ ”)Ð,×6Ò6°qÑ9Ô9½E¼IÀnÑ<UÔ<U×<_Ò<_Ð`aÑ<bÔ<bÑbÑcÔc€Kà�6”< ”?Ò"Ð"ÝŒ|˜K¨QÐ/Ñ/Ô/ˆˆà8Ð8Ð8Ð8Ð8Ð8à*Ð*¨;¯?ª?Ñ+<Ô+<×+BÒ+BÑ+DÔ+DÑEÔE‰
ˆˆ7ÝŒ|˜G¨FÐ3Ñ3Ô3ˆð €Dˆ�GØŒ|˜AŒ Ñ"€Dˆ�HØ�$Œ<Ðr�   c                   óX   ‡ — e Zd Zdefˆ fd„Zdej        dee         dej        fd„Z	ˆ xZ
S )ÚInklingVisionModelr  c                 ó  •— t          ¦   «                              |¦  «         t          |j        |j        |j        |j        ¦  «        | _        t          j	        ¦   «         | _
        t          t          | j        d d…         | j        dd …         ¦  «        ¦  «        D ]½\  }\  }}|d         |d         z  |d         |d         z  z  |d         |d         z  z  }||j        dz
  k    r|j        n|d         }|d         |d         z  }|d         |d         z  }| j
                             t          |d         |z  |||||j        dz
  k    ¬¦  «        ¦  «         Œ¾t!          |j        ¦  «        | _        |                      ¦   «          d S )Nrè   rs   r   r   r   )r  r  r  r  r  )r‘   rÝ   rJ  r¿   r¾   rM   rÀ   rC  rÞ   rÚ  Úencoder_layersrê  Úzipr´   r'  r  rØ   Ú
final_normrÝ  )
r“   r  r~   Ústart_scaleÚ	end_scaleÚshuffle_multr  r  r  r•   s
            €r   rÝ   zInklingVisionModel.__init__î  s¥  ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ý%ØÔ&ØÔØÔ$ØÔñ	
ô 
ˆŒõ !œm™oœoˆÔÝ+4µS¸¼ÀSÀbÀSÔ9IÈ4Ì;ÐWXÐWYÐWYÌ?Ñ5[Ô5[Ñ+\Ô+\ð 	ð 	Ñ'ˆAÑ'�˜Yà˜1” ¨Q¤Ñ/°I¸a´LÀKÐPQÄNÑ4RÑSÐW`ÐabÔWcÐgrÐstÔguÑWuÑvð ð 56¸Ô9QÐTUÑ9UÒ4UÐ4U˜Ô0Ð0Ð[dÐefÔ[gˆJØ ”l k°!¤nÑ4ˆGØ˜q”\ [°¤^Ñ3ˆFØÔ×&Ò&Ý)Ø)¨!œn¨|Ñ;Ø)Ø#Ø!Ø &Ô":¸QÑ">Ò>ðñ ô ñô ð ð õ )¨Ô)@ÑAÔAˆŒØ�ŠÑÔÐÐÐr�   Úpixel_valuesr”   ræ   c                 óÄ   — |j         d         }|}| j        D ]} ||¬¦  «        }Œ|                      |¦  «        }|                     |d¦  «        }t	          ||¬¦  «        S )Nr   )r8   rè   r	  )rì   rN  rP  r6  r   )r“   rT  r”   Únum_patchesr8   Úlayers         r   ró   zInklingVisionModel.forward  s}   € Ø"Ô(¨Ô+ˆØ$ˆØÔ(ð 	?ð 	?ˆEØ!˜E°Ð>Ñ>Ô>ˆMˆMàŸš¨Ñ6Ô6ˆØ%×-Ò-¨k¸2Ñ>Ô>ˆÝ)Ø+Ø'ð
ñ 
ô 
ð 	
r�   )rœ   r�   rž   r¹   rÝ   rà   rô   r   r   ró   r¬   r­   s   @r   rL  rL  í  sz   ø€ € € € € ðÐ2ð ð ð ð ð ð ð>
 E¤Lð 
¸FÐCUÔ<Vð 
Ð[`Ô[gð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r�   rL  zz
    The Base Inkling model which consists of a vision backbone and a language model without language modeling head.,
    ©Úcustom_introc                   óP  ‡ — e Zd ZdZdefˆ fd„Ze ed¬¦  «        dej	        de
e         deez  fd	„¦   «         ¦   «         Ze ed
¬¦  «        	 ddej        dej        dz  deez  fd„¦   «         ¦   «         Zdej        dej	        dej	        defd„Zee	 	 	 	 	 	 	 	 	 	 	 ddej        dz  dej	        dz  dej        dz  dej        dz  dej        dz  dej        dz  dedz  dej        dz  dej	        dz  dej        dz  dedz  de
e         deez  fd„¦   «         ¦   «         Zˆ xZS )ÚInklingModelFr  c                 ó*  •— t          ¦   «                              |¦  «         |j        j        | _        t	          |j        ¦  «        | _        t          |j        ¦  «        | _        t          |j
        ¦  «        | _        |                      ¦   «          d S rÜ   )r‘   rÝ   r,   rH   rÕ  Úlanguage_modelr  r±   Úaudio_towerrL  r»   Úvision_towerrÝ  rL  s     €r   rÝ   zInklingModel.__init__$  sw   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ø Ô,Ô7ˆŒÝ.¨vÔ/AÑBÔBˆÔÝ,¨VÔ-@ÑAÔAˆÔÝ.¨vÔ/CÑDÔDˆÔØ�ŠÑÔÐÐÐr�   zOProjects the last hidden state from the vision model into language model space.rX  rT  r”   ræ   c                 ó    —  | j         dd|i|¤ŽS )NrT  r|   )r_  ©r“   rT  r”   s      r   Úget_image_featureszInklingModel.get_image_features,  s"   € ð
 !ˆtÔ ÐEÐE¨lÐE¸fÐEÐEÐEr�   zCProjects discretized dMel bin tokens into the language model space.Nr  Úaudio_input_ids_maskc                 ó¨   — |�||                      ¦   «                  }n!|                     d|j        d         ¦  «        }|                      |¦  «        S )aì  
        audio_input_ids (`torch.LongTensor` of shape `(num_audios, max_num_frames, n_mel_bins)`):
            Batch of (padded) dMel bin tokens produced by [`InklingProcessor`].
        audio_input_ids_mask (`torch.Tensor` of shape `(num_audios, max_num_frames)`, *optional*):
            Mask marking valid (non-padding) frames. When provided, only valid frames are encoded so that the
            number of returned audio embeddings matches the number of audio placeholder tokens.
        Nrè   )rª   r6  rì   r^  )r“   r  rc  s      r   Úget_audio_featureszInklingModel.get_audio_features3  sU   € ð  Ð+Ø-Ð.B×.GÒ.GÑ.IÔ.IÔJˆOˆOà-×5Ò5°b¸/Ô:OÐPRÔ:SÑTÔTˆOØ×Ò Ñ0Ô0Ð0r�   r6   r7   ÚfeaturesÚtoken_idc                 ó  — |€[| |                       ¦   «         t          j        |t          j        |j        ¬¦  «        ¦  «        k    }|                     d¦  «        }n||k    }|                     ¦   «         }|                     d¦  «                             |¦  «         	                    |j        ¦  «        }t          ||                              ¦   «         |                     ¦   «         k    d|› d|j        d         › �¦  «         |S )zö
        Obtains a multimodal placeholder mask from `input_ids` or `inputs_embeds` for the given `token_id`, and checks
        that the placeholder token count matches the length of `features`. If the lengths differ, an error is raised.
        N)rý   r,  rè   zAMultimodal features and placeholder tokens do not match, tokens: z, features: r   )Úget_input_embeddingsrà   r1  Úlongr,  Úallr|  r“  Ú	expand_asr  r   Únumelrì   )r“   r6   r7   rf  rg  Úspecial_maskÚn_tokenss          r   Úget_placeholder_maskz!InklingModel.get_placeholder_maskG  s  € ð ÐØ(Ð,G¨D×,EÒ,EÑ,GÔ,GÝ”˜X­U¬ZÀÔ@TÐUÑUÔUñ-ô -ò ˆLð (×+Ò+¨BÑ/Ô/ˆLˆLà$¨Ò0ˆLà×#Ò#Ñ%Ô%ˆØ#×-Ò-¨bÑ1Ô1×;Ò;¸MÑJÔJ×MÒMÈmÔNbÑcÔcˆÝØ˜,Ô'×-Ò-Ñ/Ô/°8·>²>Ñ3CÔ3CÒCØyÐPXÐyÐyÐfnÔftÐuvÔfwÐyÐyñ	
ô 	
ð 	
ð Ðr�   r9   rÞ  r(  Útoken_type_idsrö  rß  Ú	lm_kwargsc           	      ó¨  — |du |	duz  rt          d¦  «        ‚|	€5| j                              |                      ¦   «         |¦  «        ¦  «        }	|�r|                      |¦  «        j        }|                     |	j        |	j        ¦  «        }|  	                    ||	|| j
        j        ¦  «        }|	                     ||¦  «        }	d}|�s|                      ||¦  «        j        }|                     |	j        |	j        ¦  «        }|  	                    ||	|| j
        j        ¦  «        }|	                     ||¦  «        }	t!          |x}t"          ¦  «        sC| j
                             ¦   «         |	|||dœ}t'          di |¤Žt)          di |¤Žt+          di |¤Ždœ} | j        d||||	|dœ|¤Ž}t-          |j        |j        |j        |j        |�|nd¬¦  «        S )a/  
        audio_input_ids (`torch.LongTensor` of shape `(num_audios, max_num_frames, n_mel_bins)`, *optional*):
            Batch of (padded) discretized dMel bin tokens produced by [`InklingProcessor`].
        audio_input_ids_mask (`torch.Tensor` of shape `(num_audios, max_num_frames)`, *optional*):
            Mask marking valid (non-padding) audio frames in `audio_input_ids`.
        labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
            Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,
            config.text_config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored
            (masked), the loss is only computed for the tokens with labels in `[0, ..., config.text_config.vocab_size]`.

        Example:

        ```python
        >>> from PIL import Image
        >>> import httpx
        >>> from io import BytesIO
        >>> from transformers import AutoProcessor, InklingForConditionalGeneration

        >>> model = InklingForConditionalGeneration.from_pretrained("google/inkling2-3b-mix-224")
        >>> processor = AutoProcessor.from_pretrained("google/inkling2-3b-mix-224")

        >>> prompt = "Where is the cat standing?"
        >>> url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
        >>> with httpx.stream("GET", url) as response:
        ...     image = Image.open(BytesIO(response.read()))

        >>> inputs = processor(images=image, text=prompt,  return_tensors="pt")

        >>> # Generate
        >>> generate_ids = model.generate(**inputs,)
        >>> processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
        "Where is the cat standing?\nsnow"
        ```Nrá  râ  rã  )r9   rÞ  r(  r7   rß  )rç  r(  r8   r¸  Úimage_hidden_statesr|   )rè  r]  rÛ  ri  rb  r
  r  r,  rý   rp  r  rÅ   Úmasked_scatterre  rç  rÆ   rÌ   rÍ   r½  r   r   r   rÒ   r(  r8   r¸  )r“   r6   rT  r  rc  r9   rÞ  r(  rq  r7   rö  rß  rr  Úimage_featuresÚspecial_image_maskÚaudio_featuresÚspecial_audio_maskrì  rí  rþ  s                       r   ró   zInklingModel.forwardb  sN  € ðd ˜Ð -°tÐ";Ñ<ð 	[ÝÐYÑZÔZÐZàÐ Ø Ô/×:Ò:Ð;V¸4×;TÒ;TÑ;VÔ;VÐW`Ñ;aÔ;aÑbÔbˆMð Ð#Ø!×4Ò4°\ÑBÔBÔPˆNØ+×.Ò.¨}Ô/CÀ]ÔEXÑYÔYˆNØ!%×!:Ò!:Ø˜=¨.¸$¼+Ô:Tñ"ô "Ðð *×8Ò8Ð9KÈ^Ñ\Ô\ˆMð ˆØÐ&Ø!×4Ò4°_ÐFZÑ[Ô[ÔmˆNØ+×.Ò.¨}Ô/CÀ]ÔEXÑYÔYˆNØ!%×!:Ò!:Ø˜=¨.¸$¼+Ô:Tñ"ô "Ðð *×8Ò8Ð9KÈ^Ñ\Ô\ˆMõ °Ð?Ð-ÅÑFÔFð 	àœ+×5Ò5Ñ7Ô7Ø!.Ø"0Ø#2Ø ,ðð ˆKõ #5Ð"CÐ"C°{Ð"CÐ"CÝ%FÐ%UÐ%UÈÐ%UÐ%UÝ$CÐ$RÐ$RÀkÐ$RÐ$Rð#ð #Ðð &�$Ô%ð 
Ø.Ø%Ø+Ø'Øð
ð 
ð ð
ð 
ˆõ *Ø%Ô7Ø#Ô3Ø!Ô/ØÔ)Ø2>Ð2J  ÐPTð
ñ 
ô 
ð 	
r�   rÜ   )NNNNNNNNNNN)rœ   r�   rž   Úaccepts_loss_kwargsrÃ   rÝ   r   r   rà   rñ  r   r   rD  r   rb  rð  rô   re  r¥   rp  r   rª   rÒ   ró   r¬   r­   s   @r   r[  r[    s¬  ø€ € € € € ð  Ðð˜}ð ð ð ð ð ð ð Ø€^Ð!rÐsÑsÔsðFØ!Ô-ðFØ9?Ð@RÔ9SðFà	Ð+Ñ	+ðFð Fð Fñ tÔsñ ÔðFð
 Ø€^Ð!fÐgÑgÔgð 59ð1ð 1àÔ)ð1ð $œl¨TÑ1ð1ð 
Ð+Ñ	+ð	1ð 1ð 1ñ hÔgñ Ôð1ð$àÔ#ðð Ô(ðð Ô#ð	ð
 ðð ð ð ð6 Øð .2Ø15Ø37Ø48Ø.2Ø04Ø(,Ø26Ø26Ø*.Ø!%ðh
ð h
àÔ# dÑ*ðh
ð Ô'¨$Ñ.ðh
ð Ô)¨DÑ0ð	h
ð
 $œl¨TÑ1ðh
ð œ tÑ+ðh
ð Ô&¨Ñ-ðh
ð  ™ðh
ð Ô(¨4Ñ/ðh
ð Ô(¨4Ñ/ðh
ð Ô  4Ñ'ðh
ð ˜$‘;ðh
ð Ð.Ô/ðh
ð 
Ð+Ñ	+ðh
ð h
ð h
ñ „^ñ Ôðh
ð h
ð h
ð h
ð h
r�   r[  c                   ó®  ‡ — e Zd Zi ZddiZdZdefˆ fd„Zede	j
        dee         fd„¦   «         Zee	 	 	 	 	 	 	 	 	 	 	 dde	j        d	z  de	j
        d	z  de	j        d	z  de	j        d	z  ded	z  de	j        d	z  de	j        d	z  de	j
        d	z  de	j        d	z  ded	z  dee	j        z  dee         deez  fd„¦   «         ¦   «         Z	 	 	 	 	 	 	 	 	 	 	 dˆ fd„	Zˆ xZS )ÚInklingForConditionalGenerationrô  rõ  Fr  c                 óú   •— t          ¦   «                              |¦  «         t          |¦  «        | _        t	          j        |j        j        |j        j        d¬¦  «        | _	        |  
                    ¦   «          d S r  )r‘   rÝ   r[  r·  rÞ   r  r,   rK   rH   rô  rÝ  rL  s     €r   rÝ   z(InklingForConditionalGeneration.__init__Ü  sg   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ý! &Ñ)Ô)ˆŒ
õ ”y Ô!3Ô!?ÀÔASÔA^ÐejÐkÑkÔkˆŒØ�ŠÑÔÐÐÐr�   rT  r”   c                 ó(   —  | j         j        |fi |¤ŽS rÜ   )r·  rb  ra  s      r   rb  z2InklingForConditionalGeneration.get_image_featuresä  s   € à,ˆtŒzÔ,¨\ÐDÐD¸VÐDÐDÐDr�   Nr   r6   r9   rÞ  r(  r  rc  r7   rö  rß  r÷  ræ   c                 óì  —  | j         d|||||||||
|	dœ
|¤Ž}|d         | j        j        j        z  }t	          |t
          ¦  «        rt          | d¦  «        n|}|                      |dd…|dd…f         ¦  «        }| j        j        j        }|�||j	        d         k     r|dd|…f         }d}|	� | j
        d||	|j	        d         dœ|¤Ž}t          |||j        |j        |j        |j        ¬¦  «        S )	a€	  
        audio_input_ids (`torch.LongTensor` of shape `(num_audios, max_num_frames, n_mel_bins)`, *optional*):
            Batch of (padded) discretized dMel bin tokens produced by [`InklingProcessor`].
        audio_input_ids_mask (`torch.Tensor` of shape `(num_audios, max_num_frames)`, *optional*):
            Mask marking valid (non-padding) audio frames in `audio_input_ids`.
        labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
            Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,
            config.text_config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored
            (masked), the loss is only computed for the tokens with labels in `[0, ..., config.text_config.vocab_size]`.

        Example:

        ```python
        >>> from PIL import Image
        >>> import httpx
        >>> from io import BytesIO
        >>> from transformers import AutoProcessor, InklingForConditionalGeneration

        >>> model = InklingForConditionalGeneration.from_pretrained("google/gemma-3-4b-it")
        >>> processor = AutoProcessor.from_pretrained("google/gemma-3-4b-it")

        >>> messages = [
        ...     {
        ...         "role": "system",
        ...         "content": [
        ...             {"type": "text", "text": "You are a helpful assistant."}
        ...         ]
        ...     },
        ...     {
        ...         "role": "user", "content": [
        ...             {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
        ...             {"type": "text", "text": "Where is the cat standing?"},
        ...         ]
        ...     },
        ... ]

        >>> inputs = processor.apply_chat_template(
        ...     messages,
        ...     tokenize=True,
        ...     return_dict=True,
        ...     return_tensors="pt",
        ...     add_generation_prompt=True
        ... )
        >>> # Generate
        >>> generate_ids = model.generate(**inputs)
        >>> processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
        "user\nYou are a helpful assistant.\n\n\n\n\n\nWhere is the cat standing?\nmodel\nBased on the image, the cat is standing in a snowy area, likely outdoors. It appears to"
        ```
        )
r6   rT  r  rc  r9   rÞ  r(  r7   rß  rö  r   Nrè   .rù  )rû  rú  r(  r8   r¸  rt  r|   )r·  r  r,   r>   rÌ   r¥   rü  rô  rI   rì   rý  rÖ   r(  r8   r¸  rt  )r“   r6   rT  r9   rÞ  r(  r  rc  r7   rö  rß  r÷  r”   rþ  r8   rÿ  rú  rI   rû  s                      r   ró   z'InklingForConditionalGeneration.forwardè  sU  € ðD �$”*ð 
ØØ%Ø+Ø!5Ø)Ø%Ø+Ø'ØØð
ð 
ð ð
ð 
ˆð   œ
 T¤[Ô%<Ô%XÑXˆå8BÀ>ÕSVÑ8WÔ8WÐk�˜~˜o¨tÑ4Ô4Ð4Ð]kˆØ—’˜m¨A¨A¨A¨}¸a¸a¸aÐ,?Ô@ÑAÔAˆØ"œkÔ5ÔIÐØÐ*Ð/BÀVÄ\ÐRTÔEUÒ/UÐ/UØ˜CÐ!5Ð"5Ð!5Ð5Ô6ˆFàˆØÐØ%�4Ô%Ðj¨V¸FÈvÌ|Ð\^ÔO_ÐjÐjÐciÐjÐjˆDå,ØØØ#Ô3Ø!Ô/ØÔ)Ø 'Ô ;ð
ñ 
ô 
ð 	
r�   Tc                 ór   •—  t          ¦   «         j        |f|||||	|
|dœ|¤Ž}|s|	s||d<   ||d<   ||d<   |S )N)r(  r7   r9   rÞ  rß  r÷  Úis_first_iterationrT  r  rc  )r‘   Úprepare_inputs_for_generation)r“   r6   r(  r7   rÞ  rT  r9   r  rc  rß  r÷  rö  r�  r”   Úmodel_inputsr•   s                  €r   r‚  z=InklingForConditionalGeneration.prepare_inputs_for_generationM  s‚   ø€ ð" =•u‘w”wÔ<Øð

à+Ø'Ø)Ø%ØØ)Ø1ð

ð 

ð ð

ð 

ˆð ð 	H Yð 	HØ+7ˆL˜Ñ(Ø.=ˆLÐ*Ñ+Ø3GˆLÐ/Ñ0àÐr�   )NNNNNNNNNNr   )NNNNNNNTNNF)rœ   r�   rž   r   r  rz  rÃ   rÝ   r   rà   rñ  r   r   rb  r   rð  rô   r   rª   r¥   rD  rÖ   ró   r‚  r¬   r­   s   @r   r|  r|  Ï  s  ø€ € € € € ð ÐØÐ0Ð1€Hð  Ðð˜}ð ð ð ð ð ð ð ðE¨uÔ/@ð EÈFÐSeÔLfð Eð Eð Eñ „^ðEð Øð .2Ø15Ø.2Ø04Ø(,Ø37Ø48Ø26Ø*.Ø!%Ø-.ða
ð a
àÔ# dÑ*ða
ð Ô'¨$Ñ.ða
ð œ tÑ+ð	a
ð
 Ô&¨Ñ-ða
ð  ™ða
ð Ô)¨DÑ0ða
ð $œl¨TÑ1ða
ð Ô(¨4Ñ/ða
ð Ô  4Ñ'ða
ð ˜$‘;ða
ð ˜eœlÑ*ða
ð Ð+Ô,ða
ð 
Ð.Ñ	.ða
ð a
ð a
ñ „^ñ Ôða
ðL ØØØØØØ!ØØØØ ð"ð "ð "ð "ð "ð "ð "ð "ð "ð "r�   r|  )rÃ   r*   r¯   r¹   r¶  rÕ  ró  r  rL  r[  r|  )rn   NrC  )r,  )lr(  Úcollections.abcr   rà   Útorch.nnrÞ   Útorch.nn.functionalr  rc  Úhuggingface_hub.dataclassesr   Ú r   r¾  Úactivationsr   Úcache_utilsr   r	   Úconfiguration_utilsr
   Ú
generationr   Úintegrationsr   r   Úintegrations.accelerater   Úmasking_utilsr   r   r   Úmodeling_layersr   Úmodeling_outputsr   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   r   Úutils.genericr   Úutils.output_capturingr   Úgemma3.modeling_gemma3r    r!   r"   r#   Ú&higgs_audio_v2.modeling_higgs_audio_v2r$   Úllama.modeling_llamar%   r&   Úmixtral.modeling_mixtralr'   Úqwen3_next.modeling_qwen3_nextr(   Ú
get_loggerrœ   Úloggerr*   r¯   r¹   rÃ   rÒ   rÖ   rØ   ÚModulerÚ   rô   r§   r  r  rF  rS  rX  rx  r„  rß   r©   r‹  r—  r   r«  r¶  rÕ  ró  rÃ  r  r  r¥   r¨   r+  rð  rJ  rL  r[  r|  Ú__all__r|   r�   r   ú<module>r      s„	  ðð  €€€Ø $Ð $Ð $Ð $Ð $Ð $à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .à &Ð &Ð &Ð &Ð &Ð &Ø !Ð !Ð !Ð !Ð !Ð !Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø )Ð )Ð )Ð )Ð )Ð )Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ =Ð =Ð =Ð =Ð =Ð =Ø sÐ sÐ sÐ sÐ sÐ sÐ sÐ sÐ sÐ sØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ &Ð &Ð &Ð &Ð &Ð &ðð ð ð ð ð ð ð ð ð ð ð ð ð ð 8Ð 7Ð 7Ð 7Ð 7Ð 7Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ð ð LÐ KÐ KÐ KÐ KÐ KØ :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø IÐ IÐ IÐ IÐ IÐ Ið 
ˆÔ	˜HÑ	%Ô	%€ð ðyð yð yð yð yÐ(ñ yô yñ „ðyðx ð$ð $ð $ð $ð $Ð)ñ $ô $ñ „ð$ð  ð$ð $ð $ð $ð $Ð*ñ $ô $ñ „ð$ð  ð+(ð +(ð +(ð +(ð +(Ð$ñ +(ô +(ñ „ð+(ð\	ð 	ð 	ð 	ð 	Ð!:ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð$@ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�\ñ 	ô 	ð 	ð^ð ^ð ^ð ^ð ^˜BœIñ ^ô ^ð ^ðB Ø)-ð%ð %ØŒIð%àŒ<ð%ð 
Œð%ð Œ<ð	%ð
 ”L 4Ñ'ð%ð ð%ð ð%ð ”< $Ñ&ð%ð %ð %ð %ð8a)ð a)ð a)ð a)ð a)�r”yñ a)ô a)ð a)ðH1ð 1ð 1ð 1ð 1�ñ 1ô 1ð 1ð=ð =ð =ð =ð =�^ñ =ô =ð =ð#Hð #Hð #Hð #Hð #H˜œ	ñ #Hô #Hð #HðL%ð %ð %ð %ð %˜2œ9ñ %ô %ð %ð8ð ð ð ð �”ñ ô ð ð( ÐÐ0Ñ1Ô1ð
 !%Ø!ð'ð 'Ø”<ð'à”ð'ð ŒLð'ð Œ,˜Ñ
ð	'ð
 �d‘
ð'ð 'ð 'ñ 2Ô1ð'ð& ÐÐ,Ñ-Ô-ð !%Ø!ð	'ð 'Ø”<ð'àŒLð'ð Œ,˜Ñ
ð'ð �d‘
ð	'ð 'ð 'ñ .Ô-ð'ð, ÐÐ*Ð,<Ð=Ñ>Ô>ð;ð ;ð ;ð ;ð ;˜bœiñ ;ô ;ñ ?Ô>ð;ð|.ð .ð .ð .ð .Ð4ñ .ô .ð .ðb ð.ð .ð .ð .ð .˜_ñ .ô .ñ „ð.ðb ðL
ð L
ð L
ð L
ð L
Ð-ñ L
ô L
ñ „ðL
ð^/
ð /
ð /
ð /
ð /
Ð*ñ /
ô /
ð /
ðd ?Ð >Ð >Ð >Ð >Ð"8Ñ >Ô >Ð >ð
ð 
ð 
ð 
ð 
Ð.ñ 
ô 
ð 
ð"ð "ð "ð "ð " ¤	ñ "ô "ð "ðJ˜#ð  $ s¤)ð ð ð ð ð$ W\ð;ð ;Øð;Ø*-ð;Ø9<ð;ØJMð;à
Ôð;ð ;ð ;ð ;ð|+
ð +
ð +
ð +
ð +
Ð/ñ +
ô +
ð +
ð\ €ððñ ô ð
l
ð l
ð l
ð l
ð l
Ð)ñ l
ô l
ñô ð
l
ð^ €ððñ ô ð
[ð [ð [ð [ð [Ð&<¸oñ [ô [ñô ð
[ð|ð ð €€€r�   