Retrouvez mon CV sur ce lien
Semestre 5
M7

M7

En fonction des projets déterminés autour de l’« Intégration de services dans un écosystème », connaître, appliquer et mettre en œuvre les méthodologies et les outils adaptés.

Description : Cela consiste à maîtriser l'intégration de services dans un écosystème, en utilisant des méthodologies et des outils adaptés. Cela implique de comprendre comment différents services et systèmes interagissent et de savoir appliquer les meilleures pratiques pour assurer une intégration fluide et efficace. Cette compétence est cruciale dans le développement de solutions technologiques modernes, où l'interopérabilité et l'automatisation jouent un rôle clé.

Comment ai-je atteint la compétence ?

Pour appliquer cela, j'ai travaillé sur plusieurs projets qui m'ont permis de mettre en œuvre des méthodologies et des outils adaptés à l'intégration de services dans un écosystème.

J'ai pris l'habitude de lire la documentation des services que j'utilise pour comprendre comment ils fonctionnent et comment je peux les intégrer dans l'écosystème de l'application.

Je fais systématiquement des recherches sur les meilleures pratiques pour l'intégration de services en fonction des technologies utilisées dans le projet.

Projet HES - DevPro

  • J'ai travaillé sur la création d'un chatbot en utilisant Rasa, je me suis familiariser avec l'architecture nécessaire pour intégrer des services d'IA dans le framework. J'ai également réfléchi à l'architecture du chatbot avec l'équipe, en veillant à ce qu'il s'intègre parfaitement avec les autres services de l'application.
  • J'ai assuré le bon fonctionnement du ChatBot en définissant et en testant les intents, ce qui a nécessité une compréhension approfondie des méthodologies d'intégration de services.

Voici un exemple de l'architecture que j'ai conçu pour le chatbot :

DevPro

Voici un exemple d'action que Rasa exécute pour répondre à une intention de l'utilisateur :

DevPro

Projet Koloka

  • J'ai corrigé des bugs UI et backend, ce qui a fait partie de l'intégration de services dans l'écosystème de l'application.
  • J'ai résolu des bugs en identifiant les problèmes dans le code et en choisissant les solutions les plus appropriées.
  • J'ai migrer les données de AWS à Infomaniak, ce qui a nécessité de comprendre les processus de migration et de s'assurer que les services étaient correctement intégrés dans l'écosystème de l'application.

Voici un exemple de la migration des buckets S3 de AWS à Infomaniak :

Koloka

Voici l'architecture que j'ai conçu pour le projet Koloka :

Koloka

Projet DuoKey - C2PA

  • J'ai dû intégrer le cockpit KMS de DuoKey dans le PoC, ce qui a nécessité de comprendre comment le service fonctionnait et comment l'intégrer dans l'écosystème de l'application.

Voici un exemple de l'intégration du cockpit KMS de DuoKey dans le PoC :

DuoKey

Voici les endpoints que j'ai dû configurer pour l'intégration du cockpit KMS de DuoKey

DuoKey

Session de formation

Lors de la session de formation sur le multi-culturalisme, j'ai pû ressortir ces points clés liés à l'intégration de services dans un écosystème :

Collaboration à distance et diversité culturelle :

  • Importance d'une communication claire et adaptée aux besoins des différentes cultures.
  • Être un « caméléon culturel » pour mieux comprendre et intégrer les dynamiques d'équipe.

Gestion des projets internationaux :

  • Différenciation entre projets et programmes, avec l'importance de la documentation détaillée et du transfert de connaissances pour assurer la continuité dans les équipes.

Outils et stratégies pour la collaboration :

  • Préconisation de l'utilisation des technologies pour faciliter les échanges, notamment lorsque des barrières linguistiques existent.
  • Importance de rester factuel dans la gestion des conflits culturels et d’autoriser l’expression des émotions dans un cadre respectueux.

