
    Ch                       S SK Jr  S SKrS SKrS SKrS SKrS SKJrJr  S SK	J	r	  S SK
JrJrJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJrJrJr  S SKrS SKrS SKJrJr  S SKJr   S SKJ!r"  S SK#J$r$J%r%  S SK&J'r'  S SKJ(r(  S SK)J*r*  S SKJ+r+  S SK,J-r-  S SK.J/r/  S SK0J1r1J2r2  S SK3J4r4  S SK5J6r7  S SK8J9r9J:r:  S SK;J<r<  S SK=J>r>J?r?J@r@  \@" 5       (       a  S SKAJBrBJCrCJDrDJErEJFrF  \R                  " \H5      rI\(       a  S SKJJKrK  S SKLJMrM  S SKNJOrO   " S S \+5      rP\4" S!5       " S" S#\P5      5       rQ/ S$QrR/ S%QrSS,S& jrTS-S' jrUS.S( jrV\ " S) S*\5      5       rWS/S+ jrXg)0    )annotationsN)Counterdefaultdict)copy)	dataclassfieldfields)Path)python_version)pformatindent)TYPE_CHECKINGAnyLiteral)CardData	ModelCard)dataset_info)
model_info)
EvalResulteval_results_to_model_index)	yaml_dump)nn)tqdm)TrainerCallback)CodeCarbonCallback)make_markdown_table)TrainerControlTrainerState)
deprecated__version__)RouterStaticEmbedding)$SentenceTransformerTrainingArguments)fullnameis_accelerate_availableis_datasets_available)DatasetDatasetDictIterableDatasetIterableDatasetDictValue)SentenceEvaluator)SentenceTransformer)SentenceTransformerTrainerc                     ^  \ rS rSrSU 4S jjr            S	S jr          S
S jr            SS jr            SS jrSr	U =r
$ )$SentenceTransformerModelCardCallback/   c                .   > [         TU ]  5         Xl        g N)super__init__default_args_dict)selfr8   	__class__s     X/var/www/html/shao/venv/lib/python3.13/site-packages/sentence_transformers/model_card.pyr7   -SentenceTransformerModelCardCallback.__init__0   s    !2    c                   UR                   R                  S5        UR                  R                   Vs/ sH  n[	        U[
        5      (       d  M  UPM     nnU(       a  US   UR                   l        UR                  (       aU  UR                   R                  UR                  UR                   R                  UR                  S5      UR                   l	        UR                  (       aU  UR                   R                  UR                  UR                   R                  UR                  S5      UR                   l        [        UR                  5      n	UR                   R                  U	5        UR                   R                  (       dC  UR                  =(       d    UR                  =n
(       a  UR                   R!                  U
5        g g g s  snf )Ngenerated_from_trainerr   traineval)model_card_dataadd_tagscallback_handler	callbacks
isinstancer   code_carbon_callbacktrain_datasetextract_dataset_metadatatrain_datasetslosseval_dataseteval_datasets
get_losses
set_losseswidgetset_widget_examples)r9   argsstatecontrolmodeltrainerkwargscallbackrE   lossesdatasets              r;   on_init_end0SentenceTransformerModelCardCallback.on_init_end4   sm    	&&'?@ &-%=%=%G%G
%G:V^`rKsH%G 	 
 9B1E!!6   383H3H3a3a%%u'<'<'K'KW\\[b4E!!0 272G2G2`2`$$e&;&;&I&I7<<Y_3E!!/ GLL)((0 $$++G<P<P<iT[TiTi1i1i!!55g> 2j+-
s   GGc                v   1 SknUR                  5       nUR                  5        VV	s0 sH  u  pX;  d  M  X_M     sn	nUR                  l        UR                  5        VV	s0 sH3  u  pX;  d  M  XR                  ;   d  M  XR                  U   :w  d  M1  X_M5     sn	nUR                  l        g s  sn	nf s  sn	nf )N>   do_evaldo_testdo_trainrun_name	hub_token	report_to
eval_delay
eval_steps
output_dir
save_stepslogging_dirlogging_stepssave_strategylogging_strategysave_total_limitgreater_is_betterpush_to_hub_tokensamples_per_labelshow_progress_barlogging_first_stepevaluation_strategymetric_for_best_model)to_dictitemsrB   all_hyperparametersr8   non_default_hyperparameters)
r9   rR   rS   rT   rU   rW   ignore_keys	args_dictkeyvalues
             r;   on_train_begin3SentenceTransformerModelCardCallback.on_train_beginY   s    
0 LLN	)2):5
)::3c>TJCJ):5
1
 (oo/=
/
% *-1G1G*G LQUkUkloUpLp CJ/=
95
=
s"   
B/B/"
B50B5B5B5c                h   U Vs0 sHY  nUR                  S5      (       d  M  UR                  S5      (       d  M3  SR                  UR                  S5      SS  5      XW   _M[     nn[	        U5      S:X  a  SU;   a  SUS   0nUR
                  R                  (       aS  UR
                  R                  S   S	   UR                  :X  a)  UR
                  R                  S   R                  U5        g UR
                  R                  R                  UR                  UR                  S
.UE5        g s  snf )Neval__loss _   rK   Validation LossStepEpochr   )
startswithendswithjoinsplitlenrB   training_logsglobal_stepupdateappendepoch)	r9   rR   rS   rT   rU   metricsrW   rz   	loss_dicts	            r;   on_evaluate0SentenceTransformerModelCardCallback.on_evaluate   s    
~~g& 7+.<<+@ 7CHHSYYs^AB'(',6 	 

 y>Q6Y#6*If,=>I!!//%%33B7?5CTCTT!!//3::9E!!//66"[[!--  
s   D/D/*D/c                "   S1[        U5      -  nU(       a  UR                  R                  (       aW  UR                  R                  S   S   UR                  :X  a-  XWR	                  5          UR                  R                  S   S'   OMUR                  R                  R                  UR                  UR                  XWR	                  5          S.5        UR                  R                  c#  U H  nSU;   d  M  SUR                  l        M     g g )NrK   r   r   Training Loss)r   r   r   ndcgT)setrB   r   r   popr   r   ir_model)	r9   rR   rS   rT   rU   logsrW   keysrz   s	            r;   on_log+SentenceTransformerModelCardCallback.on_log   s     x#d)#%%33))77;FCuGXGXXKOPXPXPZK[%%33B7H%%33::!& % 1 1)-hhj)9   ))1S=59E))2  2r=   )r8   )r8   dict[str, Any]returnNone)rR   r%   rS   r   rT   r   rU   r/   rV   r0   r   r   )
rR   r%   rS   r   rT   r   rU   r/   r   r   )rR   r%   rS   r   rT   r   rU   r/   r   dict[str, float]r   r   )rR   r%   rS   r   rT   r   rU   r/   r   r   r   r   )__name__
__module____qualname____firstlineno__r7   r[   r|   r   r   __static_attributes____classcell__r:   s   @r;   r2   r2   /   s   3#?2#? #?  	#?
 ##? ,#? 
#?J(
2(
 (
  	(

 #(
 
(
T2   	
 # " 
<:2: :  	:
 #: : 
: :r=   r2   zThe `ModelCardCallback` has been renamed to `SentenceTransformerModelCardCallback` and the former is now deprecated. Please use `SentenceTransformerModelCardCallback` instead.c                  (   ^  \ rS rSrU 4S jrSrU =r$ )ModelCardCallback   c                &   > [         TU ]  " U0 UD6  g r5   )r6   r7   )r9   rR   rW   r:   s      r;   r7   ModelCardCallback.__init__   s    $)&)r=    )r   r   r   r   r7   r   r   r   s   @r;   r   r      s    * *r=   r   )languagelicenselibrary_nametagsdatasetsr   pipeline_tagrP   model-indexco2_eq_emissions
base_model)rU   rV   eval_results_dictc                     [        5       [        [        R                  [        R                  S.n [        5       (       a
  SSKJn  XS'   [        5       (       a
  SSKJn  X S'   SSK	Jn  X0S'   U $ )N)pythonsentence_transformerstransformerstorchr   r!   
accelerater   
tokenizers)
r   sentence_transformers_versionr   r"   r   r'   r   r(   r   r   )versionsaccelerate_versiondatasets_versiontokenizers_versions       r;   get_versionsr      s^     "!>$00""	H   @!3</</\Or=   c                H    [        U [        5      (       a  [        U S5      $ U $ )N   )rF   floatroundr{   s    r;   
format_logr      s     %UALr=   c                (   [        U [        5      (       a  [        U R                  5       5      nOU /nSnU[	        U5      :  a  X   n [        U S5      (       a+  U R                  U;  a  UR                  U R                  5        [        U S5      (       a+  U R                  U;  a  UR                  U R                  5        [        U S5      (       a+  U R                  U;  a  UR                  U R                  5        US-  nU[	        U5      :  a  M  U$ )Nr   rK   document_regularizerquery_regularizerr   )
rF   dictlistvaluesr   hasattrrK   r   r   r   )rK   rY   loss_idxs      r;   rN   rN      s    $dkkm$ H
S[
 4  TYYf%<MM$))$4/00T5N5NV\5\MM$3344,--$2H2HPV2VMM$001A S[
  Mr=   c                  h   \ rS rSr% Sr\" \S9rS\S'   Sr	S\S'   Sr
S\S	'   SrS\S
'   \" \S9rS\S'   \" \S9rS\S'   SrS\S'   \" S S9rS\S'   SrS\S'   \" SS9rS\S'   \" SSS9rS\S'   \" SSS9rS\S'   \" \SS9rS\S'   \" \SS9rS\S '   \" \SS9rS!\S"'   \" \SS9rS#\S$'   \" \SS9rS\S%'   \" SSS9rS\S&'   \" \SS9rS\S''   \" SSS9rS(\S)'   \" \SS9rS*\S+'   \" SSS9rS,\S-'   \" \SSS.9rS/\S0'   \" SSSS19r S2\S3'   \" SSSS19r!S\S4'   \" SSS9r"S\S5'   \" S6SS9r#S7\S8'   \" S9SS9r$S\S:'   \" S;SS9r%S\S<'   \" \&SS9r'S*\S='   \" \(" \)5      RT                  S>-  SSS19r+S?\S@'   \" SSSS19r,SA\SB'   S^SC jr- S_     S`SD jjr.SaSE jr/SbSF jr0ScSG jr1 Sd         SeSH jjr2SfSI jr3SgShSJ jjr4SiSK jr5        SjSL jr6          SkSM jr7SlSN jr8SmSO jr9SgSnSP jjr:SoSQ jr;SpSR jr<SqSS jr=S^ST jr>SrSU jr?SV r@SrSW jrASsSX jrBSrSY jrCS^SZ jrDSrS[ jrESgStS\ jjrFS]rGg)u SentenceTransformerModelCardDatai	  aQ	  A dataclass storing data used in the model card.

Args:
    language (`Optional[Union[str, List[str]]]`): The model language, either a string or a list,
        e.g. "en" or ["en", "de", "nl"]
    license (`Optional[str]`): The license of the model, e.g. "apache-2.0", "mit",
        or "cc-by-nc-sa-4.0"
    model_name (`Optional[str]`): The pretty name of the model, e.g. "SentenceTransformer based on microsoft/mpnet-base".
    model_id (`Optional[str]`): The model ID when pushing the model to the Hub,
        e.g. "tomaarsen/sbert-mpnet-base-allnli".
    train_datasets (`List[Dict[str, str]]`): A list of the names and/or Hugging Face dataset IDs of the training datasets.
        e.g. [{"name": "SNLI", "id": "stanfordnlp/snli"}, {"name": "MultiNLI", "id": "nyu-mll/multi_nli"}, {"name": "STSB"}]
    eval_datasets (`List[Dict[str, str]]`): A list of the names and/or Hugging Face dataset IDs of the evaluation datasets.
        e.g. [{"name": "SNLI", "id": "stanfordnlp/snli"}, {"id": "mteb/stsbenchmark-sts"}]
    task_name (`str`): The human-readable task the model is trained on,
        e.g. "semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more".
    tags (`Optional[List[str]]`): A list of tags for the model,
        e.g. ["sentence-transformers", "sentence-similarity", "feature-extraction"].
    local_files_only (`bool`): If True, don't attempt to find dataset or base model information on the Hub.
        Defaults to False.
    generate_widget_examples (`bool`): If True, generate widget examples from the evaluation or training dataset,
        and compute their similarities. Defaults to True.

.. tip::

    Install `codecarbon <https://github.com/mlco2/codecarbon>`_ to automatically track carbon emission usage and
    include it in your model cards.

Example::

    >>> model = SentenceTransformer(
    ...     "microsoft/mpnet-base",
    ...     model_card_data=SentenceTransformerModelCardData(
    ...         model_id="tomaarsen/sbert-mpnet-base-allnli",
    ...         train_datasets=[{"name": "SNLI", "id": "stanfordnlp/snli"}, {"name": "MultiNLI", "id": "nyu-mll/multi_nli"}],
    ...         eval_datasets=[{"name": "SNLI", "id": "stanfordnlp/snli"}, {"name": "MultiNLI", "id": "nyu-mll/multi_nli"}],
    ...         license="apache-2.0",
    ...         language="en",
    ...     ),
    ... )
)default_factoryzstr | list[str] | Noner   N
str | Noner   
model_namemodel_idlist[dict[str, str]]rJ   rM   zjsemantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and morestr	task_namec                 
    / SQ$ )N)sentence-transformerssentence-similarityzfeature-extractiondenser   r   r=   r;   <lambda>)SentenceTransformerModelCardData.<lambda>@  s     !
r=   zlist[str] | Noner   Fboollocal_files_onlyT)defaultgenerate_widget_examples)r   initr   base_model_revision)r   r   r   rw   rv   z.dict[SentenceEvaluator, dict[str, Any]] | Noner   zlist[dict[str, float]]r   rP   predict_examplelabel_example_listzCodeCarbonCallback | NonerG   dict[str, str]	citationsz
int | Nonebest_model_step)r   r   repr	list[str]r   )r   r   r   zbool | Noner   similarities
first_saver   intwidget_stepr   r   r   r   versionzmodel_card_template.mdr
   template_pathzSentenceTransformer | NonerU   c                   U R                   (       + n[        U R                   [        5      (       a  U R                   /U l         U R                  U R                  US9U l        U R                  U R
                  US9U l        U R                  (       aL  U R                  R                  S5      S:w  a,  [        R                  SU R                  < S35        S U l        g g g )N)infer_languages/r   zThe provided z} model ID should include the organization or user, such as "tomaarsen/mpnet-base-nli-matryoshka". Setting `model_id` to None.)
r   rF   r   validate_datasetsrJ   rM   r   countloggerwarning)r9   r   s     r;   __post_init__.SentenceTransformerModelCardData.__post_init__h  s    "mm+dmmS))!]]ODM"44T5H5HZi4j!33D4F4FXg3h==T]]005:NN0 1^ ^ !DM ;=r=   c                   / nU GH!  nSU;  a  SU;   a  US   US'   SU;   a  U R                   (       d   [        US   5      nUR                  (       a  U(       a{  SUR                  ;   ak  UR                  R                  S5      nUbM  [	        U[
        5      (       a  U/nU H/  nXpR                  ;  d  M  U R                  R                  U5        M1     UR                  U R                  ;  a%  U R                  R                  UR                  5        UR                  U5        GM$     U$ ! [         a#    [        R                  SUS   < S35        US	  NDf = f)Nnameidr   zThe dataset `id` z5 does not exist on the Hub. Setting the `id` to None.)r   get_dataset_infocardDatagetrF   r   r   r   r  r   	Exceptionr   r   )r9   dataset_listr   output_dataset_listrZ   infodataset_languager   s           r;   r   2SentenceTransformerModelCardData.validate_datasetsx  s6    !#GW$7?&-dmGFOwt'<'<6+GDM:D }}Z4===X+/==+<+<Z+H(+7)*:C@@4D3E 0,<#+==#@$(MM$8$8$B -=
 wwdmm3,,TWW5&&w/9 $: #") ! &NN+GDM+<<qr  	&s   D--*EEc                   SS0nU H&  n UR                   X#R                  R                  '   M(     [	        [
        5      nUR                  5        H  u  p5XE   R                  U5        M     SS jnUR                  5        VVs0 sH  u  pQU" U5      U_M     snnU l        U R                  W Vs0 sH  o3R                  R                  U_M     sn Vs/ sH  nSU 3PM
     sn5        g ! [         a     M  f = fs  snnf s  snf s  snf )NzSentence Transformersa  
@inproceedings{reimers-2019-sentence-bert,
    title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
    author = "Reimers, Nils and Gurevych, Iryna",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
    month = "11",
    year = "2019",
    publisher = "Association for Computational Linguistics",
    url = "https://arxiv.org/abs/1908.10084",
}
c                d    [        U 5      S:  a  SR                  U S S 5      S-   U S   -   $ U S   $ )Nr   , r   z and r   )r   r   )rY   s    r;   	join_list>SentenceTransformerModelCardData.set_losses.<locals>.join_list  s:    6{Qyy-7&*DD!9r=   zloss:)rY   r   r   r   )
citationr:   r   r  r   r   ru   r   r   rC   )r9   rY   r   rK   inverted_citationsr  r  s          r;   rO   +SentenceTransformerModelCardData.set_losses  s   # 
&
	 D59]]	..112 
 ).'oo/ND(//5 0	
 OaNfNfNhiNh:J()F+X5Nhi]c2d]cUY>>3J3JD3P]c2de2d$tf~2def   j2des#   "C*C;0DD*
