Team Ai
Datasetpublic

Brunobkr/llama.cpp_AlgMor24_github

ΩFFFΣLLIa • llama.cpp • AlgMor24 ██████╗ ███████╗███████╗███████╗██╗ ██╗ ██╗ █████╗ ██╔═══██╗██╔════╝██╔════╝██╔════╝██║ ██║ ██║██╔══██╗ ██║ ██║█████╗ █████╗ █████╗ ██║ ██║ ██║███████║ ██║ ██║██╔══╝ ██╔══╝ ██╔══╝ ██║ ██║ ██║██╔══██║ ╚██████╔╝██║ ██║ ███████╗███████╗███████╗██║██║ ██║ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝╚══════╝╚══════╝╚═╝╚═╝ ╚═╝ High-Performance LLM / VLM Inference & Autonomous Agentic Ecosystem… See the full description on the dataset page: https://huggingface.co/datasets/Brunobkr/llama.cpp_AlgMor24_github.

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes3.1kdownloads
gemma.cpython-313.pyc192 linesDownload Raw Back to __pycache__
1�

2�pzj����SSKJr SSKrSSKrSSKJrJrJrJr SSK	r	\(aSSK	J3r4 SSKJrJ
r
JrJrJr \
R""S5"SS	\55r\
R""S55"SS\55r\
R""S
S5"SS\55r\
R""S5"SS\55r\
R""S5"SS\55r"SS\5r\
R""S5"SS\55r\
R""SS5"SS\55r\
R""SS5"S S!\55r\
R""S"5"S#S$\55r\
R""S%S&5"S'S(\55r\
R""S5"S)S*\55r\
R""S"5"S+S,\55rg)-�)�annotationsN)�Callable�Iterable�
TYPE_CHECKING�Sequence)�Tensor�)�MmprojModel�	ModelBase�	TextModel�gguf�logger�GemmaForCausalLM��~^�\rSrSr\R6RrSrSr	\7SU4Sjj5rSU4SjjrSr
U=r$)	�8GemmaModel����UR5 [R"URS/SQS9nUR	SS5 UR	SS5 UR	SS	5 UR	S9S5 UR	SS
5 SUlUR
UR5 URRS5 g)NF)�prefix�suffix�middle�fsep�eot)�load_merges�special_token_typesr�Cr�Er�Dr�Fr�k)	�_set_vocab_sentencepiecer
�SpecialVocab�	dir_model�_set_special_token�
chat_template�add_to_gguf�gguf_writer�add_add_space_prefix)�self�
special_vocabs  �7/home/userk21/llama.cpp_algmor24_v2/conversion/gemma.py�	set_vocab�GemmaModel.set_vocabs����%�%�'��)�)�$�.�.�e�@m�o�
��(�(��2�6��(�(��2�6��(�(��2�6��(�(��2�6��(�(��3�7�&*�
�#��!�!�$�"2�"2�3����-�-�e�4�����URnURRUS5 URRUS5 URR	UR105 URR
US5 URRUS5 URRSU;aURSOUS5 URRURS5 URRUS5 URRUS5 URRUR5 g)N�max_position_embeddings�hidden_size�intermediate_size�num_attention_heads�num_key_value_heads�rms_norm_eps�head_dim)�hparamsr(�add_context_length�add_embedding_length�add_block_count�block_count�add_feed_forward_length�add_head_count�add_head_count_kv�add_layer_norm_rms_eps�add_key_length�add_value_length�
add_file_type�ftype�r*r9s  r,�set_gguf_parameters�GemmaModel.set_gguf_parameters$s.���,�,�����+�+�G�4M�,N�O����-�-�g�m�.D�E����(�(��)9�)9�:����0�0��9L�1M�N����'�'��0E�(F�G����*�*�Rg�kr�Rr�4�<�<�8M�+N�x�AV�yW�	X����/�/����^�0L�M����'�'��11�(;�<����)�)�'�*�*=�>����&�&�t�z�z�2r/��n>�Uup#US:Xa[R"SU<S35 g[TU]
U5$�N�lm_head.weight�Skipping get tensor �1 in safetensors so that convert can end normally.�r�debug�super�filter_tensors��cls�item�name�gen�	__class__s    �r,rR�GemmaModel.filter_tensors2�?����	���#�#��L�L�/��x�7h�i�j���w�%�d�+�+r/�#�x># �URS5(aUS-n[TU]	XU5Shv�N gN7f�N�norm.weightr	��endswithrQ�modify_tensors�r*�12data_torchrV�bidrXs    �r,ra�GemmaModel.modify_tensors>�3�����=�=��'�'�#�a��J��7�)�*�C�@�@�@���/:�8�:��rU� tuple[str, Callable[[], Tensor]]�return�'tuple[str, Callable[[], Tensor]] | None�rcrrV�strrd�13int | Nonerk�Iterable[tuple[str, Tensor]])�__name__�14__module__�__qualname__�__firstlineno__r
�15MODEL_ARCH�GEMMA�16model_archr-rG�classmethodrRra�__static_attributes__�
__classcell__�rXs@r,rrs<������&�&�J�5� 3��	,��	,�A�Ar/r�Gemma2ForCausalLM��~^�\rSrSr\R17RrSrSr	\18SU4Sjj5rSU4SjjrSr
U=r$)	�Gemma2Modelr ��Z�UR5 URRS5 g)NF)r"r(r)�r*s r,r-�Gemma2Model.set_vocabJs"���%�%�'����-�-�e�4r/���URnURRUS5 URRUS5 URR	UR195 URR
US5 URRUS5 URRSU;aURSOUS5 URRURS5 URRUS5 URRUS5 URRUR5 URRURS5 URRURS	5 URR!URS205 g)Nr2r3r4r5r6r7r8�attn_logit_softcapping�final_logit_softcapping�sliding_window)r9r(r:r;r<r=r>r?r@rArBrCrDrE�add_attn_logit_softcapping�add_final_logit_softcapping�add_sliding_windowrFs  r,rG�Gemma2Model.set_gguf_parametersOs����,�,�����+�+�G�4M�,N�O����-�-�g�m�.D�E����(�(��)9�)9�:����0�0��9L�1M�N����'�'��0E�(F�G����*�*�Rg�kr�Rr�4�<�<�8M�+N�x�AV�yW�	X����/�/����^�0L�M����'�'��21�(;�<����)�)�'�*�*=�>����&�&�t�z�z�2����3�3��L�L�1�2�	22�	
���4�4��L�L�2�3�	23�	
���+�+�D�L�L�9I�,J�Kr/��n>�Uup#US:Xa[R"SU<S35 g[TU]
U5$rKrOrSs    �r,rR�Gemma2Model.filter_tensorsdrZr/�#�x># �URS5(aUS-n[TU]	XU5Shv�N gN7fr]r_rbs    �r,ra�Gemma2Model.modify_tensorsprfrgrhrirm)rqrrrsrtr
ru�GEMMA2rwr-rGrxrRraryrzr{s@r,rrFs=������'�'�J�5�24L�*�	,��	,�A�Ar/r�Gemma3ForCausalLM�Gemma3ForConditionalGeneration��t^�\rSrSr\R25RrSSjrSr	U4Sjr26SU4SjjrSrU=r
$)	�Gemma3Model�x��6�URS5(aS$S$)Nr^��?�)r`�r*rVs  r,�27norm_shift�Gemma3Model.norm_shift|s���m�m�M�2�2�s�;��;r/����URS-R5(a,UR5 URR	S5 gUR5 g)N�tokenizer.modelF)r$�is_filer"r(r)�_set_vocab_gpt2r�s r,r-�Gemma3Model.set_vocabsG���N�N�.�.�7�7�9�9��)�)�+����1�1�%�8�� � �"r/���>�[TU]5 URnURR	URSS55 URR
URSS55 URRURRSS55 URRURSS55 URRURSS55 URRURRS	UR5RS28S55 URS5beURS
5=n(aURRU5 URS5S:waURRUS5 URRURSS55 g)Nr2ir5�r7�����ư>r8��full_attention�29rope_thetag��.Ar�r��sliding_window_patternr	r�r6�)rQrGr9r(r:�getr?rArBrC�add_rope_freq_base�rope_parametersr�r�r@)r*r9�final_logit_softcaprXs   �r,rG�Gemma3Model.set_gguf_parameters�s����
��#�%��,�,��	
���+�+�G�K�K�8Q�SY�,Z�[����'�'����4I�1�(M�N����/�/����0@�0@��QU�0V�W����'�'����J��(D�E����)�)�'�+�+�j�#�*F�G����+�+�D�,@�,@�,D�,D�EU�W[�Wk�Wk�,l�,p�,p�q}�@K�-L�	M��{�{�3�4�<�<�<�#*�;�;�/H�#I�I��I����8�8�9L�M��;�;�/�0�A�5����/�/��8H�0I�J����*�*�7�;�;�7L�a�+P�Qr/�#��># �SU;a�SnURS-R5(aUR5Sn[U5nOW[	URS-SSS9n[30R"U5n[US	S315[US5-nSSS5 USUnURU5nUS:waX-n[T	U]%XU5Shv�N g!,(df   NG=fN7f)
N�embed_tokens.weight�����r�r�tokenizer.json�r�utf-8��encoding�model�vocab�added_tokensr�)32r$r��_create_vocab_sentencepiece�len�open�json�loadr�rQra)33r*rcrVrd�n_vocab_real�tokens�f�tokenizer_json�f_shiftrXs34         �r,ra�Gemma3Model.modify_tensors�s����� �D�(��L����!2�2�;�;�=�=��9�9�;�A�>��"�6�{���$�.�.�+;�;�S�7�S�WX�%)�Y�Y�q�\�N�#&�~�g�'>�w�'G�#H�3�~�^l�Om�Kn�#n�L�T�$�M�\�2�J�35�/�/�$�'���c�>�#�-�J��7�)�*�C�@�@�@�T�S��	A�s*�A"C0�%7C�;C0�C.�C0�36C+�'C0rh�rVrnrk�floatrm)rqrrrsrtr
ru�GEMMA3rwr�r-rGraryrzr{s@r,r�r�xs.������'�'�J�<�#�R�&A�Ar/r��Gemma3TextModel��^�\rSrSr\R37Rr/r0r	U4Sjr38SSjr\SSj5r
U4SjrSrU=r$)	�EmbeddingGemma���>�[T
U]"U0UD6 UR(GaCURS-nUR	5(Ga[USS9n[R"U5nSSS5 WH�nUSRS5(dMUSnURU-S-nUR	5(dMLURRU5 URU-S-n	U	R	5(dM�[U	SS9n39[R"U405nURU5nUS	bUS41bUS	US424URU'SSS5 M� ggg!,(df   GN=f!,(df   GM=f)N�modules.jsonr�r��type�Dense�path�model.safetensors�config.json�in_features�out_features)
rQ�__init__�#sentence_transformers_dense_modulesr$r�r�r�r�r`�module_paths�append�_get_dense_prefix�dense_features_dims)r*�args�kwargs�modules_file�modules_json_file�mods�mod�mod_path�model_tensors_file�
mod_conf_file�mod_conf_json_file�mod_confrrXs             �r,r��EmbeddingGemma.__init__�sk���
���$�)�&�)��3�3�3��>�>�N�:�L��#�#�%�%��,��9�=N��9�9�%6�7�D�:��C��6�{�+�+�G�4�4�#&�v�;��-1�^�^�h�-F�I\�-\�*�-�5�5�7�7� �-�-�4�4�X�>�,0�N�N�X�,E�
�,U�M�,�4�4�6�6�%)�-�'�%J�N`�/3�y�y�9K�/L�H�-1�-C�-C�H�-M�F�'/�
�'>�'J�x�Xf�Og�Os�LT�Ub�Lc�em�n|�e}�K~��(@�(@��(H�&K�%J� �&�4�:�9��&K�%J�s�E(�AE:�(43E7�:44F45	�#�# �SSKJn [UR5n[	U5H�up4UR46U-S-nU"U5nUR
U5nUR5HSup�URS5(dMURSU5n47URU485nX�R54v� MU M� g7f)Nr)�	load_filer��.weight�linear)�safetensors.torchr��listr��	enumerater$r��itemsr`�replace�map_tensor_name�clone)r*r�r��i�module_path�tensors_file�
local_tensors�tensor_namerV�local_tensor�	orig_names           r,�generate_extra_tensors�%EmbeddingGemma.generate_extra_tensors�s����/��D�-�-�.��'��5�N�A��>�>�K�7�:M�M�L�%�l�3�M��0�0��=�K�&3�&9�&9�&;�"���}�}�Y�/�/�� �L�L��;�?�	��+�+�I�6���.�.�0�0�0�'<�	6�s�CC���US:XaSnU$SnU$)�@Get the tensor name prefix for the Dense layer from module path.�2_Dense�dense_2�dense_3rh)r�rs  r,r�� EmbeddingGemma._get_dense_prefix�s%��$/�)�#;�i����BK���r/��|>�[TU]5 [URS-SSS9n[R49"U5nUR
S5nUc[S5e[R"SUSURS35 URRU5 SSS5 UR(aaURR5HCupE[R"S	US50U35 URR!XESUS5 ME UR#5 g!,(df   N�=f)
Nr�r�r�r�r��Isliding_window not found in model config - this is required for the model�+Using original sliding_window from config: � instead of �Setting dense layer � in/out features to rr	)rQrGr�r$r�r�r��51ValueErrorr�infor9r(r�r�r�r��add_dense_features_dims�_try_set_pooling_type)r*r��config�orig_sliding_window�dense�dimsrXs      �r,rG�"EmbeddingGemma.set_gguf_parameters�s���
��#�%�52�$�.�.�=�0�#��
H�A��Y�Y�q�\�F�"(�*�*�-=�">��"�*� �!l�m�m��K�K�E�FY�EZ�[&�&*�l�l�3C�&D�%E�G�
H����/�/�0C�D�I��3�3�#�7�7�=�=�?������2�5�'�9M�d�V�T�U�� � �8�8��Q���a��Q� @�	
�"�"�$�I�
H�s�A:D-�-53D;rh�rkrp)rkrn)rqrrrsrtr
ru�GEMMA_EMBEDDINGrwr�r�r�r�staticmethodr�rGryrzr{s@r,r�r��sF������0�0�J��L����21�����54%�%r/r���^^�\rSrSrU4SjrU4Sjr\SU4Sjj5rSU4SjjrSr	U=r55$)	�Gemma3VisionModel����>�[TU]5 URnURR	[56RR5 URRURSS55 URRS5 URRSS5n[US-5nURSnURSnXE-U-nUS	:�a#US57:waURRU5 ggg)N�layer_norm_epsr�T�image_seq_lengthr���?�58image_size�59patch_sizerr�)rQrGr9r(�add_clip_projector_typer
�VisionProjectorTyper��"add_vision_attention_layernorm_epsr��add_vision_use_gelu�preprocessor_config�int�!add_vision_projector_scale_factor)r*r9r&�60n_per_sider(r)�proj_scale_factorrXs       �r,rG�%Gemma3VisionModel.set_gguf_parameters�s����
��#�%��,�,�����0�0��1I�1I�1P�1P�Q����;�;�G�K�K�HX�Z^�<_�`����,�,�T�2��3�3�7�7�8J�C�P���)�S�0�1�61��\�\�,�/�62��\�\�,�/�63�'�5�*�D���q� �%6�!�%;�
���>�>�?P�Q�&<� r/��>�SU;a[RR$SU;a[RR$[TU]XX45$)N�input_projection�.embeddings.�r
�GGMLQuantizationType�F16�F32rQ�tensor_force_quant�r*rV�new_namerd�n_dimsrXs     �r,r<�$Gemma3VisionModel.tensor_force_quantsI�����%��,�,�0�0�0��T�!��,�,�0�0�0��w�)�$�#�F�Fr/��>�Uup#SU;agURS5(dgURSS5n[TU]
X#45$)N�vision_model.head.)�multi_modal_projector.�
vision_tower.�multimodal_projector.�
vision_model.�_weightr�)�64startswithr�rQrRrSs    �r,rR� Gemma3VisionModel.filter_tensorssJ����	���4�'�����t�u�u���|�|�I�y�1���w�%�t�k�2�2r/�#�># �SU;a[R"SUS35 US-n[TU]
XU5Shv�N gN7f)N�soft_emb_norm.weight�Correcting norm value for '�'r	)rrrQrarbs    �r,ra� Gemma3VisionModel.modify_tensors%sD����"�T�)��K�K�5�d�V�1�=�>�#�a��J��7�)�*�C�@�@�@�s�9A�A�Arhrirm)rqrrrsrtrGr<rxrRraryrzr{s@r,r!r!�s/���R�$G��3��3�A�Ar/r!��\^�\rSrSr%SrS\S'\S	Sj5rU4SjrS65U4Sjjr	Sr66U=r$)�ConformerAudioModeli0N�list[dict[str, Tensor]] | None�_batch_norm_tensors��.^�[U4SjS55$)N�3�*># �UH	oT;v� M g7f�Nrh)�.0�prVs  �r,�	<genexpr>�6ConformerAudioModel.is_audio_tensor.<locals>.<genexpr>5s����{�&z���9�&z�s�)�audio�codebook�	conformer�depth_embedding�depthformer�depth_linear)�any)rVs`r,�is_audio_tensor�#ConformerAudioModel.is_audio_tensor3s����{�&z�{�{�{r/��>�[RU5(a,SU;dSU;a SU;a[RR$[67TU]XX45$)N�.conv�_convr�)rSrfr
r9r;rQr<r=s     �r,r<�&ConformerAudioModel.tensor_force_quant7sL����.�.�t�4�4��$��'�T�/�i�4�6G��0�0�4�4�4��w�)�$�#�F�Fr/�#�># �SU;Ga!URc*[UR5Vs/sHn0PM snUlUceXRUU'[URU5S:agURUSUS3nURUSUS3nURUSUS3nURUSUS3nSn	U[R68"X�-5-n69XgU70--71n[T
U]U72SUS3U5Shv�N [T
U]USUS3U5Shv�N gURS	5(a URS735(a74USS2SS4nSU;aWURS5(aAURS
S
:XdeURURSURS5nSU;aWURS5(aAURSS
:XdeURURSURS
5nURUS5nX�4v� gs snfGN0GN7f)N�75batch_norm��conformer.layers.�.conv.batch_norm.weight�.conv.batch_norm.bias�.conv.batch_norm.running_mean�.conv.batch_norm.running_var��h㈵��>�conformer.pre_encode.conv.�.bias�conv.depthwise_convr�r	r��conv.pointwise_conv�r�rx�76.input_max�77.input_min�.output_max�.output_min)
rU�ranger=r��torch�sqrtrQrarIr`�shape�reshaper�)r*rcrVrd�_�weight�bias�running_mean�running_var�eps�a�b�mapped_namerXs             �r,ra�"ConformerAudioModel.modify_tensors=su�����4���'�'�/�8=�d�>N�>N�8O�+P�8O�1�B�8O�+P��(��?�"�?�2<�$�$�S�)�$�/��4�+�+�C�0�1�A�5���-�-�c�2�5F�s�e�Kb�3c�d�F��+�+�C�0�3D�S�E�I^�1_�`�D��3�3�C�8�;L�S�E�Qn�9o�p�L��2�2�3�7�:K�C�5�Pl�8m�n�K��C�����K�$5�6�6�A��a�'�'�A��w�-�a�3D�S�E�I`�1a�cf�g�g�g��w�-�a�3D�S�E�I^�1_�ad�e�e�e���?�?�7�8�8�T�]�]�7�=S�=S�#�A�t�T�M�2�J� �D�(�T�]�]�9�-E�-E��#�#�A�&�!�+�+�+�#�+�+�J�,<�,<�Q�,?��AQ�AQ�RS�AT�U�J� �D�(�T�]�]�9�-E�-E��#�#�A�&�!�+�+�+�#�+�+�J�,<�,<�Q�,?��AQ�AQ�RS�AT�U�J��*�*�4�1�A���'�'��=,Q�
h�e�s/�,H?�H4�CH?�	H9�78H?�&H<�'DH?�<H?)rU)rVrnrm)rqrrrsrtrU�__annotations__rrfr<raryrzr{s@r,rSrS0s3���:>��7�>��|��|�G�"(�"(r/rS�Gemma3nForConditionalGeneration���^�\rSrSrSrSr0SS_SS_SS_S	S79_SS_S
S_SS_SS_SS_SS_SS_SS_SS_SS_SS _S!S"_S#S$_S%S&S'S(S)S*.ErU4S+jrU4S,jrU4S-jr	S1S.jr80S2U4S/jjrS0rU=r
$)3�Gemma3nVisionAudioModelibT�@model.vision_tower.timm_model.blocks.{bid}.{sid}.conv_exp.weight�!v.blk.{bid}.{sid}.conv_exp.weight�;model.vision_tower.timm_model.blocks.{bid}.{sid}.bn1.weight�v.blk.{bid}.{sid}.bn1.weight�@model.vision_tower.timm_model.blocks.{bid}.{sid}.conv_pwl.weight�!v.blk.{bid}.{sid}.conv_pwl.weight�;model.vision_tower.timm_model.blocks.{bid}.{sid}.bn2.weight�v.blk.{bid}.{sid}.bn2.weight�Emodel.vision_tower.timm_model.blocks.{bid}.{sid}.dw_start.conv.weight�&v.blk.{bid}.{sid}.dw_start.conv.weight�Cmodel.vision_tower.timm_model.blocks.{bid}.{sid}.dw_start.bn.weight�$v.blk.{bid}.{sid}.dw_start.bn.weight�Cmodel.vision_tower.timm_model.blocks.{bid}.{sid}.dw_mid.conv.weight�$v.blk.{bid}.{sid}.dw_mid.conv.weight�Amodel.vision_tower.timm_model.blocks.{bid}.{sid}.dw_mid.bn.weight�"v.blk.{bid}.{sid}.dw_mid.bn.weight�Cmodel.vision_tower.timm_model.blocks.{bid}.{sid}.pw_exp.conv.weight�$v.blk.{bid}.{sid}.pw_exp.conv.weight�Amodel.vision_tower.timm_model.blocks.{bid}.{sid}.pw_exp.bn.weight�"v.blk.{bid}.{sid}.pw_exp.bn.weight�Dmodel.vision_tower.timm_model.blocks.{bid}.{sid}.pw_proj.conv.weight�%v.blk.{bid}.{sid}.pw_proj.conv.weight�Bmodel.vision_tower.timm_model.blocks.{bid}.{sid}.pw_proj.bn.weight�#v.blk.{bid}.{sid}.pw_proj.bn.weight�Bmodel.vision_tower.timm_model.blocks.{bid}.{sid}.layer_scale.gamma�#v.blk.{bid}.{sid}.layer_scale.gamma�Gmodel.vision_tower.timm_model.blocks.{bid}.{sid}.attn.query.proj.weight�(v.blk.{bid}.{sid}.attn.query.proj.weight�Emodel.vision_tower.timm_model.blocks.{bid}.{sid}.attn.key.proj.weight�&v.blk.{bid}.{sid}.attn.key.proj.weight�Gmodel.vision_tower.timm_model.blocks.{bid}.{sid}.attn.value.proj.weight�(v.blk.{bid}.{sid}.attn.value.proj.weight�Hmodel.vision_tower.timm_model.blocks.{bid}.{sid}.attn.output.proj.weight�)v.blk.{bid}.{sid}.attn.output.proj.weight�+v.blk.{bid}.{sid}.attn.key.down_conv.weight�&v.blk.{bid}.{sid}.attn.key.norm.weight�-v.blk.{bid}.{sid}.attn.value.down_conv.weight�(v.blk.{bid}.{sid}.attn.value.norm.weight�v.blk.{bid}.{sid}.norm.weight)�Jmodel.vision_tower.timm_model.blocks.{bid}.{sid}.attn.key.down_conv.weight�Emodel.vision_tower.timm_model.blocks.{bid}.{sid}.attn.key.norm.weight�Lmodel.vision_tower.timm_model.blocks.{bid}.{sid}.attn.value.down_conv.weight�Gmodel.vision_tower.timm_model.blocks.{bid}.{sid}.attn.value.norm.weight�<model.vision_tower.timm_model.blocks.{bid}.{sid}.norm.weight��>>�[TU]"U0UD6 URceSURS'URRSS5S-URS'URRSS5URS'/SQURS	'/S81QURS'URRSS
S
S.5SURS'URRSS5nURSnXC-URS'UR82ceUR83SUR84S'UR85SUR86S'UR87SUR88S'UR89RSS5UR90S'g)N��n_layersr4ir�r5r�)r�r�r��91image_mean)r�r�r��	image_std�size�)�height�widthr�r(r&r�r)�conf_num_hidden_layers�conf_num_attention_heads�input_feat_size�feat_ini)rQr��hparams_visionr�r.�
hparams_audio)r*r�r�r&r(rXs     �r,r�� Gemma3nVisionAudioModel.__init__�s����
���$�)�&�)��"�"�.�.�.�*-����J�'�37�3F�3F�3J�3J�K^�`d�3e�hi�3i����/�0�59�5H�5H�5L�5L�Mb�de�5f����1�2�2B�� � ��.�0?�� � ��-�,0�,D�,D�,H�,H��s�S�1�-92�93�-����L�)�94 �3�3�7�7�8J�C�P���(�(��6�95�,6�,J����L�)��!�!�-�-�-�)-�);�);�<T�)U����:�&�48�4F�4F�Ga�4b����0�1�(,�(:�(:�;L�(M����9�%�26�2D�2D�2H�2H�I\�^b�2c����.�/r/���>�[TU]5 URR[R96R5 URRURRSS55 URceURR[R97R5 URRURS5 URRS5 g)Nr%r�r�rv)rQrGr(�add_clip_vision_projector_typer
r+�GEMMA3NVr,r9r�r��add_clip_audio_projector_type�GEMMA3NA�add_audio_num_mel_bins�!add_audio_attention_layernorm_eps�r*rXs �r,rG�+Gemma3nVisionAudioModel.set_gguf_parameters�s����
��#�%�	
���7�7��8P�8P�8Y�8Y�Z����;�;�D�L�L�<L�<L�M]�_c�<d�e��!�!�-�-�-����6�6�t�7O�7O�7X�7X�Y����/�/��0B�0B�9�0M�N����:�:�4�@r/��>�SU;dSU;a[RR$SU;dSU;a[RR$[TU]XX45$)Nr6�98input_projr7�stemr8r=s     �r,r<�*Gemma3nVisionAudioModel.tensor_force_quant�sV�����%���)=��,�,�0�0�0��T�!�V�t�^��,�,�0�0�0��w�)�$�#�F�Fr/����URS5n[U5S:�aMUSUSpCSRUSS5nSU3nX`R;aURUR	X4S9$[S	U35e)99�_Parses names like model.vision_tower.timm_model.blocks.1.2.suffix and applies template mapping.�.�r�rp�N�1model.vision_tower.timm_model.blocks.{bid}.{sid}.)rd�sid�Unknown name: )�splitr��join�block_tensor_mapping�formatr)r*rV�partsrdr�r�templates       r,�100custom_map�"Gemma3nVisionAudioModel.custom_map�s����101�102�3����u�:��?��Q�x��q����X�X�e�A�B�i�(�F�N�v�h�W�H��4�4�4��0�0��:�A�A�c�A�S�S��>�$��0�1�1r/�#�f># �[RU5(a*URSS5n[TU]XU5Shv�N URS5(dURS5(dgURS5(aUR
U5U4v� gURU5nURS5(dURS5(a/URS5RS	5RS	5n[R"XXC5Shv�N gN�N7f)103N�model.audio_tower.conformer.rq�model.embed_vision.�model.vision_tower.�%model.vision_tower.timm_model.blocks.�conv_stem.conv.bias�layer_scale.gammarr�)rSrfr�rQrarIr�r�r`�	unsqueezer)r*rcrVrdr>rXs     �r,ra�&Gemma3nVisionAudioModel.modify_tensors�s�����/�/��5�5��<�<� >�@S�T�D��w�-�j��D�D�D���� 5�6�6�$�/�/�J_�:`�:`���?�?�B�C�C��?�?�4�(�*�5�5���+�+�D�1�H����2�3�3�x�7H�7H�I\�7]�7]�#�-�-�a�0�:�:�2�>�H�H��L�J��+�+�D�h�L�L�L�)
E�(	M�s%�AD1�D-�C#D1�'D/�(D1�/D1rh)rVrnrkrnrm)rqrrrsrt�has_audio_encoder�has_vision_encoderr�r�rGr<r�raryrzr{s@r,r�r�bsZ��������J�X{��E�Xv��	K�X{��	F�Xv�	�104	P�YA��	N�X~�
�	N�X~��	L�X|��	N�X~��	L�X|��	O�X��	M�X}��	M�X}��	R�YC��	P�YA�� 	R�YC�!�"	S�YD�#�$YF�YA�YH�YC�Xw�-��2d�6A�G�2�M�Mr/r��Gemma3nForCausalLM���^�\rSrSr%\R105Rr/rS\	S'/r106S\	S'U4SjrS
SjrU4Sjr
U4SjrSS	jr\SU4S107jj5rSU4SjjrSrU=r$)�Gemma3NModeli��list[Tensor]�_altup_proj�
_altup_unembd��f>�[TU]"U0UD6 URSS:XdS5e[R"5[R"5[R"5/Ul[R"5[R"5[R"5/Ulg)N�altup_num_inputsr��/Current conversion only supports 4 altup inputs)rQr�r9r�rrr�r*r�r�rXs   �r,r��Gemma3NModel.__init__�s���
���$�)�&�)��|�|�.�/�1�4�g�6g�g�4��L�L�N��L�L�N��L�L�N�108���
�L�L�N��L�L�N��L�L�N�109��r/���Ag�Nr�rhr�s  r,r��Gemma3NModel.norm_shift�����r/��>�URRS5nUb
URS	[TU]
5 UbXRS'gg)N�vocab_size_per_layer_input)r9r�rQr-)r*rrXs  �r,r-�Gemma3NModel.set_vocab�sW���&*�\�\�%5�%5�6R�%S�"�&�1����9�:�	����&�1�9S�L�L�5�6�2r/��L>�[TU]5 URRURS5 URRURS5 URR
URS5 URRURS5 /nURSH~n[RRRSS5nUR[R"U[RS95nURUR!55 M� URR#U5 /nURS	HnURUS110:H5 M URR%U5 g)N�altup_active_idxr�hidden_size_per_layer_input�num_kv_shared_layers�activation_sparsity_patternrr	��dtype�layer_types�sliding_attention)rQrGr(�add_altup_active_idxr9�add_altup_num_inputs�$add_embedding_length_per_layer_input�add_shared_kv_layersr��
distributions�normal�Normal�icdf�tensor�float32r�rU�add_activation_sparsity_scale�add_sliding_window_pattern)r*�activation_sparsity_scale�s�normal_dist�std_multiplierr��trXs       �r,rG� Gemma3NModel.set_gguf_parameterssM���
��#�%����-�-�d�l�l�;M�.N�O����-�-�d�l�l�;M�.N�O����=�=�d�l�l�Kh�>i�j����-�-�d�l�l�;Q�.R�S�$&�!����;�<�A��-�-�4�4�;�;�A�q�A�K�(�-�-�e�l�l�1�E�M�M�.R�S�N�%�,�,�^�-@�-@�-B�C�=�	
���6�6�7P�Q�!#�����m�,�A�"�)�)�!�/B�*B�C�-����3�3�4J�Kr/��`�[SU55nU(dg[R"USS9$)N�3�D# �UHoR5S:�v� M g7f)rN)�numel)r[�ms  r,r]�/Gemma3NModel._stack_matrices.<locals>.<genexpr>s���6�X��g�g�i�!�m�X�s� r��dim)�allr��stack)r*�matrices�has_alls   r,�_stack_matrices�Gemma3NModel._stack_matricess)���6�X�6�6�����;�;�x�Q�/�/r/��b>�Uup#URS5(aUS-n[TU]	X#45$)N�_scaler��r`rQrRrSs    �r,rR�Gemma3NModel.filter_tensors s5����	���=�=��"�"��)�#�D��w�%�t�k�2�2r/�
#��># �SU;dSU;a�URSS9nURRSS5nURSnXT:a�XE-111nSU;aS	OS112n[R113"SUS[
UR5S
USUSUS35 [R"XaRS4URURS9n[R"X/SS9n[R"XX#5Shv�N gSU;a�URSS9nSU;aXRS'O8SU;aXRS'O#SU;aXRS'O[SU35eUR!UR5n	U	b![R"X	SU5Shv�N ggSU;a�URSS9nSU;aXR"S'O8SU;aXR"S'O#SU;aXR"S'O[SU35eUR!UR"5n	U	b![R"X	SU5Shv�N gg[$T114U]5XU5Shv�N gGNcN�N$N7f)Nr��embed_tokens_per_layer�cpu)�device�115vocab_sizeir�	per_layer�per-layer embeddings�token embeddings�Padding � shape � from � to �	 (adding � vision/audio token slots)r	)rrHr7�altup_unembed_projections�.0.�.1.�.2.rzr��&model.altup_unembed_projections.weight�altup_projections�model.altup_projections.weight)�tor9r�r�rrr�r��zerosrrH�catrrarrr=rrQ)r*rcrVrdrI�current_size�padding_size�tensor_type�padding�outrXs          �r,ra�Gemma3NModel.modify_tensors)s�����!�D�(�,D��,L�#���e��4�J����)�)�,��?�J�%�+�+�A�.�L��(�)�8��8C�t�8K�4�Qc�����h�{�m�7�4�116�@P�@P�;Q�:R�RX�Ye�Xf�fj�ku�jv�v�AM�@N�Nh�i�j� �+�+�|�5E�5E�a�5H�&I�Q[�Qa�Qa�jt�j{�j{�|��"�Y�Y�117�'<�!�D�118�!�/�/��$�L�L�L��&�$�.�#���e��4�J���}�(2�"�"�1�%��$��(2�"�"�1�%��$��(2�"�"�1�%� �>�$��!8�9�9��&�&�t�'9�'9�:�C���$�3�3�D�?g�il�m�m�m����$�&�#���e��4�J���}�&0� � ��#��$��&0� � ��#��$��&0� � ��#� �>�$��!8�9�9��&�&�t�'7�'7�8�C���$�3�3�D�?_�ad�e�e�e����7�)�*�C�@�@�@�O
M�"n�"f�119	A�sJ�C;I*�>I!�?B I*�I$� B!I*�I&�I*�I(�I*�$I*�&I*�(I*)rrr�)r;rrk�
Tensor | Nonerirm)rqrrrsrtr
ru�GEMMA3Nrwrr�rr�r�r-rGr=rxrRraryrzr{s@r,rr�sa������(�(�J� "�K��"�"$�M�<�$�120��T�(L�&0��3��3�=A�=Ar/r�Gemma4ForConditionalGeneration�Gemma4ForCausalLM��^�\rSrSr\R121RrS122SjrSr	U4Sjr123SSjrU4Sjr\
SU4Sjj5rS
U4SjjrS	rU=r$)�Gemma4Modelii���Agr
rhr�s  r,r��Gemma4Model.norm_shiftmrr/���[R"UR5n/n/n/n1SknUR5H�upgnUR	U5 UR	U5 UR5n	X�;aEUR	[RR5 [R"SU	S35 M�UR	U5 M� [U5UR:XdeURRS5 URRU5 URRU5 URR!U5 [R""URSS9n124U125R%UR5 URR'S5 URR)S5 g)N>�<|"|>�126<channel|>�127<|channel>�<tool_call|>�<|tool_call>�<tool_response|>�<|tool_response>�Token '�' is set to USER_DEFINED�gemma4T)rF)r
�LlamaHfVocabr$�128all_tokensr��decode�	TokenType�USER_DEFINEDrrr�rIr(�add_tokenizer_model�add_token_list�add_token_scores�add_token_typesr#r'r)�add_add_bos_token)r*r�r��scores�toktypes�visible_tokens�text�score�toktype�text_strr+s           r,r-�Gemma4Model.set_vocabqsb���!�!�$�.�.�1��������H��$)�$4�$4�$6� �D���M�M�$���M�M�%� ��{�{�}�H��)������� ;� ;�<����g�h�Z�/G�H�I�����(�%7��6�{�e�.�.�.�.�.����,�,�X�6����'�'��/����)�)�&�1����(�(��2��)�)�$�.�.�d�K�
��!�!�$�"2�"2�3����-�-�e�4����*�*�4�0r/���>�[TU]5 URSnURR	U5 URRS5=(d SnURR
U5 URSVs/sHo3S:HPM	 nnURRU5 URSnURSnURRU5 URRU5 URRU5 URRU5 URSS	/5nUbURRU5 URRS129S5nURU-130n	U(aXURSn131[UR5Vs/sHo�U	:aU132OU133S
-PM nnURR!U5 URRS5n
URRS5nU
b7Ub4UVs/sH
o�(aUOU
PM nnURR#U5 UR$RSS5n['U5n['UU-5nURR)U5 URR+U5 gs snfs snfs snf)Nrrrrr�global_head_dimr8�expert_intermediate_size�moe_intermediate_size�use_double_wide_mlpFr4rz�num_global_key_value_headsr6�partial_rotary_factorr�)rQrGr9r(r!r�r r)rBrC�add_key_length_swa�add_value_length_swa�find_hparam�add_expert_feed_forward_lengthr=r�r>r@r�r/�add_rope_dimension_count�add_rope_dimension_count_swa)r*r�	n_pl_embdr.�134swa_layers�
head_dim_full�head_dim_swar�r��first_kv_shared_layer_idx�n_ff�il�n_ff_arr�num_key_value_heads_full�num_key_value_heads_swa�is_swa�	value_arr�partial_rotary_factor_swa�135n_rot_full�	n_rot_swarXs                    �r,rG�Gemma4Model.set_gguf_parameters�s����
��#�%�#�|�|�,B�C�����-�-�.B�C��L�L�$�$�%B�C�H�q�	����=�=�i�H�8<���]�8S�T�8S�1�.�.�8S�136�T����3�3�J�?����%6�7�
��|�|�J�/�����'�'�
�6����)�)�-�8����+�+�L�9����-�-�l�;�#'�#3�#3�5O�Qh�4i�#j� �#�/����;�;�<T�U�#�l�l�.�.�/D�e�L��$(�$4�$4�7K�$K�!���<�<� 3�4�D�W\�]a�]m�]m�Wn�o�Wn�QS�%>� >��D�1�H�L�Wn�H�o����4�4�X�>�$(�<�<�#3�#3�4P�#Q� �"&�,�,�"2�"2�3H�"I��#�/�4K�4W�gq�r�gq�]c�F�0�@X�X�gq�I�r����.�.�y�9�%)�$8�$8�$<�$<�=T�VY�$Z�!���'�137���'@�@�A�	����1�1�*�=����5�5�i�@��GU��(p��ss�138
K�K�9K�#�j# �URSSnUSS:XdeURSnUSn[X#-S-5n[US-5U-139nS/U-S	/U--n[R"U[RS1409nUR[RR5U4v� g7f)Nr�r��	rope_type�proportionalr�r�rzr�gꌠ9Y>)Fr)	r9r/r�r&r'�format_tensor_namer
�MODEL_TENSOR�141ROPE_FREQS)r*�rope_params_fullr��partial_rotary_factor_fullr��n_unrot_full�values�rope_freqs_fulls        r,r�"Gemma4Model.generate_extra_tensors�s���� �<�<�(9�:�;K�L����,��>�>�>����&7�8�
�%5�6M�%N�"���C�a�G�H�142��=�1�,�-�143�:�����#�t�f�|�&;�;���,�,�v�U�]�]�C���&�&�t�'8�'8�'C�'C�D�o�V�V�s�B1B3�	�>�URSS/SS9=(d SnURVs/sHo"RS5(dMUPM snGHn[R"SU5nUcM URS5nUSUR
S	US14435[S	US14535-n[U5Vs/sH146ovSUS3PM nnUV	s/sHo�UR;PM n147n	[U1485(dM�[U1495(dS
US35eURRU5n[U5H(upyURU	nX�U4SjURU	'M* GM [T
U]95 gs snfs snfs sn	f)N�num_local_experts�num_expertsT)�optionalr�.router.per_expert_scale�\.layers\.(\d+)\.r	�.layers.r��experts.�.down_proj.weight_scale_2�layer �+: partial NVFP4 quantization across experts��&�U"5U"5U-$rZrh)r+r�r�s   r,�<lambda>�5Gemma4Model._generate_nvfp4_tensors.<locals>.<lambda>�s��q�s�Q�S��V�|r/)r��
model_tensorsr`�re�search�group�indexr�r�rer9�popr�rQ�_generate_nvfp4_tensors)r*�	n_experts�nrV�	bid_matchrdr�e�150w2_targets�w2�presentr�r+rXs             �r,r��#Gemma4Model._generate_nvfp4_tensors�s�����$�$�&9�=�%I�TX�$�Y�^�]^�	� $� 2� 2�]� 2�1�j�j�A[�6\�Q� 2�]�D��	�	�"6��=�I�� ���/�/�!�$�C��R�D�J�J��#��a�'8�9�C�(�3�%�q�@Q�<R�R�S�F�SX�Yb�Sc�d�Sc�a�H�H�Q�C�/H�I�Sc�J�d�:D�E�*�B�T�/�/�/�*�G�E��w�<�<���w�<�<�Z�6�#��.Y�!Z�Z�<��"�"�&�&�t�,�A�"�:�.����&�&�r�*��23�A�)K��"�"�2�&�/�^�	��'�)��^��e��Es�E8�E8�6E=�F���>�Uup#URS5(dURS5(aUS-nSU;aURS5(dUS-
n[TU]	X#45$)N�
per_dim_scale�layer_scalarr��	.experts.)r��
.weight_scale�.weight_scale_2�.input_scalerBrSs    �r,rR�Gemma4Model.filter_tensors�sd����	���=�=��)�)�T�]�]�>�-J�-J��)�#�D��$��t�}�}�5t�'u�'u��I��D��w�%�t�k�2�2r/�#�>># �URS5(a1UR[RRUS5nX!4v� gSU;a1UR[RR151US5nX!4v� g[TU]XU5Shv�N gN7f)N�router.scale�.scale�.per_expert_scale)r`r�r
r��FFN_GATE_INP�FFN_DOWN_EXPrQrarbs    �r,ra�Gemma4Model.modify_tensors�s������=�=��(�(��*�*�4�+<�+<�+I�+I�3�PX�Y�D��$�$���$�&��*�*�4�+<�+<�+I�+I�3�PX�Y�D��$�$���7�)�*�C�@�@�@�s�BB�B�Brhr�rrirm)rqrrrsrtr
ru�GEMMA4rwr�r-rGrr�rxrRraryrzr{s@r,ririisN������'�'�J��1�<-A�^W�"*�0�3��3�A�Ar/ri�%Gemma4UnifiedForConditionalGeneration��^^�\rSrSr\R152RrSSjrU4Sjr	Sr153U=r$)�Gemma4UnifiedModelr�����URS-nUR5(a;[USS9n[R"U5nURS5sSSS5 $g!,(df   g=f)N�generation_config.jsonr�r��suppress_tokens)r$r�r�r�r�r�)r*�gen_cfg_pathr��gen_cfgs    r,�_get_suppress_tokens�'Gemma4UnifiedModel._get_suppress_tokenssa���~�~�(@�@�����!�!��l�W�5���)�)�A�,���{�{�#4�5�6�5��6�5��s�'A!�!154A/��>�[TU]5 UR5nUbURR	U5 ggrZ)rQrGr�r(�add_suppress_tokens)r*r�rXs  �r,rG�&Gemma4UnifiedModel.set_gguf_parameterss;���
��#�%��3�3�5���&����0�0��A�'r/rh)rk�Sequence[int] | None)rqrrrsrtr
rur�rwr�rGryrzr{s@r,r�r�s#������'�'�J��B�Br/r��Gemma4AssistantForCausalLM�!Gemma4UnifiedAssistantForCausalLM��n^�\rSrSr\R155Rr\SU4Sjj5r	U4Sjr156SrU=r$)�Gemma4AssistantModeli��n>�Uup#SU;a[R"SU<S35 g[TU]
U5$)N�masked_embeddingrMrNrOrSs    �r,rR�#Gemma4AssistantModel.filter_tensorss<����	����%��L�L�/��x�7h�i�j���w�%�d�+�+r/��>�[TU]5 URRURS5 URRUR5 g)N�backbone_hidden_size)rQrGr(�add_embedding_length_outr9�add_nextn_predict_layersr=r�s �r,rG�(Gemma4AssistantModel.set_gguf_parameters"sF���
��#�%����1�1�$�,�,�?U�2V�W����1�1�$�2B�2B�Cr/rhri)
rqrrrsrtr
ru�GEMMA4_ASSISTANTrwrxrRrGryrzr{s@r,r�r�s0������1�1�J��,��,�D�Dr/r���\^�\rSrSrSrSrU4SjrU4SjrS	SjrU4Sjr	S157Sjr158SrU=r$)�Gemma4VisionAudioModeli(T��F>�[TU]"U0UD6 URceSURS'UR(aZURR	SS5URS'SUR;a URSS-URS'ggS	Ulg)159N��r(r�r�r�r3r�r4F)rQr�r�r�r�r�r	s   �r,r��Gemma4VisionAudioModel.__init__-s����
���$�)�&�)��"�"�.�.�.�,/����L�)����,0�,>�,>�,B�,B�CT�VY�,Z�D���y�)��� 2� 2�2�:>�:L�:L�]�:[�^_�:_��"�"�#6�7�3�&+�D�"r/��r>�[TU]5 URceURR	[160RR5 URRURRSS55 UR(a�URceURR[161RR5 URRURS5 URRURRSS55 gg)Nr%r�r�)rQrGr�r(r�r
r+�GEMMA4Vr,r�r�r�r��GEMMA4Ar�r�r�s �r,rG�*Gemma4VisionAudioModel.set_gguf_parameters:s����
��#�%��"�"�.�.�.����7�7��8P�8P�8X�8X�Y����;�;�D�<O�<O�<S�<S�Td�fj�<k�l��!�!��%�%�1�1�1����:�:�4�;S�;S�;[�;[�\����3�3�D�4F�4F�y�4Q�R����>�>�t�?Q�?Q�?U�?U�Vf�hl�?m�n�	"r/��$�SU;=(d SU;$)N�audio_tower�embed_audiorhr�s  r,rf�&Gemma4VisionAudioModel.is_audio_tensorIs����$�=�
��(=�=r/���>�URU5(a,SU;dSU;a SU;a[RR$SU;a[RR$[TU]XX45$)Nrjrkr��position_embedding_table)rfr
r9r;rQr<r=s     �r,r<�)Gemma4VisionAudioModel.tensor_force_quantLsf�������%�%��$��'�T�/�i�4�6G��0�0�4�4�4�%��-��,�,�0�0�0��w�)�$�#�F�Fr/�#�@# �A[UR5S:XaURS5nURU5(GaURceURSS5nURSS5nUR
S5(dUR
S5(a.US-n[RRRU5nS	U;aWUR
S5(aAURS162S163:XdeURURSURS5nURUS5nXA4v� gURS
S5nURSS5nUR
S5(dUR
S5(aUS-nUR
S5(aTURupV[US-S-5nURXWUS5nURSSS164S5R5nURUS5nXA4v� g7f)Nr�model.audio_tower.�165conformer.�.linear.r��per_dim_key_scaler�r��lconv1d.depthwise_conv1dr	rzr|�model.vision_tower.encoder.�vision_model.model.�.linear.weightr�r� patch_embedder.input_proj.weight�r')r�r�r�rfr�r�r`r��nn�166functional�softplusr�r�r/�permute�167contiguous)r*rcrVrdr��n_embd�168ksize_sq_cr)s        r,ra�%Gemma4VisionAudioModel.modify_tensorsTs������z��� �A�%�#�-�-�a�0�J�����%�%��%�%�1�1�1��<�<� 4�l�C�D��<�<�169�C�0�D��}�}�0�1�1�T�]�]�?�5S�5S��i�'��"�X�X�0�0�9�9�*�E�170�)�T�1�d�m�m�I�6N�6N�!�'�'��*�a�/�/�/�'�/�/�171�0@�0@��0C�Z�EU�EU�VW�EX�Y�172��.�.�t�6D�E�K��+�+��<�<� =�?T�U�D��<�<� 0�)�<�D��}�}�^�,�,��
�
�>X�0Y�0Y��i�'���}�}�?�@�@�%/�%5�%5�"�� �*��/�c�!9�:�173�'�/�/��J�PQ�R�174�'�/�/��1�a��;�F�F�H�175��.�.�t�6D�E�K��+�+�s�HH)r�)rVrnrk�boolrm)
rqrrrsrtr�r�r�rGrfr<raryrzr{s@r,r176r177(s/�������+�
o�>�G�,�,r/r178��H^�\rSrSrSrSrU4SjrU4SjrU4SjrSr	U=r179$)�Gemma4UnifiedVisionAudioModelivT��>�[TU]"U0UD6 URceURceURSnX0RS'URSURS'SURS'SURS'SURS'SURS'SURS'SURS'g)N�mm_embed_dimr3�audio_embed_dimrr4�180num_layersr5)rQr�r�r�)r*r�r��
text_embd_dimrXs    �r,r��&Gemma4UnifiedVisionAudioModel.__init__{s����
���$�)�&�)��"�"�.�.�.��!�!�-�-�-��+�+�N�;�
�-:���M�*�,0�,>�,>�?P�,Q����=�)�34����/�0�,-����L�)�56����1�2�23����.�/�+,����<�(�45����0�1r/���>�[TU]5 URR[R181R5 URR[R182R5 grZ)	rQrGr(r�r
r+�GEMMA4UVr��GEMMA4UAr�s �r,rG�1Gemma4UnifiedVisionAudioModel.set_gguf_parameters�sN���
��#�%����7�7��8P�8P�8Y�8Y�Z����6�6�t�7O�7O�7X�7X�Yr/��0>�URS5(aUS-
nURSSS5nGOVSU;aURSS5nGO<SU;a�URceS	UR;aURS	nOURS183URS-n[R184"XD-S-5nXTU--nXTU--U-nXT-nXt-S-US--U-n	USS2U	4nO�S
U;dSU;a�URceS	UR;aURS	nOURS185URS-n[R186"XD-S-5nXTU--nXTU--U-nXT-nXt-S-US--U-n	Xn[T187U]XU5$)N�
pos_embeddingr�r	rrz�188.pos_norm.�.patch_ln3.�patch_dense.weight�model_patch_sizer)�pooling_kernel_sizer(�patch_ln1.weight�patch_ln1.bias)r`r,r�r�r��arangerQra)r*rcrVrdr\r��ch�row�col�permrXs          �r,ra�,Gemma4UnifiedVisionAudioModel.modify_tensors�s�����=�=��)�)��I��D�#�+�+�A�q�!�4�J�
�T�
!��<�<��m�<�D�
!�T�
)��&�&�2�2�2�!�T�%8�%8�8��'�'�(:�;���'�'��5��8K�8K�La�8b�b�����Q�U�Q�Y�'�A��A��,�B��A��;�1�$�C��%�C��7�Q�;��q��(�2�-�D�#�A�t�G�,�J�
�4�
'�+;�t�+C��&�&�2�2�2�!�T�%8�%8�8��'�'�(:�;���'�'��5��8K�8K�La�8b�b�����Q�U�Q�Y�'�A��A��,�B��A��;�1�$�C��%�C��7�Q�;��q��(�2�-�D�#�)�J��w�%�j��<�<r/rh)rqrrrsrtr�r�r�rGraryrzr{s@r,r4r4vs$�������
6�Z�189$=�$=r/r4)�190__future__rr�r��typingrrrrr�r�baser191rrr
r�registerrrr�r�r!rSr�rrir�r�r192r4rhr/r,�<module>rUsI��"��	�>�>����A�A����&�'�2A��2A�(�2A�j���'�(�.A�)�.A�)�.A�b���'�)I�J�4A�)�4A�K�4A�n���%�&�F%�[�F%�'�F%�R���4�5�2A��2A�6�2A�j/(�+�/(�d���5�6�sM�1�sM�7�sM�l���(�*K�L�LA�;�LA�M�LA�^���4�6I�J�SA�+�SA�K�SA�l���;�<�B��B�=�B�&���0�2U�V�D�;�D�W�D�&���4�5�J,�[�J,�6�J,�Z���;�<�<=�$:�<=�=�<=r/
Brunobkr/llama.cpp_AlgMor24_github · Team Ai