Andon Alerting (Jidoka) - Entrenar - Training & Optimization Library
Description: A comprehensive guide to building neural network training systems with autograd, optimizers, LoRA/QLoRA, and quantization using EXTREME TDD methodology

# Andon Alerting (Jidoka)

Toyota Way Jidoka (自働化) principle: Stop-the-line on critical failures.

## Concept

In Toyota manufacturing, the Andon cord allows any worker to stop the production line when they detect a defect. In training, this translates to automatic stopping on critical issues.

## Usage

    #![allow(unused)]
    fn main() {
    use entrenar::monitor::{AndonSystem, AlertLevel, AndonConfig};

    let config = AndonConfig {
        stop_on_nan: true,
        stop_on_inf: true,
        loss_spike_threshold: 10.0,
    };

    let mut andon = AndonSystem::with_config(config);

    // During training
    if loss.is_nan() {
        andon.alert(AlertLevel::Critical, "NaN loss detected");
    }

    if andon.should_stop() {
        println!("Training stopped by Andon system");
        break;
    }
    }

## Alert Levels

Level | Description | Default Action
--- | --- | ---
`Info` | Informational | Log only
`Warning` | Potential issue | Log + notify
`Error` | Serious issue | Log + pause
`Critical` | Training failure | Stop immediately

## Automatic Detection

The AndonSystem automatically detects:

- NaN values in loss or gradients
- Infinity values in loss or gradients
- Loss spikes (sudden large increases)
- Gradient explosion (norm > threshold)

## Integration with Training Loop

    #![allow(unused)]
    fn main() {
    let mut andon = AndonSystem::new();

    for epoch in 0..max_epochs {
        let loss = train_step(&model);

        // Check for issues
        andon.check_loss(loss);
        andon.check_gradients(&gradients);

        if andon.should_stop() {
            println!("Alerts: {:?}", andon.get_alerts());
            break;
        }
    }
    }