hackergeek commited on
Commit
777e328
·
verified ·
1 Parent(s): e784c2f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -5
app.py CHANGED
@@ -4,13 +4,18 @@ from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments,
4
  from peft import get_peft_model, LoraConfig, TaskType
5
  from datasets import load_dataset
6
 
7
- device = "cuda" if torch.cuda.is_available() else "cpu"
8
 
9
  def train_model(dataset_url, model_url, epochs):
10
  try:
11
- # 🚀 بارگیری مدل و توکنایزر با `trust_remote_code=True`
12
  tokenizer = AutoTokenizer.from_pretrained(model_url, trust_remote_code=True)
13
- model = AutoModelForCausalLM.from_pretrained(model_url, trust_remote_code=True).to(device)
 
 
 
 
 
14
 
15
  # ✅ تنظیم LoRA برای کاهش مصرف حافظه
16
  lora_config = LoraConfig(
@@ -39,14 +44,14 @@ def train_model(dataset_url, model_url, epochs):
39
  output_dir="./deepseek_lora_cpu",
40
  evaluation_strategy="epoch",
41
  learning_rate=5e-4,
42
- per_device_train_batch_size=1,
43
  per_device_eval_batch_size=1,
44
  num_train_epochs=int(epochs),
45
  save_strategy="epoch",
46
  save_total_limit=2,
47
  logging_dir="./logs",
48
  logging_steps=10,
49
- fp16=False,
50
  gradient_checkpointing=True,
51
  optim="adamw_torch",
52
  report_to="none"
 
4
  from peft import get_peft_model, LoraConfig, TaskType
5
  from datasets import load_dataset
6
 
7
+ device = "cpu" # اجباراً فقط روی CPU اجرا شود
8
 
9
  def train_model(dataset_url, model_url, epochs):
10
  try:
11
+ # 🚀 بارگیری مدل و توکنایزر با اجازه اجرای کد سفارشی و بدون نیاز به GPU
12
  tokenizer = AutoTokenizer.from_pretrained(model_url, trust_remote_code=True)
13
+ model = AutoModelForCausalLM.from_pretrained(
14
+ model_url,
15
+ trust_remote_code=True,
16
+ torch_dtype=torch.float32, # ✅ تغییر به float32 برای CPU
17
+ device_map="cpu" # ✅ اجباری کردن اجرای روی CPU
18
+ )
19
 
20
  # ✅ تنظیم LoRA برای کاهش مصرف حافظه
21
  lora_config = LoraConfig(
 
44
  output_dir="./deepseek_lora_cpu",
45
  evaluation_strategy="epoch",
46
  learning_rate=5e-4,
47
+ per_device_train_batch_size=1, # کاهش مصرف RAM
48
  per_device_eval_batch_size=1,
49
  num_train_epochs=int(epochs),
50
  save_strategy="epoch",
51
  save_total_limit=2,
52
  logging_dir="./logs",
53
  logging_steps=10,
54
+ fp16=False, # ❌ غیرفعال‌سازی FP16 چون روی CPU اجرا می‌شود
55
  gradient_checkpointing=True,
56
  optim="adamw_torch",
57
  report_to="none"