A la rencontre de Damien : de Sys Ops à ML Ops, un parcours de formation

GitLab CI
Temps de lecture : 9 minutes

Et si on faisait connaissance ? Devoteam A Cloud, ce sont des consultantes et des consultants passionnés par leur métier, des profils et des parcours variés. Dans cette série d’articles, nous vous proposons d’aller à la rencontre de celles et ceux qui font la richesse de l’entreprise, de découvrir leur vision du métier et les challenges techniques qu’ils relèvent. Aujourd’hui, nous vous présentons Damien, qui s’est formé sur le ML Ops après un parcours dans l’administration système puis le Cloud.

Damien

Quel est ton background professionnel ?

Mon parcours professionnel a débuté il y a 13 ans. Je me suis développé verticalement : j’ai débuté en tant que Technicien systèmes & réseaux, puis Administrateur et Ingénieur.

J’ai été confronté à différentes problématiques telles que :

  • La configuration/maintenance des systèmes : installation, configuration et maintenance des serveurs, actifs réseaux et des logiciels associés. Par exemple : déploiement de coeurs de réseaux, clusters Vmware, etc.
  • La gestion des infrastructures : gestion des solutions d’observabilité, gestion des ressources et de l’évolutivité, résolution des problèmes techniques. Par exemple : mise en oeuvre d’architecture AWS, étude d’évolution de baie Netapp, optimisation de l’observabilité avec PRTG…
  • La sécurité informatique : études et intégration de mesures de sécurité, gestion des correctifs et des mises à jour, surveillance des vulnérabilités, gestion des accès et des autorisations. Par exemple : Gestion de firewall Checkpoint, Mise en place de flux privé avec des site isolés…
  • L’automatisation : développement de scripts et d’outils d’automatisation pour simplifier les tâches répétitives, déploiement automatisé de configurations. Par exemple : réalisation de divers scripts, implémentation de pipeline de déploiement, large déploiement via des outils d’IAC…
  • La sauvegarde/continuité : configuration et gestion de sauvegarde des données, élaboration et test de plans de reprise d’activité en cas de sinistre. Par exemple : création de plan de reprise/récupération d’activité basé sur VeeamBackup, mise en place de stratégies de résilience HA…
  • Le support technique : fourniture d’assistance technique aux utilisateurs et aux équipes pour résoudre les problèmes et répondre aux demandes. Exemple : support N1,2 et 3, formation technique des équipes…

Quelles compétences as-tu acquises chez Devoteam ?

Je distingue deux types de compétences acquises ou approfondies depuis mon arrivée chez Devoteam : les compétences technique, puis les soft skills.

Sur le plan technique, de nombreuses compétences inhérentes aux architectures cloud (AWS) : la capacité à concevoir des architectures cloud robustes et évolutives en utilisant les services AWS et les patterns appropriés, l’expertise dans l’usage des services AWS, la compréhension des bonnes pratiques pour concevoir des architectures efficaces (load balancing, redondance multi-région, etc), l’optimisation de l’usage des ressources Cloud ou encore l’automatisation des déploiements.

Sur le plan du savoir-être, un consultant Devoteam développe des qualités de communication et de collaboration afin de proposer des solutions adaptées aux besoins de ses clients. Ces qualités sont aussi nécessaires lors de la formation et la sensibilisation des équipes internes et des clients aux concepts et aux meilleures pratiques liés au cloud computing. Enfin, il faut faire preuve d’adaptabilité, et savoir se former en continu pour acquérir de nouvelles connaissances, et compléter son socle de compétences face à l’évolution constante des besoins. Lorsque j’ai rejoint Devoteam, je me suis auto formé sur Terraform, Git, AWS…

Qu’est-ce qui t’a attiré dans le Machine Learning ?

Mon intérêt pour le ML est assez récent. Au départ, l’arrivée de l’IA grand public, pour ne pas citer ChatGPT, au bureau ou chez nos clients tout le monde a eu un effet « waouh ». Ca a piqué ma curiosité, j’ai cherché à me renseigner. Je discutais avec mes collègues, j’étais comme un ignorant à faire semblant de comprendre, et ce fut le déclic ! J’ai décidé de plonger plus loin dans cet univers, et l’entrée en la matière s’est faite par l’introduction aux LLM. 

