Jusqu'à tout récemment, la plupart des entreprises avaient constaté deux flux de travail distincts, qui ne se chevauchaient pas, lors de la création d'une application compatible avec l'IA: un chemin de développement et un chemin data sciences.

Souvent, les deux groupes construisent en fait des solutions fonctionnelles avec des scripts similaires en utilisant quelque chose comme Python ou C / F #. En outre, une fois qu'un data scientiste termine l'étape d'évaluation et de sélection du modèle du processus de sciences de données, il existait un «vide de confusion» en ce qui concerne les meilleures pratiques concernant l'intégration dans de nouveaux processus métier existants ou en augmentation, chaque partie ne comprend pas très bien comment soutenir l'autre / quand à s'engager. À mon avis, une grande partie de la convergence a été alimentée par la popularité et l'utilisation croissantes des services de conteneur comme  Docker et Kubernetes, en particulier dans le monde des DevOps.

Alors, comment ces couloirs convergent, demandez-vous ?

Vous pouvez planifier et créer un pipeline d'intégration continue pour une application d'IA pour les débutants. Le pipeline démarre à chaque nouvelle validation effectuée par le data scientiste, ce qui déclenche les cycles de tests. Si le test réussit, il utilise la dernière version, le regroupe dans un conteneur Docker, ainsi que tous les packages nécessaires et les dépendances / versions des packages pour une modélisation réussie.

Le conteneur est ensuite déployé à l'aide d'un service de conteneur hébergé dans le cloud, comme @Azure Container Service (ACS) et les images suivantes sont stockées de manière sécurisée dans le registre de conteneur associé (ACR). Ceci est très utile pour le développement à petite échelle, mais lorsque vous voulez opérationnaliser ou déployer en production, il faut s’orienter vers un service comme Kubernetes pour la gestion / orchestration des clusters de conteneurs (les autres alternatives de service sont  Docker-Swarm / Mesos). .

L’application extrait en toute sécurité le dernier modèle pré-entraîné ML  à partir d’un compte de stockage de blob basé sur le cloud et le regroupe dans l’application. L’application déployée contient le code de l’application et le modèle ML dans un conteneur unique et les actifs et sorties deviennent une partie du code d’archivage qui est renvoyé dans le référentiel de codes d’entreprise pour contrôle de version, etc.

Cela sépare les développeurs d'applications et data scientistes, afin de s'assurer que leur application de production exécutent toujours le dernier code avec le dernier modèle ML.