vector2000 commited on
Commit
06efa4d
·
verified ·
1 Parent(s): 47711b0

Upload finetunning.py

Browse files
Files changed (1) hide show
  1. finetunning.py +60 -0
finetunning.py ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from datasets import Dataset # , load_dataset
3
+ from transformers import (
4
+ AutoTokenizer,
5
+ AutoModelForCausalLM,
6
+ TrainingArguments,
7
+ Trainer,
8
+ DataCollatorForLanguageModeling
9
+ )
10
+
11
+ # Завантаження моделі та токенізатора
12
+ model_name = "facebook/opt-350m"
13
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
14
+ model = AutoModelForCausalLM.from_pretrained(model_name)
15
+
16
+ # Завантаження датасета (приклад з використанням датасета wiki_text)
17
+ # dataset = load_dataset("wikitext", "wikitext-2-raw-v1", split="train")
18
+
19
+ # Завантаження данних з локального тестового файлу
20
+ with open("ilya_klimov_data.txt", "r", encoding="utf-8") as file:
21
+ text_data = file.read().strip()
22
+
23
+ # Створення датасету
24
+ dataset = Dataset.from_dict({"text": [text_data]})
25
+
26
+ # Функція для токенізації данних
27
+ def tokenize_function(examples):
28
+ return tokenizer(examples["text"], truncation=True, padding="max_length", max_length=512)
29
+
30
+ # Токенізация датасету
31
+ tokenized_dataset = dataset.map(tokenize_function, batched=True, remove_columns=dataset.column_names)
32
+
33
+ # Створення data collator
34
+ data_collator = DataCollatorForLanguageModeling(tokenizer=tokenizer, mlm=False)
35
+
36
+ # Налаштування параметрів навчання
37
+ training_args = TrainingArguments(
38
+ output_dir="./results",
39
+ overwrite_output_dir=True,
40
+ num_train_epochs=3,
41
+ per_device_train_batch_size=4,
42
+ save_steps=10_000,
43
+ save_total_limit=2,
44
+ prediction_loss_only=True,
45
+ learning_rate=2e-5,
46
+ )
47
+
48
+ # Ініціалізація Trainer
49
+ trainer = Trainer(
50
+ model=model,
51
+ args=training_args,
52
+ train_dataset=tokenized_dataset,
53
+ data_collator=data_collator,
54
+ )
55
+
56
+ # Запуск fine-tuning
57
+ trainer.train()
58
+
59
+ # Зберігання моделі
60
+ trainer.save_model("./fine_tuned_model")