PROJET: SkillSync Pro
CONTEXTE PROJET :
En tant que chef technique pour un projet ESN, j'ai orchestré avec succès le développement d'une solution
MLOps complète pour la gestion efficace des consultants et la simplification de leur processus de formation. Le
projet inclut l'utilisation de la Reconnaissance d'Entités Nommées (NER) pour extraire des informations clés des CV
téléchargés, suivi du calcul d'un pourcentage de correspondance avec les offres afin d'aligner les consultants avec
des opportunités de formation adaptées. Le système fournissait des retours personnalisés, recommandait des cours
de formation, et estimait le temps nécessaire pour le renforcement des compétences.
RÉALISATIONS :
● Chef technique :
○ En tant que chef technique, j'ai dirigé le projet avec succès, supervisant sa mise en œuvre réussie et
atteignant tous les objectifs définis.
○ J'ai assuré une formation complète des équipes MLOps et DevOps, mettant l'accent sur les bonnes
pratiques et l'architecture MLOps, indépendamment des stacks et des fournisseurs de services cloud.
Ainsi que des sessions pour L’utilisation et l' exploitation des pouvoirs des Large Language
Models(LLM): Construire des RAGs (Retrieval Augmented Generation), fine-tuning, et Prompt
Engineering. Mes sessions formatrices approfondies ont fourni une expertise précise sur la
conception d'architectures MLOps robustes et efficaces.
○ L'élaboration de supports, y compris une documentation détaillée, des notations de code, des
fichiers README et des tests, a permis une supervision efficace et une intervention aisée pour les
intervenants actuels et futurs.
○ Conception Avancée de l'Architecture hybride :
■ Exploration approfondie des solutions et approches pour chaque cas d'utilisation.
■ Comparaison détaillée des options, avec choix optimal après une analyse approfondie.
■ Sélection d'un stack hybride robuste entre AWS et des stacks open source, suivant des
stratégies de FinOps et d'optimisation pour garantir la rentabilité et l'efficacité de
l'architecture. La portabilité de la solution a été assurée pour permettre des déploiements
multiples et des comparaisons ou migrations ultérieures.
○ Collaboration et Gestion d'Équipe :
■ Collaboration étroite avec l'équipe MLOps et travail en tandem avec l'équipe DevOps.
■ Gestion proactive des tickets en identifiant les besoins prioritaires, en fournissant des
rapports d'avancement de l'équipe MLOps, livrés au Product Owner.
■ Participation active aux sprints planning, animation de la partie MLOps, et gestion des
livraisons de chaque composant.
■ Coordination transparente avec les Product Owners DevOps pour une intégration efficace
des solutions dans les systèmes backend et frontend.
● Implémentation DevOps :
● Infrastructure et Structure de Projet :
○ Conception et déploiement de toute la solution IaC avec Terragrunt et Terraform (modules +
consommation assurant la reproductibilité ), mettant l'accent sur la sécurité grâce à
l'intégration de HashiCorp Vault pour une gestion sécurisée des secrets.
○ Configuration des rôles, groupes et utilisateurs avec le service IAM.
○ Configuration de métriques CloudWatch spécifiques pour les services afin de collecter des
données cruciales sur les performances et les coûts.
○ Analyse proactive des journaux CloudWatch pour détecter et résoudre rapidement les
erreurs et les problèmes de performance.
● Gitlab et Pipelines CI/CD/CT :
○ Mise en place des chaînes CI/CD de validation, d'intégration continue, de déploiement
continu, et de tests continus avec Terraform, Docker, et GitLab CI.
○ Développement d'une solution pour le packaging des fonctions lambda et le contrôle de
versions, facilitant ainsi le déploiement continu des applications en utilisant: Docker,
Git,Gitlab Registry, Gitlab CI/CD, AWS S3 ..
○ Développement de scripts et configurations pour automatiser ces pipelines, garantissant une
livraison efficace et fiable.
○ Implémentation et gestion du versionning du code/images et préparation des images de
base et des builds pour le registre GitLab CI, facilitant leur utilisation dans les pipelines CI
dédiés.
● Docker :
○ Utilisation de Terraform pour la gestion de l'infrastructure en tant que code, assurant ainsi
une reproductibilité et une évolutivité accrues.
○ Intégration de Docker pour la conteneurisation des applications, simplifiant le déploiement
sur les serveurs de l'entreprise, notamment Elasticsearch, MLflow, DVC, Kubernetes et les
endpoints..
○ Déploiement d' un serveur Mlflow sur un serveur OVH.
● Implémentation MLOps :
○ Training:
■ Intégration de aws EventBridge pour une gestion efficace des événements dans notre
infrastructure, permettant une communication fluide entre les différents services.
■ J'ai effectué des phases d'expérimentation en local avant d'industrialiser les solutions avec
SageMaker.
■ Utilisation d'un conteneur personnalisé pour l'entraînement et le déploiement, intégrant
Flask, Nginx, MLflow, proxy et SageMaker. Déploiement avec GitLab CI vers ECR et les
versions précédentes vers DockerHub.
■ Automatisation du déploiement de la partie d'entraînement ainsi que la partie inference.
■ Migration et séparation de la solution de déploiement du l'entraînement et la déployer sur
un serveur OVH.
■ FINOPS : Mettre en place une solution Cloud hybride pour optimiser les coûts.
■ Mise en place d’une stratégie de déploiement et gestion des divers endpoints.
■ Simulation de la structure et de l'image utilisée par SageMaker localement, testée avec un
script bash pour reproduire le fonctionnement de SageMaker pour un projet ML
personnalisé en local. Cette solution a été développée pour minimiser l'utilisation de
SageMaker et optimiser le temps et les coûts.
■ Use case 1: Extraction NER : Conception et mise en œuvre de l'extraction d'informations
spécifiques à partir des CVs des consultants en utilisant la technique NER.
■ Use case 2: Pourcentage de Correspondance et identification des lacunes (LLM Fine
tuning): ajustement de le LLM sur l'ensemble de données collecté pour le spécialiser dans le
domaine des consultants et des formations pour pour effectuer la mise en correspondances
et identifier les lacunes. .
■ Use case 3: Recommandation et estimation : utiliser les techniques de Prompt Engineering
pour l'implémentation précise des recommandations personnalisées, des cours de
formation, et des estimations du temps nécessaire pour le renforcement des compétences.
■ Utilisation Avancée de MLflow : Intégration de MLflow pour le suivi des modèles et le
registre des modèles, optimisant ainsi la gestion centralisée des artefacts de machine
learning. Configuration de MLflow dans un conteneur Docker avec le stockage des artefacts
dirigé vers S3, suivi du déploiement du conteneur sur un serveur OVH.
○ Inference:
■ Migration du déploiement de SageMaker vers le serveur OVH:
● Utilisation des conteneurs personnalisés et séparés pour le déploiement de nos
endpoints , intégrant Flask, Nginx, MLflow, proxy. Déploiement avec GitLab CI et
terraform pour l'approvisionnement des conteneurs et le déploiement de code.
● Développement d' une solution proxy assurant la stratégie de déploiement Shadow
et la déployer sur le serveur OVH.
● Création d'un domaine pour chaque endpoint et la solution proxy via la ressource
Route 53 et terraform.
● Implémentation Data :
● J'ai mis en œuvre une solution d'annotation sous forme d'une application de bureau, accélérant le processus
d'annotation pour l'équipe.
● J'ai mis en place la solution de web scraping pour récupérer les offres et leurs détails, poursuivant le travail
aujourd'hui.
● J'ai approvisionné, implémenté et comparé l'utilisation d'Elasticsearch et d'Algolia pour stocker les offres.
● J'ai développé et planifié avec GitLab CI des scripts de nettoyage du code, des artefacts et des expériences
MLflow, ainsi que des exécutions des expériences.
Méthodologie : Agile-Scrum, CRISP-DM.
PROJET: CV_TECH
CONTEXTE PROJET :
Ridcha Data développe une solution de bout en bout pour l’extraction, l’analyse et le matching des candidats
avec les offres de ses clients. Cette solution permettra non seulement d’optimiser le travail des commerciaux mais
aussi d’assurer la compatibilité entre le besoin des clients et les attentes de nos experts pour leurs futurs postes. La
solution doit être déployée en utilisant les services Google.
RÉALISATIONS :
● Organisation, modélisation et structuration des données.
● Préparation des données, développement des modèles de classification et de détection, industrialisation sur
GCP (Dataflow, BigQuery, Vertex AI, JupyterLab..).
● Use case 1 : Extraction des informations requise à partir des CV et les placer dans la template RidchaData :
○ Ce cas d'étude vise à exploiter les Cv dans la base interne en extractant les informations nécessaires
pour recréer le CV avec la template Ridcha Data.
○ Réalisations
● Création des pipeline pour l’upload des CVs dans un bucket
● Création des ETL dags.
● Mise en place des pipelines CI/CD.
● Annotation des CVs
● La création d’un modèle...