Upload train_qwen_codeforces.py with huggingface_hub
Browse files- train_qwen_codeforces.py +13 -0
train_qwen_codeforces.py
CHANGED
|
@@ -17,12 +17,18 @@ import trackio
|
|
| 17 |
from datasets import load_dataset
|
| 18 |
from peft import LoraConfig
|
| 19 |
from trl import SFTTrainer, SFTConfig
|
|
|
|
| 20 |
|
| 21 |
# Load dataset - using the solutions config with messages column
|
| 22 |
print("Loading dataset...")
|
| 23 |
dataset = load_dataset("open-r1/codeforces-cots", "solutions", split="train")
|
| 24 |
print(f"Dataset loaded: {len(dataset)} examples")
|
| 25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
# Create train/eval split
|
| 27 |
print("Creating train/eval split...")
|
| 28 |
dataset_split = dataset.train_test_split(test_size=0.05, seed=42)
|
|
@@ -31,6 +37,12 @@ eval_dataset = dataset_split["test"]
|
|
| 31 |
print(f"Train: {len(train_dataset)} examples")
|
| 32 |
print(f"Eval: {len(eval_dataset)} examples")
|
| 33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
# Training configuration
|
| 35 |
config = SFTConfig(
|
| 36 |
# Hub settings - CRITICAL for saving results
|
|
@@ -82,6 +94,7 @@ peft_config = LoraConfig(
|
|
| 82 |
print("Initializing trainer...")
|
| 83 |
trainer = SFTTrainer(
|
| 84 |
model="Qwen/Qwen3-0.6B",
|
|
|
|
| 85 |
train_dataset=train_dataset,
|
| 86 |
eval_dataset=eval_dataset,
|
| 87 |
args=config,
|
|
|
|
| 17 |
from datasets import load_dataset
|
| 18 |
from peft import LoraConfig
|
| 19 |
from trl import SFTTrainer, SFTConfig
|
| 20 |
+
from transformers import AutoTokenizer
|
| 21 |
|
| 22 |
# Load dataset - using the solutions config with messages column
|
| 23 |
print("Loading dataset...")
|
| 24 |
dataset = load_dataset("open-r1/codeforces-cots", "solutions", split="train")
|
| 25 |
print(f"Dataset loaded: {len(dataset)} examples")
|
| 26 |
|
| 27 |
+
# The dataset has a 'messages' column in chat format
|
| 28 |
+
# We need to keep only the 'messages' column for SFT training
|
| 29 |
+
print("Preparing dataset - keeping only messages column...")
|
| 30 |
+
dataset = dataset.select_columns(["messages"])
|
| 31 |
+
|
| 32 |
# Create train/eval split
|
| 33 |
print("Creating train/eval split...")
|
| 34 |
dataset_split = dataset.train_test_split(test_size=0.05, seed=42)
|
|
|
|
| 37 |
print(f"Train: {len(train_dataset)} examples")
|
| 38 |
print(f"Eval: {len(eval_dataset)} examples")
|
| 39 |
|
| 40 |
+
# Load tokenizer for chat template
|
| 41 |
+
print("Loading tokenizer...")
|
| 42 |
+
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-0.6B")
|
| 43 |
+
if tokenizer.pad_token is None:
|
| 44 |
+
tokenizer.pad_token = tokenizer.eos_token
|
| 45 |
+
|
| 46 |
# Training configuration
|
| 47 |
config = SFTConfig(
|
| 48 |
# Hub settings - CRITICAL for saving results
|
|
|
|
| 94 |
print("Initializing trainer...")
|
| 95 |
trainer = SFTTrainer(
|
| 96 |
model="Qwen/Qwen3-0.6B",
|
| 97 |
+
tokenizer=tokenizer,
|
| 98 |
train_dataset=train_dataset,
|
| 99 |
eval_dataset=eval_dataset,
|
| 100 |
args=config,
|