Spaces:
Sleeping
Sleeping
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"):
|