
    bi                         d Z ddlZddlmZ ddlmZmZ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 d Zddej*                  fd	Zed
k(  r) e       Zej3                  d      \  ZZZZ eeee       yy)at  
# Full training
```
python trl/scripts/sft.py     --model_name_or_path Qwen/Qwen2-0.5B     --dataset_name trl-lib/Capybara     --learning_rate 2.0e-5     --num_train_epochs 1     --packing     --per_device_train_batch_size 2     --gradient_accumulation_steps 8     --gradient_checkpointing     --eos_token '<|im_end|>'     --eval_strategy steps     --eval_steps 100     --output_dir Qwen2-0.5B-SFT     --push_to_hub
```

# LoRA
```
python trl/scripts/sft.py     --model_name_or_path Qwen/Qwen2-0.5B     --dataset_name trl-lib/Capybara     --learning_rate 2.0e-4     --num_train_epochs 1     --packing     --per_device_train_batch_size 2     --gradient_accumulation_steps 8     --gradient_checkpointing     --eos_token '<|im_end|>'     --eval_strategy steps     --eval_steps 100     --use_peft     --lora_r 32     --lora_alpha 16     --output_dir Qwen2-0.5B-SFT     --push_to_hub
```
    N)load_dataset)
AutoConfigAutoModelForCausalLMAutoTokenizer)*MODEL_FOR_IMAGE_TEXT_TO_TEXT_MAPPING_NAMES)	ModelConfigScriptArguments	SFTConfig
SFTTrainer	TrlParserclone_chat_templateget_kbit_device_mapget_peft_configget_quantization_configc           
      .   t        |      }t        |j                  |j                  |j                  |j
                  |j                  rdnd|
t               nd |      }t        j                  |j                        }t        j                         |j                  rTt        fd|j                  D              r6ddlm} |j#                  dd         |j                  |j                  fi |}n t%        j                  |j                  fi |}t'        j                  |j                  |j                  d      }|j(                  t+        ||d	      \  }}t-        | j.                  | j0                  
      }	t3        |||	| j4                     |j6                  dk7  r|	| j8                     nd |t;        |            }
|
j=                          |
j?                  |j@                         |jB                  r|
jC                  | j.                         y y )NFT)revisiontrust_remote_codeattn_implementationtorch_dtype	use_cache
device_mapquantization_configc              3   &   K   | ]  }|v  
 y wN ).0archvalid_image_text_architecturess     J/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/trl/scripts/sft.py	<genexpr>zmain.<locals>.<genexpr>^   s     #ltD,J$J#ls   r   )AutoModelForImageTextToTextr   )r   use_fastzQwen/Qwen3-0.6B)nameno)modelargstrain_dataseteval_datasetprocessing_classpeft_config)dataset_name)"r   dictmodel_revisionr   r   r   gradient_checkpointingr   r   from_pretrainedmodel_name_or_pathr   valuesarchitecturesanytransformersr!   popr   r   chat_templater   r   r+   dataset_configr   dataset_train_spliteval_strategydataset_test_splitr   train
save_model
output_dirpush_to_hub)script_argstraining_args
model_argsr   model_kwargsconfigr!   r%   	tokenizerdatasettrainerr   s              @r   mainrG   K   s    2*=**$66&::**(??%T,?,K&(QU/L ''
(E(EFF%O%V%V%X"#lW]WkWk#l l<d+;+;;J<Y<Yj]ij$44Z5R5RcVbc --%%9U9U`dI
 &.uiARSy
 ;33+:T:TUG
 k==>@M@[@[_c@cW[;;<im"#J/G MMO }//0  )A)AB !    
subparsersc                 n    t         t        t        f}| | j                  dd|      }|S t	        |      }|S )NsftzRun the SFT training script)helpdataclass_types)r	   r
   r   
add_parserr   )rI   rM   parsers      r   make_parserrP      sE    &	;?O&&u3Pbq&r M ?+MrH   __main__T)return_remaining_stringsr   )__doc__argparsedatasetsr   r4   r   r   r   &transformers.models.auto.modeling_autor   trlr   r	   r
   r   r   r   r   r   r   rG   _SubParsersActionrP   __name__rO   parse_args_and_configr?   r@   rA   _r   rH   r   <module>r\      s   'R  ! H H ]
 
 
;C|H66  z]F 170L0Lfj0L0k-K
AmZ0 rH   