#!/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()