
    謜idW                        d Z ddlZddlmZ ddlmZ ddlmZ ddlZddl	Z	ddl
mZmZ ddlmZ ddlmZ d	d
lmZ d	dlmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z" d	dl#m$Z$ d	dl%m&Z&m'Z'm(Z(m)Z) eeeeeeeee e!ei eee"edZ* e)jV                  e,      Z-dZ.i ddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/Z/g d0Z0d1 Z1d2 Z2d3 Z3d4 Z4d5 Z5d6 Z6e G d7 d8             Z7d9 Z8d@d:Z9d; Z:d< Z;d= Z<g d>Z=d? Z>y)Az'Configuration base class and utilities.    N)	dataclass)Path)Any)is_offline_mode
model_info)OfflineModeIsEnabled)HFValidationError   )__version__),MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING_NAMES!MODEL_FOR_CAUSAL_LM_MAPPING_NAMESMODEL_FOR_CTC_MAPPING_NAMES,MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMES*MODEL_FOR_IMAGE_SEGMENTATION_MAPPING_NAMES*MODEL_FOR_IMAGE_TEXT_TO_TEXT_MAPPING_NAMES!MODEL_FOR_MASKED_LM_MAPPING_NAMES(MODEL_FOR_OBJECT_DETECTION_MAPPING_NAMES*MODEL_FOR_QUESTION_ANSWERING_MAPPING_NAMES,MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING_NAMES/MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING_NAMES(MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING_NAMES0MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING_NAMES,MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING_NAMES6MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING_NAMES)ParallelMode)is_datasets_availableis_tokenizers_availableis_torch_availablelogging)text-generationimage-classificationimage-segmentation	fill-maskobject-detectionquestion-answeringtext2text-generationtext-classificationtable-question-answeringtoken-classificationaudio-classificationautomatic-speech-recognitionzzero-shot-image-classificationzimage-text-to-textz
<!-- This model card has been generated automatically according to the information the Trainer had access to. You
should probably proofread and complete it, then remove this comment. -->
r#   zMasked Language Modelingr!   zImage Classificationr"   zImage Segmentationzmultiple-choicezMultiple Choicer$   zObject Detectionr%   zQuestion AnsweringsummarizationSummarizationr(   zTable Question Answeringr'   zText Classificationr    zCausal Language Modelingr&   z&Sequence-to-sequence Language Modelingr)   zToken ClassificationtranslationTranslationzzero-shot-classificationzZero Shot Classificationr+   zAutomatic Speech Recognitionr*   zAudio Classification)accuracybleuf1matthews_correlationpearsonr	precisionrecallrouge	sacrebleu	spearmanrwerc                 4    | g S t        | t              r| gS | S N)
isinstancestr)objs    R/mnt/e/genesis-system/.venv/lib/python3.12/site-packages/transformers/modelcard.py_listifyrA   s   s"    
{		C	u
    c                     || S t        |t              r|g}|D cg c]  }||	 }}t        |      dk(  r| S || |<   | S c c}w )Nr   )r=   r>   len)metadatanamevaluesvs       r@   _insert_values_as_listrI   |   sX    ~&#1A1=a1F1
6{aHTNO	 2s
   AAc                     | i S i }| D ]e  }|j                         j                  dd      t        v r$|||j                         j                  dd      <   M|j                         dk(  sa||d<   g |S )N _rouge1r7   )lowerreplaceMETRIC_TAGS)eval_resultsresultkeys      r@   #infer_metric_tags_from_eval_resultsrT      sw    	F "99;sC(K747F399;&&sC01YY[H$!F7O	"
 MrB   c                     || S || |<   | S r<    )rE   rF   values      r@   _insert_valuerX      s    }HTNOrB   c                 D    t               syddlm}m} t	        | ||f      S )NFr   )DatasetIterableDataset)r   datasetsrZ   r[   r=   )datasetrZ   r[   s      r@   is_hf_datasetr^      s      "1g9::rB   c                     g }| j                         D ]8  }t        |t        t        f      r|t        |      z  }(|j	                  |       : |S r<   )rG   r=   tuplelistappend)mappingrR   rH   s      r@   _get_mapping_valuesrd      sL    F^^ a%'d1gFMM!	
 MrB   c                      e Zd ZU eed<   dZeee   z  dz  ed<   dZedz  ed<   dZeee   z  dz  ed<   dZ	edz  ed<   dZ
eee   z  dz  ed<   dZeee   z  dz  ed<   dZeee   z  dz  ed	<   dZeee   z  dz  ed
<   dZeeef   dz  ed<   dZeeef   dz  ed<   dZee   dz  ed<   dZeeef   dz  ed<   dZedz  ed<   d Zd Zd Zd Ze	 	 	 	 	 	 	 	 	 	 dd       Zy)TrainingSummary
model_nameNlanguagelicensetagsfinetuned_fromtasksr]   dataset_tagsdataset_argsdataset_metadatarQ   
eval_lineshyperparameterstrainersourcec                 N   | j                   ut               sj| j                  ]t        | j                        dkD  rD	 t	        | j                        }|j
                  D ]  }|j                  d      s|dd  | _           y y y y y # t        j                  t        t        f$ r Y y w xY w)Nr   zlicense:   )ri   r   rk   rD   r   rj   
