§
    Ý˜ºhÁ  ã                   óÄ   — 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
mZmZ ddlmZ  e
¦   «         s e¦   «         s ed	¦  «        ‚d
Zd
Zdefd„Z G d„ de¦  «        ZdS )é    N)ÚArgumentParserÚ	Namespaceé   )Ú%SingleSentenceClassificationProcessor)ÚTextClassificationPipeline)Úis_tf_availableÚis_torch_availableÚloggingé   )ÚBaseTransformersCLICommandzRAt least one of PyTorch or TensorFlow 2.0+ should be installed to use CLI trainingFÚargsc                 ó    — t          | ¦  «        S )z€
    Factory function used to instantiate training command from provided command line arguments.

    Returns: TrainCommand
    )ÚTrainCommand)r   s    úc/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/transformers/commands/train.pyÚtrain_command_factoryr       s   € õ ˜ÑÔÐó    c                   óH   — e Zd Zedefd„¦   «         Zdefd„Zd„ Zd„ Z	d„ Z
dS )	r   Úparserc                 ó¦  — |                       dd¬¦  «        }|                     dt          dd¬¦  «         |                     dt          d	d
¬¦  «         |                     dt          dd¬¦  «         |                     dt          dd¬¦  «         |                     ddd¬¦  «         |                     dt          dd¬¦  «         |                     dt          dd¬¦  «         |                     dt          dd¬¦  «         |                     dt          d d!¬¦  «         |                     d"t          d#d$¬¦  «         |                     d%t          d&d'¬¦  «         |                     d(t          d)d*¬¦  «         |                     d+t          d,d-¬¦  «         |                     d.t          d/d0¬¦  «         |                     t          ¬1¦  «         d2S )3z³
        Register this command to argparse so it's available for the transformer-cli

        Args:
            parser: Root parser to register command-specific arguments
        Útrainz$CLI tool to train a model on a task.)Úhelpz--train_dataTzcpath to train (and optionally evaluation) dataset as a csv with tab separated labels and sentences.)ÚtypeÚrequiredr   z--column_labelr   z3Column of the dataset csv file with example labels.)r   Údefaultr   z--column_textr   z2Column of the dataset csv file with example texts.z--column_idr   z0Column of the dataset csv file with example ids.z--skip_first_rowÚ
store_truez-Skip the first row of the csv file (headers).)Úactionr   z--validation_dataÚ zpath to validation dataset.z--validation_splitgš™™™™™¹?z^if validation dataset is not provided, fraction of train dataset to use as validation dataset.z--outputz./z path to saved the trained model.z--taskÚtext_classificationzTask to train the model on.z--modelzgoogle-bert/bert-base-uncasedz%Model's name or path to stored model.z--train_batch_sizeé    zBatch size for training.z--valid_batch_sizeé@   zBatch size for validation.z--learning_rategiUMuÿ>zLearning rate.z--adam_epsilong:Œ0âŽyE>zEpsilon for Adam optimizer.)ÚfuncN)Ú
add_parserÚadd_argumentÚstrÚintÚfloatÚset_defaultsr   )r   Útrain_parsers     r   Úregister_subcommandz TrainCommand.register_subcommand*   s@  € ð ×(Ò(¨Ð7]Ð(Ñ^Ô^ˆà×!Ò!ØÝØØvð	 	"ñ 	
ô 	
ð 	
ð 	×!Ò!Ø¥3°Ð8mð 	"ñ 	
ô 	
ð 	
ð 	×!Ò!Ø¥#¨qÐ7kð 	"ñ 	
ô 	
ð 	
ð 	×!Ò!Ø¥¨QÐ5gð 	"ñ 	
ô 	
ð 	
ð 	×!Ò!Ø |Ð:ið 	"ñ 	
ô 	
ð 	
ð 	×!Ò!Ð"5½CÈÐRoÐ!ÑpÔpÐpØ×!Ò!Ø ÝØØqð	 	"ñ 	
ô 	
ð 	
ð 	×!Ò! *µ3ÀÐKmÐ!ÑnÔnÐnà×!Ò!Ø�3Ð(=ÐDað 	"ñ 	
ô 	
ð 	
ð 	×!Ò!Ø�CÐ)HÐOvð 	"ñ 	
ô 	
ð 	
ð 	×!Ò!Ð"6½SÈ"ÐSmÐ!ÑnÔnÐnØ×!Ò!Ð"6½SÈ"ÐSoÐ!ÑpÔpÐpØ×!Ò!Ð"3½%ÈÐTdÐ!ÑeÔeÐeØ×!Ò!Ð"2½ÈÐTqÐ!ÑrÔrÐrØ×!Ò!Õ'<Ð!Ñ=Ô=Ð=Ð=Ð=r   r   c                 óä  — t          j        d¦  «        | _        t          ¦   «         rdnd| _        t          j        |j        d¬¦  «         |j        | _        |j        | _        |j	        | _	        |j
        | _
        | j                             d|j        › d|j        › �¦  «         |j        dk    rt          j        |j        ¦  «        | _        n$|j        d	k    rt"          ‚|j        d
k    rt"          ‚| j                             d|j        › �¦  «         t'          j        |j        |j        |j	        |j
        |j        ¬¦  «        | _        d | _        |j        rY| j                             d|j        › �¦  «         t'          j        |j        |j        |j	        |j
        |j        ¬¦  «        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        d S )Nztransformers/trainingÚtfÚtorchT)Úexist_okzLoading z pipeline for r   Útoken_classificationÚquestion_answeringzLoading dataset from )Úcolumn_labelÚcolumn_textÚ	column_idÚskip_first_rowz Loading validation dataset from )r
   Ú
