File size: 1,426 Bytes
7d3d63c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/env python3
"""
Math Problem Solver Trainer
"""
from datasets import load_dataset
from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer

def train_math_model():
    print("🎓 Training Bengali Math Solver...")
    
    # Load data
    ds = load_dataset("hamim-87/Ashrafur_bangla_math", split="train[:10000]")
    
    # Initialize model
    tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-medium")
    model = AutoModelForCausalLM.from_pretrained("microsoft/DialoGPT-medium")
    tokenizer.pad_token = tokenizer.eos_token
    
    # Prepare data
    def prepare_data(examples):
        texts = []
        for problem, solution in zip(examples['problem'], examples['solution']):
            text = f"প্রশ্ন: {problem}\n\nউত্তর: {solution}\n\n"
            texts.append(text)
        return tokenizer(texts, truncation=True, padding=True, max_length=512)
    
    tokenized_ds = ds.map(prepare_data, batched=True)
    
    # Training
    training_args = TrainingArguments(
        output_dir="./bangla_math_model",
        num_train_epochs=2,
        per_device_train_batch_size=4,
    )
    
    trainer = Trainer(
        model=model,
        args=training_args,
        train_dataset=tokenized_ds,
    )
    
    trainer.train()
    trainer.save_model()
    print("✅ Math model trained!")

if __name__ == "__main__":
    train_math_model()