startswithhttpx	HTTPErrorr	   r   )selfinfotags      r@   __post_init__zTrainingSummary.__post_init__   s     LL #%##/D''(1,!$"5"5699 /C~~j1'*12w/	 - 0 & ! OO%68LM s   5B 2B B$#B$c                    d| j                   i}t        | j                        }t        | j                        }t        | j                        }t        | j
                        }t        |      t        |      k  r|d gt        |      t        |      z
  z  z   }t        t        ||            }t        t        ||            }t        t        ||            }	t        | j                        D 
ci c]  }
|
t        v s|
t        |
    }}
g |d<   t        |      dk(  rt        |      dk(  r|gS t        |      dk(  rd d i}t        |      dk(  rd d i}|D cg c]  }|D ]  }||f  }}}|D ]  \  }}i }|||   |d|d<   |/|	j                  |i       }||   |d||d<   ||   ||   |d   d<   t        |      dkD  rBg |d<   |j                         D ]*  \  }}|d   j                  ||| j                  |   d	       , d|v rd|v rd|v r|d   j                  |       t        j!                  d
|         |gS c c}
w c c}}w )NrF   resultsr   )rF   typetaskr]   argsmetrics)rF   r   rW   zLDropping the following result as it does not have all the necessary fields:
)rg   rA   r]   rm   rn   ro   rD   dictziprl   TASK_TAG_TO_NAME_MAPPINGgetitemsrb   rQ   loggerrz   )ry   metric_mappingmodel_indexdataset_namesrm   rn   ro   dataset_mappingdataset_arg_mappingdataset_metadata_mappingr   task_mappingtask_tagds_tagall_possibilitiesrR   rE   
metric_tagmetric_names                      r@   create_model_indexz"TrainingSummary.create_model_index   s   t/ !. 1 12 1 12#D$9$9:|s<00'4&C4ELHY4Y*ZZLs<?@"3|\#BC#'L:J(K#L  >Fdjj=Q
59UY]uUuD*400
 
 "$I|!c/&:a&?= |! $<L1$#TlO AMkH[jkQWh/k/kk 1 	vHfF#*6x*@(!Sv!377C+F3"% %y!
 'v.:0CF0KF9%f->"Q&$&y!/=/C/C/E +J9%,,$/$.%)%6%6{%C I$7I<OI&--f5klrkstu=	v@ }_
 ls   .I<IIc                     t        | j                        }i }t        |dd      }t        |d| j                        }t        |d| j
                        }| j                  It        | j                  t              r/t        | j                        dkD  rt        |d| j                        }t        |d| j                        }t        |d| j                        }t        |d	t        |j                                     }| j                  |      |d
