Spaces:
Runtime error
Runtime error
Upload folder using huggingface_hub
Browse files- run_transformers_training.py +31 -2
run_transformers_training.py
CHANGED
@@ -43,7 +43,7 @@ import torch
|
|
43 |
transformers_available = find_spec("transformers") is not None
|
44 |
if transformers_available:
|
45 |
import transformers
|
46 |
-
from transformers import AutoTokenizer, TrainingArguments, Trainer, set_seed
|
47 |
from torch.utils.data import DataLoader
|
48 |
|
49 |
peft_available = find_spec("peft") is not None
|
@@ -627,8 +627,26 @@ def log_gpu_memory_usage(step=None, frequency=50, clear_cache_threshold=0.9, lab
|
|
627 |
log_info(f"{prefix}GPU Memory: {', '.join(memory_info)}")
|
628 |
|
629 |
class LoggingCallback(TrainerCallback):
|
|
|
|
|
|
|
|
|
630 |
def __init__(self, model=None, dataset=None):
|
631 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
632 |
self.training_started = time.time()
|
633 |
self.last_log_time = time.time()
|
634 |
self.last_step_time = None
|
@@ -1490,6 +1508,17 @@ def main():
|
|
1490 |
logger.info("Starting training process")
|
1491 |
|
1492 |
try:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1493 |
# Check for potential import order issue and warn early
|
1494 |
if "transformers" in sys.modules and "unsloth" in sys.modules:
|
1495 |
if list(sys.modules.keys()).index("transformers") < list(sys.modules.keys()).index("unsloth"):
|
|
|
43 |
transformers_available = find_spec("transformers") is not None
|
44 |
if transformers_available:
|
45 |
import transformers
|
46 |
+
from transformers import AutoTokenizer, TrainingArguments, Trainer, TrainerCallback, set_seed
|
47 |
from torch.utils.data import DataLoader
|
48 |
|
49 |
peft_available = find_spec("peft") is not None
|
|
|
627 |
log_info(f"{prefix}GPU Memory: {', '.join(memory_info)}")
|
628 |
|
629 |
class LoggingCallback(TrainerCallback):
|
630 |
+
"""
|
631 |
+
Custom callback for logging training progress and metrics.
|
632 |
+
Provides detailed information about training status, GPU memory usage, and model performance.
|
633 |
+
"""
|
634 |
def __init__(self, model=None, dataset=None):
|
635 |
+
# Ensure we have TrainerCallback
|
636 |
+
try:
|
637 |
+
super().__init__()
|
638 |
+
except Exception as e:
|
639 |
+
# Try to import directly if initial import failed
|
640 |
+
try:
|
641 |
+
from transformers.trainer_callback import TrainerCallback
|
642 |
+
self.__class__.__bases__ = (TrainerCallback,)
|
643 |
+
super().__init__()
|
644 |
+
log_info("Successfully imported TrainerCallback directly")
|
645 |
+
except ImportError as ie:
|
646 |
+
log_info(f"❌ Error: Could not import TrainerCallback: {str(ie)}")
|
647 |
+
log_info("Please ensure transformers is properly installed")
|
648 |
+
raise
|
649 |
+
|
650 |
self.training_started = time.time()
|
651 |
self.last_log_time = time.time()
|
652 |
self.last_step_time = None
|
|
|
1508 |
logger.info("Starting training process")
|
1509 |
|
1510 |
try:
|
1511 |
+
# Verify critical imports are available
|
1512 |
+
if not transformers_available:
|
1513 |
+
log_info("❌ Error: transformers library not available. Please install it with: pip install transformers")
|
1514 |
+
return 1
|
1515 |
+
|
1516 |
+
# Check for required classes
|
1517 |
+
for required_class in ["Trainer", "TrainingArguments", "TrainerCallback"]:
|
1518 |
+
if not hasattr(transformers, required_class):
|
1519 |
+
log_info(f"❌ Error: {required_class} not found in transformers. Please update transformers.")
|
1520 |
+
return 1
|
1521 |
+
|
1522 |
# Check for potential import order issue and warn early
|
1523 |
if "transformers" in sys.modules and "unsloth" in sys.modules:
|
1524 |
if list(sys.modules.keys()).index("transformers") < list(sys.modules.keys()).index("unsloth"):
|