fioriclass commited on
Commit
2e5a32e
·
1 Parent(s): bc3d9ee

pas d'eval avant la fin pour les transformers pas d'optimisation des parametres

Browse files
src/main.py CHANGED
@@ -153,11 +153,20 @@ def main(cfg: DictConfig) -> None:
153
  # Log des métriques
154
  mlflow.log_metrics(metrics)
155
 
156
- logger.info("Logging des paramètres...")
157
- trainer_instance.log_parameters_to_mlflow()
 
 
 
 
 
158
 
159
  # Log du modèle final (vectorizer+classifier) sous forme PyFunc
160
- log_cuml_model_to_mlflow(trainer_instance)
 
 
 
 
161
 
162
  logger.info("Pipeline MLflow complet terminé.")
163
 
 
153
  # Log des métriques
154
  mlflow.log_metrics(metrics)
155
 
156
+ # Log des paramètres uniquement si ce n'est pas un trainer Hugging Face
157
+ # car le Trainer HF logue déjà ses propres paramètres (TrainingArguments)
158
+ if not isinstance(trainer_instance, HuggingFaceTransformerTrainer):
159
+ logger.info("Logging des paramètres...")
160
+ trainer_instance.log_parameters_to_mlflow()
161
+ else:
162
+ logger.info("Logging des paramètres désactivé pour HuggingFaceTransformerTrainer (géré par HF Trainer).")
163
 
164
  # Log du modèle final (vectorizer+classifier) sous forme PyFunc
165
+ # Note: Cette fonction est spécifique aux modèles cuML pour le moment
166
+ if hasattr(trainer_instance, 'vectorizer') and trainer_instance.vectorizer is not None:
167
+ log_cuml_model_to_mlflow(trainer_instance)
168
+ else:
169
+ logger.info("Logging du modèle PyFunc non applicable pour ce type de trainer.")
170
 
171
  logger.info("Pipeline MLflow complet terminé.")
172
 
src/trainers/huggingface/huggingface_transformer_trainer.py CHANGED
@@ -257,16 +257,24 @@ class HuggingFaceTransformerTrainer(BaseTrainer):
257
  """
258
  params = self.config.model.params
259
  return TrainingArguments(
260
- output_dir=params.get("output_dir", "./results"),
261
- num_train_epochs=float(params.get("epochs", 3)),
262
- per_device_train_batch_size=int(params.get("batch_size", 8)),
263
- per_device_eval_batch_size=int(params.get("batch_size", 8)),
264
- learning_rate=float(params.get("learning_rate", 5e-5)),
265
- warmup_steps=int(params.get("warmup_steps", 0)),
266
- weight_decay=float(params.get("weight_decay", 0.0)),
267
- # Paramètres d'évaluation simplifiés pour compatibilité
268
- eval_steps=100, # Évaluer tous les 100 pas
269
- save_steps=100, # Sauvegarder tous les 100 pas
270
- logging_dir=params.get("logging_dir", "./logs"),
271
- logging_steps=int(params.get("logging_steps", 10))
272
  )
 
 
 
 
 
 
 
 
 
257
  """
258
  params = self.config.model.params
259
  return TrainingArguments(
260
+ output_dir="./results",
261
+ num_train_epochs=float(params.get("epochs")),
262
+ per_device_train_batch_size=int(params.get("batch_size")),
263
+ per_device_eval_batch_size=int(params.get("batch_size")),
264
+ learning_rate=float(params.get("learning_rate")),
265
+ warmup_steps=int(params.get("warmup_steps")),
266
+ weight_decay=float(params.get("weight_decay")),
267
+ evaluation_strategy="epoch",
268
+ save_strategy="epoch",
269
+ logging_dir="./logs",
270
+ logging_steps=10
271
+ # Ne pas désactiver les rapports MLflow intégrés
272
  )
273
+
274
+ def optimize_if_needed(self) -> None:
275
+ """
276
+ Surcharge la méthode optimize_if_needed de BaseTrainer pour désactiver
277
+ l'optimisation des hyperparamètres pour les modèles transformers.
278
+ """
279
+ # Ne rien faire, ce qui désactive l'optimisation des hyperparamètres
280
+ return