<   |S )Nlibrary_nametransformersrh   ri   r   
base_modelrj   r\   r   zmodel-index)rT   rQ   rX   rI   rh   ri   rk   r=   r>   rD   rj   rm   ra   keysr   )ry   r   rE   s      r@   create_metadatazTrainingSummary.create_metadata  s    <T=N=NO >>J)(JN 9dllC*z$:M:Ms/SX[\`\o\oXpstXt$X|T=P=PQH)(FDIIF)(J@Q@QR)(ItNDWDWDY?Z["&"9"9."IrB   c                    d}t        j                  | j                         d      }t        |      dkD  rd| d}| j                  dk(  r	|t
        z  }|d| j                   dz  }| j                  |d	z  }n |d
| j                   d| j                   dz  }| j                  2t        | j                  t              rt        | j                        dk(  r|dz  }nt        | j                  t              r|d| j                   dz  }nt        | j                  t        t        f      r/t        | j                        dk(  r|d| j                  d    dz  }nF|dj                  | j                  d d D cg c]  }d| 	 c}      d| j                  d    dz   z  }| j                  S|dz  }|dj                  | j                  j                         D cg c]  \  }}d| dt!        |        c}}      z  }|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }| j"                  P|dz  }|dj                  | j"                  j                         D cg c]  \  }}d| d|  c}}      z  }|dz  }n|dz  }| j$                  "|d z  }|t'        | j$                        z  }|dz  }|d!z  }|d"t(         dz  }| j                  dk(  r!t+               rdd l}|d#|j(                   dz  }t/               rdd l}|d$|j(                   dz  }t3               rdd l}|d%|j(                   dz  }|S c c}w c c}}w c c}}w )&N F)	sort_keysr   z---
rr   z
# z

z'This model was trained from scratch on z'This model is a fine-tuned version of [z](https://huggingface.co/z) on zan unknown dataset.zthe z	 dataset.r
   z, z	 and the z
 datasets.z:
It achieves the following results on the evaluation set:

z- z: z/
## Model description

More information needed
z9
## Intended uses & limitations

More information needed
z:
## Training and evaluation data

More information needed
z
## Training procedure
z
### Training hyperparameters
z:
The following hyperparameters were used during training:
z
More information needed
z
### Training results

z
### Framework versions

z- Transformers z
- Pytorch z- Datasets z- Tokenizers )yamldumpr   rD   rs   AUTOGENERATED_TRAINER_COMMENTrg   rk   r]   r=   ra   r>   r`   joinrQ   r   _maybe_roundrq   rp   make_markdown_tabler   r   torchr   r\   r   
tokenizers)	ry   
model_cardrE   dsrF   rW   r   r\   r   s	            r@   to_model_cardzTrainingSummary.to_model_card  s   
99T113uEx=1 
%0J ;;)#77JT__-T22
&CCJ(())B4CVCVBWW\^J
 <<Jt||T$Bs4<<GX\]G]//J$,,,T\\N)<<
DLL5$-8S=NRS=ST\\!_$5Y??
IIT\\#25FGrbT{GHYW[WcWcdfWgVhhrKss
 (XXJ$))[_[l[l[r[r[t$uKDRWr$r,u2E1F%G$uvvJd
KK
UU
VV
11
88
+XXJ$))TMaMaMgMgMi$jkdEr$r%%9$jkkJ$J77J??&66J-doo>>J$J44
}B77
;;)#(:(<Ju'8'8&9<<J "K(<(<'=R@@J"$M**@*@)ADDJU H
 %v %ks   7L2
L7L=c                 
   |j                   |j                   n|j                  }t        |      rO|||	I|j                  }|dvr9|	#|j                  t        |j                        dg}	||g}||j                  g}|
||}
|}t        |j                  j                  d      r]t        j                  j                  |j                  j                  j                        s |j                  j                  j                  }|L|j                  j                  j                  }t         j#                         D ]  \  }}|t%        |      v s|} |)t'        |j(                  j*                        j,                  }t/        |      dk(  r|}|dg}n/t1        |t
              r
