graph LR
    TrainingHub["training-hub SDK<br/>v0.8.0"]

    %% Core Required Dependencies
    subgraph CoreDeps["Core Dependencies (Required)"]
        PyTorch["torch >=2.6.0<br/>Deep learning framework"]
        Transformers["transformers >=4.57.6<br/>Model loading + tokenization"]
        Accelerate["accelerate >=1.5.0<br/>Distributed training"]
        Datasets["datasets<br/>Data loading"]
        PEFT["peft<br/>Parameter-efficient FT"]
        Pandas["pandas<br/>Data manipulation"]
        NumPy["numpy<br/>Numerical operations"]
        Matplotlib["matplotlib<br/>Visualization"]
    end

    %% Backend Dependencies (Required)
    subgraph BackendDeps["Backend Dependencies (Required)"]
        ILabTraining["instructlab-training >=0.14.0<br/>SFT backend"]
        MiniTrainer["mini-trainer >=0.6.0<br/>OSFT backend"]
    end

    %% CUDA Extra Dependencies
    subgraph CUDAExtra["CUDA Extra (Optional)"]
        FlashAttn["flash-attn >=2.7.0<br/>Flash Attention 2"]
        LigerKernel["liger-kernel >=0.5.7<br/>Triton kernels"]
        BitsAndBytes["bitsandbytes >=0.45.3<br/>Quantized training"]
        MambaSSM["mamba-ssm >=2.2.4<br/>State-space model kernels"]
    end

    %% LoRA Extra Dependencies
    subgraph LoRAExtra["LoRA Extra (Optional)"]
        Unsloth["unsloth >=2025.4.5<br/>LoRA SFT backend"]
        TRL["trl >=0.16.1<br/>Transformer RL"]
        XFormers["xformers >=0.29.post4<br/>Memory-efficient attention"]
    end

    %% GRPO Extra Dependencies
    subgraph GRPOExtra["GRPO Extra (Optional)"]
        ART["openpipe-art >=0.3.5<br/>Single-GPU LoRA GRPO"]
        Verl["verl >=0.3.1.post1<br/>Multi-GPU GRPO + FSDP"]
        LiteLLM["litellm ==1.63.11<br/>LLM API abstraction<br/>(pinned for supply chain)"]
        Timm["timm<br/>Image model support"]
    end

    %% External Services
    subgraph ExtServices["External Services"]
        HFHub["HuggingFace Hub<br/>443/TCP HTTPS"]
        WandB["Weights & Biases<br/>443/TCP HTTPS"]
        MLflow["MLflow Server<br/>HTTP/HTTPS"]
        TensorBoard["TensorBoard<br/>Local filesystem"]
    end

    %% training-hub to core deps
    TrainingHub -->|"required"| PyTorch
    TrainingHub -->|"required"| Transformers
    TrainingHub -->|"required"| Accelerate
    TrainingHub -->|"required"| Datasets
    TrainingHub -->|"required"| PEFT
    TrainingHub -->|"required"| Pandas
    TrainingHub -->|"required"| NumPy
    TrainingHub -->|"required"| Matplotlib

    %% training-hub to backend deps
    TrainingHub -->|"required"| ILabTraining
    TrainingHub -->|"required"| MiniTrainer

    %% training-hub to optional deps
    TrainingHub -.->|"cuda extra"| FlashAttn
    TrainingHub -.->|"cuda extra"| LigerKernel
    TrainingHub -.->|"cuda extra"| BitsAndBytes
    TrainingHub -.->|"cuda extra"| MambaSSM

    TrainingHub -.->|"lora extra"| Unsloth
    TrainingHub -.->|"lora extra"| TRL
    TrainingHub -.->|"lora extra"| XFormers

    TrainingHub -.->|"grpo extra"| ART
    TrainingHub -.->|"grpo extra"| Verl
    TrainingHub -.->|"grpo extra"| LiteLLM
    TrainingHub -.->|"grpo extra"| Timm

    %% training-hub to external services
    TrainingHub -->|"model download"| HFHub
    TrainingHub -.->|"experiment tracking"| WandB
    TrainingHub -.->|"experiment tracking"| MLflow
    TrainingHub -.->|"log output"| TensorBoard

    %% Styling
    style TrainingHub fill:#4a90e2,stroke:#333,stroke-width:4px,color:#fff

    classDef required fill:#7ed321,stroke:#333,stroke-width:1px,color:#fff
    classDef optional fill:#f5a623,stroke:#333,stroke-width:1px,color:#fff
    classDef service fill:#e74c3c,stroke:#333,stroke-width:1px,color:#fff

    class PyTorch,Transformers,Accelerate,Datasets,PEFT,Pandas,NumPy,Matplotlib,ILabTraining,MiniTrainer required
    class FlashAttn,LigerKernel,BitsAndBytes,MambaSSM,Unsloth,TRL,XFormers,ART,Verl,LiteLLM,Timm optional
    class HFHub,WandB,MLflow,TensorBoard service
