
Tutorial : configuration d’un serveur IA
Ces dernières années, de plus en plus d’entreprises font le choix d’internaliser leurs serveurs IA. Pour adapter les progrès de l’intelligence artificielle à une application industrielle ou financière, la configuration et la personnalisation d’un serveur de ce type deviennent un enjeu stratégique. Voici les étapes pour répondre à ce nouveau défi.
TUTORIAL
Étape 1 : comprendre les enjeux actuels des serveurs IA en entreprise
On entend par « serveur IA » les machines sur lesquelles des modèles d’intelligence artificielle de différentes natures sont implantés. En entreprise, suivant l’activité, ceux-ci peuvent être configurés pour du machine learning optimisé, de l’analyse visuelle avancée, ou encore pour héberger un chatbot avec son modèle de langage.
Des secteurs de plus en plus nombreux déploient des serveurs IA. L’analyse de fraudes automatisée et la recherche dans d’énormes quantités de données expliquent la présence de serveurs dévolus au machine learning dans la banque et la finance, tandis que l’essor des chatbots personnalisés nourrit le travail de développeurs spécialisés dans l’ecommerce. Enfin, les solutions d’imagerie médicale assistée par ordinateur nécessitent des fonctionnalités avancées de reconnaissance visuelle : un serveur IA spécifique permettra l’entraînement d’un modèle d’aide au diagnostic.
Sur le marché actuel, des SaaS ou des modèles grand public (avec possibilité d’affiner le comportement de modèles préentraînés) sont proposés aux entreprises. Ces solutions ont le désavantage de n’être pas forcément optimisées pour des données spécifiques ni d’être modulaires. Avoir un serveur IA interne permet d’anticiper le scaling d’une solution, et d’entraîner les modèles uniquement sur ses propres données métier.
Étape 2 : connaître le hardware essentiel
Le cœur de la performance d’un serveur IA repose en grande partie sur les GPU. Les processeurs graphiques ont aujourd’hui en effet la puissance de calcul adaptée particulièrement à l’intelligence artificielle. Lorsqu’on assemble un serveur IA, le choix du hardware côté GPU influence directement l’écosystème de configuration et de développement : Nvidia utilise par exemple CUDA pour permettre aux développeurs d’interagir avec le processeur graphique en C++, et les bibliothèques cuDNN (telle TensorRT) pour la programmation spécifique des modèles à réseau de neurones. Chez AMD, on retrouve ce genre de fonctionnalités au sein de la pile software ROCm, avec MIOpen comme bibliothèque deep learning spécifique.
Le hardware d’un serveur IA doit également fournir une bande passante écriture/lecture adaptée à ses objectifs : c’est pourquoi le choix de SSD performants et d’une infrastructure réseau/cloud à très haut débit représente un autre aspect à étudier avant l’assemblage. En étudiant les caractéristiques des différentes pièces, il y a également un arbitrage à effectuer : la consommation électrique doit être calculée avant assemblage, pour anticiper la demande énergétique d’un serveur IA internalisé sur l’infrastructure d’une entreprise, côté exécution et refroidissement.
Enfin, les différentes pièces d’un serveur IA doivent être adaptées à l’OS choisi, qui est en général spécifique : une distribution Ubuntu Server, Rocky Linux ou Mint, requiert par exemple certains drivers pour fonctionner de manière optimisée avec les puces GPU AMD ou Nvidia.
Étape 3 : choisir des frameworks et plugings adaptés
L’essor de l’IA a conduit nombre d’entreprises de la tech à construire leur propre framework pour permettre aux développeurs d’entraîner leur propre modèle de manière fluide. Google a ainsi créé TensorFlow, dévolu au machine learning sur de grandes quantités de données. Meta, via son labo IA, a également mis en ligne son framework open-source : PyTorch, pouvant être dédié au deep learning, qui a aujourd’hui un succès important. À la marge, des frameworks spécifiques aux IA internes (Langchain, vLLM, ONNX Runtime) sont également à considérer.
Faciles à installer et à opérer, ce type de frameworks peuvent toujours être complétés par des modules spécialisés. Hugging Face a ainsi créé Transformers, bibliothèque de modèles préentraînés permettant l’interaction avec PyTorch ou TensorFlow ainsi que la mise en œuvre très rapide d’un modèle d’IA générique qui va s’adapter aux données métier traitées sur le serveur.
Des outils très spécifiques ont été également développés pour correspondre aux besoins des entreprises. La solution Rasa, par exemple, est dévolue à la mise en place de chatbot et de génération de réponses pour une assistance technique. Les modules d’interaction entre solutions de monitoring (Zabbix, Grafana) et serveurs IA peuvent être déployés dans un contexte industriel nécessitant un machine learning adapté à la maintenance prédictive, par exemple.
Étape 4 : configurer un serveur IA adapté à ses besoins métier
La configuration et l’opération d’un serveur IA nécessitent la conteneurisation des différents éléments exécutables. Les fabricants de GPU ont lancé des compléments à Docker pour permettre le lancement de modules accéléré par les processeurs graphiques : c’est le cas par exemple d’NVIDIA Container Toolkit, qui permet d’optimiser les applis en utilisant le hardware du serveur.
Il en va de même avec des outils spécifiques de configuration de Nvidia et d’AMD pour améliorer les performances des modèles : TensorRT, offre une latence réduite, une sécurité des données présentes sur le serveur interne et une scalabilité qui justifie l’utilisation de l’IA on-premise plutôt que dans le cloud.
La configuration d’un serveur IA requiert enfin de faire un état des lieux des systèmes ERP installés dans l’entreprise, et des API qui remontent les données vers le serveur. C’est dans ce sens que ce type de serveur requiert aussi bien une acculturation des développeurs aux frameworks IA que des spécialistes d’architecture logicielle/matérielle, et un travail collaboratif.
Rejoins nos rangs !
Avec une forte demande d’internalisation de l’IA dans les mois à venir, les ingénieurs IT d’aujourd’hui ont tout à gagner à acquérir des méthodes de travail sûres pour déployer des serveurs spécifiques, que ce soit dans les étapes d’installation, de configuration et de production.