Overview
The pipeline generates comprehensive artifacts for reproducibility, debugging, and analysis. All outputs are organized under the configuredoutput_dir (default: artifacts_edge or artifacts_server).
Directory Structure
Core Reports
pipeline_report.json
Complete execution summary containing all metrics, benchmarks, and quality reports. Location:reports/pipeline_report.json
Key sections:
- Verify reproducibility via
dataset_fingerprint.sha256 - Compare runs across different configurations
- Extract model metrics for reporting
- Debug pipeline failures
streaming_chunks.jsonl
Newline-delimited JSON with detailed metrics for each streaming chunk. Location:reports/streaming_chunks.jsonl
Example record:
- Identify memory bottlenecks (look for
memory_exceeded: true) - Analyze adaptive resizing behavior (check
retries) - Profile per-chunk performance
- Validate spill-to-disk strategy
run_manifest.json
Reproducibility manifest for validating identical runs. Location:metadata/run_manifest.json
Contents: Same as reproducibility section in pipeline_report.json
Use case: Quickly verify configuration without parsing full report
Benchmark Artifacts
constraint_experiment.csv
Results from sweeping resource constraints (chunk size, memory, compute). Location:benchmarks/constraint_experiment.csv
Columns:
| Column | Type | Description |
|---|---|---|
chunk_size | int | Rows per chunk |
memory_limit_mb | int | Maximum memory constraint |
compute_limit | float | CPU utilization cap (0.0-1.0) |
preprocessing_latency_s | float | Total preprocessing time |
peak_memory_mb | float | Peak memory usage |
training_time_s | float | Model training time |
model_accuracy_r2 | float | Model R² score |
model_rmse | float | Model RMSE |
engine.py:389-413 (run_constraint_experiment)
Example analysis:
significance_tests.csv
Statistical significance tests comparing batch vs. streaming modes. Location:benchmarks/significance_tests.csv
Columns:
| Column | Type | Description |
|---|---|---|
latency_pvalue | float | Permutation test p-value for latency |
throughput_pvalue | float | Permutation test p-value for throughput |
latency_mean_delta_s | float | Mean latency difference (streaming - batch) |
throughput_mean_delta_rows_s | float | Mean throughput difference |
p-value < 0.05: Statistically significant differencep-value >= 0.05: No significant difference (modes are comparable)
engine.py:134-147 (_permutation_pvalue)
Visualization Plots
Three PNG plots visualizing trade-offs between resources and accuracy.latency_vs_accuracy.png
X-axis: Preprocessing latency (seconds)Y-axis: Model accuracy (R²)
Color: Compute constraint (viridis colormap) Use case: Identify configurations with optimal latency-accuracy trade-off
memory_vs_accuracy.png
X-axis: Peak memory usage (MB)Y-axis: Model accuracy (R²)
Color: Memory limit (plasma colormap) Use case: Select memory-efficient configurations without sacrificing accuracy
latency_memory_accuracy.png
X-axis: Peak memory (MB)Y-axis: Latency (seconds)
Color: Model accuracy (coolwarm colormap) Use case: Three-way trade-off analysis for deployment decisions Generated by:
engine.py:511-555 (_plot_experiment_results)
Profiling Artifacts
operator_profile.csv
Per-operator timing breakdown for each streaming chunk. Location:profiles/operator_profile.csv
Columns:
| Column | Type | Description |
|---|---|---|
chunk_id | int | Chunk identifier |
preprocess_s | float | Data cleaning time |
feature_engineering_s | float | Feature derivation time |
feature_selection_s | float | Multicollinearity removal time |
encode_scale_s | float | Encoding and scaling time |
estimated_input_bandwidth_mb_s | float | Input I/O bandwidth |
input_bytes | int | Raw input size |
engine.py:481-492 (extracted from chunk_metrics)
Example analysis:
- Identify bottleneck operators
- Validate operator-level optimizations
- Estimate per-stage latency for SLA planning
Intermediate Artifacts
Spilled Chunks
Whenspill_to_disk: true, intermediate feature matrices are persisted to CSV.
Location: intermediate/
Files:
stream_chunk_{id}_X.csv: Feature matrix (X)stream_chunk_{id}_y.csv: Target variable (y)
- X: CSV with feature columns (encoded, scaled)
- y: Single-column CSV with header
salary
engine.py:260-266
- Resume interrupted runs (manual reassembly)
- Debug feature engineering issues
- Validate encoding consistency across chunks
Artifact Reference Table
| Artifact | Format | Size (typical) | Purpose | Generated by |
|---|---|---|---|---|
pipeline_report.json | JSON | 50-200 KB | Complete run summary | engine.py:473-476 |
streaming_chunks.jsonl | JSONL | 10-50 KB | Per-chunk metrics | engine.py:493-495 |
run_manifest.json | JSON | 1-5 KB | Reproducibility check | engine.py:478-479 |
constraint_experiment.csv | CSV | 1-5 KB | Resource sweep results | engine.py:502-503 |
significance_tests.csv | CSV | <1 KB | Statistical tests | engine.py:500 |
operator_profile.csv | CSV | 5-20 KB | Operator timing | engine.py:481-492 |
latency_vs_accuracy.png | PNG | 50-100 KB | Latency trade-off plot | engine.py:512-525 |
memory_vs_accuracy.png | PNG | 50-100 KB | Memory trade-off plot | engine.py:527-540 |
latency_memory_accuracy.png | PNG | 50-100 KB | Three-way trade-off plot | engine.py:542-555 |
stream_chunk_*_X.csv | CSV | 1-5 KB each | Spilled features | engine.py:264 |
stream_chunk_*_y.csv | CSV | <1 KB each | Spilled targets | engine.py:265 |
Artifact Lifecycle
Creation
All artifacts are written at the end ofrun_all() execution:
Retention
Recommendations:-
Keep indefinitely:
pipeline_report.json(small, high value)run_manifest.json(reproducibility)constraint_experiment.csv(comparative analysis)
-
Archive after 30 days:
streaming_chunks.jsonl(detailed, but large)operator_profile.csv(profiling data)- Visualization PNGs (regenerable from CSVs)
-
Delete after run:
intermediate/directory (temporary spill files)
Cleanup
Working with Artifacts
Python Analysis
Command-Line Analysis
Best Practices
Use timestamped output directories
Use timestamped output directories
Avoid overwriting artifacts from previous runs:
Validate fingerprints across runs
Validate fingerprints across runs
Ensure reproducibility by comparing SHA-256 hashes:
Archive to external storage
Archive to external storage
Configure external storage for long-term retention:
Clean intermediate files immediately
Clean intermediate files immediately
If
spill_to_disk is enabled, clean up after successful runs:Related Documentation
- Edge Device Deployment - Resource-constrained artifacts
- Server Deployment - High-throughput artifacts
- Hardware Profiling - Deep dive into telemetry