#!/usr/bin/env python3 """ Add demo training data to an existing experiment This will populate the experiment with realistic training metrics for visualization """ import json import logging import numpy as np from datetime import datetime from trackio_api_client import TrackioAPIClient # Setup logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def add_demo_training_data(experiment_id: str, num_steps: int = 50): """Add realistic demo training data to an experiment""" client = TrackioAPIClient("https://tonic-test-trackio-test.hf.space") print(f"šŸŽÆ Adding demo training data to experiment: {experiment_id}") print(f"šŸ“Š Will add {num_steps} metric entries...") # Simulate realistic training metrics for step in range(0, num_steps * 25, 25): # Every 25 steps # Simulate loss decreasing over time with some noise base_loss = 2.0 * np.exp(-step / 500) noise = 0.1 * np.random.random() loss = max(0.1, base_loss + noise) # Simulate accuracy increasing over time base_accuracy = 0.3 + 0.6 * (1 - np.exp(-step / 300)) accuracy = min(0.95, base_accuracy + 0.05 * np.random.random()) # Simulate learning rate decay lr = 3.5e-6 * (0.9 ** (step // 200)) # Simulate GPU memory usage gpu_memory = 20 + 5 * np.random.random() # Simulate training time per step training_time = 0.5 + 0.2 * np.random.random() metrics = { "loss": round(loss, 4), "accuracy": round(accuracy, 4), "learning_rate": round(lr, 8), "gpu_memory_gb": round(gpu_memory, 2), "training_time_per_step": round(training_time, 3), "epoch": step // 100 + 1, "samples_per_second": round(50 + 20 * np.random.random(), 1) } # Log metrics to the experiment result = client.log_metrics(experiment_id, metrics, step) if "success" in result: print(f"āœ… Step {step}: Loss={loss:.4f}, Accuracy={accuracy:.4f}") else: print(f"āŒ Step {step}: Failed to log metrics - {result}") print(f"\nšŸŽ‰ Demo data added successfully!") print(f"šŸ“Š Total steps logged: {num_steps}") print(f"šŸ”— View in Trackio Space: https://tonic-test-trackio-test.hf.space") print(f"šŸ“ˆ Go to 'Visualizations' tab and select experiment: {experiment_id}") def main(): """Main function""" print("šŸš€ Trackio Demo Data Generator") print("=" * 50) # Your experiment ID from the logs experiment_id = "exp_20250720_101955" # petit-elle-l-aime-3-balanced print(f"šŸ“‹ Target experiment: {experiment_id}") print(f"šŸ“ Experiment name: petit-elle-l-aime-3-balanced") # Add demo data add_demo_training_data(experiment_id, num_steps=50) print("\n" + "=" * 50) print("šŸŽÆ Next Steps:") print("1. Go to https://tonic-test-trackio-test.hf.space") print("2. Click on 'šŸ“Š Visualizations' tab") print("3. Enter your experiment ID: exp_20250720_101955") print("4. Select a metric (loss, accuracy, etc.)") print("5. Click 'Create Plot' to see the training curves!") print("=" * 50) if __name__ == "__main__": main()