Intelligence artificielle et Big Data
Qu’est-ce que le Big Data ?
La notion de big data, que l’on traduit aussi par « données massives », s’emploie lorsque des algorithmes traitent une quantité importante de données visant à entraîner un réseau de neurones artificiels, générer des graphiques visibles depuis un tableau de bord ou encore déceler des phénomènes apportant un éclairage sur le comportement des usagers d’un site web.
Quels sont les types d’infrastructures Big Data qui existent aujourd’hui ?
On trouve deux principaux types d’infrastructures big data : Lambda et Kappa.
L’architecture lambda permet d’exécuter des requêtes en temps réel à partir de jeux de données très volumineux. Pour y parvenir, la lambda architecture crée deux chemins d’accès aux flux de données :
- Une couche de traitement par lots (batch layer) vient stocker l’ensemble des données entrantes dans leur forme brute et traite par lots ces données.
- Une couche vitesse (speed layer), conçue pour une faible latence, analyse les données en temps réel.
Une couche service (serving layer), alimentée par la batch layer indexe également une vue de traitement par lots afin d’améliorer l’interrogation.
Quant à l’architecture kappa, elle sert les mêmes objectifs que la lambda architecture hormis le fait que toutes les données transitent par le biais d’un seul chemin via un système de traitement de flux. Les données sont reçues sous forme d’un flux d’événements dans un journal unifié et distribué.
Quelle infrastructure Big Data avons-nous privilégié chez OpenStudio ?
Après plusieurs essais, nous avons fait le choix de valider l’installation d’une architecture lambda composée de 3 couches d’intelligence artificielle : une batch layer, une speed layer mais aussi une serving layer.
Le traitement des données au sein du batch layer ne se produit non pas en temps réel, mais se déclenche à des périodes déterminées (journalière, hebdomadaire…). Les « batchs » correspondent à des traitements par lot de données et ont différents rôles. Nous distinguons les batchs de « préparation », qui traitent des données brutes, des batchs « métiers » qui correspondent à des besoins précis et peuvent être de nature variées. Certains sont par exemple orientés vers des tâches de machine learning et entraînent alors des réseaux de neurones artificiels.
La speed layer crée quant à elle des traitements directement au niveau des données entrantes à travers deux approches temps réel : le streaming et le micro batch. Le streaming traite un flux continu de données tandis que le micro batch permet le traitement de petits paquets de données régulièrement.
Enfin, la serving layer permet à un site e-commerce (ou autres), dans le cadre de notre projet thelia.ai, de faire par exemple une demande de recommandation à travers une route spécifique établi par son API. En exploitant un modèle entraîné par la batch layer, l’API ici va retourner en effet au site une recommandation.