top of page

Architecture Big Data dans le Cloud

Définition d'une architecture Big Data par AWS

Contexte


L'objectif ici est d'étudier la faisabilité de développer une application mobile qui permettrait aux utilisateurs de prendre une photo d'un fruit et d'obtenir des informations sur ce fruit. Le développement de l’application s’accompagne de la nécessité de construire une première version d’une architecture Big Data.


Les étapes sont :

  • Extraction de fonctionnalités à partir d'images


  • Développement d'un modèle

  • Bâtiment d'architecture Big Data


Données


Les données sont disponibles ici : https://www.kaggle.com/datasets/moltean/fruits


Les données sont divisées par catégories, 120 types de fruits et légumes. Avec 492 images par dossier, entre 1 et 4 dossiers par catégorie, et environ 5 Ko par image, il y a plus de 300 Mo de données à stocker.


Plusieurs options de stockage étaient disponibles. J'ai sélectionné AWS S3, solution peu coûteuse avec des temps de transfert attractifs, et une bonne offre gratuite (5 Go pour 12 mois).


Environnement



J'utilise Apache Spark, un moteur d'analyse unifié et ultra-rapide pour le traitement de données à grande échelle. Comme Hadoop auparavant, il permet d'exécuter efficacement des calculs nécessitant un accès rapide et itératif à une grande quantité de données, des analyses à grande échelle à l'aide de machines Cluster.


Comme je code avec Python, j'ai mis en place un environnement Pyspark :

  • Java 8

  • Hadoop 3.3

  • Étincelle 3.3.1


Extraction de caractéristiques


Afin de développer un Modèle de Classification d'Images, il faut d'abord pouvoir extraire des caractéristiques de ces images, c'est-à-dire prendre une image et restituer les points clés de cette image sous forme de variables/vecteurs, l'« empreinte numérique ». » de l’image, invariante quelles que soient les transformations.


Pour cette tâche, j'ai utilisé VGG16. VGG16 est un réseau neuronal convolutif pré-entraîné. Il prend une image en entrée et restitue automatiquement les caractéristiques de cette image, par extraction et priorisation automatiques desdites caractéristiques. Il existe plusieurs utilisations possibles de VGG16 (Classifier, Standalone Feature Extractor…), et plusieurs stratégies d'apprentissage par transfert (mise au point totale, mise au point partielle…).


Ma version de VGG16 est un extracteur de fonctionnalités entièrement pré-entraîné, dans lequel je supprime uniquement les dernières couches de classification sans recycler le modèle.


Réduction des fonctionnalités avec ACP


Avec plus de 1000 variables, une réduction était donc nécessaire.



Les deux premières composantes permettent d'expliquer 45 % de la variance. En utilisant également les composants 3 et 4, on atteint près de 60 %.


Au final, j'ai obtenu 4 fonctionnalités après ACP.


Architecture Big Data


Accès longue distance


API pour Hadoop/Apache Spark pour lire et écrire directement des objets Amazon S3.


Plusieurs options :

  • Boto3 : permet aux scripts python (uniquement) d'interagir avec les ressources AWS

  • S3 : permet aux scripts d'interagir avec les ressources AWS


J'ai choisi S3a, plus rapide et plus polyvalent.


Output


Apache Parquet est un format de stockage de données offrant de nombreux avantages pour les projets de grande envergure.


Avec Apache Parquet, les données sont présentées en colonnes. Les avantages sont :

  • Lecture des valeurs d'attribut plus rapidement

  • Lecture d'un sous-ensemble d'attributs également plus rapide

  • Structures de données complexes représentées plus efficacement


Cluster de calcul


Afin d'accéder aux images stockées dans S3, et d'appliquer toutes les étapes, j'ai choisi EC2 (Elactic Compute Cloud), un service AWS de mise à disposition de serveurs.


Pour ce projet, les options sont :

  • AMI (Amazon Machine Image) : Amazon Linux

  • Type d'instance : t2.medium avec 4G RAM

  • Stockage : 8 G

  • bluesky_site
  • LinkedIn-Symbole_2
  • Astrolabe Cae_2

Legal Notice

Cookie Management

© 2023 by Pascaline Grondein Data Consultant. Created with Wix.com

bottom of page