Des modèles aux pipelines : le parcours d'un ingénieur en données

John Hammerschlag
Ingénieur de données à Agilytic

Alors que les données deviennent le pilier le plus important des entreprises modernes, de nombreux professionnels sont amenés à repenser leur rôle dans le monde des données. John Hammerschlag, de Agilytic , est l'un d'entre eux. D'abord attiré par la science des données pour le plaisir de la découverte, John s'est depuis orienté vers l'ingénierie des données, une voie qui, comme il le dit, lui permet de "construire la route avant que le voyage ne commence". 

Souvent, les équipes composées principalement de data scientists peinent à progresser en raison d'un manque d'ingénierie des données de base, un élément essentiel à la réussite à long terme de la science des données. Dans cet entretien sincère, John explique comment sa curiosité a évolué de l'analyse des données à leur structuration, révélant les défis et les récompenses surprenants d'un rôle d'ingénierie des données. Son parcours reflète une tendance croissante dans le domaine, où la compréhension des fondements des données est tout aussi vitale que l'interprétation des informations qu'elles contiennent." 

Qu'est-ce qui vous a d'abord attiré vers la science des données et comment vos intérêts ont-ils évolué vers l'ingénierie des données ?

J'ai d'abord été fasciné par l'apprentissage automatique et j'ai adoré travailler avec des modèles pour tirer des enseignements des données. Cette curiosité est toujours présente - je travaille même sur des projets personnels d'apprentissage automatique. Mais au fil du temps, je me suis rendu compte que les connaissances ne valent que ce que valent les données sur lesquelles elles reposent. De nombreuses entreprises le découvrent à leurs dépens : sans bases de données solides, les travaux de science des données sont souvent bloqués ou peu fiables.

J'ai commencé à m'intéresser à l'ensemble de la préparation des données, le travail de base qui garantit que les données utilisées sont de haute qualité. Cette prise de conscience m'a conduit à l'ingénierie des données, où je me concentre sur la création d'une plateforme de données fiable. J'aime l'idée de rendre les données vraiment utiles, un peu comme si l'on construisait les fondations avant d'ajouter les couches d'analyse. De plus, ce changement correspond étroitement à ce que nous observons dans divers projets à l'adresse Agilytic: les scientifiques des données doivent souvent s'orienter vers l'ingénierie des données pour réaliser des progrès significatifs.

En quoi l'état d'esprit ou l'approche du travail diffèrent-ils entre la science des données et l'ingénierie des données ?

C'est à cause de cette différence de champ d'application que de nombreuses organisations se retrouvent bloquées : leurs scientifiques des données se concentrent sur des résultats spécifiques, mais sans le travail d'ingénierie de base, leurs efforts ne peuvent pas être mis à l'échelle. La science des données est très axée sur les projets. Vous commencez avec un ensemble de données et vous travaillez pour atteindre un objectif spécifique, comme la prédiction d'un résultat.

Avec l'ingénierie des données, l'approche est beaucoup plus large. Il ne s'agit pas de se limiter à l'objectif d'un seul projet, mais de concevoir un pipeline prenant en charge plusieurs cas d'utilisation et plusieurs départements. Il s'agit de penser à l'avenir, d'anticiper les besoins futurs, de comprendre l'ensemble du flux de données, de la source à l'utilisation, et de s'assurer que l'infrastructure peut gérer tout cela en douceur.

Il faut donc presque voir l'ensemble de l'écosystème des données en une seule fois.

En termes de tâches quotidiennes, qu'est-ce qui a changé lorsque vous êtes passé à l'ingénierie des données ?

Mon travail a évolué de manière significative. Lorsque je travaillais dans le domaine de la science des données, je passais beaucoup de temps à modéliser et à construire des algorithmes. Dans le domaine de l'ingénierie des données, il s'agit davantage de construire et de maintenir des pipelines. Par exemple, je passe maintenant beaucoup de temps dans PySpark plutôt que dans les bibliothèques Python généralement utilisées pour la modélisation. Mes tâches consistent à mettre en place des sources de données, à normaliser les données entrantes, à les agréger de manière logique pour chaque département et à veiller au bon fonctionnement du pipeline. L'objectif final est de s'assurer que tout le monde dispose de données propres et fiables pour travailler.

Qu'en est-il des compétences ? Le changement de rôle a-t-il exigé de nouvelles compétences ?

En effet, j'utilise encore Python, mais plus particulièrement PySpark pour le traitement des données distribuées. Même si j'utilise toujours Python, je me concentre désormais davantage sur PySpark pour le traitement des données distribuées. SQL est également essentiel, en particulier lorsque l'on travaille avec des données structurées dans de grands ensembles de données.

