
Apprentissage, piratage et expédition de ML
Dans la série Author Spotlight, les rédacteurs de TDS discutent avec les membres de notre communauté de leur parcours professionnel en science des données et en IA, de leurs écrits et de leurs sources d’inspiration. Aujourd’hui, nous sommes ravis de partager notre conversation avec Viatcheslav Efimov.
Vyacheslav est un ingénieur senior en apprentissage automatique spécialisé en PNL et en vision par ordinateur. L’une de ses passions est la création de contenu éducatif : Vyacheslav a publié plus de 60 articles sur Towards Data Science, expliquant des concepts complexes avec des mots simples, fournissant des visualisations riches.
Vous avez écrit de nombreux articles débutants et explicatifs sur TDS. L’enseignement des principes fondamentaux a-t-il changé la façon dont vous concevez ou déboguez de vrais systèmes au travail ?
Je remarque la corrélation entre plus j’enseigne quelque chose, mieux je le comprends. Dans la vraie vie, lorsque j’écris un nouvel article, je m’efforce d’entrer dans les petits détails tout en gardant l’explication simple pour mes lecteurs. Mettre l’accent sur les informations de cette manière m’aide à mieux comprendre le flux de travail des algorithmes.
En ce sens, chaque fois que je rencontre une erreur dans l’un des algorithmes utilisés au travail sur lesquels j’ai écrit un article dans le passé, il y a plus de chances que je trouve rapidement la solution au problème par moi-même. D’un autre point de vue, lorsque j’écris un article sur un sujet inconnu et que je l’explore moi-même, cela augmente ma confiance lorsque j’applique cet algorithme particulier au travail, car je connais déjà son champ d’application, ses avantages, ses inconvénients et ses détails ou contraintes spécifiques.
De cette façon, je peux proposer des solutions originales qui ne sont pas évidentes pour les autres et sauvegarder mon choix auprès d’autres coéquipiers, managers ou parties prenantes. Cette connaissance m’est précieuse.
Avec autant de nouveaux modèles qui apparaissent chaque jour, il est facile de se sentir complètement submergé. Comment décidez-vous de ce qui mérite une « analyse approfondie » et de ce dont vous « comprenez simplement l’essentiel » ? Votre stratégie de gestion de cette situation a-t-elle changé récemment ?
Aujourd’hui, nous disposons en effet d’une abondance de modèles et d’outils qui apparaissent chaque jour. Il est facile de se sentir perdu lorsque vous ne savez pas quoi poursuivre ensuite.
Avec un temps limité, j’approfondis généralement des sujets qui peuvent être applicables au travail ou dans mes projets personnels. Cela me donne plus de confiance lorsque je dois présenter ou expliquer mes résultats.
Les entreprises souhaitent généralement obtenir des résultats le plus rapidement possible. C’est aussi une des raisons pour lesquelles, dans mes articles, je me concentre davantage sur des concepts théoriques, car je ne peux pas consacrer mon temps de travail à approfondir la théorie.
De cette façon, j’ai un mélange efficace d’expérience pratique au travail et d’informations théoriques sur mon blog. Ces deux composants sont importants pour les data scientists qualifiés.
Vous avez participé à des hackathons d’IA. Qu’avez-vous appris de ces délais aussi serrés ? Cela vous a-t-il obligé à mieux définir la portée des projets ou à choisir un modèle ? Et vous retrouvez-vous à utiliser l’une de ces « leçons de hackathon » lorsque vous esquissez une nouvelle idée à partir de zéro ?
Les hackathons durent généralement entre plusieurs heures et deux jours. Cela représente une très courte période pour développer un produit entièrement fonctionnel. Cependant, en même temps, cela m’a beaucoup poussé par le passé à mieux prioriser les fonctionnalités sur lesquelles je devais me concentrer. En général, la gestion du temps est une compétence précieuse. Lorsque vous avez plusieurs solutions possibles pour résoudre votre problème, vous devez choisir celle qui correspond le mieux aux besoins de votre entreprise tout en respectant les contraintes de temps.
Ce qui est également formidable, c’est qu’après chaque hackathon, vous pouvez vous évaluer en fonction du temps qu’il vous a fallu pour implémenter certaines fonctionnalités. Par exemple, disons que c’était la première fois que vous deviez développer un pipeline RAG, ce qui vous a pris environ 4 heures à mettre en œuvre. La prochaine fois que vous serez confronté à un problème analogue au travail ou lors d’un hackathon, vous aurez une meilleure estimation à l’avance du temps qu’il vous faudrait si vous décidiez d’utiliser la même méthode. En ce sens, l’expérience hackathon permet de mieux définir des limites temporelles pour les méthodes que vous souhaitez mettre en œuvre dans les projets.
Pour moi, la plus grande leçon du hackathon a été de ne pas se concentrer sur la perfection lors de la création du MVP. Si un MVP est important, il est également nécessaire de présenter votre produit de manière attrayante aux clients ou aux investisseurs, d’expliquer sa valeur commerciale, le problème qu’il résout et pourquoi il est meilleur que les solutions existantes sur le marché. À cet égard, les hackathons vous apprennent à trouver de meilleures idées qui résolvent de vrais problèmes tout en expédiant rapidement le MVP, contenant les fonctionnalités les plus essentielles.
Pour les lecteurs qui réfléchissent à leur parcours professionnel : votre «Feuille de route pour devenir un data scientist« La série couvre les principes fondamentaux du ML avancé. Si vous la réécriviez aujourd’hui, quels sujets seraient promus, rétrogradés ou entièrement supprimés, et pourquoi ?
J’ai écrit cette série d’articles il y a un an. Pour moi, tous les concepts et sujets que j’ai répertoriés sont à jour pour les aspirants data scientists. Tous les sujets de mathématiques, d’informatique et d’apprentissage automatique que je présente ici constituent une base essentielle pour tout ingénieur en apprentissage automatique.
Comme nous sommes maintenant fin 2025, j’ajouterais également l’exigence d’avoir au moins une expérience minimale en ingénierie rapide et d’être familier avec certains outils de génération d’IA, tels que GitHub Copilot, Gemini CLI et Cursor, ce qui permettrait une efficacité de travail accrue.
Il convient de noter que par rapport aux années précédentes, les entreprises informatiques ont des exigences et des attentes plus élevées à l’égard des ingénieurs juniors entrant dans le domaine de la science des données. Cela a du sens, car les outils d’IA modernes peuvent très bien effectuer des tâches de niveau junior, et de nombreuses entreprises préfèrent désormais s’appuyer sur eux plutôt que sur des ingénieurs débutants, car ils n’ont pas à payer de salaire alors que dans les deux cas, ils obtiennent le même résultat.
C’est pourquoi, si un ingénieur en machine learning possède les solides compétences fondamentales que j’ai décrites dans cette série d’articles, il lui sera beaucoup plus facile de se plonger de manière autonome dans des sujets plus complexes.
Votre expérience allie génie logiciel et ML. Comment cette fondation façonne-t-elle votre façon d’écrire ?
Posséder de solides compétences en génie logiciel est l’un des meilleurs avantages que vous puissiez avoir en tant que Data Scientist :
- Cela vous fait prendre conscience de l’importance d’une documentation logicielle bien structurée et de la création de pipelines ML reproductibles.
- Vous comprenez mieux comment rendre votre code propre et lisible pour les autres.
- Vous comprenez les contraintes algorithmiques et quelle structure de données choisir pour une tâche particulière, en fonction des besoins du système.
- Vous pouvez collaborer plus facilement avec les ingénieurs backend et DevOps sur l’intégration de vos modules de code.
- Vous n’avez pas besoin de compter sur d’autres pour effectuer des requêtes SQL afin de récupérer les données nécessaires de la base de données.
La liste peut s’allonger encore et encore…
En parlant de mes articles, je n’en ai pas beaucoup qui présentent beaucoup de code. Cependant, chaque fois que je le fais, je m’efforce de le rendre lisible et compréhensible pour les autres. Je me mets toujours à la place des autres et me demande comment le texte de mon article ou mes exemples de code seraient faciles à percevoir ou à reproduire si j’étais à la place des autres. C’est là que l’expérience en génie logiciel rend cette réalisation plus essentielle pour moi, et je suis les meilleures pratiques établies pour livrer mon produit final.
En regardant votre portefeuille et GitHubvous avez combiné les principes fondamentaux du génie logiciel avec le ML dès le début. Quelle est l’habitude d’ingénierie que vous souhaiteriez que les data scientists en herbe adoptent le plus tôt possible ?
De nombreux ingénieurs, en particulier les débutants, ont tendance à sous-estimer l’importance de créer une bonne documentation et des pipelines reproductibles. Cela m’est également arrivé dans le passé, lorsque j’étais davantage concentré sur le développement de modèles robustes ou la conduite de recherches.
Il s’est avéré que lorsque j’ai dû changer de contexte, puis plusieurs semaines plus tard pour retourner travailler sur le projet précédent, je passais alors beaucoup de temps à comprendre comment exécuter mon ancien code dans un Jupyter Notebook en désordre ou réinstaller les bibliothèques nécessaires, là où j’aurais pu passer un peu plus de temps dans le passé en développant un README.md bien documenté expliquant toutes les étapes requises pour exécuter les pipelines à partir de zéro.
Comme il était presque impossible de réexécuter mes pipelines à partir de zéro, je n’étais pas non plus en mesure de mener des expériences en utilisant d’autres paramètres d’entrée, ce qui rendait la situation encore plus frustrante.
Ce fut une expérience douloureuse pour moi, mais c’est pourtant l’une des leçons les plus précieuses que j’ai apprises. Donc, si je devais donner un conseil à un aspirant data scientist sur une habitude particulière, ce serait celui-ci :
« Rendez toujours vos pipelines d’apprentissage automatique réutilisables et bien documentés ».
Au cours de la dernière année, l’IA a-t-elle changé de manière significative votre façon de travailler au quotidien en tant qu’ingénieur ML ? Qu’est-ce qui est devenu plus facile, qu’est-ce qui est devenu plus difficile et qu’est-ce qui est resté le même ?
Ces dernières années, nous avons observé une augmentation significative des outils d’ingénierie d’IA puissants :
- Les LLM, qui peuvent répondre à presque toutes les questions, donner des conseils ou trouver des bogues dans un logiciel
- Cursor, Lovable et Bolt agissent comme des IDE basés sur l’IA pour les développeurs
- Les agents IA peuvent effectuer des tâches en plusieurs étapes
En tant qu’ingénieur en machine learning, il est essentiel pour moi de m’adapter régulièrement à ces outils pour les utiliser efficacement.
Ce qui est devenu plus facile
À partir de 2025, je peux observer les impacts positifs suivants sur mon travail :
- Pour moi, il est devenu plus facile de tester rapidement des idées ou des prototypes. Par exemple, il y a eu des moments au travail où j’ai été confronté à des problèmes de vision par ordinateur qui ne relevaient pas de mon domaine de connaissances. De cette façon, je pourrais demander à ChatGPT de proposer plusieurs idées pour les résoudre. Il y a même eu des moments où ChatGPT générait du code pour moi, et j’essayais de l’exécuter sans comprendre comment cela fonctionnait à l’intérieur.
Ensuite j’ai eu deux cas possibles :- Si le code s’est exécuté avec succès et a résolu le problème initial, j’ai essayé d’approfondir la documentation d’OpenCV pour comprendre comment cela fonctionne finalement.
- Si le code ne résolvait pas mon problème, soit je l’ignorerais, soit je signalerais l’erreur à ChatGPT, soit j’essaierais de trouver la solution moi-même.
Comme vous pouvez le constater, j’ai pu tester rapidement une solution qui pouvait fonctionner et m’économiser des heures de recherche sans aucun risque.
- Un autre excellent cas d’utilisation pour moi consistait à insérer des messages d’erreur directement dans ChatGPT au lieu de rechercher une solution sur Internet. Cela fonctionnait bien la plupart du temps, mais il était parfois affecté par des erreurs liées à l’installation des bibliothèques, aux erreurs système et au déploiement de pipelines sur le Cloud, entre autres problèmes.
- Enfin, je suis un grand fan des hackathons IA ! Disposer d’outils capables de générer à la fois le frontend et le backend de votre système fait une énorme différence pour moi, car je peux désormais créer rapidement des prototypes et tester mon MVP en plusieurs heures. Ce que je développe actuellement lors de hackathons d’une journée pourrait nécessiter une semaine entière de travail.
Ce qui est devenu plus difficile/risqué
- Lors de l’écriture de code avec l’IA, le risque de fuite de données sensibles est plus élevé. Imaginez que vous ayez un fichier ou un fragment de code contenant des informations d’identification essentielles que vous introduisez accidentellement dans un modèle d’IA. Ensuite, un outil tiers connaîtra vos informations d’identification sensibles. Cela peut arriver, surtout si vous utilisez un outil tel que Cursor et stockez vos informations d’identification dans un autre fichier plutôt que .env. Il faut donc toujours être très prudent.
- Un autre risque est de ne pas tester correctement le code généré par l’IA et de ne pas savoir comment effectuer un rollback. Un outil d’IA peut introduire des erreurs invisibles dans le code, notamment lorsqu’il est utilisé pour modifier ou refactoriser du code existant. Pour garantir que le code généré par l’IA ne se dégrade pas, il est nécessaire d’examiner minutieusement les parties de code générées, de les tester et d’enregistrer les modifications de manière à vous permettre de toujours revenir à une version précédente et correcte si nécessaire.
- Lorsqu’on s’appuie trop sur des outils d’IA générative, il existe un risque que le code devienne illisible, contienne des fonctions trop longues, présente des répétitions ou cesse de fonctionner correctement. C’est pourquoi il est essentiel de comprendre que les outils d’IA fonctionnent plus efficacement sur le prototypage que sur le maintien d’un code de production de haute qualité.
Ce qui est resté le même
Ce qui reste constant pour moi, c’est l’importance de comprendre le flux de travail interne des algorithmes que j’utilise, de maintenir de solides bases informatiques et d’écrire du code de haute qualité, entre autres compétences clés. En d’autres termes, les principes de base du développement logiciel seront toujours nécessaires pour utiliser efficacement les outils d’IA.
En ce sens, j’aime comparer un ensemble d’outils d’IA disponibles à un substitut à un développeur junior de mon équipe, à qui je peux déléguer des tâches moins essentielles. Je peux lui demander ce que je veux, mais je ne peux pas être sûr à 100 % qu’il accomplira correctement mes tâches, et c’est là qu’intervient l’importance d’avoir une solide expertise fondamentale.
Pour en savoir plus sur le travail de Vyacheslav et rester au courant de ses derniers articles, vous pouvez le suivre sur TDS ou LinkedIn.