|dk7  r|dg}nd|vr|j3                  d       t5        |j6                  j8                        \  }}}t;        |      } | |||||||
|||	|||      S )N)csvjsonpandasparquettext)configsplit_name_or_pathr   generated_from_trainer)rh   ri   rj   rg   rk   rl   r]   rm   rn   ro   rQ   rp   rq   )eval_datasettrain_datasetr^   builder_nameconfig_namer>   r   hasattrmodelr   ospathisdirr   	__class____name__TASK_MAPPINGr   rd   r   r   
output_dirrF   rD   r=   rb   parse_log_historystatelog_history$extract_hyperparameters_from_trainer)clsrr   rh   ri   rj   rg   rk   rl   rm   ro   r]   rn   one_datasetdefault_tagmodel_class_namer   rc   rL   rp   rQ   rq   s                        r@   from_trainerzTrainingSummary.from_trainerh  s     /6.B.B.Ng**T[TiTi%<+?<CW[k[s%22K"NN#+3>3J3JUXYdYjYjUk(l'm$'$/=L'$/$;$;#<L?|7"G ",,o>GGMM'--"6"6"D"DE$]]11??N =&}}66??!-!3!3!5 !g#':7'CC E! gll556;;Jz?a'J <,-Dc"t/G'G23D%T1KK01&78Q8Q&R#:|>wG!)%%-%!+
 	
rB   )
NNNNNNNNNN)r   
__module____qualname__r>   __annotations__rh   ra   ri   rj   rk   rl   r]   rm   rn   ro   r   r   rQ   floatrp   rq   rs   r|   r   r   r   classmethodr   rV   rB   r@   rf   rf      sb   O'+HcDIo$+GS4Z#'D#S	/D
 '!%NC$J%$(E3c?T!(&*GS49_t#*+/L#S	/D(/+/L#S	/D(/.2d38nt+2,0L$sEz"T)0#'JS	D '-1OT#s(^d*1"FC$J" =~ HT  K
 K
rB   rf   c           	         d}|t        |       k  r"d| |   vr|dz  }|t        |       k  rd| |   vr|t        |       k(  r1|dz  }|dk\  rd| |   vr|dz  }|dk\  rd| |   vr|dk\  rdd| |   fS y| |   }g }d}t        |      D ]  }d| |   v r| |   d   }d| |   v s| |   j                         }|j                  d	d      }|j                  d
d      }|j                  dd      }	|j                  dd      }|j                  dd      }|j                  dd      }|||	d}
|j	                         D ]V  \  }}|dk(  r||
d<   |j                  d      }dj                  |dd D cg c]  }|j                          c}      }||
|<   X |j                  |
        t        |       dz
  }|dk\  rd| |   vr|dz  }|dk\  rd| |   vr|dkD  ryi }| |   j	                         D ]\  \  }}|j                  d      }|dvsdj                  |j                  d      D cg c]  }|j                          c}      }|||<   ^ |||fS ||dfS c c}w c c}w )zd
    Parse the `log_history` of a Trainer to get the intermediate and final evaluation results.
    r   train_runtimer
   	eval_lossN)NNNzNo logloss
total_flosepochstepeval_runtimeeval_samples_per_secondeval_steps_per_second)zTraining LossEpochStepzValidation LossrL   rK   eval_)runtimesamples_per_secondsteps_per_secondr   r   )
rD   rangecopypopr   r   r   
capitalizerb   removeprefix)r   idx	train_loglinestraining_lossir   rL   r   r   rG   krH   splitspartrF   rQ   rS   rW   camel_cased_keys                       r@   r   r     s    C
K 
 _K<L%Lq K 
 _K<L%L c+qQh;k#.>>1HC Qh;k#.>> !8{3///# C IEM3Z ![^#'N62M+a.(!!n))+GL$/AKK.E;;vt,DND1A5t<A3T:A'4udSF %1#01F,-WWS\F886!":$N4T__%6$NOD#$F4L% LL '!* k
