o
    	Ti                     @   s   d Z ddlmZ ddlmZmZmZ ddlmZm	Z	m
Z
mZmZmZ dd ZedkrCee	e
efZejdd	\ZZZZeeee d
S d
S )u  
pip install –-upgrade kernels

Example:

accelerate launch     --config_file examples/accelerate_configs/deepspeed_zero3.yaml     examples/sccripts/sft_gpt_oss.py     --torch_dtype bfloat16     --model_name_or_path openai/gpt-oss-20b     --packing true packing_strategy wrapped     --run_name 20b-full-eager     --attn_implementation kernels-community/vllm-flash-attn3     --dataset_num_proc 12     --dataset_name HuggingFaceH4/Multilingual-Thinking     --gradient_checkpointing     --max_length 4096     --per_device_train_batch_size 2     --num_train_epochs 1     --logging_steps 1     --warmup_ratio 0.03     --lr_scheduler_type cosine_with_min_lr     --lr_scheduler_kwargs '{"min_lr_rate": 0.1}'     --output_dir gpt-oss-20b-multilingual-reasoner     --report_to trackio     --seed 42
    )load_dataset)AutoModelForCausalLMAutoTokenizerMxfp4Config)ModelConfigScriptArguments	SFTConfig
SFTTrainer	TrlParserget_peft_configc           	      C   s   t dd}t|j|j|j|j|jrdnd|d}tj|j	fi |}t
|j	}t| j| jd}t|||| j |jdkrA|| j nd |t|d}|  ||j |jr_|j| jd d S d S )	NT)
dequantizeF)revisiontrust_remote_codeattn_implementationtorch_dtype	use_cachequantization_config)nameno)modelargstrain_dataseteval_datasetprocessing_classpeft_config)dataset_name)r   dictmodel_revisionr   r   r   gradient_checkpointingr   from_pretrainedmodel_name_or_pathr   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_kwargsr   	tokenizerdatasettrainer r0   P/home/ubuntu/.local/lib/python3.10/site-packages/examples/scripts/sft_gpt_oss.pymain8   s2   
		r2   __main__T)return_remaining_stringsN)__doc__datasetsr   transformersr   r   r   trlr   r   r   r	   r
   r   r2   __name__parserparse_args_and_configr)   r*   r+   _r0   r0   r0   r1   <module>   s    #