Métriques de visualisation AI
1) Qu'est-ce que la visualisation AI
La visualisation AI des métriques est une boucle où les modèles (ML/LLM) sont automatiquement :1. Choisir le type de graphe et d'axe approprié,
2. mettre en évidence les schémas/anomalies/fractures de tendance,
3. formuler un texte explicable (insight/narrative),
4. proposent des actions (Next Best Action),
5. Adapter la vue au contexte de l'utilisateur et de l'appareil.
L'objectif est de raccourcir le chemin de la question à la réponse : moins de choix manuel des charts, plus de sens vérifiables.
2) Architecture dans la paume de votre main
1. Semantic Layer : définitions unifiées des métriques/mesures (glossaire, formules, agrégations, accès).
2. NL→Query : convertir une requête en langage naturel en SQL/SPARQL/DSL.
3. Query→Viz : sélection automatique de la grammaire du graphique et des paramètres (axes, échelles logiques, couleur/shape/size).
4. Insight Engine : détection d'anomalies, breakpoints, seasonality, hints causal ; les priorités des signaux.
5. Narrative : génération d'un texte fact-checker avec une référence aux valeurs et aux intervalles de confiance.
6. RAG : intervertir le contexte à partir du catalogue de données/configurations (métadonnées, règles commerciales).
7. Policy Guardrails : vie privée/accès/masquage, vérification des nombres et des liens.
8. Livraison : widgets web, cartes mobiles, PDF/snapshots, webhooks dans CRM/Slack.
3) Grammaire des graphiques et auto-sélection
Principes :- Temps → ligne/aire ; Catégories (≤8) → colonnes/tuiles ; Classement → bar/leader ; distribution de → histogramme/violine/boîte ; corrélations → scatter/heatmap.
- L'axe des loges en croissance exponentielle ; Rationnement (%) en parts ; small multiples - quand il y a beaucoup de séries.
- Choix des couleurs : palettes sémantiques pour les statuts ; la couleur ≠ à la fois un canal d'ordre et de catégorie.
- Les signatures n'ont qu'un sens : minimiser l'encre.
yaml chart:
mark: line encoding:
x: {field: dt, type: temporal, timeUnit: day}
y: {field: ggr, type: quantitative, aggregate: sum}
color: {field: region, type: nominal, legend: top, limit: 6}
transforms:
- filter: "dt >= now()-90d"
- calculate: {expr: "rolling_mean(ggr,7)", as: "ggr_7d"}
annotations:
- rule: {type: "changepoint", method: "cusum"}
- band: {type: "confidence", metric: "ggr", level: 0.9}
interactions: {tooltip: true, zoom: "x", brush: "x"}
4) NL→Viz : de la question au graphique
Intention de parsing : métrique, incisions, période, filtres, agrégats.
Validation sur la couche sémantique : uniquement les champs/formules résolus.
Post-traitement : sélection de la carte par type de champ et cardinalité, auto-seuil bining/sampling.
Rétroaction : afficher SQL/DSL et download de données (masqué) pour renforcer la confiance.
yaml ask: "Покажи GGR по странам за 90 дней, выдели резкие изменения"
metric: ggr dims: [country, dt]
filters: {dt: "last_90d"}
viz_hint: "line + changepoints"
5) Insight Engine : comment générer des « sens »
Signaux :- Anomalies : décomposition STL, ESD/Prophet, BOCPD ; on marque direction/grandeur/confiance.
- Fractures de tendance : Test CUSUM/Chow ; régression locale.
- Saisonnalité/campagnes : comparaison « jour férié vs jour ordinaire », uplift à bazline.
- Segment-driver : Shapley/feature importance au-dessus d'une régression tabulaire ou d'un boosting dégradé.
- Indices de cause à effet : indication des modifications concomitantes (dans le cadre de l'observation) + rappel « c'est une corrélation ».
1. impact sur la métrique d'entreprise, 2) force de l'effet, 3) nouveauté, 4) confiance.
6) Génération de narration (texte)
Exigences : faits avec des chiffres et des dates, indication de la base de comparaison, précision des termes.
Modèle :7) Adaptation au contexte (personnalisation)
Rôles : C-level - cartes KPI et récits ; gestionnaires - coupes et alertes ; analyses - SQL/DSL et paramètres de modèle.
Appareil : sparklines compacts sur le mobile, plein viz sur le bureau.
Géo/langue/monnaie/fuseau horaire - automatiquement.
8) L'explication et la confiance
Chaque signature du graphique cliquable → révèle le calcul (formule, agrégations, filtres).
Nous indiquons l'incertitude statistique (barres de confiance, barres d'erreur).
Pour les descriptions LLM : RAG par métadonnées, rapprochement des nombres par source (vérification des montants/fourchettes).
Journal des modifications : version des formules, datacets, chart.
9) Qualité et imagerie SLO
Latency p95 rendu, time-to-first-insight, proportion de requêtes NL réussies.
Explainability score (présence de nombres/références/CI dans le récit).
Accuracy NL→SQL (ex. rapport sur les demandes de référence).
Accessibilité : contraste, texte alt, clavier, mode daltonisme.
10) Disponibilité (A11y) et modèles UX
Palettes de couleurs indépendantes de la couleur ; duplication couleur-forme/motif.
Alternatives de texte et data-table view à côté du graphique.
Pièges de focus, ordre raisonnable ; mise à l'échelle sans casser les axes.
11) Sécurité et vie privée
RLS/CLS au niveau des requêtes et des données tooltips.
Masquage/bining pour les catégories rares pour éviter la re-identification.
Journaux de questions NL - PDn-coffre-fort : Tokenization/révision des PII potentiels.
Exportation des captures d'écran/CSV - avec filigrane et métadonnées de version.
12) Économie et coût
Cost-aware : mise en cache des mystères/résultats, matérialisation des vitrines « chaudes », sampling pour prévisualiser.
Limitation des requêtes NL « lourdes » (scan caps), rendu différé pour les grandes séries.
Modèles bon marché pour la détection de base + évaluation offline lourde la nuit.
13) Anti-modèles
« Auto-chart a toujours raison ». Il faut valider les types/cardinalités/logique des métriques.
Too much ink. Des 3D/dual-axis complexes sans besoin de distorsion →.
Sans indication d'incertitude. Les textes sont « catégoriques », mais trompeurs.
NL→SQL sans couche sémantique. Fragilité et erreurs d'agrégation.
Insights magiques sans références aux nombres. Méfiance et rejet de l'instrument.
14) Feuille de route pour la mise en œuvre
1. Fondation : couche sémantique, glossaire de métriques, accès (RLS/CLS), kits de test de NL→SQL.
2. MVP NL→Viz : top 10 des questions, auto-chart sur la grammaire, validation des types/cardinalités.
3. Insight Engine : anomalies/breakpoints, priorités, narrations de base avec CI.
4. RAG & Trust : connecter les métadonnées/formules, le journal des preuves dans l'IU.
5. A11y et mobile : cartes adaptatives, alt-textes, contraste/clavier.
6. FinOps : caches/matérialisations, limites de balayage, profils de charge.
7. Scale : personnalisation par rôle, modèles NLG scénarisés, intégration dans le CRM/alertes.
15) Chèque-liste avant la sortie
- Les métriques et mesures sont décrites dans la couche sémantique ; SELECT est interdit.
- La sélection automatique est validée selon les types/cardinalités/règles.
- Les narrations contiennent des nombres, des comparaisons, des bases et une fourchette de confiance.
- Les barres d'incertitude/error (le cas échéant) sont incluses.
- NL→SQL/DSL passe les tests de référence ; la vue SQL pour l'utilisateur est visible.
- RLS/CLS et le masquage fonctionnent dans les tooltips/exportations.
- A11y : contraste, alt-textes, post-navigation, mode daltonisme.
- Cache/matérialisation/limites de balayage configurées ; Les panneaux SLO/coût sont assemblés.
- Logs des versions formules/charts ; le bouton « se plaindre de l'insight ».
16) Mini-modèles
16. 1 Politique de sélection automatique de graphiques
yaml auto_chart_policy:
time_series: ["line","area"]
categories_max: 8 distribution: ["histogram","boxplot"]
correlation: ["scatter","heatmap"]
choose_log_scale_if: growth_rate>0.15/week small_multiples_if: series_count>6
16. 2 Carte d'initié
yaml insight:
id: "ggr_tr_spike_2025_10_12"
metric: ggr segment: {country: "TR", device: "Android"}
change: {type: "wow", delta_pct: 12.4, ci95: [9.8,14.7]}
drivers: ["Sports +18%", "Slots +7%"]
confidence: 0.86 actions: ["увеличить лимит кампании TR Android на 10%"]
disclaimer: "наблюдение, не доказанная причинность"
16. 3 Exemple de NL→SQL en UI (rétroéclairé)
sql
-- Вопрос: "Как менялся ARPPU по устройствам за 30 дней?"
select dt::date as dt, device_os, avg(revenue_per_payer) as arppu from mart_daily_player where dt >= current_date - interval '30 day'
group by 1,2 order by 1,2;
16. 4 Kit de test pour les NL→Viz
yaml tests:
- ask: "Покажи распределение депозитов за неделю"
expect:
chart: "histogram"
binning: true field: "deposit_amount"
17) Résultat
L'AI-visualisation des actes de naissance est non "les images sages", et le procès de part en part : la couche sémantique → NL→Query → Query→Viz → Insight Engine → explicable нарративы → les actions et le contrôle de la confiance. Avec les bons gardes (confidentialité, vérification des chiffres, incertitude, A11y, FinOps), il transforme les rapports en solutions opérationnelles, accélère l'analyse et renforce la culture des données dans toute l'organisation.