Spaces:
Sleeping
Sleeping
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 |
-
|
157 |
-
|
|
|
|
|
|
|
|
|
|
|
158 |
|
159 |
# Log du modèle final (vectorizer+classifier) sous forme PyFunc
|
160 |
-
|
|
|
|
|
|
|
|
|
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=
|
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 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
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
|