Informatique sans serveur (Serverless Computing)
Découvrez comment l'informatique sans serveur révolutionne l'IA/ML grâce à l'évolutivité, la rentabilité et le déploiement rapide. Construisez plus intelligemment, plus rapidement dès aujourd'hui !
L'informatique serverless est un modèle d'exécution cloud où le fournisseur de cloud gère dynamiquement l'allocation et le provisionnement des serveurs. Cette approche permet aux développeurs de créer et d'exécuter des applications et des services sans se soucier de l'infrastructure serveur sous-jacente. Au lieu de provisionner et de gérer des serveurs, les développeurs déploient leur code sous forme de fonctions. Ces fonctions sont exécutées à la demande par le fournisseur, passant automatiquement de quelques requêtes par jour à des milliers par seconde. Ce modèle de paiement à l'utilisation le rend très efficace pour les charges de travail avec un trafic variable ou imprévisible, un scénario courant dans les applications de Machine Learning (ML).
Fonctionnement de l'informatique sans serveur
Le cœur de l'informatique sans serveur est le modèle Function-as-a-Service (FaaS). Dans cette configuration, la logique de l'application est décomposée en petites fonctions à usage unique qui sont déclenchées par des événements spécifiques. Un événement peut être une requête HTTP provenant d'une application web, un nouveau message dans une file d'attente ou un fichier téléchargé vers un stockage en nuage.
Lorsqu'un événement déclencheur se produit, la plateforme cloud exécute instantanément la fonction correspondante. La plateforme gère tous les aspects de la gestion des ressources, y compris le provisionnement de l'instance de calcul, la gestion du système d'exploitation et la garantie d'une haute disponibilité et d'une grande évolutivité. Une fois que la fonction a fini de s'exécuter, les ressources sont libérées. Cela élimine le temps d'inactivité du serveur et garantit que vous ne payez que pour les ressources de calcul exactes que votre application consomme. C'est un principe fondamental du MLOps moderne.
Applications dans l'IA et l'apprentissage automatique
L'architecture serverless est particulièrement bien adaptée aux différentes étapes du cycle de vie de l'IA/ML, notamment pour l'inférence de modèles.
- Pipelines de données automatisées : Les fonctions serverless peuvent automatiser les tâches de prétraitement des données. Par exemple, une fonction peut être déclenchée chaque fois qu'une nouvelle image est téléchargée vers un service de stockage tel que Amazon S3. La fonction peut alors redimensionner automatiquement l'image, normaliser les valeurs des pixels et la stocker dans un format prêt pour l'entraînement du modèle.
- Service de modèles rentable : De nombreuses applications d'IA ne nécessitent pas un traitement constant et à volume élevé. Un point de terminaison sans serveur pour un modèle de vision par ordinateur vous permet de déployer des modèles comme Ultralytics YOLO sans maintenir un serveur constamment en cours d'exécution, et souvent coûteux. La fonction démarre à la demande pour traiter une requête et s'arrête ensuite, ce qui réduit considérablement les coûts opérationnels. Cette approche simplifie le déploiement de modèles pour les applications avec des modèles d'utilisation intermittents.
Exemples concrets
- Analyse d'image à la demande : Une application mobile permet aux utilisateurs de télécharger des photos de plantes pour identification. Chaque téléchargement de photo déclenche une fonction serverless via une passerelle API. La fonction charge un modèle de classification d'image, analyse la photo pour identifier l'espèce de plante et renvoie le résultat à l'application de l'utilisateur. L'ensemble de ce processus se déroule en quelques secondes sans serveur dédié.
- Traitement des Chatbots en Temps Réel : Dans un chatbot de service client, chaque message d'utilisateur est un événement qui déclenche une fonction serverless. La fonction appelle un modèle de traitement du langage naturel (NLP) pour comprendre l'intention de l'utilisateur. Sur la base de l'analyse, une autre fonction peut être déclenchée pour interroger une base de données ou appeler une autre API, suivant une architecture événementielle.
Serverless Vs. Concepts connexes
Il est important de distinguer l'informatique sans serveur des technologies connexes :
- Informatique en nuage c. sans serveur : L’informatique en nuage est la vaste prestation de services informatiques sur Internet. Sans serveur est un modèle d’exécution spécifique au sein de l’informatique en nuage qui met l’accent sur la gestion automatique des ressources, en faisant abstraction complète de la gestion des serveurs. D’autres modèles infonuagiques comme l’infrastructure en tant que service (IaaS) exigent toujours que les utilisateurs provisionnent et gèrent les machines virtuelles.
- Conteneurisation vs. Serverless : Les outils de conteneurisation comme Docker empaquettent les applications et leurs dépendances. Les plateformes d'orchestration comme Kubernetes automatisent le déploiement et la mise à l'échelle de ces conteneurs. Bien que cela réduise la charge opérationnelle, vous gérez toujours l'infrastructure de cluster sous-jacente. Les plateformes serverless font complètement abstraction de cette couche ; vous ne gérez que le code de la fonction. Voyez comment utiliser Docker avec Ultralytics.
- Edge Computing vs. Serverless : L'Edge Computing implique le traitement des données localement sur des appareils proches de la source de données. En revanche, le Serverless Computing exécute des fonctions dans des centres de données cloud centralisés. Les deux peuvent être complémentaires ; un appareil Edge AI (comme celui fonctionnant sur un NVIDIA Jetson) peut effectuer un filtrage initial, puis déclencher une fonction Serverless dans le cloud pour une analyse plus approfondie.
Les principales plateformes serverless incluent AWS Lambda, Google Cloud Functions et Azure Functions. Ces services fournissent l'infrastructure nécessaire pour construire et exécuter efficacement des applications d'IA/ML serverless. Des plateformes comme Ultralytics HUB peuvent en outre rationaliser le déploiement et la gestion des modèles au sein de diverses architectures, y compris les configurations serverless.