Externalisation et offshoring :

  • Connaître les différentes stratégies d'externalisation (offshoring, nearshoring, outsourcing) et leur mise en œuvre en fonction des besoins d'un projet.

Transfert de connaissances :

  • Assurer une documentation complète et un suivi précis lors de la transition ou du remplacement d'équipes pour maintenir la continuité des services.
  • Investir dans des formations spécifiques pour permettre une montée en compétence rapide des équipes.

Adaptabilité et curiosité :

  • L'adaptabilité aux diverses hiérarchies et styles de management influencés par les cultures locales.
  • La curiosité intellectuelle et l'ouverture aux changements comme moteurs de réussite dans un environnement multiculturel.

Voici un aperçu du rapport de la session de formation :

Adopter un regard critique sur ces méthodologie et outils

Description : Cette compétence implique d'adopter un regard critique sur les méthodologies et les outils utilisés pour l'intégration de services dans un écosystème. Cela implique de remettre en question les pratiques existantes, d'identifier les points faibles et les opportunités d'amélioration, et de proposer des solutions innovantes pour optimiser les processus d'intégration.

Comment ai-je atteint la compétence ?

Projet HES - DevPro

J'ai eu un regard critique sur les technologies que j'ai choisi en les comparant avec d'autres technologies similaires. J'ai évalué les avantages et les inconvénients de chaque technologie pour choisir la plus adaptée au projet. J'ai produit un rapport à ce sujet.

Par la suite j'ai dû défendre ma proposition devant l'équipe, cela m'a permis de développer ma capacité à argumenter et à convaincre.

Finalement nous avons pris une décision finale selon les besoins du projet.

Voici le rapport que j'ai produit :

Voici le document final de la technologie choisie :

J'ai aussi, pour le dernier sprint, proposé une nouvelle approche pour les intentions à l'équipe pour améliorer les qualités de réponse du chatbot. COnverger la recherche sur une intention principale et baisser la valeur de similarité pour la requête au vector database.

Projet Koloka

J'ai pris la décision pour la fin du projet, étant donné que c'était des tâches de correction de bugs visuels pour une partie du dernier sprint.

J'ai pris la décision de faire du live coding avec le PO pour directement corriger les bugs en live et que l'on évite les allers-retours de validation.

J'ai donc mis de côté la méthodologie SCRUM pour ce dernier sprint et j'ai opté pour une approche plus agile.

Connaître les principaux concepts mathématiques nécessaires à la Data Science et savoir les appliquer dans un cas d’utilisation du Machine Learning.

Description : Cette compétence implique une compréhension des concepts mathématiques fondamentaux qui sous-tendent la Data Science et le Machine Learning.

Comment ai-je atteint la compétence ?

Lectures individuelles

La lecture individuelle sur Initiation au machine learning

Voici les points clés :

Modélisation Statistique vs. Modélisation Prédictive :

  • Importance de comprendre la distinction entre analyse statistique et prédiction (modélisation).

Régression Linéaire :

  • Utilisation de l'équation de la droite (y = a * x + b) pour prédire des variables continues.
  • Interprétation des coefficients pour évaluer l'impact des variables prédictives.

Évaluation de la Performance des Modèles :

  • Concepts d'erreur quadratique moyenne (MSE) et d’erreur absolue moyenne (MAE) pour quantifier l’efficience des modèles.
  • Utilisation de scores comme R² pour évaluer la proportion de variance expliquée par le modèle.

Optimisation et Validation Croisée :

  • Importance de la validation croisée pour minimiser le risque de surajustement d’un modèle et garantir sa généralisation.
  • Utilisation d'algorithmes d'optimisation pour ajuster les paramètres et éviter le biais.

Concepts de Clustering :

  • Techniques mathématiques pour mesurer la similarité (distance euclidienne) dans le clustering.
  • Application de méthodes comme k-means pour segmenter les données en groupes homomorphes.

