More

    Optimisation des Modèles AI avec un Serveur d’Inférence Centralisé

    France

    Les modèles d’apprentissage profond jouent un rôle essentiel dans les pipelines algorithmiques, qui sont des flux de travail traitant des entrées à travers une série d’algorithmes pour produire des sorties. Ces modèles AI ont des exigences de ressources très différentes de leurs homologues classiques, notamment une utilisation plus élevée de la mémoire, une dépendance à des accélérateurs matériels spécialisés et des demandes de calcul accrues.

    Défis de traitement des entrées à grande échelle

    Dans cet article, nous abordons un défi courant : le traitement efficace des entrées à grande échelle via des pipelines algorithmiques intégrant des modèles d’apprentissage profond. Une solution typique consiste à exécuter plusieurs tâches indépendantes, chacune responsable du traitement d’une seule entrée. Cette configuration est souvent gérée avec des frameworks d’orchestration de tâches. Cependant, lorsque des modèles d’apprentissage profond sont impliqués, cette approche peut s’avérer inefficace, car charger et exécuter le même modèle dans chaque processus individuel peut conduire à une contention des ressources et à des limitations d’échelle.

    Alors que les modèles AI deviennent de plus en plus courants dans les pipelines algorithmiques, il est crucial de revisiter la conception de ces solutions.

    Avantages du serveur d’inférence centralisé

    Nous évaluons ici les avantages de l’inférence centralisée, où un serveur d’inférence dédié gère les demandes de prédiction provenant de plusieurs tâches parallèles. Nous définissons un expérience avec un pipeline de traitement d’images basé sur un classificateur d’images ResNet-152, traitant 1 000 images individuelles.

    Nous comparons la performance en termes de temps d’exécution et d’utilisation des ressources entre deux implémentations :

    • Inférence décentralisée : chaque tâche charge et exécute le modèle de manière indépendante.
    • Inférence centralisée : toutes les tâches envoient des demandes d’inférence à un serveur d’inférence dédié.

    Expérience réalisée

    Nous avons mené nos expériences sur une instance Amazon EC2 c5.2xlarge, disposant de 8 vCPUs et 16 GiB de mémoire, en utilisant une image de machine virtuel PyTorch Deep Learning. Nous avons activé l’environnement PyTorch avec la commande appropriée.

    Étape 1 : Création d’un point de contrôle de modèle TorchScript

    Nous créons un point de contrôle pour le modèle ResNet-152 et le sérialisons à l’aide de TorchScript :

    import torch
    from torchvision.models import resnet152, ResNet152_Weights
    model = resnet152(weights=ResNet152_Weights.DEFAULT)
    model = torch.jit.script(model)
    model.save("resnet-152.pt")
    

    Étape 2 : Fonction d’inférence du modèle

    Notre fonction d’inférence exécute les étapes suivantes :

    • Charger le modèle ResNet-152.
    • Charger une image d’entrée.
    • Prétraiter l’image pour correspondre au format d’entrée attendu par le modèle.
    • Exécuter l’inférence pour classifier l’image.
    • Post-traiter la sortie du modèle pour retourner les cinq meilleures prédictions d’étiquettes.

    Étape 3 : Exécution de tâches d’inférence parallèles

    Nous définissons une fonction qui démarre des processus parallèles, chacun traitant une entrée d’image unique. Cette fonction gère le nombre total d’images à traiter et le maximum de tâches concurrentes.

    def process_image(image_id):
        print(f"Processing image {image_id} (PID: {os.getpid()})")
        predict(image_id)
    

    Estimations des processus maximum

    Bien que le nombre optimal de processus concurrents soit déterminé empiriquement, nous pouvons estimer une limite supérieure basée sur la mémoire système et la taille du fichier de point de contrôle.

    Les résultats de l’expérience montrent que la saturation de la mémoire se produit à 50 processus concurrents, alors que le débit maximal est atteint à 8 tâches concurrentes.

    Les inefficacités de l’exécution indépendante des modèles

    Exécuter des tâches parallèles qui chargent et exécutent chacune le modèle de manière indépendante crée des inefficacités significatives :

    • Chaque processus doit allouer des ressources mémoire appropriées pour stocker sa propre copie du modèle AI.
    • Les modèles AI sont gourmands en calcul ; les exécuter dans plusieurs processus parallèles peut mener à une contention des ressources.
    • Le chargement de fichiers de points de contrôle et l’initialisation du modèle dans chaque processus ajoutent des frais généraux.

    Une alternative plus efficace consiste à centraliser l’exécution d’inférence à l’aide d’un serveur d’inférence dédié, ce qui élimine le chargement redondant du modèle et réduit l’utilisation globale des ressources système.

    Configuration de TorchServe

    Nous pouvons emballer le modèle et ses fichiers associés dans un fichier archive « *.mar* », le format requis pour le déploiement sur TorchServe.

    mkdir model_store
    torch-model-archiver \
    --model-name resnet-152 \
    --serialized-file resnet-152.pt \
    --handler image_classifier \
    --version 1.0 \
    --export-path model_store
    

    Configuration de TorchServe

    Nous créons un fichier config.properties pour définir le fonctionnement de TorchServe :

    model_store=model_store
    load_models=resnet-152.mar
    default_workers_per_model=1
    job_queue_size=100
    

    Résultats obtenus

    En utilisant un serveur d’inférence centralisé, nous avons non seulement augmenté le débit global de plus du double, mais également libéré des ressources CPU significatives pour d’autres tâches de calcul.

    Les résultats des tests montrent également des améliorations considérables lors de l’activation de l’inférence par lots, augmentant le débit de 26,5 %. De plus, la configuration de plusieurs travailleurs d’inférence a permis une amélioration de 36 % du débit.

    Prochaines étapes

    Nous avons démontré les avantages d’une solution d’inférence centralisée et pouvons explorer plusieurs façons d’optimiser cette configuration. Cela comprend l’utilisation de gestionnaires d’inférence personnalisés et des configurations avancées du serveur d’inférence, entre autres.

    Résultats de l'inférence décentralisée
    Résultats du serveur d'inférence
    Résultats du serveur d'inférence par lots
    Résultats du serveur d'inférence multi-travailleurs

    Serveur Dinférence | Modèles Ai | Inférence | Serveurs | Deep Learning | Performance | France
    source:https://towardsdatascience.com/the-case-for-centralized-ai-model-inference-serving/

    LAISSER UN COMMENTAIRE

    S'il vous plaît entrez votre commentaire!
    S'il vous plaît entrez votre nom ici


    Actualités

    L’acteur de Friends, Matthew Perry, décède à 54 ans

    "Matthew Perry, célèbre pour son rôle de Chandler Bing dans Friends, décède à 54 ans. Acteur très apprécié, sa mort suscite l'émotion mondiale."

    Entité sioniste déploie des navires de guerre en Mer Rouge selon un expert militaire

    Entité sioniste déploie des navires de guerre en Mer Rouge pour contrer les Houthis au Yémen, une manœuvre vue comme une démonstration de force envers l'Iran.

    L’affaire des SMS entre Pfizer et la Commission européenne : ce qu’il faut savoir

    En avril 2021, le New York Times a révélé...

    Banque suisse : Credit Suisse en chute libre après la faillite de la SVB

    L'action de Credit Suisse a dévissé de plus de...

    Le Retour de Microsoft avec Bing et Edge : Une Menace pour Google ?

    Depuis moins de trois mois, ChatGPT a déjà créé...

    Tour de France 2026 : 184 coureurs au départ, mais seulement 30 Français

    Le Tour de France 2026 s'élance samedi 4 juillet...

    Jimmy Mohamed retiré de l’antenne de France Télévisions après les accusations de violences de son épouse

    France Télévisions a confirmé, lundi, que Jimmy Mohamed n'interviendra...

    Inflation : la France repasse sous les 2 % en juin, mais l’Insee attend une remontée à 2,7 % d’ici décembre

    L'inflation française retombe à 1,8 % sur un an en juin, après 2,4 % en mai, portée par la détente des prix de l'énergie. L'Insee anticipe cependant un retour à 2,7 % en décembre.

    Motion de censure contre Lecornu : les écologistes défient la majorité, le vote attendu lundi

    Le groupe écologiste à l'Assemblée nationale a déposé, jeudi...

    BCE, Banque de France, OCDE : trois signaux macroéconomiques qui pèsent sur la France cet été

    Alors que la BCE laisse entendre qu'une nouvelle hausse des taux est improbable en juillet, la Banque de France ramène sa prévision de croissance 2026 à 0,5 % et l'OCDE confirme que la France reste l'un des cancres budgétaires de la zone euro. Trois signaux qui dessinent un été tendu pour le portefeuille des Français et les comptes de l'État.

    Espagne : la croissance continue de défier la sinistrose française

    Le ministre espagnol de l'Économie Carlos Cuerpo a annoncé...

    à Lire

    Categories