L'ingénierie des données implique également beaucoup de travail en nuage, la mise en place de stockage, de ressources informatiques et la gestion des connexions entre les différentes sources de données. Il s'agit d'un travail technique différent, moins axé sur la précision des modèles et plus sur l'optimisation du traitement et du stockage des données.  

Toutes ces compétences sont essentielles pour les organisations qui ont besoin de construire des systèmes évolutifs mais qui ne disposent pas de cette expertise spécifique.

Y a-t-il eu des idées fausses ou des surprises lors de la transition de la science des données à l'ingénierie des données ?

La vraie surprise pour beaucoup est que l'ingénierie des données est une base essentielle et à long terme, et non une solution rapide. L'une des idées fausses que beaucoup ont est que l'ingénierie des données mène directement à la construction de modèles - ce n'est pas le cas. Les ingénieurs des données préparent le terrain. Nous nous assurons que les données sont prêtes et accessibles, mais ce n'est généralement pas nous qui construisons les modèles à partir de ces données. Cette tâche incombe généralement aux scientifiques des données.

Beaucoup de nos clients ont des idées fausses similaires. Ils pensent souvent que l'ingénierie des données va directement accélérer leurs résultats en science des données, alors qu'il s'agit plutôt de créer l'infrastructure nécessaire pour rendre ces projets durables et évolutifs. Les clients réalisent rapidement l'importance de l'ingénierie des données lorsqu'ils sont confrontés à des retards et à des inefficacités dans le déploiement de modèles sans elle.

Comment fonctionne la collaboration entre les data scientists et les data engineers de votre équipe ?

La collaboration est le pilier central sur lequel nous construisons tous nos projets. Nous sommes très intégrés, de sorte que la communication est toujours ouverte si quelqu'un a besoin d'un aperçu d'une plateforme ou d'un sujet relatif à l'ingénierie des données. Et si j'ai une question sur la modélisation des données, il y a toujours quelqu'un à consulter. Nous disposons de canaux dédiés aux questions et aux discussions, de sorte que personne ne se retrouve seul face à un problème. Ce va-et-vient nous aide à comprendre les besoins des uns et des autres - les spécialistes des données peuvent nous indiquer les formats de données dont ils ont besoin, par exemple, de sorte que nous ne finissons pas par retravailler les choses à la dernière minute.

Pour les clients, ce type de collaboration étroite entre les scientifiques des données et les ingénieurs peut être transformateur. En l'absence d'une collaboration adéquate, ils sont souvent confrontés à des retouches et à des inefficacités répétées. Nous avons pu constater de visu que le fait de combler ce fossé permet de rationaliser les flux de données et d'améliorer les résultats des projets.

Quelle valeur unique les data scientists apportent-ils à une équipe d'ingénierie des données ? 

Ils apportent leur point de vue sur le résultat final, c'est-à-dire l'objectif final de l'utilisation des données. Cet apport est essentiel pour nous car il nous aide à structurer les données de manière à ce qu'elles soient faciles à utiliser pour la modélisation. Sans leur avis, nous risquerions de fournir des données qui ne correspondent pas tout à fait à leurs besoins, ce qui entraînerait des inefficacités et un surcroît de travail. Leur compréhension de la signification et de l'objectif des données ajoute une couche de contexte commercial qui guide notre configuration.

Avez-vous un projet dont vous êtes particulièrement fier ? 

Je dirais que mon premier projet d'ingénierie des données est celui qui m'a le plus marqué. Il s'agissait de créer une plateforme de données dans Azure et de construire une petite application web en Python pour que le client puisse interagir avec les données et les nettoyer directement. 

Finalement, nous avons même mis en œuvre des modèles de prévision en utilisant Prophet et Darts. Ce projet m'a permis de tout prendre en charge, de la configuration de la plateforme de données au déploiement du modèle. C'était le moyen idéal de combiner les compétences en ingénierie et en science des données.

Quels conseils donneriez-vous à quelqu'un qui souhaite faire la même transition ? 

Essayez toujours de comprendre l'impact plus large de votre travail.

Il est très facile de se concentrer sur l'aspect technique, mais connaître les objectifs finaux - les besoins de l'entreprise et la façon dont les clients utiliseront les données - peut faire une énorme différence. Beaucoup de data scientists et même d'entreprises sont pris dans les détails techniques, mais ne voient pas comment l'ingénierie des données permet d'obtenir des informations évolutives. Souvent, les solutions les plus simples - celles qui garantissent la qualité et l'évolutivité - sont les plus efficaces. Et n'oubliez pas que la mise en place de bases de données solides peut sembler plus lente au début, mais qu'elle accélère le succès à long terme de la science des données.

Suivant
Suivant

Après le battage médiatique : dans quels types de renseignements investir ?