zhiholiu commited on
Commit
db83d81
ยท
verified ยท
1 Parent(s): 258931a

Upload train_qwen3_codeforces.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. train_qwen3_codeforces.py +93 -0
train_qwen3_codeforces.py ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # /// script
2
+ # dependencies = [
3
+ # "trl>=0.12.0",
4
+ # "peft>=0.7.0",
5
+ # "transformers>=4.36.0",
6
+ # "accelerate>=0.24.0",
7
+ # "trackio",
8
+ # ]
9
+ # ///
10
+
11
+ import trackio
12
+ from datasets import load_dataset
13
+ from peft import LoraConfig
14
+ from trl import SFTTrainer, SFTConfig
15
+
16
+ # Load dataset - solutions subset has messages column ready for SFT
17
+ print("๐Ÿ“ฆ Loading dataset...")
18
+ dataset = load_dataset("open-r1/codeforces-cots", "solutions", split="train")
19
+ print(f"โœ… Dataset loaded: {len(dataset)} examples")
20
+
21
+ # Create train/eval split
22
+ print("๐Ÿ”€ Creating train/eval split...")
23
+ dataset_split = dataset.train_test_split(test_size=0.05, seed=42)
24
+ train_dataset = dataset_split["train"]
25
+ eval_dataset = dataset_split["test"]
26
+ print(f" Train: {len(train_dataset)} examples")
27
+ print(f" Eval: {len(eval_dataset)} examples")
28
+
29
+ # Training configuration
30
+ config = SFTConfig(
31
+ # CRITICAL: Hub settings
32
+ output_dir="qwen3-0.6b-codeforces-cots",
33
+ push_to_hub=True,
34
+ hub_model_id="zhiholiu/qwen3-0.6b-codeforces-cots",
35
+ hub_strategy="every_save",
36
+
37
+ # Training parameters
38
+ num_train_epochs=1,
39
+ per_device_train_batch_size=2,
40
+ gradient_accumulation_steps=8,
41
+ learning_rate=2e-5,
42
+ max_length=4096,
43
+
44
+ # Logging & checkpointing
45
+ logging_steps=25,
46
+ save_strategy="steps",
47
+ save_steps=500,
48
+ save_total_limit=2,
49
+
50
+ # Evaluation
51
+ eval_strategy="steps",
52
+ eval_steps=500,
53
+
54
+ # Optimization
55
+ warmup_ratio=0.1,
56
+ lr_scheduler_type="cosine",
57
+ gradient_checkpointing=True,
58
+ bf16=True,
59
+
60
+ # Monitoring
61
+ report_to="trackio",
62
+ project="codeforces-cots-sft",
63
+ run_name="qwen3-0.6b-baseline",
64
+ )
65
+
66
+ # LoRA configuration
67
+ peft_config = LoraConfig(
68
+ r=16,
69
+ lora_alpha=32,
70
+ lora_dropout=0.05,
71
+ bias="none",
72
+ task_type="CAUSAL_LM",
73
+ target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
74
+ )
75
+
76
+ # Initialize and train
77
+ print("๐ŸŽฏ Initializing trainer...")
78
+ trainer = SFTTrainer(
79
+ model="Qwen/Qwen3-0.6B",
80
+ train_dataset=train_dataset,
81
+ eval_dataset=eval_dataset,
82
+ args=config,
83
+ peft_config=peft_config,
84
+ )
85
+
86
+ print("๐Ÿš€ Starting training...")
87
+ trainer.train()
88
+
89
+ print("๐Ÿ’พ Pushing to Hub...")
90
+ trainer.push_to_hub()
91
+
92
+ print("โœ… Complete! Model at: https://huggingface.co/zhiholiu/qwen3-0.6b-codeforces-cots")
93
+ print("๐Ÿ“Š View metrics at: https://huggingface.co/spaces/zhiholiu/trackio")