L'informatique sans serveur
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 et plus rapidement dès aujourd'hui !
L'informatique sans serveur est un modèle d'exécution en nuage dans lequel le fournisseur de nuage 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 les serveurs, les développeurs déploient leur code sous forme de fonctions. Ces fonctions sont exécutées par le fournisseur à la demande, en 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 dont le trafic est variable ou imprévisible, un scénario courant dans les applications d'apprentissage automatique (ML).
Applications dans le domaine de l'IA et de l'apprentissage automatique
L'architecture sans serveur 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és : Les fonctions sans serveur 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 sur un service de stockage comme 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èle rentable : De nombreuses applications d'IA ne nécessitent pas un traitement constant et à haut volume. Un point d'extrémité sans serveur pour un modèle de vision par ordinateur vous permet de déployer des modèles tels qu'Ultralytics YOLO sans maintenir un serveur en fonctionnement constant, et souvent coûteux. La fonction s'active à 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 dont l'utilisation est intermittente.
Exemples concrets
- Analyse d'images à la demande : Une application mobile permet aux utilisateurs de télécharger des photos de plantes à des fins d'identification. Chaque photo téléchargée déclenche une fonction sans serveur via une passerelle API. La fonction charge un modèle de classification d'images, analyse la photo pour identifier l'espèce végétale et renvoie le résultat à l'application de l'utilisateur. L'ensemble du processus se déroule en quelques secondes, sans serveur dédié.
- Traitement du chatbot en temps réel : Dans un chatbot de service à la clientèle, chaque message d'utilisateur est un événement qui déclenche une fonction sans serveur. Cette 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, selon une architecture pilotée par les événements.
Concepts sans serveur et concepts connexes
Il est important de distinguer l'informatique sans serveur des technologies connexes :
- Cloud Computing vs. Serverless : L'informatique en nuage est la fourniture générale de services informatiques sur l'internet. Le "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 de la gestion des serveurs. D'autres modèles d'informatique en nuage, comme l'infrastructure en tant que service (IaaS), exigent toujours que les utilisateurs fournissent et gèrent des machines virtuelles.
- Conteneurisation vs. sans serveur : 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 devez toujours gérer l'infrastructure de cluster sous-jacente. Les plateformes sans serveur font abstraction de cette couche ; vous ne gérez que le code de la fonction. Voir 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, l'informatique sans serveur exécute des fonctions dans des centres de données centralisés dans le cloud. Les deux peuvent être complémentaires ; un appareil Edge AI (comme un appareil fonctionnant sur un NVIDIA Jetson) peut effectuer un filtrage initial, puis déclencher une fonction sans serveur dans le cloud pour une analyse plus intensive.
Les principales plateformes sans serveur comprennent 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 sans serveur. Des plateformes comme Ultralytics HUB peuvent rationaliser davantage le déploiement et la gestion des modèles au sein de diverses architectures, y compris les configurations sans serveur.
Comment fonctionne 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 le téléchargement d'un fichier dans un espace de stockage en nuage.
Lorsqu'un événement déclencheur se produit, la plateforme en nuage exécute instantanément la fonction correspondante. La plateforme prend en charge 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 la fonction exécutée, les ressources sont libérées. Cela élimine le temps d'inactivité des serveurs et garantit que vous ne payez que pour les ressources informatiques exactes que votre application consomme. Il s'agit là d'un principe fondamental des MLOps modernes.