evalstate HF Staff commited on
Commit
ed4b00c
·
verified ·
1 Parent(s): e78dff9

Upload train_demo.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. train_demo.py +87 -0
train_demo.py ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ # Initialize Trackio for real-time monitoring
17
+ trackio.init(
18
+ project="qwen-demo-sft",
19
+ space_id="evalstate/training-demo-dashboard",
20
+ config={
21
+ "model": "Qwen/Qwen2.5-0.5B",
22
+ "dataset": "trl-lib/Capybara",
23
+ "learning_rate": 2e-5,
24
+ "max_steps": 20,
25
+ "peft_method": "LoRA",
26
+ }
27
+ )
28
+
29
+ # Load small subset for quick demo
30
+ dataset = load_dataset("trl-lib/Capybara", split="train[:50]")
31
+ print(f"✅ Dataset loaded: {len(dataset)} examples")
32
+
33
+ # Training configuration
34
+ config = SFTConfig(
35
+ # CRITICAL: Hub settings
36
+ output_dir="qwen-demo-sft",
37
+ push_to_hub=True,
38
+ hub_model_id="evalstate/qwen-demo-sft",
39
+
40
+ # Quick demo settings
41
+ max_steps=20,
42
+ per_device_train_batch_size=2,
43
+ gradient_accumulation_steps=2,
44
+ learning_rate=2e-5,
45
+
46
+ # Logging
47
+ logging_steps=5,
48
+ save_strategy="steps",
49
+ save_steps=20,
50
+
51
+ # Optimization
52
+ warmup_steps=2,
53
+ lr_scheduler_type="cosine",
54
+
55
+ # Monitoring
56
+ report_to="trackio",
57
+ )
58
+
59
+ # LoRA configuration
60
+ peft_config = LoraConfig(
61
+ r=16,
62
+ lora_alpha=32,
63
+ lora_dropout=0.05,
64
+ bias="none",
65
+ task_type="CAUSAL_LM",
66
+ target_modules=["q_proj", "v_proj"],
67
+ )
68
+
69
+ # Initialize and train
70
+ trainer = SFTTrainer(
71
+ model="Qwen/Qwen2.5-0.5B",
72
+ train_dataset=dataset,
73
+ args=config,
74
+ peft_config=peft_config,
75
+ )
76
+
77
+ print("🚀 Starting training...")
78
+ trainer.train()
79
+
80
+ print("💾 Pushing to Hub...")
81
+ trainer.push_to_hub()
82
+
83
+ # Finish Trackio tracking
84
+ trackio.finish()
85
+
86
+ print("✅ Complete! Model at: https://huggingface.co/evalstate/qwen-demo-sft")
87
+ print("📊 View metrics at: https://huggingface.co/spaces/evalstate/training-demo-dashboard")