
    h3:                         S SK r S SKrS SKrS SKJr  S SKJrJrJr  S SKJ	r	J
r
  S SKJrJr  \ R                  " \5      rS rS	S jrS rg)
    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                     [        [        S U 5      5      n[        U5      [        U5      :X  d   e[        XSS9 H  u  p4UR                  U;   a  M   e   g )Nc                     U $ )N )
beam_inputs    o/var/www/fran/franai/venv/lib/python3.13/site-packages/onnxruntime/transformers/models/whisper/whisper_chain.py<lambda>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      sX    'Dk RS|$8 9999#&|RW#X:--- $Yr   c                     U(       a  [        [        S U 5      5      $ [        U 5      S:  a.  U S   S:X  a  U R                  5         O U $ [        U 5      S:  a  M.  U $ )Nc                     U S:g  $ )N r   )elms    r   r   clean_list.<locals>.<lambda>#   s    sbyr   r   r    )r   r   r   pop)arrremove_all_stringss     r   
clean_listr'       sU    F0#677 c(Q,r7b=GGIJ c(Q,
 Jr   c                    [         R                  " U R                  SS9nSUR                  l        [         R                  " U R
                  SS9nSUR                  l        [        R                  " U R                  U R                  S9n[        R                  " U R                  U R                  S9nU R                  [        R                  :X  a  SOSnU R                  [        R                  :X  a  SOS	S
SSSU R                  [        R                  :X  a  SOSU R                  [        R                  :X  a  SOSU R                  (       a  SOSU R                  (       a  SOSSU R                   (       a  SOSU R"                  (       a  SOSU R$                  (       a  SOSU R&                  (       a  SOSU R(                  (       a  UOS/nU R                  [        R                  :X  a  SOSnU R                  [        R                  :X  a  SOSnSU R*                  (       a  UOSU R,                  (       a  UOSU R$                  (       a  SOSU R.                  (       a  SOS/n	/ n
U R                  [        R                  :X  Gai  [0        R2                  " S S	/S/S![4        R                  S"9n[0        R2                  " S S/S/S#[4        R                  S"9n[0        R2                  " S S/S/S$[4        R                  S"9nU
R7                  XU/5        U R(                  (       a9  [0        R2                  " S S/S/S%[4        R                  S"9nU
R9                  U5        U R*                  (       a9  [0        R2                  " S S/S/S&[4        R:                  S"9nU
R9                  U5        U R,                  (       a9  [0        R2                  " S S/S/S'[4        R:                  S"9nU
R9                  U5        [0        R<                  " S(UR>                  5      [0        R<                  " S)UR@                  5      [0        R<                  " S*URB                  5      [0        R<                  " S+URE                  S,/5      S-   5      [0        R<                  " S.URE                  S//5      S-   5      [0        R<                  " S0URE                  S1/5      S-   5      U R.                  (       a*  [0        R<                  " S2URE                  S3/5      S-   5      OS[0        R<                  " S4URE                  S5/5      S-   5      [0        R<                  " S6URE                  S7/5      S-   5      [0        R<                  " S8U RF                  5      [0        R<                  " S9S5      [0        R<                  " S:S;5      U R$                  (       a  [0        R<                  " S<S=5      OS/n[0        R2                  " S>[I        US?S@9[I        U	S?S@9SASBSC9nURJ                  R7                  [I        USS@95        [0        RL                  " S	[4        R:                  / SDQ5      n[0        RL                  " S
[4        RN                  S=/5      n[0        RL                  " S[4        RN                  S=/5      n[0        RL                  " S[4        RN                  S=/5      n[0        RL                  " S[4        RN                  S=/5      n[0        RL                  " S[4        R:                  S=/5      n[0        RL                  " S[4        R:                  S=/5      n[0        RL                  " S[4        RN                  URP                  /5      n[0        RL                  " S[4        RN                  SEURP                  /5      n[0        RL                  " S[4        RN                  SESF/5      n[0        RL                  " S[4        RN                  S=/5      n[0        RL                  " S[4        RN                  SGS;/5      n[0        RL                  " S[4        RN                  SESH/5      n[0        RL                  " S[4        R:                  S=/5      n [I        UUUUUUUU R                  (       a  UOSU R                  (       a  UOSU R                   (       a  UOSU R"                  (       a  UOSU R$                  (       a  UOSU R&                  (       a  UOSU R(                  (       a  U OS/5      n![0        RL                  " S[4        RN                  / SIQ5      n"[0        RL                  " S[4        R:                  SE/5      n#[0        RL                  " S[4        R:                  SE/5      n$[0        RL                  " S[4        R:                  / SJQ5      n%[0        RL                  " SK[4        R:                  SE/5      n&[I        U"U R*                  (       a  U#OSU R,                  (       a  U$OSU RR                  (       d"  U RT                  (       d  U R$                  (       a  U%OSU R.                  (       a  U&OS/5      n'[W        U SL5      (       a  U RX                  (       a|  [[        UR                  5      (       a  [\        R_                  SM5        O[\        Ra                  SN5        [W        U SO5      (       a&  U R$                  (       a  [c        UR                  5        [e        X5      n(URJ                  R7                  [0        R<                  " SPUR                  5      [0        R<                  " SQUR                  5      /5        [0        Rf                  " SBS=SR9[0        Rf                  " SSSSR9/n)U
R9                  U5        U R.                  (       a9  [0        R2                  " S S/SK/ST[4        R:                  S"9n*U
R9                  U*5        [0        Rh                  " U
SUU!U'U(SV9n+U! V,s/ s H  n,U,R                  PM     n-n,U' V.s/ s H  n.U.R                  PM     n/n.U RT                  (       a  [         R                  " U RT                  SS9n0U0R                  n1U+Rj                  R7                  U1Rj                  5        U+Rl                  R7                  U1Rl                  5        U1Rn                   HU  n2U2R                  U-;  d  M  U2R                  U/;  d  M'  U2R                  S:w  d  M9  U+Rn                  R7                  U2/5        MW     U+Rp                  R7                  U1Rp                  5        [s        UU!5        URt                  URt                  :X  d   e[\        R_                  SWURt                   SX35        [0        Rv                  " U+SYU)URt                  SZ9n3[x        Rz                  R}                  U R~                  5      (       a  [\        R_                  S[U R~                   S\U R~                  S]-    35        [x        Rz                  R                  U R~                  5      (       a   [x        R                  " U R~                  5        [x        Rz                  R                  U R~                  S]-   5      (       a#  [x        R                  " U R~                  S]-   5        [         R                  " U3U R~                  U R                  SS[x        Rz                  R                  U R~                  5       S]3S^9   [         R                  R                  U R~                  SS_9  g s  sn,f s  sn.f ! [         a!  n4[\        R                  S`U4 3SSa9   S n4A4g S n4A4ff = f)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)rF   rG   r   domain)
batch_sizefeature_sizesequence_lengthr`   initial_sequence_lengthnum_layer_headextra_decoding_ids_len)r`   r2   r/   )r`   r2   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   rF   rG   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)Ionnx
load_modelencoder_pathgraphr   decoder_pathr	   from_pretrainedmodel_name_or_pathr*   r
   	precisionr   FLOAT16use_vocab_maskuse_prefix_vocab_maskuse_forced_decoder_idsuse_logits_processorrj   r<   use_temperatureoutput_sequence_scoresoutput_scoresoutput_no_speech_probsr   	make_noder   extendappendFLOATmake_attributerN   rO   rP   convert_tokens_to_idsrW   r'   	attributemake_tensor_value_infoINT32
vocab_sizeoutput_cross_qkcross_qk_onnx_modelhasattrri   r   loggerinfowarningr   r   make_opsetid
make_graphrp   nodeinputoutputr   rs   make_model_gen_versionospathisfilebeam_model_output_direxistsremovesaveuse_external_data_formatbasenamecheckercheck_model	Exceptionerror)5argsencoder_modeldecoder_modelconfig	tokenizer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/   r0   r1   r2   r4   r6   r7   r8   r9   r:   r;   r<   r,   r   rA   r>   r@   rB   rh   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es5                                                        r   chain_modelr   .   s   OOD$5$5$OM<MOOD$5$5$OM1M**4+B+Bdnn]F 001H1HTXTbTbcI .2^^y?P?P-P)Vc!%93D3D!DJZ!%93D3D!DJZ%)^^y7H7H%H!Nb++#99r
#::"77R!%!6!6B $ 7 7R 00bK$ 6:^^yGXGX5X1^o#'>>Y5F5F#F-HK $ ; ;))r++
"&"="=2L K~~***#)#3#3$%*+*""$
  #,,$%*+*""
 #,,()./.""
 	4IZ[\#--%+,*&&N ~.&&/5/?/?./*+5$$0, ?@&,&6&6%!
'$$'# 67 	nf.A.ABnf.A.AB$f&C&C	
 	2I4S4SUdTe4fgh4ij3Y5T5TVfUg5hij5kl4i6U6UWfVg6hij6kl ** !!"6	8W8WYgXh8ijk8lm6	8W8WYkXl8mno8pq<i>]>]_i^j>klm>no4d6O6OP.5lA.?C?T?T7;Z\'* +%@<EBD 	NN*%64PQ 22+++-^N ..|[=N=NQRPSTJ..|[=N=NQRPSTJ--k;;L;LqcRI!889OQ\QbQbefdgh223C[EVEVYZX[\N667K[M^M^ab`cd..|[=N=NQWQbQbPcdJ55[..v?P?P0Q 55[..?X0Y 445GIZIZ]^\_` 778M{O`O`csuvbwx66k//,@X1Y //{?P?PSTRUVK --J2!%!;!;!%!<!<" $ 9 9r#'#8#8b"&"9"9r//KR	
L( --[&&(\I 334E{GXGX[gZhiO**8[5F5FWF,,aH
 334E{GXGX[gZhiO#::O((Fb,,T5M5MRVRgRgHnp#::O	
M tYDLLJ=K^K^__KKopNNmn4+,,1F1F:=;N;NO +=HLNN!!)]-@-@A!!)]-@-@A	
 ''JFL_L_gisuLvwLt""))*+&'/  
 	>* ""& J 1=="bgg=1>?2rww?(@(@UYZ%++%%m&?&?@}112 !&&C!77XX%<<XX+  ''. ' 	  !5!56 +|,##}'?'????
KK#M$<$<#==OPQ ..0" ++	J 
ww~~d0011l4#=#=">eDD^D^ahDhCijk77>>$4455IId00177>>$44w>??IId007:;II""";; $GG$$T%?%?@AG^  !;!; Me >?d  ^I!MX\]^s$   |4|"(| 
} |;;} )T)loggingr   rz   benchmark_helperr   convert_generationr   r   r   r   r   transformersr	   r
   	getLogger__name__r   r   r'   r   r   r   r   <module>r      sF     	  & 
 % 8			8	$.]^r   