Comment Déployer des Algorithmes de Machine Learning ?

Cover algorithmes

Comment Déployer des Algorithmes de Machine Learning ?

Share on twitter
Share on linkedin
Share on pinterest
Share on reddit
Share on pocket
Share on email

Les algorithmes de machine learning sont de plus en plus complexes, et les recherches en intelligence artificielle (IA) n’arrêtent pas de proposer de nouvelles variantes. Par ailleurs, le marché demande des solutions de plus en plus robustes et performantes. Comment pouvoir mettre en place, sur ordinateur, les dernières solutions d’IA sans être un génie en mathématiques ni en informatique, et sans nécessairement avoir des bases élémentaires en programmation algorithmique ? La solution passe par un paradigme d’orchestration. Voici comment utiliser les containers et orchestrer vos outils.

Choisir entre on-premise ou multi-cloud

Première question à se poser quand il s’agit de déployer une solution : quel type de solution voulez-vous mettre en place ? On-premise ou cloud (avec toutes ses variantes) ? Les applications on-premise sont installées dans les différents serveurs et dispositifs de l’entreprise, c’est-à-dire en local. Cela permet d’avoir un accès physique et un controle direct et total sur les données. De plus, ce type de solution ne dépend pas directement d’une connexion à internet. Pour ce type d’application, vous aurez à acheter une licence une seule fois, dont le prix variera en fonction de la taille de votre entreprise, le nombre d’utilisateurs, etc. Concernant la sécurité, vos données ne seront pas protégées si les serveurs locaux ont un problème.

Concernant les applications en cloud, vous aurez une capacité de calcul et de stockage importante sans avoir besoin d’installer quoi que ce soit en local avec très peu d’investissement initial. De plus, vous pouvez choisir un cloud hybride (public/privé) et profiter d’un ensemble d’avantages : flexibilité d’options, sécurité par rapport aux données critiques, scalabilité de l’infrastructure en espace, mémoire et vitesse de calcul et des coûts réduits.

Quand il s’agit de déployer un algorithme, n’oubliez pas que dans un système cloud, l’algorithme est prêt à s’intégrer et à fonctionner sur votre plateforme. Vous pourrez alors obtenir des résultats très rapidement, alors que dans une installation locale vous aurez sans doute à gérer les configurations de chaque poste sur lequel vous voudrez lancer votre algorithme.

À la complexité liée au choix de l’infrastructure s’ajoute la difficulté à choisir et maîtriser les frameworks de data science qui doivent s’intégrer à ces infrastructures. Vous devrez faire face à des problèmes d’incompatibilité, de difficulté de traçabilité et de versioning. Gardez en tête qu’un framework pour la data science doit respecter un ensemble de caractéristiques, entre autres : portabilité, prise en main facile ainsi qu’une compatibilité avec les différentes systèmes de cloud.

Pourquoi utiliser des conteneurs ?

À différence des machines virtuelles, qui permettent une virtualisation de l’infrastructure, les conteneurs font de même avec les applications. De plus, ils utilisent le même système d’exploitation que la machine sur laquelle ils sont déployés.

Étant donné qu’ils n’incluent pas un système d’exploitation, les conteneurs d’applications contiennent les ressources minimales, rapides et faciles à installer, nécessaires au bon fonctionnement d’une application pour faciliter son utilisation aux administrateurs et développeurs, en simplifiant aussi bien l’installation que le déploiement.

Il y a plusieurs avantages à l’utilisation des conteneurs. Nous pouvons citer :

  • La gestion et l’automatisation de tâches deviennent plus efficaces.
  • L’indépendance de la plateforme.
  • La vitesse d’exécution par rapport à une virtualisation.
  • L’indépendance des conteneurs.

Avec l’arrivée du big data et des algorithmes issus de la data science, vous devrez sans doute utiliser un environnement cloud et veiller à que vos traitements soient portables et reproductibles, grâce aux conteneurs.

Au moment où vous passez d’une configuration locale à un environnement data dans le cloud, vous devez vous poser la question de vos besoins. Par exemple, pour travailler avec des grandes masses de données sur Pandas, vous devrez disposer d’une grande quantité de mémoire. Pour travailler avec Spark et traiter également beaucoup de données, vous aurez besoin d’un ensemble de machines avec des processeurs à plusieurs kernels.

Dans un environnement aussi variable comme la data science, il faudra s’adapter très rapidement aux besoins de chaque projet. Le cloud, l’utilisation de conteneurs et l’orchestration d’outils seront indispensables pour automatiser le déploiement, la gestion, la scabilité, l’interconnexion et la disponibilité de vos applications.

Le cas de Kubernetes

Kubernetes est le nouveau standard de marché dans l’orchestration de conteneurs dockers. Il s’agit de l’outil d’orchestration le plus utilisé sur le marché. Et ce n’est pas surprenant étant donné que c’est Google qui a été à l’origine de cette technologie et qui continue à la développer, exécutant des millions de conteneurs chaque semaine.

Avec Kubernetes, vous pouvez vous focaliser sur l’application sans vous préoccuper de l’infrastructure derrière. Si Docker a changé le paradigme de développement des applications industrielles avec la gestion du cycle de vie de conteneurs, Kubernetes va encore plus loin, en proposant une gestion complète de groupes de conteneurs dans des multiples clusters, dans un contexte distribué à grande échelle et surtout dans le cloud.

Il existe d’autres outils d’orchestration (Docker Swarm, Mesosphere Datacenter, Google KE, Amazon ECS…) mais si vous devez en apprendre un, nous vous conseillons Kubernetes.

Les systèmes Cloud : indispensables pour déployer des algorithmes

Pour déployer des algorithmes dans un contexte data, en ayant clairement mesuré la complexité des algorithmes, les systèmes cloud sont une grande option pour les entreprises qui souhaitent faire appel à des solutions rapides, agiles et demandant peu d’investissement initial. Des tutoriels sont bien sûr disponibles pour ceux qui auraient besoin d’aide.

De même, vous ne pourrez pas passer à côté de la technologie à base de conteneurs et surtout de Kubernetes, qui vous permettra de gérer les conteneurs sur le cloud.