Ë
    cQêj8:  ã                   ó”   — d dl Z d dlZd dlZd dlmZ d dlmZmZmZ d dlm	Z	m
Z
 d dlmZmZ  e j                  e«      Zd„ Zd	d„Zd„ Zy)
é    N)Ú	Precision)Úget_shared_initializersÚ.update_decoder_subgraph_output_cross_attentionÚ?update_decoder_subgraph_share_buffer_and_use_decoder_masked_mha)ÚTensorProtoÚhelper)ÚWhisperConfigÚWhisperTokenizerc                 ó®   — t        t        d„ | «      «      }t        |«      t        |«      k(  sJ ‚t        ||d¬«      D ]  \  }}|j                  |v rŒJ ‚ y )Nc                 ó   — | S )N© )Ú
beam_inputs    úz/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/onnxruntime/transformers/models/whisper/whisper_chain.pyú<lambda>zverify_inputs.<locals>.<lambda>   s   € ¸*€ ó    F)Ústrict)ÚlistÚfilterÚlenÚzipÚname)Úbeam_inputsÚgraph_inputsÚbeam_required_inputsÚgraph_inputr   s        r   Úverify_inputsr      sa   € ä¤Ñ'DÀkÓ RÓSÐÜˆ|Ó¤Ð$8Ó 9Ò9Ð9Ð9Ü#& |Ð5IÐRWÔ#Xò .Ñˆ�Zà×Ñ :Ò-Ð-Ð-ñ.r   c                 ó¨   — |rt        t        d„ | «      «      S t        | «      dkD  r+| d   dk(  r| j                  «        n	 | S t        | «      dkD  rŒ+| S )Nc                 ó   — | dk7  S )NÚ r   )Úelms    r   r   zclean_list.<locals>.<lambda>#   s
   €  s¨b¡y€ r   r   éÿÿÿÿr   )r   r   r   Úpop)ÚarrÚremove_all_stringss     r   Ú
clean_listr%       sU   € Ùä”FÑ0°#Ó6Ó7Ð7ô ˆc‹(�QŠ,Øˆr‰7�bŠ=Ø�G‰G�IàØ€Jô ˆc‹(�Q‹,ð
 €Jr   c                 ó(  — t        j                  | j                  d¬«      }d|j                  _        t        j                  | j
                  d¬«      }d|j                  _        t        j                  | j                  | j                  ¬«      }t        j                  | j                  | j                  ¬«      }| j                  t        j                  k(  xs: | j                  t        j                  t        j                  fv xr | j                   }|rdnd}|rdnd	d