De fil en aiguille, au cours de mes lectures, j’ai découvert la page AWS Sports qui recense les solutions mises en place chez leurs clients, avec en majorité des architectures autour du service Amazon SageMaker, qui est la suite d’outil AI/ML AWS. 

Par chance, parmi les disciplines les plus représentées par AWS on retrouve la NFL et la F1, des sports que je suis depuis mon adolescence. En tant qu’amateur « éclairé », j’ai pu d’autant plus apprécier les apports du Machine Learning à la NFL ou la F1. Pour moi, c’était une vraie révolution de découvrir le potentiel de ces données.

Lire l’article de Damien : Une exploration du Machine Learning à travers la F1

Au final, ce qui m’a attiré vers le ML est un mélange de curiosité et d’égo. Mais j’ai eu la chance de ne pas commencer cette démarche sous la pression des besoins croissants du marché. J’ai suivi le fil de ce qui m’anime et de ce qui me passionne professionnellement.

Comment tu es monté en compétences sur le sujet ? As-tu eu des difficultés ?

Cet apprentissage peut se faire de deux façons : par le bas, en commençant à apprendre depuis la base mathématique, jusqu’à son implémentation technique concrète. Ou inversement, par le haut, pour comprendre en premier lieu comment se fait l’implémentation technique, puis approfondir chaque couche inférieure jusqu’à la théorie mathématique.

J’ai opté pour cette deuxième approche, plus concrète. Ma capacité à apprendre et à maintenir de l’intensité dans ma démarche est liée aux choses tangibles que je peux facilement observer et tester pour en comprendre les mécanismes.

Pour apprendre, j’ai pour habitude de procéder toujours en suivant le même processus. J’ai utilisé cette méthode pour diverses autres auto-formation sur AWS notamment avant mon arrivée chez Devoteam. Le seul prérequis est d’être à l’aise avec le travail en autodidacte.

Étape 1 :  Trouver une formation pour acquérir les connaissances de base. J’utilise beaucoup Udemy, où j’ai suivi une formation sur le ML engineering avec Amazon SageMaker d’environ 45 heures. La formation était assez complète pour s’initier à bon nombre de concepts et de méthodes de base.

Etape 2 : Consulter la page de workshop AWS assez fournie en workshop ML (Rekognition, SageMaker, Textract, Bedrock,…etc). Si j’avais pu, je les aurais tous faits !

Etape 3 : Lire des livres sur le sujet et consulter un maximum d’articles et vidéos évoquant des cas d’usage concrets dans les entreprises. Cela permet d’aller plus loin et de comprendre comment on intègre cela dans des écosystèmes plus grands déjà existants. Cette étape peut se faire en parallèle de l’étape 1 pour compléter l’apprentissage ,mais cela peut être frustrant sans connaissances de base.

Etape 4 : Se challenger en trouvant un projet pour appliquer tout ce qui est appris pendant les premières phases sans être guidé à travers des tutoriels de formation. Appliquer seul ce que l’on a appris, voire aller encore plus loin est ma partie préférée de l’apprentissage.

Lors de mon parcours j’ai identifié trois difficultés principales. Certaines sont dues à mon expérience personnelle, d’autres sont inhérentes au domaine :

  • Le ML dépend techniquement des données. Un modèle de prédiction ingère des données dont il tire des apprentissages, et pour obtenir de bons résultats il faut des données de la meilleure qualité possible. Le ML est dépendant du Data engineering, donc pour moi il est primordial d’être un minimum initié aux métiers de la donnée pour fluidifier le flux entre ces deux parties.
  • Produire un flux de travail ML peut s’avérer délicat, souvent cela nécessite des ressources de grandes capacités sur une longue période de temps. Il faut être attentionné à définir un dimensionnement adapté à notre besoin.
  • De par mon expérience passée, j’ai dû m’adapter à de nouvelles technologies, voire évoluer vers des métiers jusque là inconnus. J’ai découvert des sujets comme Jupyter notebook, Pandas, Python, etc. Se former en ML est un grand saut technique en direction des métiers du développement pour produire des solutions de qualité, efficaces et en accord avec nos pratiques.

