Dans le contexte actuel de partage des données à vos clients et au sein de l'entreprise pourquoi ne pas passer à la vitesse supérieure et partager des algorithmes ?
Dans une architecture AWS, il est finalement assez simple de mettre en place une intermédiation des services en SDK et ainsi piloter et centraliser l'exécution de traitements complexes.
Dans notre cas nous avons fait le choix de tout centraliser dans Sagemaker pour bénéficier de ses fonctionnalités suivantes sans complexité :
Voici un exemple de modélisation permettant de partager et mettre à disposition vos algorithmes en utilisant les solutions natives AWS tout en maîtrisant vos coûts et à moindre coût de développement :
Première partie, l'interface de gestion permettant de version et exposer l'ensemble de vos algorithmes, cette partie est à développer mais peut l'être rapidement et je n'ai pas de toute que des solutions natives seront bientôt disponibles (exemple partie Algorithme d'AWS est assez proche) :
Seconde partie pour l'appel au WebService utilisant l'algorithme mis à disposition en interface Humain/Machine (ex. : Postman, Swagger) ou en interface Machine/Machine (Wget, Curl, ...) :
A. Appel d'un WebService (version spécifique) en transmettant les paramètres au format JSON
B. Construction d'un entrainement Sagemaker et lancement de celui-ci à l'aide de la configuration du service (ECR + S3) en prenant en compte le paramétrage utilisateur
C. Le client final requête à intervalle régulier l'API pour connaître le statut d'avancement.
Le client final
requête et récupère les résultats via l'API
Ainsi à l'aide de ce type d'interface, vous êtes en capacité de maîtriser vos coûts ainsi que l'infrastructure déployée.
Cette architecture est modulable à l'infini au regard de vos contraintes et de votre existant. En effet, il est possible par exemple de remplacer l'EKS par un ECS ou encore Fargate (l'utilisation du Spot Instance reste un besoin).