George-API commited on
Commit
bbeed83
·
verified ·
1 Parent(s): 127e6b1

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. 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
- super().__init__()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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"):