L'informatique sans serveur est un modèle d'exécution du cloud computing dans lequel le fournisseur de cloud gère dynamiquement l'allocation et le provisionnement des serveurs. Les développeurs peuvent écrire et déployer du code en tant que fonctions individuelles sans avoir besoin de gérer l'infrastructure sous-jacente comme les systèmes d'exploitation ou le matériel des serveurs. Bien que les serveurs soient toujours utilisés, leur gestion est complètement abstraite, ce qui permet aux équipes de se concentrer sur la construction de la logique de l'application. Cela est particulièrement avantageux pour itérer rapidement sur des projets d'intelligence artificielle (IA) et d'apprentissage automatique (ML), ce qui permet des cycles de développement plus rapides et une utilisation efficace des ressources.
Comprendre l'architecture sans serveur
Dans une configuration sans serveur, les applications sont souvent structurées comme un ensemble de fonctions indépendantes déclenchées par des événements spécifiques. Ce modèle est communément appelé fonction en tant que service (FaaS). Les événements peuvent inclure des requêtes HTTP (comme des appels API), des modifications de base de données, des téléchargements de fichiers vers le stockage cloud ou des messages provenant d'un système de file d'attente. Lorsqu'un événement se produit, le fournisseur de cloud alloue automatiquement les ressources de calcul nécessaires à l'exécution de la fonction correspondante. Une fois l'exécution terminée, ces ressources sont réduites, souvent à zéro s'il n'y a pas de demandes en attente. Cette approche de mise à l'échelle automatique en fonction des événements diffère considérablement des architectures traditionnelles où les serveurs fonctionnent en continu, ce qui peut entraîner des ressources inutilisées et des coûts d'exploitation plus élevés. Elle s'aligne bien sur les demandes variables de nombreux cas d'utilisation de l'IA.
Avantages de l'IA et de la ML
L'informatique sans serveur offre des avantages convaincants pour les charges de travail d'IA et de ML, qui ont fréquemment des demandes de calcul variables :
- Évolutivité automatique : gère les charges imprévisibles de façon transparente. Par exemple, un moteur d'inférence servant des prédictions pourrait connaître des pics soudains de demandes. Les plateformes sans serveur mettent automatiquement à l'échelle les instances de fonction vers le haut ou vers le bas pour répondre à la demande sans intervention manuelle, ce qui garantit des performances constantes. C'est crucial pour les applications nécessitant une inférence en temps réel.
- Rentabilité : Fonctionne selon le principe du paiement à l'utilisation. Tu n'es généralement facturé que pour le temps de calcul réel consommé par tes fonctions, à la milliseconde près. Cela élimine les coûts associés à la capacité inactive du serveur, ce qui le rend économique pour des tâches telles que l'entraînement périodique de modèles ou des travaux de traitement de données peu fréquents. Explore les avantages des économies d'échelle.
- Des cycles de développement plus rapides : La gestion de l'infrastructure est supprimée. Les développeurs peuvent se concentrer uniquement sur l'écriture de code pour des tâches spécifiques comme le prétraitement des données, l'extraction des caractéristiques ou l'exécution de la logique de prédiction. Cela accélère le développement et le déploiement, en facilitant l'expérimentation plus rapide de différents modèles ou de stratégies de réglage des hyperparamètresUltralytics guideUltralytics ).
- Opérations simplifiées : Réduit les frais généraux opérationnels. Les tâches telles que l'application de correctifs aux systèmes d'exploitation, la gestion de la capacité des serveurs et la garantie de la haute disponibilité sont prises en charge par le fournisseur de cloud, ce qui libère des ressources pour les tâches principales de ML. En savoir plus sur les opérations d'apprentissage automatique (MLOps).
Applications concrètes de l'IA/ML
Les architectures sans serveur sont bien adaptées à diverses tâches d'IA/ML :
- Analyse d'images et de vidéos : Considérons une application qui effectue la détection d'objets sur des images téléchargées par l'utilisateur à l'aide d'un logiciel d'analyse d'images et de vidéos. Ultralytics YOLO d'Ultralytics. Un événement de téléchargement vers le stockage dans le cloud (comme Amazon S3 ou Google Cloud Storage) déclenche une fonction sans serveur. Cette fonction charge l'image, exécute le modèle YOLO pour la détection, effectue potentiellement une segmentation de l'image et stocke les résultats (par exemple, les boîtes englobantes, les étiquettes de classe) dans une base de données ou les renvoie via une API. Le système s'adapte automatiquement au nombre de téléchargements sans avoir besoin de serveurs préprovisionnés. Ce modèle est utile dans des applications allant de la modération de contenu à l'analyse d'images médicales. Voir les solutionsUltralytics pour plus d'exemples.
- Backends de chatbot : De nombreux chatbots alimentés par de grands modèles de langage (LLM) utilisent des fonctions sans serveur pour traiter les messages entrants des utilisateurs. Chaque message déclenche une fonction qui traite le texte, interagit avec l'API LLM (comme GPT-4), effectue les actions nécessaires (par exemple, les recherches dans la base de données via la recherche vectorielle) et renvoie une réponse. Le modèle de paiement à la demande est idéal pour les chatbots dont l'utilisation est fluctuante. Explore les concepts du traitement du langage naturel (NLP).
Serverless par rapport aux concepts connexes
Il est important de distinguer l'informatique sans serveur des technologies connexes :
- L'informatique en nuage par rapport à l'informatique sans serveur : L'informatique en nuage est la fourniture générale de services informatiques sur Internet. Le Serverless est un modèle d'exécution spécifique au sein du cloud computing qui met l'accent sur la gestion automatique des ressources et les fonctions basées sur les événements (FaaS), abstrayant entièrement la gestion des serveurs. D'autres modèles de cloud computing comme l'Infrastructure as a Service (IaaS) nécessitent encore que les utilisateurs gèrent des machines virtuelles.
- La conteneurisation par rapport au 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, la mise à l'échelle et la gestion de ces conteneurs. Bien que Kubernetes réduise la charge opérationnelle par rapport à la gestion du métal nu ou des VM, tu gères toujours l'infrastructure de cluster sous-jacente. Les plateformes sans serveur abstraient complètement cette couche ; tu ne gères que le code de la fonction. Voir comment utiliser Docker avec Ultralytics.
- Edge Computing vs. Serverless : L'Edge Computing consiste à traiter les données localement sur des appareils proches de la source de données (la "périphérie") afin de réduire la latence et l'utilisation de la bande passante. L'informatique sans serveur exécute généralement des fonctions dans des centres de données centralisés dans le cloud. Bien que distincts, ils peuvent être complémentaires ; un appareil d'IA en périphérie (comme un appareil fonctionnant avec NVIDIA Jetson) peut effectuer un traitement initial ou un filtrage, puis déclencher une fonction sans serveur dans le cloud pour une analyse ou une agrégation plus complexe. Lis l'article sur les caméras de sécurité alimentées par l'IA qui combinent souvent le traitement edge et le traitement cloud.
Les principales plateformes sans serveur comprennent AWS Lambda, Google Cloud Functions et Azure Functions. Ces services fournissent l'infrastructure nécessaire pour créer et exécuter efficacement des applications AI/ML sans serveur, en s'intégrant souvent à d'autres services cloud pour le stockage, les bases de données et la messagerie. 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(explorer les docs HUB).