ddd|rdnd|rdnd| j"                  rdnd| j$                  rdndd| j&                  rdnd| j(                  rdnd| j*                  rdnd| j,                  rdnd| j.                  r|ndg}|rdnd}|rdnd}	d| j0                  r|nd| j2                  r|	nd| j*                  rdnd| j4                  rdndg}
g }|�rgt7        j8                  d d	gdgd!t:        j                  ¬"«      }t7        j8                  d dgdgd#t:        j                  ¬"«      }t7        j8                  d dgdgd$t:        j                  ¬"«      }|j=                  |||g«       | j.                  r;t7        j8                  d dgdgd%t:        j                  ¬"«      }|j?                  |«       | j0                  r;t7        j8                  d dgdgd&t:        j@                  ¬"«      }|j?                  |«       | j2                  r;t7        j8                  d dgdgd't:        j@                  ¬"«      }|j?                  |«       t7        jB                  d(|jD                  «      t7        jB                  d)|jF                  «      t7        jB                  d*|jH                  «      t7        jB                  d+|jK                  d,g«      d-   «      t7        jB                  d.|jK                  d/g«      d-   «      t7        jB                  d0|jK                  d1g«      d-   «      | j4                  r)t7        jB                  d2|jK                  d3g«      d-   «      ndt7        jB                  d4|jK                  d5g«      d-   «      t7        jB                  d6|jK                  d7g«      d-   «      t7        jB                  d8| jL                  «      t7        jB                  d9d«      t7        jB                  d:d;«      | j*                  rt7        jB                  d<d=«      ndg}t7        j8                  d>tO        |d?¬@«      tO        |
d?¬@«      dAdB¬C«      }|jP                  j=                  tO        |d¬@«      «       t7        jR                  d	t:        j@                  g dD¢«      }t7        jR                  d
t:        jT                  d=g«      }t7        jR                  dt:        jT                  d=g«      }t7        jR                  dt:        jT                  d=g«      }t7        jR                  dt:        jT                  d=g«      }t7        jR                  dt:        j@                  d=g«      }t7        jR                  dt:        j@                  d=g«      }t7        jR                  dt:        jT                  |jV                  g«      }t7        jR                  dt:        jT                  dE|jV                  g«      }t7        jR                  dt:        jT                  dEdFg«      }t7        jR                  dt:        jT                  d=g«      }t7        jR                  dt:        jT                  dGd;g«      }t7        jR                  dt:        jT                  dEdHg«      } t7        jR                  dt:        j@                  d=g«      }!tO        |||||||| j"                  r|nd| j$                  r|nd| j&                  r|nd| j(                  r|nd| j*                  r|nd| j,                  r| nd| j.                  r|!ndg«      }"t7        jR                  dt:        jT                  g dI¢«      }#t7        jR                  dt:        j@                  dEg«      }$t7        jR                  dt:        j@                  dEg«      }%t7        jR                  dt:        j@                  g dJ¢«      }&t7        jR                  dKt:        j@                  dEg«      }'tO        |#| j0                  r|$nd| j2                  r|%nd| jX                  s| jZ                  s| j*                  r|&nd| j4                  r|'ndg«      }(t]        | dL«      ry| j                   rmt_        |j                  «      rt`        jc                  dM«       nt`        je                  dN«       t]        | dO«      r!| j*                  rtg        |j                  «       ti        ||«      })|jP                  j=                  t7        jB                  dP|j                  «      t7        jB                  dQ|j                  «      g«       t7        jj                  dBd=¬R«      t7        jj                  ddS¬R«      g}*|j?                  |«       | j4                  r;t7        j8                  d dgdKgdTt:        j@                  ¬"«      }+|j?                  |+«       t7        jl                  |dU|"|(|)¬V«      },|"D �-cg c]  }-|-j                  ‘Œ }.}-|(D �/cg c]  }/|/j                  ‘Œ }0}/| jZ                  r÷t        j                  | jZ                  d¬«      }1|1j                  }2|,jn                  j=                  |2jn                  «       |,jp                  j=                  |2jp                  «       |2jr                  D ]L  }3|3j                  |.vsŒ|3j                  |0vsŒ!|3j                  dk7  sŒ1|,jr                  j=                  |3g«       ŒN |,jt                  j=                  |2jt                  «       tw        ||"«       |jx                  |jx                  k(  sJ ‚t`        jc                  dW|jx                  › dX�«       t7        jz                  |,dY|*|jx                  ¬Z«      }4t|        j~                  j�                  | j‚                  «      rÈt`        jc                  d[| j‚                  › d\| j‚                  d]z   › �«       t|        j~                  j…                  | j‚                  «      rt}        j†                  | j‚                  «       t|        j~                  j…                  | j‚                  d]z   «      r"t}        j†                  | j‚                  d]z   «       t        jˆ                  |4| j‚                  | jŠ                  ddt|        j~                  j�                  | j‚                  «      › d]�¬^«       	 t         jŽ                  j‘                  | j‚                  d¬_«       y c c}-w c c}/w # t’        $ r$}5t`        j•                  d`|5› �d¬a«       Y d }5~5y d }5~5ww xY w)bNT)Úload_external_datazencoderdecoderinit subgraphzdecoder subgraph)Ú	cache_dirÚtemperature_fp16ÚtemperatureÚinput_features_fp16Úinput_featuresÚ
max_lengthÚ
min_lengthÚ	num_beamsÚnum_return_sequencesÚlength_penalty_fp16Úlength_penaltyÚrepetition_penalty_fp16Úrepetition_penaltyÚ
vocab_maskr   Úprefix_vocab_maskÚdecoder_input_idsÚlogits_processorÚcross_qk_layer_headÚextra_decoding_idsÚsequence_scores_fp16Úsequence_scoresÚscores_fp16ÚscoresÚ	sequencesÚcross_qkÚno_speech_probs_beamÚCastÚCastInputFeaturesToFp16)ÚinputsÚoutputsr   ÚtoÚCastLengthPenaltyToFp16ÚCastRepetitionPenaltyToFp16Útemperature_to_fp16ÚCastOutputSequenceScoresToFp32ÚCastScoresToFp32Úeos_token_idÚpad_token_idÚdecoder_start_token_idÚtranslate_token_idz<|translate|>r   Útranscribe_token_idz<|transcribe|>Ústart_of_lm_token_idz<|startoflm|>Úno_speech_token_idz<|nospeech|>Úno_timestamps_token_idz<|notimestamps|>Úbeginning_timestamp_token_idz<|0.00|>Úno_repeat_ngram_sizeÚearly_stoppingÚ
model_typeé   Údecoder_output_cross_qké   ÚWhisperBeamSearchF)r$   Ú
BeamSearchzcom.microsoft)rD   rE   r   Údomain)Ú
batch_sizeÚfeature_sizeÚsequence_lengthr^   Úinitial_sequence_lengthÚnum_layer_headÚextra_decoding_ids_len)r^   r0   r-   )r^   r0   Únum_layer_head_cross_qkr-   ÚframesÚno_speech_probsÚuse_gpuzUUpdated whisper decoder subgraph to use DecoderMaskedMultiHeadAttention successfully!zPDecoderMaskedMultiHeadAttention could not be applied to whisper decoder subgraphÚcollect_cross_qkÚdecoderÚencoder)r]   Úversioné   Úno_speech_probs_cast_to_fp32zWhisperBeamSearch Graph)r   rD   rE   ÚinitializerzUsing IR version z for chained modelzonnxruntime.transformers)Úproducer_nameÚopset_importsÚ
ir_versionzOverwriting z and z.data)Úsave_as_external_dataÚall_tensors_to_one_fileÚconvert_attributeÚlocation)Ú
full_checkz2An error occurred while running the ONNX checker: )Úexc_info)KÚonnxÚ
load_modelÚencoder_pathÚgraphr   Údecoder_pathr	   Úfrom_pretrainedÚmodel_name_or_pathr(   r
   Ú	precisionr   ÚFLOAT16ÚINT8ÚINT4rg   Úuse_vocab_maskÚuse_prefix_vocab_maskÚuse_forced_decoder_idsÚuse_logits_processorrh   r:   Úuse_temperatureÚoutput_sequence_scoresÚoutput_scoresÚoutput_no_speech_probsr   Ú	make_noder   ÚextendÚappendÚFLOATÚmake_attributerL   rM   rN   Úconvert_tokens_to_idsrU   r%   Ú	attributeÚmake_tensor_value_infoÚINT32Ú
vocab_sizeÚoutput_cross_qkÚcross_qk_onnx_modelÚhasattrr   ÚloggerÚinfoÚwarningr   r   Úmake_opsetidÚ
make_graphrn   ÚnodeÚinputÚoutputr   rq   Úmake_model_gen_versionÚosÚpathÚisfileÚbeam_model_output_dirÚexistsÚremoveÚsaveÚuse_external_data_formatÚbasenameÚcheckerÚcheck_modelÚ	ExceptionÚerror)6ÚargsÚencoder_modelÚdecoder_modelÚconfigÚ	tokenizerÚuse_fp16_inputsÚtemperature_namer   Úsequence_scores_nameÚscores_nameÚbeam_outputsÚgraph_nodesÚinput_features_cast_nodeÚlen_pen_cast_nodeÚrep_pen_cast_nodeÚtemp_cast_nodeÚ output_sequence_scores_cast_nodeÚoutput_scores_cast_nodeÚbeam_search_attrsr�   r,   r-   r.   r/   r0   r2   r4   r5   r6   r7   r8   r9   r:   r*   r   r?   r<   r>   r@   rf   Úgraph_outputsÚinitializersÚopset_importÚprob_cast_nodeÚ
beam_graphÚgiÚbeam_graph_input_namesÚgoÚbeam_graph_output_namesÚpost_qk_modelÚpost_qk_graphÚpgiÚ
beam_modelÚes6                                                         r   Úchain_modelrÎ   .   sV  € ä—O‘O D×$5Ñ$5È$ÔO€MØ<€M×ÑÔä—O‘O D×$5Ñ$5È$ÔO€MØ1€M×ÑÔä×*Ñ*¨4×+BÑ+BÈdÏnÉnÔ]€FÜ ×0Ñ0°×1HÑ1HÐTX×TbÑTbÔc€Ià—n‘n¬	×(9Ñ(9Ñ9ò Ø�‰œ9Ÿ>™>¬9¯>©>Ð:Ð:ÒK¸t¿|¹|ð ñ .=Ñ)À-Ðá!0ÑÐ6FØØØØÙ!0ÑÐ6FÙ%4Ñ!Ð:NØ×+Ò+‰°Ø#×9Ò9Ñ¸rØ
Ø#×:Ò:ÑÀØ"×7Ò7Ñ¸RØ!%×!6Ò!6Ñ¸BØ $× 7Ò 7Ñ¸RØ ×0Ò0Ñ°bð€Kñ$ 6EÑ1ÐJ[ÐÙ#2‘-¸€KàØ $× ;Ò ;ÑÀØ×)Ò)‰¨rØ×+Ò+‰
°Ø"&×"=Ò"=ÑÀ2ð€Lð €KÚÜ#)×#3Ñ#3ØØ$Ð%Ø*Ð+Ø*Ü×"Ñ"ô$
Ð ô #×,Ñ,ØØ$Ð%Ø*Ð+Ø*Ü×"Ñ"ô
Ðô #×,Ñ,ØØ(Ð)Ø.Ð/Ø.Ü×"Ñ"ô
Ðð 	×ÑÐ4Ð6GÐIZÐ[Ô\à×ÒÜ#×-Ñ-ØØ%�Ø+Ð,Ø*Ü×&Ñ&ôˆNð ×Ñ˜~Ô.à×&Ò&Ü/5×/?Ñ/?ØØ.Ð/Ø*Ð+Ø5Ü×$Ñ$ô0Ð,ð ×ÑÐ?Ô@à×ÒÜ&,×&6Ñ&6ØØ%�Ø!˜
Ø'Ü×$Ñ$ô'Ð#ð ×ÑÐ6Ô7ô 	×Ñ˜n¨f×.AÑ.AÓBÜ×Ñ˜n¨f×.AÑ.AÓBÜ×ÑØ$ f×&CÑ&Có	
ô 	×ÑÐ2°I×4SÑ4SÐUdÐTeÓ4fÐghÑ4iÓjÜ×ÑÐ3°Y×5TÑ5TÐVfÐUgÓ5hÐijÑ5kÓlÜ×ÑÐ4°i×6UÑ6UÐWfÐVgÓ6hÐijÑ6kÓlð ×*Ò*ô ×!Ñ!Ð"6¸	×8WÑ8WÐYgÐXhÓ8iÐjkÑ8lÔmàä×ÑÐ6¸	×8WÑ8WÐYkÐXlÓ8mÐnoÑ8pÓqÜ×ÑÐ<¸i×>]Ñ>]Ð_iÐ^jÓ>kÐlmÑ>nÓoÜ×ÑÐ4°d×6OÑ6OÓPÜ×ÑÐ.°Ó5Ü×Ñ˜l¨AÓ.Ø?C×?TÒ?TŒ×ÑÐ7¸Ô;ÐZ\ð'Ðô* ×ÑØÜ˜+¸%Ô@Ü˜<¸EÔBØØô€Dð 	‡N�N×Ñœ*Ð%6È4ÔPÔQô ×2Ñ2Øœ+×+Ñ+Ò-^ó€Nô ×.Ñ.¨|¼[×=NÑ=NÐQRÐPSÓT€JÜ×.Ñ.¨|¼[×=NÑ=NÐQRÐPSÓT€JÜ×-Ñ-¨k¼;×;LÑ;LÈqÈcÓR€IÜ!×8Ñ8Ð9OÔQ\×QbÑQbÐefÐdgÓhÐÜ×2Ñ2Ð3CÄ[×EVÑEVÐYZÐX[Ó\€NÜ×6Ñ6Ð7KÌ[×M^ÑM^ÐabÐ`cÓdÐÜ×.Ñ.¨|¼[×=NÑ=NÐQW×QbÑQbÐPcÓd€JÜ×5Ñ5Øœ[×.Ñ.°¸v×?PÑ?PÐ0QóÐô ×5Ñ5Øœ[×.Ñ.°Ð?XÐ0YóÐô ×4Ñ4Ð5GÌ×IZÑIZÐ]^Ð\_Ó`ÐÜ ×7Ñ7Ð8MÌ{×O`ÑO`ÐcsÐuvÐbwÓxÐÜ×6Ñ6Øœk×/Ñ/°,Ð@XÐ1YóÐô ×/Ñ/°¼{×?PÑ?PÐSTÐRUÓV€KäàØØØØ ØØØ×-Ò-‰J°2Ø!%×!;Ò!;ÑÀØ!%×!<Ò!<ÑÀ"Ø $× 9Ò 9Ñ¸rØ#'×#8Ò#8Ñ¸bØ"&×"9Ò"9Ñ¸rØ×/Ò/‰K°Rð	
ó€Lô( ×-Ñ-Ø”[×&Ñ&Ò(\ó€Iô ×3Ñ3Ð4EÄ{×GXÑGXÐ[gÐZhÓi€OÜ×*Ñ*¨8´[×5FÑ5FÈÈÓW€FÜ×,Ñ,ØÜ×ÑÚaó€Hô
 ×3Ñ3Ð4EÄ{×GXÑGXÐ[gÐZhÓi€OäàØ#×:Ò:‰OÀØ×(Ò(‰F¨bØ×,Ò,°T×5MÒ5MÐRV×RgÒRg‰HÐnpØ#×:Ò:‰OÀð	
ó€Mô ˆt�YÔ D§L¢LÜJÈ=×K^ÑK^Ô_Ü�K‰KÐoÕpä�N‰NÐmÔnÜ�4Ð+Ô,°×1FÒ1FÜ:¸=×;NÑ;NÔOô +¨=¸-ÓH€LØ‡N�N×Ñä×!Ñ! )¨]×-@Ñ-@ÓAÜ×!Ñ! )¨]×-@Ñ-@ÓAð	
ôô ×'Ñ'¨ÈÔJÌF×L_ÑL_ÐgiÐsuÔLvÐw€Là×Ñ�tÔØ×"Ò"Ü×)Ñ)ØØ*Ð+Ø&Ð'Ø/Ü× Ñ ô
ˆð 	×Ñ˜>Ô*ô ×"Ñ"ØØ&ØØØ ô€Jð 1=Ö=¨"˜bŸg›gÐ=ÐÐ=Ø1>Ö?¨2˜rŸw›wÐ?ÐÐ?à×ÒÜŸ™¨×(@Ñ(@ÐUYÔZˆØ%×+Ñ+ˆØ×Ñ×%Ñ% m×&?Ñ&?Ô@Ø�‰×Ñ˜}×1Ñ1Ô2ð !×&Ñ&ò 	/ˆCà—‘Ð!7Ò7Ø—X‘XÐ%<Ò<Ø—X‘X Ó+à× Ñ ×'Ñ'¨¨Õ.ð	/ð 	×Ñ× Ñ  ×!5Ñ!5Ô6ô �+˜|Ô,à×#Ñ# }×'?Ñ'?Ò?Ð?Ð?Ü
‡K�KÐ# M×$<Ñ$<Ð#=Ð=OÐPÔQô ×.Ñ.ØØ0Ø"Ø ×+Ñ+ô	€Jô 
‡w�w‡~�~�d×0Ñ0Ô1Ü�‰�l 4×#=Ñ#=Ð">¸eÀD×D^ÑD^ÐahÑDhÐCiÐjÔkÜ�7‰7�>‰>˜$×4Ñ4Ô5Ü�I‰I�d×0Ñ0Ô1Ü�7‰7�>‰>˜$×4Ñ4°wÑ>Ô?Ü�I‰I�d×0Ñ0°7Ñ:Ô;ä‡I�IØØ×"Ñ"Ø"×;Ñ;Ø $ØÜ—G‘G×$Ñ$ T×%?Ñ%?Ó@ÐAÀÐGõð^Ü�‰× Ñ  ×!;Ñ!;ÈÐ ÕMùòe >ùÚ?øôd ò ^Ü�‰ÐIÈ!ÈÐMÐX\ˆ×]Ñ]ûð^ús$   ëwëwö.+w$ ÷$	x÷-xøx)T)Úloggingr¡   rx   Úbenchmark_helperr   Úconvert_generationr   r   r   r   r   Útransformersr	   r
   Ú	getLoggerÚ__name__r˜   r   r%   rÎ   r   r   r   ú<module>rÕ      sH   ðó Û 	ã Ý &÷ñ ÷
 %ß 8à	ˆ×	Ñ	˜8Ó	$€ò.óó`^r   