Q
C
({+c*::q ({+c*:: Qw%c*002 	6JC""7+C``"%((#))TW.+Y$DOO,=+Y"Z05_-		6
 %--%%%# %O ,Zs   *I#I
c                     t        | t              rWt        t        |       j	                  d            dkD  r1t        t        |       j	                  d      d         |kD  r| d| dS t        |       S )N.r
   f)r=   r   rD   r>   r   )rH   decimalss     r@   r   r     sb    !UCFLL$5 6 :s3q6<<PSCTUVCW?X[c?cAhZq=!"q6MrB   c           
          t        | |      D cg c]  \  }}d| d|t        |      z
  dz   z  z   ! }}}dj                  |      dz   S c c}}w )Nz| rK   r
   r   |
)r   rD   r   )rG   
col_widthsrH   wvalues_with_spaces        r@   _regular_table_liner     sY    GJ6S]G^_tq!2aSC1s1v:>$::__77$%-- `s   $Ac                 d    | D cg c]  }dd|z  z   dz    }}dj                  |      dz   S c c}w )Nz|:-:r   r   )r   )r   r   rG   s      r@   _second_table_liner     s:    ,67qdS1Wns"7F7776?U"" 8s   -c           
         | t        |       dk(  ry| d   D ci c]  }|t        t        |             }}| D ]L  }|j                         D ]7  \  }}||   t        t        |            k  s!t        t        |            ||<   9 N t	        t        | d   j                               t        |j                                     }|t        t        |j                                     z  }| D ]M  }|t	        |j                         D cg c]  }t        |       c}t        |j                                     z  }O |S c c}w c c}w )zC
    Create a nice Markdown table from the results in `lines`.
    r   r   )	rD   r>   r   r   r   ra   r   rG   r   )r   rS   r   linerW   tablerH   s          r@   r   r     s+    }E
a05a9#s3s8}$9J9 ;**, 	;JC#\%%8!99"%l5&9":
3	;;
  U1X]]_ 5tJ<M<M<O7PQE	Z%6%6%8 9::E j$t{{}%M!l1o%MtT^TeTeTgOhiijL : &Ns   D>E)learning_ratetrain_batch_sizeeval_batch_sizeseedc           
         t         D ci c]  }|t        | j                  |       }}| j                  j                  t        j
                  t        j                  fvrL| j                  j                  t        j                  k(  rdn| j                  j                  j                  |d<   | j                  j                  dkD  r| j                  j                  |d<   | j                  j                  dkD  r| j                  j                  |d<   | j                  j                  | j                  j                  z  | j                  j                  z  }||d   k7  r||d<   | j                  j                  | j                  j                  z  }||d   k7  r||d	<   | j                  j                  r| j                  j                  }| j                  j                  r| j                  j                  nd
}d|j                         v rQd| d| j                  j                    d| j                  j"                   d| j                  j$                   d| 
|d<   nd| d| |d<   | j                  j&                  j                  |d<   | j                  j(                  dk7  r| j                  j(                  |d<   | j                  j*                  dk7  r| j                  j*                  |d<   n| j                  j,                  |d<   | j                  j.                  rd|d<   | j                  j0                  dk7  r| j                  j0                  |d<   |S c c}w )Nz	multi-GPUdistributed_typer
   num_devicesgradient_accumulation_stepsr  total_train_batch_sizer  total_eval_batch_sizez!No additional optimizer argumentsadamzUse z with betas=(,z) and epsilon=z and optimizer_args=	optimizerz and the args are:
lr_scheduler_typeg        lr_scheduler_warmup_stepsr   training_steps
num_epochsz
Native AMPmixed_precision_traininglabel_smoothing_factor)_TRAINING_ARGS_KEYSgetattrr   parallel_moder   NOT_PARALLELNOT_DISTRIBUTEDDISTRIBUTEDrW   
world_sizer  r  r  optim
optim_argsrN   
adam_beta1
adam_beta2adam_epsilonr  warmup_steps	max_stepsnum_train_epochsfp16r  )rr   r   rq   r  r	  optimizer_nameoptimizer_argss          r@   r   r     s   <OPqq'',,22POP||!!,*C*C\EaEa)bb"<<559Q9QQKW^WcWcWqWqWwWw 	*+ ||")0)@)@&||//!39@9a9a56 	%%(?(??',,BjBjj  1C!DD4J01#LL887<<;R;RR0A BB3H/0|| ++4;LL4K4K00Qt^))++~&mGLL4K4K3LAgllNeNeMf g#LL5566J>JZ\ K(
 .2.1AAUVdUe+fOK(+2<<+I+I+O+OO'(||  C'7>||7P7P34||#,3LL,B,B()(/(E(E%||6B23||**c14;LL4W4W01] Qs   M)   )?__doc__r   dataclassesr   pathlibr   typingr   rw   r   huggingface_hubr   r   huggingface_hub.errorsr   huggingface_hub.utilsr	   r   r   models.auto.modeling_autor   r   r   r   r   r   r   r   r   r   r   r   r   r   r   training_argsr   utilsr   r   r   r   r   
get_loggerr   r   r   r   rP   rA   rI   rT   rX   r^   rd   rf   r   r   r   r   r   r  r   rV   rB   r@   <module>r1     s   . 	 !     7 7 3     " (  9HD2@DHJ PHH$o'B$oFn$o&\D" 
		H	%! +2 . (	
 * . _  : 0 1 D 2 =  : #$B  2! (		; E
 E
 E
P9&x.
#
& /rB   