# samou2/ms-transformer-zday architecture

> Architecture diagram of the GitHub repository samou2/ms-transformer-zday, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/samou2/ms-transformer-zday
- Repository: https://github.com/samou2/ms-transformer-zday

## Overview

Le dépôt est un projet de recherche sur la détection d’intrusions Zero-Day CICIDS2017, avec une interface Streamlit pour rejouer des lots et consulter les résultats. Le parcours principal prépare les jeux de données, entraîne l’encodeur multimodal, compare les détecteurs sur des familles tenues à l’écart, puis expose la démonstration et les mesures. Le README précise que le détecteur retenu est le gradient boosting sur les seules features réseau. Les extraits ne montrent pas tout le câblage de l’interface ni les détails d’implémentation de chaque baseline ; les liens incertains sont omis.

Main entry points: [`data/processed`](https://github.com/samou2/ms-transformer-zday/tree/main/data/processed) (Jeux préparés), [`03_evaluation.py`](https://github.com/samou2/ms-transformer-zday/blob/main/03_evaluation.py) (Évaluation Zero-Day), [`model_ms.py`](https://github.com/samou2/ms-transformer-zday/blob/main/model_ms.py) (Encodeur multimodal), [`02_model_training.py`](https://github.com/samou2/ms-transformer-zday/blob/main/02_model_training.py) (Entraînement supervisé)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Préparation des données"]
  node_prep["Préparation CICIDS"]
  node_sets[("Jeux préparés")]
end

subgraph group_models["Modèles et entraînement"]
  node_trainer["Entraînement supervisé"]
  node_encoder["Encodeur multimodal<br/>[model_ms.py]"]
  node_artifacts[("Modèles et seuils")]
end

subgraph group_research["Évaluation et expériences"]
  node_evaluator["Évaluation Zero-Day<br/>[03_evaluation.py]"]
  node_ablations["Ablations et balayages<br/>[04_ablation.py]"]
  node_oneclass["Deep SVDD<br/>[oneclass_svdd.py]"]
  node_ssl["SSL bénin<br/>[ssl-benign_only.py]"]
  node_metrics[("Résultats mesurés")]
end

subgraph group_product["Démonstration et résultats"]
  node_dashboard["Interface de démonstration<br/>[app.py]"]
  node_diagnostics["Diagnostic local<br/>[diagnostic.py]"]
end

node_researcher(("Chercheur"))

node_prep -->|"prépare"| node_sets
node_trainer -->|"charge les jeux"| node_sets
node_trainer -->|"entraîne"| node_encoder
node_trainer -.->|"sauvegarde"| node_artifacts
node_evaluator -->|"évalue sur"| node_sets
node_evaluator -->|"projette en embedding"| node_encoder
node_evaluator -->|"charge les poids"| node_artifacts
node_evaluator -.->|"produit les métriques"| node_metrics
node_ablations -->|"compare les variantes"| node_encoder
node_ablations -.->|"évalue les variantes"| node_sets
node_oneclass -->|"entraîne et teste"| node_sets
node_oneclass -->|"utilise l’encodeur"| node_encoder
node_ssl -->|"charge les jeux"| node_sets
node_ssl -->|"entraîne l’encodeur"| node_encoder
node_researcher -.->|"prépare les données"| node_prep
node_researcher -.->|"lance l’entraînement"| node_trainer
node_researcher -.->|"lance l’évaluation"| node_evaluator
node_researcher -.->|"consulte"| node_dashboard
node_dashboard -->|"charge les modèles"| node_artifacts
node_dashboard -.->|"présente les résultats"| node_metrics
node_diagnostics -->|"vérifie les données"| node_sets
node_diagnostics -->|"vérifie les poids"| node_artifacts

click node_prep "https://github.com/samou2/ms-transformer-zday/blob/main/01_data_preparation.py"
click node_sets "https://github.com/samou2/ms-transformer-zday/tree/main/data/processed"
click node_trainer "https://github.com/samou2/ms-transformer-zday/blob/main/02_model_training.py"
click node_encoder "https://github.com/samou2/ms-transformer-zday/blob/main/model_ms.py"
click node_artifacts "https://github.com/samou2/ms-transformer-zday/tree/main/models"
click node_evaluator "https://github.com/samou2/ms-transformer-zday/blob/main/03_evaluation.py"
click node_ablations "https://github.com/samou2/ms-transformer-zday/blob/main/04_ablation.py"
click node_oneclass "https://github.com/samou2/ms-transformer-zday/blob/main/experiments/oneclass_svdd.py"
click node_ssl "https://github.com/samou2/ms-transformer-zday/blob/main/experiments/ssl-benign_only.py"
click node_metrics "https://github.com/samou2/ms-transformer-zday/tree/main/results"
click node_dashboard "https://github.com/samou2/ms-transformer-zday/blob/main/app.py"
click node_diagnostics "https://github.com/samou2/ms-transformer-zday/blob/main/diagnostic.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_prep,node_sets toneBlue
class node_trainer,node_encoder,node_artifacts toneAmber
class node_evaluator,node_ablations,node_oneclass,node_ssl,node_metrics toneMint
class node_dashboard,node_diagnostics toneRose
class node_researcher toneIndigo
```

## Components

### Préparation des données

- [Préparation CICIDS](https://github.com/samou2/ms-transformer-zday/blob/main/01_data_preparation.py): `01_data_preparation.py`
- [Jeux préparés](https://github.com/samou2/ms-transformer-zday/tree/main/data/processed): `data/processed`

### Modèles et entraînement

- [Entraînement supervisé](https://github.com/samou2/ms-transformer-zday/blob/main/02_model_training.py): `02_model_training.py`
- [Encodeur multimodal](https://github.com/samou2/ms-transformer-zday/blob/main/model_ms.py): `model_ms.py`
- [Modèles et seuils](https://github.com/samou2/ms-transformer-zday/tree/main/models): `models`

### Évaluation et expériences

- [Évaluation Zero-Day](https://github.com/samou2/ms-transformer-zday/blob/main/03_evaluation.py): `03_evaluation.py`
- [Ablations et balayages](https://github.com/samou2/ms-transformer-zday/blob/main/04_ablation.py): `04_ablation.py`
- [Deep SVDD](https://github.com/samou2/ms-transformer-zday/blob/main/experiments/oneclass_svdd.py): `experiments/oneclass_svdd.py`
- [SSL bénin](https://github.com/samou2/ms-transformer-zday/blob/main/experiments/ssl-benign_only.py): `experiments/ssl-benign_only.py`
- [Résultats mesurés](https://github.com/samou2/ms-transformer-zday/tree/main/results): `results`

### Démonstration et résultats

- [Interface de démonstration](https://github.com/samou2/ms-transformer-zday/blob/main/app.py): `app.py`
- [Diagnostic local](https://github.com/samou2/ms-transformer-zday/blob/main/diagnostic.py): `diagnostic.py`

### Other components

- **Chercheur**

## Connections

- Préparation CICIDS → Jeux préparés: prépare
- Entraînement supervisé → Jeux préparés: charge les jeux (evidence: `02_model_training.py`)
- Entraînement supervisé → Encodeur multimodal: entraîne (evidence: `02_model_training.py`)
- Entraînement supervisé → Modèles et seuils: sauvegarde
- Évaluation Zero-Day → Jeux préparés: évalue sur (evidence: `03_evaluation.py`)
- Évaluation Zero-Day → Encodeur multimodal: projette en embedding (evidence: `03_evaluation.py`)
- Évaluation Zero-Day → Modèles et seuils: charge les poids (evidence: `03_evaluation.py`)
- Évaluation Zero-Day → Résultats mesurés: produit les métriques
- Ablations et balayages → Encodeur multimodal: compare les variantes (evidence: `04_ablation.py`)
- Ablations et balayages → Jeux préparés: évalue les variantes
- Deep SVDD → Jeux préparés: entraîne et teste (evidence: `experiments/oneclass_svdd.py`)
- Deep SVDD → Encodeur multimodal: utilise l’encodeur (evidence: `experiments/oneclass_svdd.py`)
- SSL bénin → Jeux préparés: charge les jeux (evidence: `experiments/ssl-benign_only.py`)
- SSL bénin → Encodeur multimodal: entraîne l’encodeur (evidence: `experiments/ssl-benign_only.py`)
- Chercheur → Préparation CICIDS: prépare les données
- Chercheur → Entraînement supervisé: lance l’entraînement
- Chercheur → Évaluation Zero-Day: lance l’évaluation
- Chercheur → Interface de démonstration: consulte
- Interface de démonstration → Modèles et seuils: charge les modèles (evidence: `app.py`)
- Interface de démonstration → Résultats mesurés: présente les résultats
- Diagnostic local → Jeux préparés: vérifie les données (evidence: `diagnostic.py`)
- Diagnostic local → Modèles et seuils: vérifie les poids (evidence: `diagnostic.py`)