Que retiens-tu de cette évolution ?

L’apprentissage de compétences en ML est une expérience qui m’a beaucoup enrichi techniquement ces derniers mois, aussi complexe qu’intéressante. Voici quelques réflexions que je tire de cette expérience :

La diversité des compétences mobilisées : le ML englobe un large éventail de compétences, allant de la compréhension globale des algorithmes à la manipulation des données, en passant par la compréhension des modèles et la capacité à les déployer. Il est important d’explorer divers cas d’utilisation pour obtenir une vue d’ensemble, car chaque solution est presque conçue sur mesure pour le besoin auquel elle répond.

La pratique est essentielle : l’apprentissage et l’intégration du ML dans un contexte client demandent de la pratique. La théorie seule ne suffit pas. Il est crucial de travailler sur des projets concrets, de manipuler des données réelles et de comprendre les nuances des différents concepts fondamentaux.

L’importance des données : la qualité des données et le feature engineering sont souvent plus importants que le choix de l’algorithme. Comprendre les données sur lesquelles vous travaillez est essentiel pour obtenir des résultats précis et significatifs. Préparer des données qualitatives pour en extraire des informations décisives à fournir à nos modèles représente environ 80% du travail.

La curiosité est un moteur : c’est un domaine en constante évolution. Il est important de faire partie de ceux qui sont curieux et qui cherchent constamment à approfondir leur compréhension, à explorer de nouvelles solutions et à garder un œil sur les dernières avancées.

L’éthique est importante :  avec la croissance du ML, et la popularisation de l’IA en général, nous devons prendre en compte les implications éthiques des données jusqu’aux modèles, et de nous efforcer de créer des systèmes équitables, transparents et sans biais. 

Ce dernier enseignement est très personnel, mais je suis parfois inquiet de voir comment certains modèles sont mis en œuvre sans considération aucune des répercussions négatives engendrées. L’Unesco a d’ailleurs produit une charte à l’usage de l’IA (ce qui inclut donc le ML).

En conclusion, l’apprentissage de compétences en ML est une aventure continue qui demande du temps, de la pratique et un engagement à l’apprentissage sur le long terme. Les défis sont nombreux, mais les récompenses en termes de compréhension de l’usage des données et de création de solutions innovantes sont tout aussi significatives.

Quels conseils donnerais-tu pour évoluer vers ces technologies ?

Je pense qu’en plus de la patience, la curiosité et la motivation qui sont finalement nécessaires à tout apprentissage professionnel, si je devais recommencer dans cette aventure je garderais en tête ceci :

Communiquer et partager

Parlez de vos apprentissages avec vos collègues. Les conversations informelles peuvent apporter de nouvelles perspectives et des connaissances inattendues.

Enseigner ce que vous apprenez à d’autres personnes peut renforcer votre propre compréhension.

Comprendre les données

Prenez le temps de bien comprendre les données avec lesquelles vous travaillez. Des données réelles extraites de contextes existants sont une plus value pour visualiser efficacement les mécanismes, et ouvrir ses perspectives sur ce que l’on peut rencontrer sur le terrain.

Dans un contexte client, comprendre le métier et les données est crucial pour proposer des solutions adaptées qui apportent une réelle valeur ajoutée.

Choisir le langage de prédilection, Python

Python est le langage de programmation le plus utilisé en Machine Learning. Cela facilitera grandement votre parcours dans le domaine.

Comprendre et intégrer les concepts fondamentaux

Familiarisez-vous avec les concepts fondamentaux du Machine Learning, tels que les différents types d’algorithmes (apprentissage supervisé, non supervisé, par renforcement), ainsi que des notions comme l’optimisation, l’overfitting, l’underfitting, etc.

Choisir une technologie proche de votre expertise

Par exemple, si vous êtes familier avec AWS, vous pourrez opter pour SageMaker. Si vous avez une expertise préalable dans des technologies spécifiques, choisissez de rester le plus proche de ce cercle. Cela simplifie le processus d’apprentissage et vous permet d’obtenir de l’aide autour de vous plus rapidement en cas de besoin. 

Liens :

Commentaires :

A lire également sur le sujet :