Au lancement d’un projet de Machine Learning, on a deux options principales en termes de stack technique : la première est d’utiliser une Plateforme de ML end-to-end, les composants sur l’étagère testés et approuvés sont un gain de temps.
Cette solution est cependant accompagnée des inconvénients classiques des solutions managées (coût, fonctionnalités “boîtes noires”, moins de personnalisation, intégration limitée avec d’autres outils, vendor lock-in). La seconde option est d’utiliser des outils open- source et du code sur-mesure pour se constituer sa propre stack. On évite alors les problèmes de la solution managée, au prix d’un investissement initial à la fois sur les choix de briques techniques et leur mise en place.
Nous avons développé un générateur de projet, Sicarator afin de simplifier cette seconde option : il permet d’initier en quelques minutes une base de code de qualité pour un projet de Machine Learning, intégrant des technologies open-source récentes.
Créé en 2022 pour un usage interne, il a été open-sourcé un an plus tard après avoir prouvé son efficacité sur une vingtaine de projets.
La promesse est de pouvoir, en suivant une interface en ligne de commande, générer un projet répondant aux meilleures pratiques que nous avons identifiées, comme :
• Intégration continue avec plusieurs checks de qualité (tests unitaires, linting, typage)
• Visualisation des données avec un dashboard Streamlit
• Tracking et visualisation des données et des expériences en combinant DVC et Streamlit (comme expliqué dans le blip DVC)
Le code correspondant est généré avec la documentation nécessaire pour l’utiliser. L’outil a été conçu avec une approche centrée sur le code, pour donner un maximum de contrôle aux data scientists / ingénieurs ML. L’outil cherche à refléter les bonnes pratiques à mesure que l’écosystème évolue. Par exemple, Ruff a récemment remplacé PyLint et Black comme linter / formateur de code.
Il apportera cependant une réponse moins complète que ce que proposent les plateformes les plus avancées, demandant un travail supplémentaire de mise en place. Par exemple, à date, le lancement automatisé d’instances d’entraînement de modèles n’est pas intégré.
LE POINT DE VUE THEODO
Nous recommandons l'adoption de ce rôle dans les environnements où la collaboration entre les équipes techniques et métiers nécessite d'être fluidifiée. L'ajout des Analytics Engineers permet de renforcer la qualité des modèles de données, d'optimiser les processus analytiques, d'accroître l'efficacité opérationnelle, mais aussi de résoudre les difficultés d'interaction entre les équipes de Data Engineering et de Data Analyse.
Lorem ipsum dolor sit amet consectetur. Eu tristique a enim ut eros sed enim facilisis. Enim curabitur ullamcorper morbi ultrices tincidunt. Risus tristique posuere faucibus lacus semper.
En savoir plus