get_loggerÚloggerr   Ú	frameworkÚosÚmakedirsÚoutputr0   r1   r2   ÚinfoÚtaskÚmodelr   Úfrom_pretrainedÚpipelineÚNotImplementedErrorÚ
train_dataÚ	ProcessorÚcreate_from_csvr3   Útrain_datasetÚvalid_datasetÚvalidation_dataÚvalidation_splitÚtrain_batch_sizeÚvalid_batch_sizeÚlearning_rateÚadam_epsilon)Úselfr   s     r   Ú__init__zTrainCommand.__init__]   så  € ÝÔ(Ð)@ÑAÔAˆŒå!0Ñ!2Ô!2Ð?˜˜¸ˆŒå
Œ�D”K¨$Ð/Ñ/Ô/Ð/Ø”kˆŒà Ô-ˆÔØÔ+ˆÔØœˆŒàŒ×ÒÐI D¤IÐIÐI¸T¼ZÐIÐIÑJÔJÐJØŒ9Ð-Ò-Ð-Ý6ÔFÀtÄzÑRÔRˆDŒMˆMØŒYÐ0Ò0Ð0Ý%Ð%ØŒYÐ.Ò.Ð.Ý%Ð%àŒ×ÒÐB°´ÐBÐBÑCÔCÐCÝ&Ô6ØŒOØÔ*ØÔ(Ø”nØÔ.ð
ñ 
ô 
ˆÔð "ˆÔØÔð 	ØŒK×ÒÐVÀÔ@TÐVÐVÑWÔWÐWÝ!*Ô!:ØÔ$Ø!Ô.Ø Ô,Øœ.Ø#Ô2ð"ñ "ô "ˆDÔð !%Ô 5ˆÔØ $Ô 5ˆÔØ $Ô 5ˆÔØ!Ô/ˆÔØ Ô-ˆÔÐÐr   c                 óh   — | j         dk    r|                      ¦   «         S |                      ¦   «         S )Nr+   )r6   Úrun_tfÚ	run_torch©rK   s    r   ÚrunzTrainCommand.runŠ   s-   € ØŒ>˜TÒ!Ð!Ø—;’;‘=”=Ð Ø�~Š~ÑÔÐr   c                 ó   — t           ‚)N)r?   rP   s    r   rO   zTrainCommand.run_torch�   s   € Ý!Ð!r   c           	      óÌ   — | j                              | j        | j        | j        | j        | j        | j        | j        ¬¦  «         | j          	                    | j
        ¦  «         d S )N)rE   rF   rI   rJ   rG   rH   )r>   ÚfitrC   rD   rF   rI   rJ   rG   rH   Úsave_pretrainedr9   rP   s    r   rN   zTrainCommand.run_tf’   sk   € ØŒ×ÒØÔØ Ô.Ø!Ô2ØÔ,ØÔ*Ø!Ô2Ø!Ô2ð 	ñ 	
ô 	
ð 	
ð 	Œ×%Ò% d¤kÑ2Ô2Ð2Ð2Ð2r   N)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r)   r   rL   rQ   rO   rN   © r   r   r   r   )   sƒ   € € € € € Øð0> Nð 0>ð 0>ð 0>ñ „\ð0>ðd+.˜Yð +.ð +.ð +.ð +.ðZ ð  ð  ð
"ð "ð "ð3ð 3ð 3ð 3ð 3r   r   )r7   Úargparser   r   Údatar   rA   Ú	pipelinesr   Úutilsr   r	   r
   r   r   ÚRuntimeErrorÚUSE_XLAÚUSE_AMPr   r   rZ   r   r   ú<module>rb      s  ðð 
€	€	€	Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .à EÐ EÐ EÐ EÐ EÐ EØ 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø (Ð (Ð (Ð (Ð (Ð (ð €ÑÔð mÐ!3Ð!3Ñ!5Ô!5ð mØ
ˆ,ÐkÑ
lÔ
lÐlð €Ø
€ð 	ð ð ð ð ðu3ð u3ð u3ð u3ð u3Ð-ñ u3ô u3ð u3ð u3ð u3r   