Transformations des Variables :

  • Techniques de normalisation et de standardisation pour gérer les biais dus aux différentes échelles des variables.
  • Encodage des variables catégorielles en formats numériques pour permettre leur utilisation dans les modèles.

Régularisation :

  • Compréhension des termes de régularisation (L1 et L2) et leurs impacts sur la complexité du modèle.
  • Importance de la régularisation pour prévenir le surajustement et améliorer la robustesse des modèles.

Apprentissage d’Ensemble :

  • Utiliser des concepts d'agrégation pour combiner plusieurs modèles afin d'améliorer la performance globale (bagging et boosting).
  • Importance de l’analyse mathématique des erreurs et de la variance pour ajuster les modèles en ensemble.

La lecture individuelle sur Predictive analytics for the modern entreprise

Voici les points clés :

  • Statistiques et algèbre linéaire : Compréhension des bases mathématiques sous-jacentes aux algorithmes de Machine Learning.

  • Modèles de régression : Utilisation de la régression linéaire et polynomiale pour prédire des variables continues (ex. prix et quantité de ventes).

  • Analyse multivariée : Compréhension de l'impact de plusieurs variables sur les prédictions, en s'appuyant sur des techniques de normalisation et de préparation des données.

  • Mesures de similarité : Application de mesures comme la distance Euclidienne et la similarité cosinus pour déterminer la proximité entre les données dans les systèmes de recommandation.

  • Optimisation de modèle : Compétence en ajustement de modèles (hyperparameter tuning) pour améliorer l'exactitude des prédictions en fonction du contexte commercial.

  • Validation croisée : Application de techniques de validation croisée pour évaluer la robustesse et la performance des modèles.

  • Comprendre le sur-apprentissage (Overfitting) : Identifier et corriger les modèles qui s'adaptent trop étroitement aux données d'entraînement.

  • Gestion des données : Connaissances sur l'importation, l'analyse et la prétraitement des données avec des bibliothèques comme NumPy et Pandas.

  • Deep learning : Compréhension de l'architecture des réseaux de neurones profonds et des choix d'activation, ainsi que l'impact des couches cachées sur les performances du modèle.

  • K-Nearest Neighbors (kNN) : Utilisation de l'algorithme kNN pour la classification et la régression, ainsi que les principes de sélection du nombre k en fonction des compromis biais-variance.

La lecture individuelle sur initiez-vous au Deep Learning

Voici les points clés :

  • Neurone formel et perceptron : Compréhension des modèles mathématiques inspirés du neurone biologique, fondement du machine learning.
  • Calcul de la sortie d'un neurone : Utilisation de l’équation : somme des entrées pondérées par des poids (w), additionnée à un biais (b), passés par une fonction de transfert f.
  • Optimisation des paramètres : Apprentissage par descente de gradient pour ajuster les poids et minimiser une fonction de perte, permettant de séparer des classes de données.
  • Réseaux de neurones multicouches : Compréhension de la complexité ajoutée pour résoudre des problèmes non linéaires, nécessitant la manipulation de matrices et l'usage de fonctions d’activation.
  • Rétropropagation du gradient : Application des concepts de calcul différentiel pour ajuster les paramètres des réseaux par propagation de l'erreur de sortie aux couches précédentes.
  • Autoencodeurs : Utilisation de l'apprentissage non supervisé pour réduire la dimensionnalité, impliquant des principes de matrice et d'optimisation.
  • Gradient évanescent et techniques de Régularisation : Problèmes mathématiques qui apparaissent lors de l'entraînement de réseaux profonds et résolutions impliquant le clipping du gradient, dropout, etc.
  • Réseaux de neurones récurrents (RNN) : Introduction des concepts de mémoire et de dépendances temporelles dans l'apprentissage, avec la nécessité de gérer les gradients à travers le temps.
  • Algorithme CTC (Connectionist Temporal Classification) : Utilisation de l'étiquetage global pour simplifier l'apprentissage des séquences, ce qui montre l'importance des concepts de probabilité et d'optimisation.
  • Cellules LSTM : Compréhension des portes d’entrée, d’oubli et de sortie, et leur rôle dans le contrôle de l'information mémorisée, intégrant des concepts mathématiques avancés liés à la théorie des graphes.
  • Modèles génératifs (GANs et VAE) : Compréhension des distributions de probabilité et application de concepts d'optimisation pour générer de nouvelles données à partir d'un espace latent.

