kasim90 commited on
Commit
e5d1136
·
verified ·
1 Parent(s): 4baf273

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -53
app.py CHANGED
@@ -3,59 +3,61 @@ from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments,
3
  from peft import LoraConfig, get_peft_model
4
  from datasets import load_dataset
5
  import gradio as gr
6
-
7
- # === 1️⃣ MODEL VE TOKENIZER YÜKLEME ===
8
- MODEL_NAME = "mistralai/Mistral-7B-v0.1" # Hugging Face model adı
9
- tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
10
-
11
- # === 2️⃣ CPU OPTİMİZASYONU ===
12
- torch_dtype = torch.float32 # CPU için uygun dtype
13
- model = AutoModelForCausalLM.from_pretrained(MODEL_NAME, torch_dtype=torch_dtype)
14
-
15
- # === 3️⃣ LoRA AYARLARI ===
16
- lora_config = LoraConfig(
17
- r=8,
18
- lora_alpha=32,
19
- lora_dropout=0.1,
20
- bias="none",
21
- target_modules=["q_proj", "v_proj"],
22
- )
23
- model = get_peft_model(model, lora_config)
24
-
25
- # === 4️⃣ VERİ SETİ ===
26
- dataset = load_dataset("oscar", "unshuffled_deduplicated_tr", trust_remote_code=True) # trust_remote_code=True
27
- subset = dataset["train"].shuffle(seed=42).select(range(10000)) # Küçük subset seçiyoruz (10.000 örnek)
28
-
29
- # === 5️⃣ TOKENLEŞTİRME FONKSİYONU ===
30
- @spaces.GPU
31
- def tokenize_function(examples):
32
- return tokenizer(examples["text"], truncation=True, max_length=512)
33
-
34
- tokenized_datasets = subset.map(tokenize_function, batched=True)
35
-
36
- # === 6️⃣ EĞİTİM AYARLARI ===
37
- # Eğitimde kaç adım olduğunu hesaplayalım
38
- train_size = len(tokenized_datasets) # 10,000 örnek
39
- batch_size = 1 # Batch size 1
40
- num_epochs = 1 # 1 epoch eğitimi
41
- max_steps = (train_size // batch_size) * num_epochs # max_steps hesapla
42
-
43
- training_args = TrainingArguments(
44
- output_dir="./mistral_lora",
45
- per_device_train_batch_size=1,
46
- gradient_accumulation_steps=16,
47
- learning_rate=5e-4,
48
- num_train_epochs=1,
49
- max_steps=max_steps, # Buraya max_steps parametresini ekliyoruz
50
- save_steps=500,
51
- save_total_limit=2,
52
- logging_dir="./logs",
53
- logging_steps=10,
54
- optim="adamw_torch",
55
- train_dataset=split_dataset["train"],
56
- eval_dataset=split_dataset["test"],
57
- no_cuda=True, # GPU kullanılmıyor
58
- )
 
 
59
 
60
  # === 7️⃣ MODEL EĞİTİMİ ===
61
  @spaces.GPU
 
3
  from peft import LoraConfig, get_peft_model
4
  from datasets import load_dataset
5
  import gradio as gr
6
+ @spaces.GPU
7
+ def main():
8
+ # === 1️⃣ MODEL VE TOKENIZER YÜKLEME ===
9
+ MODEL_NAME = "mistralai/Mistral-7B-v0.1" # Hugging Face model adı
10
+ tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
11
+
12
+ # === 2️⃣ CPU OPTİMİZASYONU ===
13
+ torch_dtype = torch.float32 # CPU için uygun dtype
14
+ model = AutoModelForCausalLM.from_pretrained(MODEL_NAME, torch_dtype=torch_dtype)
15
+
16
+ # === 3️⃣ LoRA AYARLARI ===
17
+ lora_config = LoraConfig(
18
+ r=8,
19
+ lora_alpha=32,
20
+ lora_dropout=0.1,
21
+ bias="none",
22
+ target_modules=["q_proj", "v_proj"],
23
+ )
24
+ model = get_peft_model(model, lora_config)
25
+
26
+ # === 4️⃣ VERİ SETİ ===
27
+ dataset = load_dataset("oscar", "unshuffled_deduplicated_tr", trust_remote_code=True) # trust_remote_code=True
28
+ subset = dataset["train"].shuffle(seed=42).select(range(10000)) # Küçük subset seçiyoruz (10.000 örnek)
29
+
30
+ # === 5️⃣ TOKENLEŞTİRME FONKSİYONU ===
31
+ @spaces.GPU
32
+ def tokenize_function(examples):
33
+ return tokenizer(examples["text"], truncation=True, max_length=512)
34
+
35
+ tokenized_datasets = subset.map(tokenize_function, batched=True)
36
+
37
+ # === 6️⃣ EĞİTİM AYARLARI ===
38
+ # Eğitimde kaç adım olduğunu hesaplayalım
39
+ train_size = len(tokenized_datasets) # 10,000 örnek
40
+ batch_size = 1 # Batch size 1
41
+ num_epochs = 1 # 1 epoch eğitimi
42
+ max_steps = (train_size // batch_size) * num_epochs # max_steps hesapla
43
+
44
+ training_args = TrainingArguments(
45
+ output_dir="./mistral_lora",
46
+ per_device_train_batch_size=1,
47
+ gradient_accumulation_steps=16,
48
+ learning_rate=5e-4,
49
+ num_train_epochs=1,
50
+ max_steps=max_steps, # Buraya max_steps parametresini ekliyoruz
51
+ save_steps=500,
52
+ save_total_limit=2,
53
+ logging_dir="./logs",
54
+ logging_steps=10,
55
+ optim="adamw_torch",
56
+ train_dataset=split_dataset["train"],
57
+ eval_dataset=split_dataset["test"],
58
+ no_cuda=True, # GPU kullanılmıyor
59
+ )
60
+ main()
61
 
62
  # === 7️⃣ MODEL EĞİTİMİ ===
63
  @spaces.GPU