o
    	TiC                  	   @   s  d dl Z d dlmZ d dlmZ d dlmZmZmZm	Z	 d dl
mZmZmZmZ d dlmZ 	 edkre	eeefZe \ZZZe jejdd	 ejejd
ejdZeddi ejdu rbee_ejejejddZ ejej!ejdZ"ejej!ejdZ#eej$ej%ej&dZ'dZ(e')e*e+e'e( Z,e')e*e+e'e( e+e'Z-dZ.dd Z/e 0  e/e,eZ,e/e-eZ-W d   n1 sw   Y  eeee#e"e e,e-dZ1e12  e13ej ej4re1j4ej$d e15  dS dS )    N)PartialState)load_dataset)AutoModelForCausalLM"AutoModelForSequenceClassificationAutoTokenizerHfArgumentParser)ModelConfig
RLOOConfigRLOOTrainerScriptArguments)SIMPLE_CHAT_TEMPLATE__main__T)ignore_errorsleft)padding_sidetrust_remote_code	pad_tokenz[PAD]   )r   
num_labels)r   )namesplitd   promptc                    s"    fdd}| j |d| jtjdS )zFpre-tokenize the dataset before training; only collate during trainingc                    s    | t  dd}d|d iS )NF)padding	input_ids)dataset_text_field)elementoutputs	tokenizer N/home/ubuntu/.local/lib/python3.10/site-packages/examples/scripts/rloo/rloo.pytokenizel   s
   z!prepare_dataset.<locals>.tokenizeT)batchedremove_columnsnum_proc)mapcolumn_namestraining_argsdataset_num_proc)datasetr   r"   r    r   r!   prepare_dataseti   s   r+   )configprocessing_classpolicy
ref_policyreward_modeltrain_dataseteval_dataset)dataset_name)6shutil
accelerater   datasetsr   transformersr   r   r   r   trlr   r	   r
   r   trl.trainer.utilsr   __name__parserparse_args_into_dataclassesscript_argsr(   
model_argsrmtree
output_dirfrom_pretrainedmodel_name_or_pathr   r   add_special_tokenschat_templatereward_model_pathr0   sft_model_pathr/   r.   r3   dataset_configdataset_train_splitr*   eval_samplesselectrangelenr1   r2   r   r+   local_main_process_firsttrainertrain
save_modelpush_to_hubgenerate_completionsr    r    r    r!   <module>   sj   "



	