Data Science et Ingénierie en Machine Learning

Développement de Modèles

Les modèles de machine learning ont la capacité d’extraire une information pertinente, à partir d’un volume de données pouvant être de nature différente. L’information cachées dans les données est utilisée pour réaliser des prédictions ou des analyses aidant à la prise de décision. Pour mettre au point de tels modèles, nous utilisons généralement des méthodes de classification ou de régression automatique, plus ou moins complexes, en fonction de la nature et du volumes de données qui sont exploitées. De plus, chaque projet fait l’objet d’une étude de dérisquage permettant d’ajuster ces méthodes pour fournir des solutions adaptées à vos besoins spécifiques.

La gamme des méthodes que nous mettons en œuvre s’étend des algorithmes supervisés jusqu’aux méthodes non-supervisées. Ce choix dépend de la tâche que l’on souhaite automatiser, mais il dépend majoritairement des données en elles-mêmes. Ainsi, la disponibilité de données labellisées rend possible l’utilisation de méthodes supervisées, qui performent généralement mieux que les méthodes non-supervisées. Par ailleurs, lorsqu’il existe des corpus de données volumineux issus d’un domaine d’application équivalent ou similaire, l’utilisation de méthodes de pré-entraînement, dites auto-supervisées est rendu possible, ce qui nous amène en général à des modèles robustes.

Intégration et Déploiement

Dans tout projet de machine learning, l’intégration et le déploiement des modèles est un point central. Nous nous assurons que les modèles sont intégrés de façon transparente dans tout environnement de production et nous veillons à conserver la plus grande cohérence avec l’écosystème de logiciels global. Après validation des modèles, nous effectuons leur déploiement dans un environnement stable et isolé pour ne perdre ni altérer aucunes données ou encore compromettre le système d’information. Cette approche offre la garantie d’une transition fluide pour passer sereinement de processus opérés manuellement à une automatisation partielle ou totale.

Penser que la plus grosse part du travail est attribuable au développement du modèle est une erreur. Un modèle, s’il n’est pas intégré correctement dans un ou plusieurs flux de données a une utilité très limitée, voire nulle. Bien qu’il soit essentiel de prendre en considération les flux de données à destination du modèle, il ne faut pas pour autant négliger les flux qu’il génère. La mise en place de ces flux permet d’alimenter le modèle d’une part et de recueillir, d’autre part, des informations sur son fonctionnement et enrichir les tableaux de bord.

Maintenance et Optimisation

La surveillance des modèles est un élément critique de tout projet. Il est impératif de mettre en place des métriques pertinentes et d’y avoir accès de façon continue, pour être en mesure de déceler les problèmes en amont. S’il est vrai qu’un programme s’exécute toujours de la même manière, il y a une différence majeure entre le comportement d’un logiciel en production et celui d’un modèle. Quand bien même, la couverture de code atteindrait les 100% et que tous les cas imaginables auraient été traités, il existe un élément sur lequel il n’est pas possible d’agir. Il s’agit des données et de leur distribution. En effet, hormis dans les cas où l’erreur est flagrante, les données sont généralement la principale source des problèmes qu’il est possible de rencontrer. En règle générale, les modèles doivent être monitorés d’un point de vue fonctionnel et d’un point de vue opérationnel. Dans le premier cas, nous cherchons à savoir si les performances du modèle sont conforment aux attentes et dans le second cas, nous nous assurons que les modèles ne sont pas à l’origine d’anomalies au niveau du système et des ressources de calculs.