C87C8c                    Xl         g r5   )r   )r9   steps     r;   set_best_model_step4SentenceTransformerModelCardData.set_best_model_step  s    #r=   c                   [        U[        [        45      (       a  g [        U[        5      (       a	  [	        US9n/ U l        [        [        R                  " [        UR                  5       5      SS95      nSn[        UR                  5       SSSS9 GH  u  pE[        X   [        5      (       a  M  X   R                  R                  5        VVs/ sHE  u  pg[        U[        5      (       d)  [        U[        5      (       d  M1  UR                   S	;   d  MC  UPMG     nnnX   R#                  U5      n	[%        U	5      n
U
S
:X  a  M  0 n['        U	R)                  [        R*                  " [-        U
5      [/        X:5      S95      5       H'  u  p[1        S UR                  5        5       5      X'   M)     [3        [5        UR                  5       S S96 u  pUS U [        XS  S S S2   5      nnU GH  nX   R                  5        VVs/ sH  u  nnUS:w  d  M  UPM     nnn[%        U5      S:  a  U(       a  UR7                  5       nU	U   R                  5        VVs/ sH  u  nnUS:w  d  M  UPM     nnn[%        U5      S:X  a  UR9                  U5        OUR;                  US   5        [%        U5      S:  a	  U(       a  M  [%        U5      S:  a  M  U Vs/ sH6  n[        U[        5      (       a  [        UR=                  5       5      S
   OUPM8     nnU R>                  S:X  aD  U R
                  R;                  US
   [        R*                  " USS  [%        U5      S-
  S9S.5        O1U R
                  R;                  S[        R@                  " U5      05        US S U l!        GM     GM     g s  snnf s  snnf s  snnf s  snf )N)rZ      )k  zComputing widget examplesexampleF)descunitleave>   stringlarge_stringr   c              3  J   #    U H  u  pUS :w  d  M  [        U5      v   M     g7f)dataset_nameN)r   .0rz   r{   s      r;   	<genexpr>GSentenceTransformerModelCardData.set_widget_examples.<locals>.<genexpr>  s#     "h*#RUYgRg:3u::s   ##c                    U S   $ )Nr   r   )xs    r;   r   FSentenceTransformerModelCardData.set_widget_examples.<locals>.<lambda>  s    AaDr=   rz   r   r%  r   r   r   )source_sentence	sentencestext)"rF   r+   r,   r)   r*   rP   r   randomchoicesr   r   r   ru   featuresr   r-   dtypeselect_columnsr   	enumerateselectsamplerangeminsumzipsortedr   extendr   r   r   choicer   )r9   rZ   dataset_namesnum_samples_to_checkr%  num_samplescolumnfeaturecolumnsstr_datasetdataset_sizelengthsidxr8  indicesr   target_indicesbackup_indicesrz   sentencer/  
backup_idxbackup_samples                          r;   rQ   4SentenceTransformerModelCardData.set_widget_examples  st   g1DEFFgw''!'2GtGLLN/Cq IJ#)-!(C)[`*
%L '/AA (/'<'E'E'K'K'M'MOFgt,,w.  4;==D^3^ 'M   "/>>wGK{+Lq G(""6==|1DL`Ho#pq   #"h"hh 
 fW]]_.IJJG-4\k-BDQ]I^_cac_cIdDeNN &;F;K;Q;Q;Sm;S-#xWZ^lWlX;S	m)nq(^!/!3!3!5J6A*6M6S6S6U%6U]S(Y\`nYn6U " % =)Q.!((7 "((q)9: )nq(^^ y>A%
 lukt_g*Xt2L2LD*+A.RZZkt   $$(==KK&&/8|)/y}IYZHZ)[ KK&&i0H'IJ'0!}$E &=*
. n%s0   /N-N-N-N3
N3
N9
*N9
<N?c                \   SSK Jn  [        U5      U R                  U'   [	        US5      (       a  UR
                  =n(       a  [        X5      (       a%  UR                   Vs/ sH  owR
                  PM     nnO[        U[        5      (       a  U/nUR                  5        VV	s0 sH  u  pX;   d  M  X_M     n
nn	U R                  (       a5  U R                  S   S   U:X  a  U R                  S   R                  U
5        g U R                  R                  UUS.U
E5        g g g s  snf s  sn	nf )Nr   )SequentialEvaluatorprimary_metricr   r   r   ) sentence_transformers.evaluationrR  r   r   r   rS  rF   
evaluatorsr   ru   r   r   r   )r9   	evaluatorr   r   r  rR  primary_metricssub_evaluatorrz   r{   training_log_metricss              r;   set_evaluation_metrics7SentenceTransformerModelCardData.set_evaluation_metrics  s    	I,0My) 9.//	H`H`5`_5`)99U^UiUi"jUiM#?#?Ui"jOS11#2"3AH#k:3TWTjJCJ #k!!d&8&8&<V&D&L""2&--.BC""))!& $ / 6a/"j $ls   !D##
D(1D(c           	     D   Sn[        [        5      n[        5       nU Ho  nUS   nUS   nXt;  aB  X7   R                  S[	        U5       S35        [        X7   5      U:  a  UR                  U5        [        U5      U R                  :X  d  Mo    O   UR                  5        VVs/ sHh  u  pxU R                  R                  (       a.  [        U[        5      (       a  U R                  R                  U   OUSSR                  U5      -   S-   S	.PMj     snnU l        g s  snnf )
N   r0  labelz<li>z</li>z<ul> z</ul>)LabelExamples)r   r   r   r   r   r   addnum_classesru   rU   labelsrF   r   r   r   )	r9   rZ   num_examples_per_labelexamplesfinished_labelsr8  r0  r^  example_sets	            r;   set_label_examples3SentenceTransformerModelCardData.set_label_examples&  s   !"t$%F&>D7OE+&&d4j\'?@x'+AA#''.?#t'7'77  '/nn&6#

 '7" 6:ZZ5F5F:V[]`KaKa**51gl"RWW[%99GC '7#
 #
s   $A.Dc           
        [        U[        5      (       a<  UR                  5        VVVs/ sH  u  p#U R                  X2S9 H  nUPM     M     snnn$ U(       a  [        R
                  " SU5      (       a  S nU=(       d    UR                  R                  [        UR                  5      S.nUR                  R                  (       aT  UR                  UR                  R                  ;   a0  UR                  R                  UR                     R                  US'   UR                  =n(       a  [        UR                  5       5      S   nUR                  S5      (       a\  SU;   aV  U[!        S5      S  R                  S5      nUS   US'   US	   R                  S
5      S   =n(       a  [!        U5      S:X  a  XS'   U/$ s  snnnf )N)r%  z_dataset_\d+)r  r   sizer   zhf://datasets/@r  r   r   (   revision)rF   r*   ru   infer_datasetsrematchr  r%  r   r   splitsnum_examplesdownload_checksumsr   r   r   r   )	r9   rZ   r%  sub_datasetdataset_output	checksumssourcesource_partsro  s	            r;   rp  /SentenceTransformerModelCardData.infer_datasets;  s   g{++ 291@-L#22;2ZG Z 1@  BHH_lCCL !=GLL$=$='
 <<7==GLL4G4G#G%,\\%8%8%G%T%TN6"  22292)..*+A.F  !122sf}%c*:&;&=>DDSI'3At$ ,Q 5 5c :1 ==H=3x=TVCV19:.7s   #F?c                     U R                   R                  " U40 UD6$ ! [         a    U R                   R                  U5      s $ f = fr5   )rU   tokenize	TypeError)r9   r0  rW   s      r;   r}  )SentenceTransformerModelCardData.tokenizeZ  sE    	-::&&t6v66 	-::&&t,,	-s    %AAc                (   U(       d  0 $ [        U[        5      (       a  [        U5      US'   UR                   Vs/ sH	  nSU S3PM     snUS'   0 US'   [        U[        5      (       Ga[  UR                   GH  nUSS U   nUS   n[        U[        5      (       a  U R                  US	S
9n[        U[        5      (       a)  SU;   a#  US   R                  SS9R                  5       nSn	OU V
s/ sH  n
[        U
5      PM     nn
Sn	S[        [        U5      S5       SU	 3[        [        U5      [        U5      -  S5       SU	 3[        [        U5      S5       SU	 3S.S.US   U'   M  [        U[        [        45      (       aW  [        U5      nS[        U5       Vs0 sH*  nU[        U5      S:  a  SOS X   [        U5      -  S 3_M,     snS.US   U'   GMg  [        U[         5      (       aW  S[        [        U5      S5      [        [        U5      [        U5      -  S5      [        [        U5      S5      S.S.US   U'   GM  [        U["        5      (       a  [        U Vs/ sH  n[        U5      PM     sn5      n[        U5      S:X  a  SS[        U5       S30S.US   U'   GM7  S[        U5       S3[        U5      [        U5      -  S S3[        U5       S3S.S.US   U'   GMz  [%        U5      0 S.US   U'   GM     S:S jnSS0US   R'                  5        VVs0 sH
  u  pXS    _M     snnESS!0US   R'                  5        VVs0 sH  u  pX" US   5      _M     snnE/n[)        [+        U5      R-                  S"S#5      S$5      US%'   USS& US''   [        US'   [#        US'   5      S      5      n/ n[/        U5       H  n0 nUR                   H  nUS'   U   U   n[        U["        5      (       a#  [        U5      S(:  a  [	        USS( 5      SS) S*-   n[        U[        5      (       a  [        U5      S:  a  USS S+-   n[	        U5      R-                  S,S-5      R-                  S.S/5      nSU S3UU'   M     UR1                  U5        M     [)        [+        U5      R-                  S"S#5      S$5      US0'   S1[%        U5      0US2'   [3        US35      (       ak  UR5                  5       nS;S4 jnUR'                  5        VVs0 sH  u  pUU" U5      _M     nnn [6        R8                  " US5S69n[)        S7U S83S$5      US2   S9'   U$ s  snf s  sn
f s  snf s  snf s  snnf s  snnf s  snnf ! [:         a    [=        US5S69n NTf = f)<a^  
Given a dataset, compute the following:
* Dataset Size
* Dataset Columns
* Dataset Stats
    - Strings: min, mean, max word count/token length
    - Integers: Counter() instance
    - Floats: min, mean, max range
    - List: number of elements or min, mean, max number of elements
* 3 Example samples
* Loss function name
    - Loss function config
rl  z<code>z</code>rE  statsNr  r   document)taskattention_maskr   )dimtokens
charactersr"     r   )r:  meanmax)r4  datar   ~r_  z.2%r   r   z	 elementsz.2fr  c                Z    SSR                  S U R                  5        5       5      -   S-   $ )Nz<ul><li>z	</li><li>c              3  2   #    U H  u  pU S U 3v   M     g7f)z: Nr   r&  s      r;   r(  aSentenceTransformerModelCardData.compute_dataset_metrics.<locals>.to_html_list.<locals>.<genexpr>  s     4fYe:3uBug5FYes   z
</li></ul>)r   ru   )r  s    r;   to_html_listNSentenceTransformerModelCardData.compute_dataset_metrics.<locals>.to_html_list  s.    !K$4$44fY]YcYcYe4f$ffiuuur=   typer4  details-:|--|  stats_tabler]  rf  r  r   z, ...]z...
z<br>|z\|examples_tabler&   rK   get_config_dictc                |   [        U [        R                  5      (       d  U $ U R                  R                  n/ n[        U S5      (       aI  [        U R                  S5      (       a.  UR                  [        U R                  R                  5      5        [        U S5      (       a"  U R                  (       a  UR                  S5        [        U S5      (       aF  U R                  5       R                  5        H$  u  p4UR                  U S[        U5       35        M&     U(       a  U SSR                  U5       S	3$ U$ )
NrB   r   trust_remote_codeztrust_remote_code=Truer  =(r  ))rF   r   Moduler:   r   r   rB   r   r   r   r  r  ru   r   )r{   module_namemodule_args_strrz   vals        r;   format_config_valueUSentenceTransformerModelCardData.compute_dataset_metrics.<locals>.format_config_value  s   !%33 L#oo66"$ 5"344AVAVXd9e9e#**40E0E0P0P+QR5"5665;R;R#**+CD5"344$)$9$9$;$A$A$C'..#aS	{/CD %D #)]!DIIo,F+GqII""r=   r   r   ```json

```config_code)r  r   )r{   r   r   r   )rF   r)   r   column_namesr   r}  r   r;  tolistr   r:  r  r   r   r   r=  r   r   r&   ru   r   r   replacer9  r   r   r  jsondumpsr~  r   )r9   rZ   r   rK   rC  
subsectionfirst	tokenizedrH  suffixrM  counterrz   lstr  r{   stats_linesrB  examples_lines
sample_idxrE  configr  
str_configs                           r;   compute_dataset_metrics8SentenceTransformerModelCardData.compute_dataset_metricsa  s   & Igw''#&w<L JQJ^J^"_J^VF87#;J^"_Y "Wgw''!..$Ud^F3
"1eS)) $jz JI!)T227G97T"+,<"="A"Aa"A"H"O"O"Q!)AK"LX3x="L!-!)&+CL!&<%=Qvh#G',S\CL-H!'L&MQvh$W&+CL!&<%=Qvh#G!5L)&1  T{33%j1G!& (.g!'6  3w<!+;C#DW\TWXbTcEcdgDh!ii'6!5L)&1  u--!(#(Z!#<$)#j/C
O*KQ$O#(Z!#<!5L)&1  t,,%:&F:Cs3x:&FGG7|q(%+ &3u:,i(@%9W-f5 &,*-g,y'A+.w<#g,+Fs*K9(U*-g,y'A%9W-f5 ?GuoWY4ZL)&1q /tv VelSZF[FaFaFcdFc
7^ 3FcdeYuVbcjVkVqVqVs"tVs
3U6](C#CVs"tuK +11D[1Q1Y1YZ_af1gim*nL''.r{L$l:6tL<T7UVW7XYZKN#K0
%22F(4V<ZHE!%..3u:> #E"1Is 3h >!%--#e*t2C %etu 4J..tV<DDS%PE(.ugW&=GFO 3 %%g. 1 .44G4W4_4_`egl4mos-tL)*  
V 4*++))+F#( IOW*#c.u55FW7!ZZq9
 399ZLPU9VX\2]L /u #` #M! 'G0  e"tb X  7$VA6
7s;   U/U 0U(U#
(U(U.
U4'U: :VVc                   U(       Ga&  U(       ar  [        U[        5      (       a  [        U5      [        U5      :w  d$  [        U[        5      (       a0  [        U5      S:w  a!  [        R                  SU SU SU S35        / nU(       d  U R                  U5      n[        U[        5      (       aj  [        UR                  5       UR                  5       U5       VVVs/ sH2  u  pVnU R                  UU[        U[        5      (       a  X5   OU5      PM4     nnnnOU R                  XS   U5      /nUS:X  a  [        U Vs/ sH  oR                  SS5      PM     sn5      n	U	(       a  U R                  S	U	 35        U R                  c^  [        U[        5      (       a!  [!        S
 UR                  5        5       5      n
O[!        UR"                  5      n
SS1U
-  (       a  SU l        U R%                  U5      $ s  snnnf s  snf )Nr   zThe number of `z?_datasets` in the model card data does not match the number of z1 datasets in the Trainer. Removing the provided `z$_datasets` from the model card data.r   r@   rl  zdataset_size:c              3  F   #    U H  oR                    H  o"v   M     M     g 7fr5   )r  )r'  rv  rC  s      r;   r(  LSentenceTransformerModelCardData.extract_dataset_metadata.<locals>.<genexpr>!  s!      '2B;QiQivQi2Bs   !queryquestionT)rF   r*   r   r)   r   r   rp  r<  r   r   r  r   r;  r  rC   r   r   r  r   )r9   rZ   dataset_metadatarK   dataset_typer%  dataset_valuer   metadatanum_training_samplesr  s              r;   rI   9SentenceTransformerModelCardData.extract_dataset_metadata  s    G[11c:J6KsSZ|6[w00S9I5Ja5O%l^3rs  sA A..:^;_a $& ##'#6#6w#? ';// FI(8:JF	$FA\ 00%$.8t.D.D*$
F ! 	$  %)$@$@[\J]_c$d#e  7"#&P`'aP`HVQ(?P`'a#b #.B-CDE}}$gt,,#& '29..2B' $L $'w';';#<LZ(<7$(DM%%&677;	$ (bs   8G6>G=c                &   Xl         U R                  b  g [        UR                  5        Vs/ sH  o"R                  PM     sn;   a  SU l        g S H9  nX1R
                  ;   d  M  [        UR
                  U   5      S:  d  M2  SU l          g    g s  snf )NT)r  r  passagecorpusr   )rU   r   r#   childrenr:   promptsr   )r9   rU   moduleir_prompt_names       r;   register_model/SentenceTransformerModelCardData.register_model+  s}    
==$U^^5EF5E6&&5EFF DMHN.3u}}^7T3UXY3Y $ I	 Gs   Bc                    Xl         g r5   )r   )r9   r   s     r;   set_model_id-SentenceTransformerModelCardData.set_model_id:  s     r=   c                    U R                   (       a  g [        U5      nUR                  U l        Ub  US:X  a  UR
                  nX l        g! [         a     gf = f)NFmainT)r   get_model_infor  r  r   shar   )r9   r   ro  r   s       r;   set_base_model/SentenceTransformerModelCardData.set_base_model=  s]      	'1J %--x61!~~H#+   		s   A 
AAc                @    [        U[        5      (       a  U/nXl        g r5   )rF   r   r   )r9   r   s     r;   set_language-SentenceTransformerModelCardData.set_languageM  s    h$$ zH r=   c                    Xl         g r5   )r   )r9   r   s     r;   set_license,SentenceTransformerModelCardData.set_licenseR  s    r=   c                    [        U[        5      (       a  U/nU H/  nX R                  ;  d  M  U R                  R                  U5        M1     g r5   )rF   r   r   r   )r9   r   tags      r;   rC   )SentenceTransformerModelCardData.add_tagsU  s<    dC  6DC))#		  % r=   c           
        U R                   R                  =nb  UR                  R                  n[	        U5      nSR                  UR                  SS  5      /nUR                  R                  S5      nU[        S[        U5      5       Vs/ sH.  nSR                  US U 5      S-   SR                  XVS  5      -   PM0     sn-  nU H  nU R                  U5      (       d  M    g    g [        U R                   S   [        5      (       aH  U R                   S   R                  (       a)  U R                  U R                   S   R                  5        g g g s  snf )Nr   r   r   r   )rU   transformers_modelr  _name_or_pathr
   r   partsr  r   r9  r   r  rF   r$   r   )r9   r  r   base_model_pathcandidate_model_idsrs  rI  r   s           r;   try_to_set_base_model6SentenceTransformerModelCardData.try_to_set_base_model\  s7   "&**"?"??L+22@@J":.O $'88O,A,A"#,F#G"H
 %))//4FQVWXZ]^dZeQf$Qf#&,sxxt/EEQf$  0&&x00 0 

177zz!}''##DJJqM$<$<= ( 8$s   4Ec                  ^^ / n0 n/ nU R                   R                  5        GH  u  pE[        USS5      m[        USS5      nT(       a  [        U4S jUR	                  5        5       5      (       ad  UR                  5        VVs0 sH  u  pxU[        T5      S-   S U_M     nnnU(       a*  UR                  TS-   5      (       a  U[        T5      S-   S nS#S jn	UR                  5        VVs0 sH  u  pxXy" U5      _M     nnnUR                  5        V
Vs/ sH2  u  pX:X  a  SU
 S3OU
X:X  a  S[        U5       S3O
[        U5      S	.PM4     nn
nUR                  n[        USS5      nS
n[        US5      (       a=  UR                  5       =n(       a&   [        R                  " USS9n[        SU S3S5      nUR!                  [#        U5      UUUUS.5        U4S jmUR%                  UR                  5        V
Vs/ sH  u  pT" U5      =nc  M  ['        UUR)                  5       R+                  SS5      U=(       d    SU(       a"  UR+                  SS5      R+                  SS5      OSU
R+                  SS5      R-                  5       U
US9PM     snn
5        UR/                  U5        GM     / nU H  nUS    Vs0 sH  nUS   US   _M     nn[1        U5      nU H  n[1        S US    5       5      nUS   US   :X  d  M&  UU:X  d  M.  US   US   :w  d  M<  US   US   :X  d  MJ  US    H.  nSU;   a  UR3                  S5      UUS   '   UUS      UUS   '   M0     [5        US   [6        5      (       d	  US   /US'   US   R!                  US   5          M     UR!                  U5        M     U H0  n[9        UR3                  S5      5      R+                  SS 5      US!'   M2     U[7        UR	                  5       5      [;        U R<                  U5      S".$ s  snnf s  snnf s  snn
f ! [         a    [        U5      n GNf = fs  snn
f s  snf )$a=  Format the evaluation metrics for the model card.

The following keys will be returned:
- eval_metrics: A list of dictionaries containing the class name, description, dataset name, and a markdown table
  This is used to display the evaluation metrics in the model card.
- metrics: A list of all metric keys. This is used in the model card metadata.
- model-index: A list of dictionaries containing the task name, task type, dataset type, dataset name, metric name,
  metric type, and metric value. This is used to display the evaluation metrics in the model card metadata.
r  NrS  c              3  H   >#    U H  oR                  TS -   5      v   M     g7f)r   N)r   )r'  rz   r  s     r;   r(  GSentenceTransformerModelCardData.format_eval_metrics.<locals>.<genexpr>  s     Q.3NN4#:66.s   "r   r   c                n     [        U S5      (       a  U R                  5       $  U $ ! [         a     U $ f = f)z^Try to convert a value from a Numpy or Torch scalar to pure Python, if not already pure Pythonr4  )r   itemr  r   s    r;   try_to_pure_pythonPSentenceTransformerModelCardData.format_eval_metrics.<locals>.try_to_pure_python  sE    ug..$zz|+ /  ! s    & 
44**)Metricr-   r_  r  r   r   r  r  r  )
class_namedescriptionr%  table_linesr  c                   >  [        U 5      $ ! [         a     Of = f[        U [        5      (       a  SU ;   a  T" U R	                  5       S   5      $ g )Nr   r   )r   r  rF   r   r   )metric_valuetry_to_floats    r;   r  JSentenceTransformerModelCardData.format_eval_metrics.<locals>.try_to_float  sW     ..   lC00SL5H'(:(:(<Q(?@@s   
 
r   -unknownUnknown)r   	task_typer  r%  metric_namemetric_typer  r  r  r-   c              3  (   #    U H	  oS    v   M     g7f)r  Nr   r'  lines     r;   r(  r    s     1pMoTx.Mos   r  r%  r  r  r  table)eval_metricsr   r   )r{   r   r   r   )r   ru   getattrallr   r   r   r   r  r   r  r  r  r~  r   r   r   r&   r>  r   lowerr  titler   r   r   rF   r   r   r   r   )r9   r  all_metricseval_resultsrV  r   rS  rz   r{   r  
metric_keyr  r  r  r%  r  r  r  metric_value_floatgrouped_eval_metricseval_metricr  eval_metric_mappingeval_metric_metricsgrouped_eval_metricgrouped_eval_metric_metricsr  r  s                             @@r;   format_eval_metrics4SentenceTransformerModelCardData.format_eval_metricsr  s    "&"8"8">">"@I9fd3D$Y0@$GNQ',,.QQQIPY:33s4y1}/6Y!n&?&?s
&K&K%3CIMO%DN IPX*#s.u55GX 18 1@,J 6@5Q:,b1Wa!3  "*\":!;2>#L1	 1@   $//K"9fd;LKy"344ID]D]D_:_&:_-!%F1!=J %yE%BDI"*9"5#.$0#.#.	  5<MMO 5D0
.:<.HH*J"-"-"3"3"5"="=c3"G%1%>YYe\%9%9#s%C%K%KCQT%Ukt$.$6$6sC$@$F$F$H$.%7 5D w'Y #A^  "'KMXYfMg"hMgT4>4=#@Mg"h"%&9":';#.11pM`anMo1p.p+-1D\1RR+/JJ#N37J>7ZZ#M26I-6XX !4M B"d?HLQXHYD!4^!DE<OPTU]P^<_[89	 !C &&9.&I4PP?RSa?b>c+N;'7>>{>?Z[% (<( %++K8/ (2 $8+>?R?V?VWd?e+f+n+nu,( $8 1K,,./6tU
 	
U Z Y" ! -!$VJ-4& #is7   P.P!8P'P-?Q	BQ	 Q-QQc                  ^ / mU R                    H3  nUR                  5        H  nUT;  d  M  TR                  U5        M     M5     SU4S jjn[        TUS9nU R                    VVs/ sHQ  nU Vs0 sHA  nUUS   U R                  :X  a  SX%;   a  [        XR   5      OS S3OUR                  US5      _MC     snPMS     nnn[        U5      nUSU;   S.$ s  snf s  snnf )Nc                   > U S:X  a  gU S:X  a  gU S:X  a  gU S:X  a  gU R                  S	5      (       a  g
TR                  U 5      S-   $ )Nr   r   r   r   r   r  r   r]  rK   r   r  )r   index)rz   eval_lines_keyss    r;   sort_metricsKSentenceTransformerModelCardData.format_training_logs.<locals>.sort_metrics  sV    g~f}o%''||F##"((-11r=   r-  r   r  r  )
eval_linesexplain_bold_in_eval)rz   r   r   r   )r   r   r   r=  r   r   r  r   )	r9   linesrz   r  sorted_eval_lines_keysr  r   r  r  s	           @r;   format_training_logs5SentenceTransformerModelCardData.format_training_logs  s   ''Ezz|o-#**3/ $ (	2 "(\!J **
 + 2	 2C <4#7#77 3;*TY/CHKXXc3'( 2	 + 	 
 )7
$$(J$6
 	

s   (	C1AC8CCc                    U R                   c$  U R                  (       a
  / SQU l         O	/ SQU l         U R                  (       d  g U R                  (       al  U R                  R	                  U R                   S   SSS9nU R                  R                  U R                   SS  SSS9nU R                  R                  X5      nOTU R                   S S U l         U R                  R                  U R                   SSS9nU R                  R                  XD5      n[        R                  R                  S	SS
9   SR                  S [        UR                  5       5      R                  5        5       5      U l        S S S 5        g ! , (       d  f       g = f)N)z(Which planet is known as the Red Planet?zMVenus is often called Earth's twin because of its similar size and proximity.zOMars, known for its reddish appearance, is often referred to as the Red Planet.zGSaturn, famous for its rings, is sometimes mistaken for the Red Planet.)zThe weather is lovely today.zIt's so sunny outside!zHe drove to the stadium.r   TF)convert_to_tensorrp   r   r]  r   )	precisionsci_moder  c              3  *   #    U H
  nS U 3v   M     g7f)z# Nr   r  s     r;   r(  ESentenceTransformerModelCardData.run_usage_snippet.<locals>.<genexpr>:  s     )eBd$Btf+Bds   )r   r   r   rU   encode_queryencode_document
similarityencoder   _tensor_strprintoptionsr   r   cpu
splitlinesr   )r9   query_embeddingsdocument_embeddingsr*  
embeddingss        r;   run_usage_snippet2SentenceTransformerModelCardData.run_usage_snippet  sQ   '}}($($ ,,==#zz66$$Q'4SX  7   #'**"<"<$$QR(DTY #= # ../?UJ#'#7#7#;D **4+?+?SWkp*qJ..zFJ++a%+H $		)e#jnnFVBWBbBbBd)e eD IHHs   3AE??
Fc                p   U R                   R                  R                  5       nS[        UR                  5      S-  [        UR
                  5      SSUR                  S:H  UR                  UR                  [        UR                  S-  S5      S.0nUR                  (       a  UR                  US   S	'   U$ )
Nr   r  
codecarbonzfine-tuningYi  r]  )	emissionsenergy_consumedry  training_typeon_cloud	cpu_modelram_total_size
hours_usedhardware_used)rG   tracker_prepare_emissions_datar   r8  r9  r;  r<  r=  r   duration	gpu_model)r9   emissions_dataresultss      r;   get_codecarbon_data4SentenceTransformerModelCardData.get_codecarbon_data<  s    22::RRT">#;#;<tC#()G)G#H&!.*33s:+55"0"?"?#N$;$;d$BAF
!
 ##;I;S;SG&'8r=   c                   SnU R                   R                  (       a]  SSSSS.R                  U R                   R                  U R                   R                  R                  SS5      R	                  5       5      nU R                   R                  5       U R                   R                  5       [        U R                   5      US.$ )	NzCosine SimilarityzDot ProductzEuclidean DistancezManhattan Distance)cosinedot	euclidean	manhattanr   r   )model_max_lengthoutput_dimensionalitymodel_stringsimilarity_fn_name)rU   rP  r  r  r	  get_max_seq_length get_sentence_embedding_dimensionr   )r9   rP  s     r;   get_model_specific_metadata<SentenceTransformerModelCardData.get_model_specific_metadataO  s    0::((-$11	"
 c$**//1N1N1V1VWZ\_1`1f1f1hi  !%

 = = ?%)ZZ%P%P%R

O"4	
 	
r=   c                    U R                   (       a/  U R                  R                  R                   SU R                    3$ U R                  R                  R                  $ )Nz
 based on )r   rU   r:   r   )r9   s    r;   get_default_model_name7SentenceTransformerModelCardData.get_default_model_name_  sF    ??jj**334Jt>OPP::''000r=   c                   U R                   (       a"  U R                  (       d   U R                  5         U R                  (       d  U R                  5       U l         U R                  5         [        U 5       Vs0 sH"  o"R                  [        XR                  5      _M$     nnU R                  (       a    UR                  U R                  5       5        U R                  (       a    UR                  U R!                  5       5        [#        U R                  5      S:  US'   U R$                  (       a[  U R$                  R&                  (       a@  U R$                  R&                  R(                  b  UR                  U R+                  5       5        UR                  U R-                  5       5        SU l         [.         H  nUR1                  US 5        M     U$ ! [         a     GNf = f! [         a#  n[        R                  SU 35         S nAGNS nAff = fs  snf ! [         a  n[        R                  SU 35        UeS nAff = f! [         a#  n[        R                  SU 35         S nAGNhS nAff = f)Nz,Error while computing usage snippet output: z+Error while formatting evaluation metrics: z&Error while formatting training logs: d   hide_eval_linesF)r   r   r  r  r   rV  r3  r   r   r	   r  r  r   r   r  r   r   r   rG   r@  _start_timerF  rS  IGNORED_FIELDSr   )r9   excr   
super_dictrz   s        r;   rt   (SentenceTransformerModelCardData.to_dicte  s   ??4??**,
 "99;DO	Q""$ JPPTVjj'$

";;
V !!!!$":":"<= O!!$";";"=> ),D,>,>(?#(E
$% %%))11))11==Id6689 	$::<=!CNN3% "]    	QNNI#OPP	Q W  !LSERS	  O!GuMNNOs_   G G# 8(H4H %I 
G G #
H-HH
I"H<<I
I1I,,I1c           	         [        U R                  5       R                  5        VVs0 sH  u  p#U[        ;   d  M  US / 4;  d  M  X#_M     snnSUS9R	                  5       $ s  snnf )NF)	sort_keys
line_break)r   rt   ru   YAML_FIELDSstrip)r9   rb  rz   r{   s       r;   to_yaml(SentenceTransformerModelCardData.to_yaml  sb    *.,,.*>*>*@s*@JCC;DVZ[`imoqhr[rZSZ*@s!
 %'		ss   A 
A 
A 
)r   r   r   r   rM   r   r   r   r   r   rU   r   r   r   r   rJ   rP   )r   r   )T)r	  list[dict[str, Any]]r   r   r   rg  )rY   list[nn.Module]r   r   )r  r   r   r   )rZ   Dataset | DatasetDictr   r   )r   r   )
rV  r.   r   r   r   r   r  r   r   r   )rZ   r)   r   r   r5   )rZ   ri  r%  r   r   r   )r0  str | list[str]r   r   )rZ   z Dataset | IterableDataset | Noner   r   rK   z'dict[str, nn.Module] | nn.Module | Noner   r   )
rZ   ri  r  rg  rK   z nn.Module | dict[str, nn.Module]r  zLiteral['train', 'eval']r   rg  )rU   r/   r   r   )r   r   r   r   )r   r   ro  r   r   r   )r   rj  r   r   )r   r   r   r   )r   rj  r   r   r   r   )r   z1dict[Literal['co2_eq_emissions'], dict[str, Any]])r   r   )Hr   r   r   r   __doc__r   r   r   __annotations__r   r   r   rJ   rM   r   r   r   r   r   r   r   rw   rv   r   r   rP   r   r   rG   r   r   r   r   r   r   r   r   r   r   r   r
   __file__parentr   rU   r   r   rO   r  rQ   rZ  ri  rp  r}  r  rI   r  r  r  r  r  rC   r  r  r   r3  rF  rS  rV  rt   re  r   r   r=   r;   r   r   	  s   (V (-T'BH$BGZ!J
!Hj+0+FN(F*/*EM'Et s  #
D
  #d"%*4%8d8 #4e<J
<&+Du&EE27SX2YY*/5*QQHM^binHoEo,1$U,SM)S#(E#JF J(-d(GO%G/4TPU/V,V6;Du6U3U %d GI~G"'5"AOZA5uMHiM!$UGHkG$TEJL*J T6J6Re4K4 &;%HL#H&=EJL#J#LuMG^MX(=(=@X(X_dkpqM4q ).dU(SE%S!" KO!#0!#CG!#	!#Fg>$L5^ bc*5CLO[^	6
* >-S1S %S 6	S
 
Sj38&38 /38 /	38
 /38 
38j! !
&>,
B$
L!fF&
 13j r=   r   c                    [         R                  " U R                  U R                  R                  SS9nUR                  $ )Nu   🤗)	card_datar   hf_emoji)r   from_templaterB   r   content)rU   
model_cards     r;   generate_model_cardrv    s:    ((''u7L7L7Z7ZekJ r=   rk  )r{   zfloat | int | strr   r   )rK   znn.Module | dict[nn.Module]r   rh  )rU   r/   r   r   )Y
__future__r   r  loggingr1  rq  collectionsr   r   r   dataclassesr   r   r	   pathlibr
   platformr   pprintr   textwrapr   typingr   r   r   r   r   huggingface_hubr   r   r   r  r   r  huggingface_hub.repocard_datar   r   huggingface_hub.utilsr   r   tqdm.autonotebookr   r   transformers.integrationsr   transformers.modelcardr   transformers.trainer_callbackr   r   typing_extensionsr    r   r"   r   sentence_transformers.modelsr#   r$   #sentence_transformers.training_argsr%   sentence_transformers.utilr&   r'   r(   r   r)   r*   r+   r,   r-   	getLoggerr   r   2sentence_transformers.evaluation.SentenceEvaluatorr.   )sentence_transformers.SentenceTransformerr/   sentence_transformers.trainerr0   r2   r   rc  r\  r   r   rN   r   rv  r   r=   r;   <module>r     s   "    	 ,  0 0  #   . .   / < 8 Q +  " ( 8 6 F ( N @ T _ _ZZ			8	$TMHO:? O:d  v*< **
 ;,( Ux U Upr=   