Lookadragon21 commited on
Commit
2df7c78
·
verified ·
1 Parent(s): 5c3a186

Update prepare_eli5_for_clm.py

Browse files
Files changed (1) hide show
  1. prepare_eli5_for_clm.py +64 -0
prepare_eli5_for_clm.py CHANGED
@@ -74,3 +74,67 @@ from transformers import DataCollatorForLanguageModeling
74
 
75
  tokenizer.pad_token = tokenizer.eos_token
76
  data_collator = DataCollatorForLanguageModeling(tokenizer=tokenizer, mlm=False)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
 
75
  tokenizer.pad_token = tokenizer.eos_token
76
  data_collator = DataCollatorForLanguageModeling(tokenizer=tokenizer, mlm=False)
77
+
78
+
79
+ # ========================================
80
+ # 8. CARREGAR MODELO GPT-2
81
+ # ========================================
82
+ from transformers import AutoModelForCausalLM
83
+
84
+ model = AutoModelForCausalLM.from_pretrained("distilbert/distilgpt2")
85
+
86
+ # ========================================
87
+ # 9. CONFIGURAR TREINAMENTO
88
+ # ========================================
89
+ from transformers import TrainingArguments, Trainer
90
+
91
+ training_args = TrainingArguments(
92
+ output_dir="./gpt2-eli5-finetuned-by-yvens", # Onde salvar os checkpoints
93
+
94
+ # === ESTRATÉGIA DE TREINAMENTO ===
95
+ num_train_epochs=3, # Número de épocas (passagens pelo dataset)
96
+ per_device_train_batch_size=8, # Exemplos por batch (ajuste se der OOM)
97
+ per_device_eval_batch_size=8, # Batch size para avaliação
98
+
99
+ # === OTIMIZAÇÃO ===
100
+ learning_rate=2e-5, # Taxa de aprendizado
101
+ weight_decay=0.01, # Regularização (evita overfitting)
102
+ warmup_steps=500, # Passos de aquecimento do LR
103
+
104
+ # === AVALIAÇÃO ===
105
+ eval_strategy="epoch", # Avaliar ao final de cada época
106
+ save_strategy="epoch", # Salvar checkpoint a cada época
107
+ load_best_model_at_end=True, # Carregar o melhor modelo ao final
108
+
109
+ # === LOGGING ===
110
+ logging_steps=100, # Log a cada 100 passos
111
+
112
+ # === PERFORMANCE (CPU/GPU) ===
113
+ # fp16=True, # Descomente se tiver GPU NVIDIA
114
+ # push_to_hub=True, # Descomente para enviar ao HF Hub
115
+ )
116
+
117
+ # ========================================
118
+ # 10. CRIAR TRAINER
119
+ # ========================================
120
+ trainer = Trainer(
121
+ model=model,
122
+ args=training_args,
123
+ train_dataset=lm_dataset["train"],
124
+ eval_dataset=lm_dataset["test"],
125
+ data_collator=data_collator,
126
+ processing_class=tokenizer,
127
+ )
128
+
129
+ # ========================================
130
+ # 11. TREINAR! 🚀
131
+ # ========================================
132
+ trainer.train()
133
+
134
+ # ========================================
135
+ # 12. SALVAR MODELO FINAL
136
+ # ========================================
137
+ trainer.save_model("./gpt2-eli5-final-by-Yvens")
138
+ tokenizer.save_pretrained("./gpt2-eli5-final-by-Yvens-Yan")
139
+
140
+ print("✅ Treinamento concluído!")