Projet HES - DevPro

  • J'ai travaillé avec Mindsdb, cela m'a permis d'intégrer du machine learning dans la phase de test (réalisation du PoC) de la technologie. J'ai pu voir comment les données étaient traitées et comment les modèles étaient entraînés.

Session de formation - Machine Learning

Lors de la session de formation sur le Machine Learning, j'ai acquis la base des principaux concepts mathématiques nécessaires à la Data Science et au Machine Learning. J'ai appris à appliquer ces concepts dans des cas d'utilisation concrets, en utilisant des outils tels que Python et des bibliothèques comme Scikit-learn.

J'ai fait des exercices pratiques pour appliquer les concepts mathématiques dans des cas d'utilisation réels, ce qui m'a permis de consolider mes connaissances et de développer mes compétences en Data Science et Machine Learning.

Voici un exemple d'exercice que j'ai réalisé :

PoC - ML non supervisé :

PoC - Code ML non supervisé

Voici le résultat de l'exercice :

PoC - ML non supervisé

PoC - ML supervisé :

PoC - Code ML non supervisé

Voici le résultat de l'exercice :

PoC - ML supervisé

Voici ce que j'ai appris :

Objectifs :

  1. Comprendre la distinction entre l'apprentissage supervisé et non supervisé.
  2. Illustrer leur application pratique avec des algorithmes adaptés.
  3. Comparer les deux approches pour comprendre leur utilisation.

Partie 1 : Apprentissage Supervisé

  • Concept : Utilise des données étiquetées pour prédire des classes ou des valeurs.
  • Exemple : Classification de données synthétiques avec une régression logistique.
  • Étapes :
  1. Génération des données supervisées (500 échantillons, 4 caractéristiques, 2 classes).
  2. Division en ensembles d'entraînement (80%) et de test (20%).
  3. Normalisation des données avec StandardScaler.
  4. Entraînement d'un modèle de régression logistique.
  5. Évaluation avec des métriques comme le rapport de classification.
  • Visualisation : Représentation des données et de la frontière de décision.

Partie 2 : Apprentissage Non Supervisé

  • Concept : Ne repose pas sur des étiquettes, identifie des motifs ou regroupe des données.
  • Exemple : Clustering avec l'algorithme K-Means.
  • Étapes :
  1. Génération de données non étiquetées (500 échantillons, 3 clusters, 2 caractéristiques).
  2. Application de l'algorithme K-Means avec 3 clusters.
  3. Évaluation de la qualité du clustering via le score de silhouette.
  • Visualisation : Affichage des clusters et des centroïdes.

Comparaison des Approches :

AspectApprentissage SuperviséApprentissage Non Supervisé
DonnéesAvec étiquettesSans étiquettes
ObjectifPrédire une valeur ou une classeIdentifier des groupes ou motifs
Algorithmes ExemplesRégression Logistique, SVM, Random ForestK-Means, PCA, DBSCAN

Conclusions :

  • Supervisé : Idéal pour les problèmes avec des étiquettes définies (classification, régression).
  • Non Supervisé : Utile pour explorer des données non étiquetées ou regrouper des échantillons similaires.
  • Choix de la méthode : Dépend de la disponibilité des étiquettes et des objectifs du projet.

Apprentissages Clés :

  • Compréhension approfondie des deux approches.
  • Mise en pratique des outils de Scikit-learn pour classification et clustering.
  • Importance des métriques d'évaluation pour mesurer les performances des modèles.