Spaces:
Running
Running
File size: 5,394 Bytes
5fe83da |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
#!/usr/bin/env python3
"""
Quick Start Script for Trackio Integration
Tests the monitoring functionality without full training
"""
import os
import json
import logging
from datetime import datetime
from monitoring import SmolLM3Monitor
def setup_logging():
"""Setup logging configuration"""
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
return logging.getLogger(__name__)
def test_trackio_integration():
"""Test Trackio integration with sample data"""
logger = setup_logging()
print("π Testing Trackio Integration")
print("=" * 40)
# Get Trackio URL from user or environment
trackio_url = os.getenv('TRACKIO_URL')
if not trackio_url:
trackio_url = input("Enter your Trackio Space URL (or press Enter to skip): ").strip()
if not trackio_url:
print("β οΈ No Trackio URL provided. Running in local mode only.")
trackio_url = None
# Initialize monitor
experiment_name = f"test_experiment_{datetime.now().strftime('%Y%m%d_%H%M%S')}"
monitor = SmolLM3Monitor(
experiment_name=experiment_name,
trackio_url=trackio_url,
enable_tracking=trackio_url is not None,
log_artifacts=True,
log_metrics=True,
log_config=True
)
print(f"β
Monitor initialized for experiment: {experiment_name}")
# Test configuration logging
sample_config = {
"model_name": "HuggingFaceTB/SmolLM3-3B",
"batch_size": 4,
"learning_rate": 2e-5,
"max_iters": 1000,
"max_seq_length": 4096,
"test_mode": True
}
print("π Logging configuration...")
monitor.log_config(sample_config)
# Test metrics logging
print("π Logging sample metrics...")
for step in range(0, 100, 10):
metrics = {
"loss": 2.0 - (step * 0.015), # Simulate decreasing loss
"accuracy": 0.5 + (step * 0.004), # Simulate increasing accuracy
"learning_rate": 2e-5,
"step": step
}
monitor.log_metrics(metrics, step=step)
print(f" Step {step}: loss={metrics['loss']:.3f}, accuracy={metrics['accuracy']:.3f}")
# Test system metrics
print("π» Logging system metrics...")
monitor.log_system_metrics(step=50)
# Test evaluation results
print("π Logging evaluation results...")
eval_results = {
"eval_loss": 1.2,
"eval_accuracy": 0.85,
"perplexity": 3.3,
"bleu_score": 0.72
}
monitor.log_evaluation_results(eval_results, step=100)
# Test training summary
print("π Logging training summary...")
summary = {
"final_loss": 0.5,
"final_accuracy": 0.89,
"total_steps": 100,
"training_time_hours": 2.5,
"model_size_gb": 6.2,
"test_mode": True
}
monitor.log_training_summary(summary)
# Close monitoring
monitor.close()
print("β
Trackio integration test completed!")
if trackio_url:
experiment_url = monitor.get_experiment_url()
if experiment_url:
print(f"π View your experiment at: {experiment_url}")
return True
def test_local_monitoring():
"""Test local monitoring without Trackio"""
logger = setup_logging()
print("π§ Testing Local Monitoring")
print("=" * 30)
# Initialize monitor without Trackio
experiment_name = f"local_test_{datetime.now().strftime('%Y%m%d_%H%M%S')}"
monitor = SmolLM3Monitor(
experiment_name=experiment_name,
enable_tracking=False, # Disable Trackio
log_artifacts=True,
log_metrics=True,
log_config=True
)
print(f"β
Local monitor initialized for experiment: {experiment_name}")
# Test local logging
sample_config = {
"model_name": "HuggingFaceTB/SmolLM3-3B",
"batch_size": 4,
"learning_rate": 2e-5,
"local_test": True
}
print("π Logging configuration locally...")
monitor.log_config(sample_config)
# Test local metrics
print("π Logging sample metrics locally...")
for step in range(0, 50, 10):
metrics = {
"loss": 1.8 - (step * 0.02),
"accuracy": 0.6 + (step * 0.005),
"step": step
}
monitor.log_metrics(metrics, step=step)
print(f" Step {step}: loss={metrics['loss']:.3f}, accuracy={metrics['accuracy']:.3f}")
print("β
Local monitoring test completed!")
return True
def main():
"""Main function"""
print("Trackio Integration Quick Start")
print("=" * 40)
# Test local monitoring first
test_local_monitoring()
print()
# Test Trackio integration if available
try:
test_trackio_integration()
except Exception as e:
print(f"β Trackio integration test failed: {e}")
print("π‘ Make sure you have a valid Trackio Space URL")
print("\nπ Quick start completed!")
print("\nNext steps:")
print("1. Deploy Trackio to Hugging Face Spaces (see DEPLOYMENT_GUIDE.md)")
print("2. Update your training script with Trackio integration")
print("3. Run your first monitored training session")
if __name__ == "__main__":
main() |