View a markdown version of this page

Inférence et orchestration du processeur - Amazon EKS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Inférence et orchestration du processeur

Présentation de

Les instances de processeur constituent une option de calcul de premier ordre pour un large éventail de charges de travail d'IA sur Amazon EKS. Qu'il s'agisse de petits modèles linguistiques (SLM), d'inférence ML classique, de pipelines de données ou d'orchestration d'agents, les processeurs offrent un excellent rapport prix/performances, une large disponibilité des capacités et une sémantique de planification Kubernetes familière.

Le processeur et le processeur graphique sont complémentaires et non compétitifs. À mesure que les pipelines d'IA agentic deviennent de plus en plus complexes, la surface de charge du processeur augmente avec eux : chaque appel d'inférence est entouré d'exécution d'outils, d'assemblage de contexte, de recherche vectorielle, de garde-fous et d'une logique d'orchestration qui s'exécutent tous sur le processeur. Nous recommandons de concevoir des architectures qui utilisent délibérément les deux types de calcul, en plaçant chaque charge de travail sur le niveau où elle offre le meilleur rapport coût-performance.

Toutes les charges de travail n'ont pas besoin d'un GPU. Le routage, la classification, la récupération, l'intégration, l'orchestration et une part croissante de l'inférence de modèles de langage fonctionnent tous efficacement sur le processeur. Current-generation Les instances de processeur sur arm64 et x86 offrent un excellent rapport prix/performances pour l'inférence ML. Combiné à la consolidation des nœuds de Karpenter, à la mise à l'échelle axée sur les événements de KEDA et au service de modèles quantifiés, cela fournit une pile prête à la production que les équipes de plateforme peuvent exploiter sans expertise approfondie en matière de GPU.

Ce guide est destiné aux personnes suivantes :

  • Les ingénieurs de plateforme conçoivent des clusters EKS à locataires multiples pour les charges de travail liées à l'IA.

  • Les praticiens du ML évaluent les backends d'inférence pour les modèles inférieurs à 30 milliards de paramètres.

  • FinOps des équipes recherchant des leviers de coûts concrets sans sacrifier les SLO.

Ce que vous allez apprendre :

  • Quelles charges de travail d'IA appartiennent aux processeurs et où des GPU ou du Trainium sont nécessaires.

  • Comment appliquer un cadre décisionnel en quatre dimensions à toute nouvelle charge de travail.

  • Deux modèles de production : le préfiltrage agentique SLM et les fermes modèles à haute densité.

  • Bonnes pratiques d'optimisation : quantification, regroupement, planification ponctuelle et mise à l'échelle automatique.

Avertissement

Chaque recommandation de ce guide doit être validée de manière empirique. La bonne famille d'instances (arm64, x86, GPU ou Trainium) dépend de votre modèle, de vos données et de votre budget de latence. Utilisez ce guide comme point de départ éclairé, puis faites un point de référence avant de vous engager.

Pourquoi choisir des processeurs pour les charges de travail basées sur l'IA ?

Les pipelines d'IA de production répartissent le travail sur de nombreux niveaux de calcul. Les processeurs gèrent le routage, la classification, la récupération, l'orchestration et une part croissante de l'inférence. Current-generation Les instances de processeur offrent un excellent rapport prix/performances et une planification Kubernetes familière, ce qui en fait une option pratique pour de nombreuses charges de travail liées à l'IA.

Trois facteurs font du processeur un atout pour ces charges de travail :

Disponibilité des capacités

Les instances GPU nécessitent souvent des réservations de capacité des semaines à l'avance. Les instances de processeur sont largement disponibles dans toutes les régions AWS, sans plug-in d'appareil spécialisé, sans configuration DRA ni partitionnement MIG. Lorsque vous devez évoluer rapidement, la capacité du processeur est l'option la plus facilement disponible.

Économie

Current-generation Les instances de processeur offrent un excellent rapport prix/performances pour l'inférence ML. Pour les équipes chargées des FinOps révisions ou de la gestion de clusters multi-locataires, la différence de coût entre le processeur et le processeur graphique est significative, en particulier pour les SLM quantifiés où l'accélération du GPU génère des rendements décroissants. Nous vous recommandons d'effectuer des analyses comparatives entre les familles d'instances disponibles (Graviton, AMD, Intel) afin de déterminer le meilleur coût par jeton pour votre charge de travail.

Simplicité opérationnelle

Les pods CPU utilisent la planification Kubernetes standard (requests,, affinité des nœudslimits, propagation de la topologie). Aucun plug-in d'appareil, aucun planificateur personnalisé, aucun type de nvidia.com/gpu ressource. Les équipes qui souhaitent exécuter des charges de travail basées sur l'IA sans expertise approfondie en matière de GPU peuvent atteindre une production plus rapide sur le processeur.

Augmentation de la surface du processeur dans les pipelines agentic

Dans les pipelines d'IA agentic, chaque appel d'inférence du GPU est entouré par le travail du processeur : exécution de l'outil, assemblage du contexte, recherche vectorielle, intégration de recherches, garde-corps, validation des réponses, gestion de la mémoire et logique d'orchestration. À mesure que les agents deviennent de plus en plus complexes (plus d'outils, chaînes plus longues, raisonnement en plusieurs étapes), les charges de travail du processeur augmentent de manière très linéaire. Des protocoles tels que le MCP (Model Context Protocol) amplifient encore cela : chaque appel d'outil MCP déclenche la récupération, la transformation et le formatage des données qui s'exécutent entièrement sur le processeur.

CPU vs GPU/Trainium : quand choisir chacun

Factor Choisissez le processeur Choisissez GPU/Trainium

Taille du modèle

SLMs 1-8B (quantifiés) ; intégrations ; classificateurs

8B+ pour l'inférence en ligne à faible latence ; 70B+ en général

Latence SLO

p95 100-500 ms acceptable

p95 < 50 ms requis

Concurrency

< 100 req/s par point de terminaison

> 100 req/s soutenus

Type de charge de travail

Orchestration, extraction, ETL, notation par lots

Inférence, réglage précis, formation en ligne

Capacity

Disponibilité immédiate, sans réservation

Nécessite souvent une capacité réservée

Sensibilité aux coûts

Le processeur fournit le meilleur $/jeton pour les charges de travail éligibles

Le GPU s'amortit en cas d'utilisation élevée

Expertise de l'équipe

Opérations Kubernetes standard

Nécessite une connaissance des opérations du GPU

La souveraineté des données

Inférence SLM dans un VPC ; piste d'audit complète ; les données ne quittent jamais votre compte

Idem en cas d'autogestion ; non disponible avec les API externes

Astuce

Ces seuils sont des points de départ. Nous vous recommandons d'exécuter votre moteur d'inférence cible sur des familles d'instances candidates (arm64 et x86) avec votre modèle et votre modèle de trafic réels avant de passer à un niveau de calcul.

Cadre décisionnel concernant la charge de travail

Le choix du calcul adapté à une charge de travail basée sur l'IA se résume à quatre dimensions :

  1. Taille et précision du modèle : la quantification permet-elle de maintenir la qualité dans votre fourchette acceptable ?

  2. SLO de latence et de débit : quels sont vos p50/p95 objectifs et vos taux de demandes de pointe ?

  3. Type de charge de travail : inférence en ligne, notation par lots, extraction ou orchestration ?

  4. Contraintes de coûts et de capacité : FinOps budget, disponibilité régionale, stratégie de réservation ?

Utilisez le tableau ci-dessous comme matrice de décision.

Charge de travail CPU Processeur graphique/Trainium Remarques

SLM (paramètres de 1 à 8 Go, quantifiés)

Choix par défaut. Excellent rapport prix/performance avec une latence de 100 à 500 ms, un QPS modéré. Effectuez des comparaisons entre les familles d'instances.

Quand p95 <50ms or concurrency >100 req/s.

Quantification Q4_K_M ou Q8_0 recommandée

Modèles moyens (paramètres 8-30B)

Notation par lots, asynchrone et hors ligne. Testez la quantification Q4.

Inférence en ligne, contextes longs, latence étroite.

Évaluez le quatrième trimestre pour toutes les familles d'instances

Grands LLM (plus de 70 Go de paramètres)

Non-real-time uniquement, quantification lourde

Par défaut pour l'inférence en ligne de production

Même 70B peut fonctionner sur le processeur ; attendez-vous à une latence élevée

ML classique/Embeddings/CV

High-density service ; bin-pack sur les nœuds.

Vision lourde ou multimodale à grande échelle.

TorchServe, Triton on CPU gère des milliers de modèles.

Pipelines de données/ETL/Données synthétiques

Ray et Spark sur le processeur pour la préparation des données et l'ingénierie des fonctionnalités.

N/A

Les processeurs sont au cœur de l'ensemble de cette étape de préparation des données

Orchestration d'agents/récupération de RAG

Network-bound services : passerelles d'API, couches proxy, récupérateurs, chunkers.

N/A

Avantages des instances de processeur à bande passante élevée.

Fine-tuning /Entraînement

Préparation des données et orchestration du pipeline.

Entraînement et distillation des modèles.

Hybride : préparation du processeur, train du processeur graphique, inférence du processeur.

Compliance-sensitive inférence (FSI, santé, gouvernement)

SLM en VPC sur CPU. Les données restent en compte, piste d'audit complète.

Idem en cas d'autogestion sur GPU.

Le processeur gagne en termes de coût pour les modèles inférieurs à 8 Go dans des environnements réglementés.

Avertissement

Bien qu'il soit techniquement possible d'exécuter plus de 70 milliards de modèles sur un processeur avec une quantification élevée (quatrième trimestre ou inférieur), cela n'est viable que pour les charges de travail hors temps réel, hors ligne ou par lots. Attendez-vous à des taux de génération de jetons à un chiffre (1 à 5 tokens/sec), à des besoins en mémoire supérieurs à 40 Go, même au quatrième trimestre, et à une latence mesurée en minutes par réponse pour des sorties plus longues. Pour tous les cas d'utilisation interactifs ou sensibles à la latence, plus de 70 milliards de modèles doivent être équipés d'un GPU ou d'un Trainium.

Flux de travail de référence rapide

Avant de passer à une famille d'instances, nous vous recommandons d'exécuter un test de performance structuré comparant vos familles de processeurs candidates (arm64 et x86) au GPU sur une seule métrique comparable : le coût pour 1 000 requêtes avec votre latence p95 cible. Déployez un nœud par famille avec une configuration de modèle identique (même quantification, même taille de contexte, même nombre de threads), testez la charge de chacun et comparez. Si une instance de processeur répond à votre SLO p95, elle gagnera probablement en termes de coûts. S'il échoue légèrement, essayez la dernière génération de cette famille avant de passer au GPU. Si la latence est encore trop élevée par rapport à votre objectif de simultanéité, c'est le signal pour déplacer la charge de travail vers le GPU.

Schémas de production

Modèle 1 : Agentic AI — SLM Pre-Filter sur le processeur avec escalade LLM

La plupart des flux de travail des agents exécutent les mêmes schémas restreints à plusieurs reprises : classification de la demande, sélection d'un outil, extraction de données structurées, validation d'une réponse. Ces tâches ne nécessitent pas de modèle de paramètres 70B.

Les recherches sur les SLM (ar Xiv:2506.02153) démontrent que les modèles dont les paramètres sont inférieurs à 10 milliards de dollars, lorsqu'ils sont spécialisés pour un domaine, peuvent égaler ou dépasser les grands LLM sur des sous-tâches limitées, tout en s'exécutant efficacement sur le processeur à un coût et une latence nettement inférieurs. Lorsqu'un modèle est affiné pour un domaine spécifique, son encombrement réduit peut le rendre plus précis et moins coûteux que le recours à un LLM à usage général.

Dans ce modèle, un SLM sur CPU gère la majorité des demandes de bout en bout. Une couche de routage (également exécutée sur le processeur) ne transmet que les cas véritablement complexes à un GPU-hosted LLM.

Composants exécutés sur le processeur :

Composants sur GPU/Trainium :

  • Grand LLM pour les synthèses complexes et le raisonnement dans un contexte long

Pourquoi ce modèle fonctionne : Dans de nombreux flux de travail agentiques, 60 à 80 % des demandes sont classifiables ou extractibles par un SLM. Pour chaque appel LLM que vous évitez, vous évitez également le travail du processeur associé à l'assemblage d'une grande fenêtre contextuelle, à l'exécution de garde-fous en cas de réponse longue et à la gestion d'états complexes. Le niveau CPU évolue indépendamment du niveau GPU.

Les catégories de charge de travail du processeur dans un pipeline agentic typique incluent : l'exécution des outils (appels au serveur MCP, appels d'API, requêtes de base de données), l'assemblage du contexte, la recherche vectorielle et l'intégration de recherches, la logique d'orchestration et de planification, les garde-fous et le filtrage de sécurité, la validation et le formatage des réponses, la mémoire des agents et la gestion des états, et. logging/observability

Ce modèle s'adapte également à un cycle de vie précis : collectez les données de domaine sur les nœuds du processeur, affinez sur le processeur graphique, puis déployez le modèle quantifié sur le processeur à des fins d'inférence à un coût nettement inférieur à celui d'un point de terminaison LLM. Une étude menée par LoRa Land (ar Xiv:2405.00732) montre que les modèles 7B affinés sont plus performants GPT-4 que la majorité des tâches spécifiques au domaine testées, ce qui rend la solution « peaufiner un petit modèle et l'exécuter sur le processeur » viable pour de nombreux cas d'utilisation en production.

Schéma 2 : High-Density CPU Model Farm

Les pipelines de production ML déploient régulièrement des centaines ou des milliers de modèles plus petits : des intégrations, des recommandations, des classificateurs, des évaluateurs et des modèles de vision par BERT-based ordinateur. Légers individuellement, ces modèles deviennent chers lorsque chacun dispose de ses propres ressources GPU.

Nous recommandons un service de processeur haute densité (regroupement de plusieurs modèles par nœud en utilisant TorchServe ou Triton sur le processeur), Karpenter gérant le cycle de vie des nœuds et adaptant KEDA en fonction de la charge observée.

Ce modèle s'applique naturellement aux architectures RAG : l'intégration de la génération, du découpage des documents et de la récupération s'exécutent de manière rentable sur OpenSearch les nœuds du processeur, fournissant les résultats à un GPU-hosted LLM uniquement pour l'étape de génération finale. Le parc de processeurs gère le volume ; le GPU gère la complexité.

Pour les secteurs réglementés (services financiers, santé, administration), ce schéma est particulièrement convaincant : des centaines de modèles spécialisés s'exécutent en VPC sur processeur, avec des pistes d'audit complètes et des données qui ne quittent jamais le compte. L'exigence de conformité pour l'inférence autogérée s'aligne naturellement sur l'avantage en termes de coûts du processeur pour les modèles inférieurs à 8B.

Bonnes pratiques d'optimisation

Quantification

Il n'est pas pratique d'exécuter un modèle 7B avec un BF16 complet sur le processeur ; l'exécuter au quatrième trimestre de quantification est viable et rentable. Comprendre pourquoi la quantification est utile pour le processeur est essentiel pour prendre de bonnes décisions en matière d'infrastructure.

Pourquoi la quantification est importante pour l'inférence du processeur. L'inférence du processeur est liée à la bande passante mémoire et non au calcul. Pendant la phase de décodage (génération de jetons un par un), les poids complets du modèle sont lus dans la RAM pour chaque jeton produit. Le processeur passe le plus clair de son temps à attendre que les données arrivent de la mémoire, sans faire de calculs. Un modèle 7B au BF16 coûte environ 14 Go ; au Q4_K_M, il se réduit à environ 4 Go. Comme le principal obstacle consiste à déplacer des octets de la RAM vers les cœurs du processeur, un modèle 3,5 fois plus petit lit 3,5 fois plus vite, ce qui se traduit presque directement par une génération de jetons 3,5 fois plus rapide. C'est pourquoi la quantification est l'optimisation la plus efficace pour l'inférence du processeur, et pourquoi les nouvelles générations de processeurs dotées d'un plus grand nombre de canaux de mémoire produisent une inférence plus rapide, même à la même vitesse d'horloge.

Nous vous recommandons de créer votre moteur d'inférence avec des backends optimisés pour l'architecture (ARM NEON/SVE2 pour arm64, AVX-512/AMX pour x86), de définir un nombre de threads égal au nombre de vCPU et de sélectionner les formats de quantification Q4_K_M ou Q8_0.

Quantification Impact sur la qualité Débit par rapport au BF16 Cas d’utilisation

Q4_K_M

Faible (delta de perplexité de 1 à 3 %, en fonction du modèle)

~4 à 5 fois plus rapide

Valeur de production par défaut pour les SLM

Q8_0

Négligeable

~2 fois plus rapide

Quality-sensitive tâches

Q5_K_M

Très faible

~3,5 fois plus rapide

Équilibre entre qualité et rapidité

BF16

Aucune

1 x (ligne de base)

Évitez d'utiliser le processeur pour les modèles 7B+

Pour les modèles inférieurs à 2 Go, le processeur gagne en termes de rapport prix/performances par rapport au GPU. Ces modèles sont suffisamment petits pour que l'accélération du processeur graphique présente un avantage minimal alors que le coût horaire est nettement plus élevé. Si votre charge de travail peut utiliser un modèle inférieur à 2 B, le processeur est la valeur par défaut recommandée.

Architecture-specific optimisations : sur arm64, les instances Graviton de la génération actuelle prennent en charge SVE2. Construisez votre moteur d'inférence avec le -march drapeau approprié pour votre cible. Sur x86, les instances AMD EPYC sont compatibles AVX-512, et les instances Intel Xeon ajoutent AMX pour l'accélération matricielle. L'inférence étant limitée à la bande passante mémoire, les nouvelles générations de processeurs dotées d'un plus grand nombre de canaux de mémoire DDR5 produisent une inférence plus rapide, même à la même vitesse d'horloge. Lorsque vous choisissez un type d'instance, privilégiez la bande passante mémoire par rapport au nombre de cœurs.

Dimensionnement de la fenêtre contextuelle : pour les charges de travail de classification et de routage, les entrées sont généralement inférieures à 200 jetons et les sorties sont de 2 à 3 jetons. La définition d'une petite fenêtre contextuelle (par exemple, 512 jetons) au lieu de la valeur par défaut 2048 réduit l'utilisation de la mémoire cache en kilo-volts et améliore la latence par requête. N'augmentez la fenêtre contextuelle que si vos entrées sont vraiment longues.

Flash Attention : activez Flash Attention si votre moteur d'inférence le prend en charge. Flash Attention réduit l'utilisation de la mémoire pour le calcul de l'attention en évitant de matérialiser la matrice d'attention complète. Sur le processeur, l'avantage est moindre que sur le GPU, mais cela permet tout de même d'obtenir des entrées plus longues.

Astuce

La dégradation de la qualité du Q4_K_M varie en fonction du modèle et de la tâche. Évaluez toujours sur votre propre jeu de données avant de le déployer en production.

Bin-packing pour une portion dense

Pour les modèles classiques de machine learning et d'intégration (généralement < 500 Mo chacun), l'objectif est de maximiser la densité de pods par nœud avec une latence de queue stable. Deux facteurs déterminent si vous y parvenez : des demandes de ressources précises et un threading contrôlé.

Basez-vous requests sur l'utilisation observée du p50-p90 sous une charge réaliste. Utilisez Goldilocks, les recommandations VPA ou les histogrammes Prometheus issus d'un test de charge. Les valeurs par défaut sont presque toujours erronées dans les deux sens.

Les bibliothèques ML (PyTorchONNX Runtime, MKL, OpenBLAS) génèrent autant de threads qu'elles peuvent voir de vCPU sur le nœud, et non les processeurs alloués au pod. Sur un nœud dense de 20 pods, chaque pod essaie de générer 32 threads. Le nœud se bloque lors du changement de contexte et des pics de latence p99. Corrigez ce problème de manière explicite :

env: - name: OMP_NUM_THREADS value: "2" # match your cpu request (2000m = 2 threads) - name: MKL_NUM_THREADS value: "2" - name: OPENBLAS_NUM_THREADS value: "2" - name: INTRA_OP_NUM_THREADS # PyTorch / ONNX Runtime value: "2" - name: NUM_INTER_THREADS value: "1" # keep inter-op parallelism minimal

Définissez chaque valeur égale ou inférieure à votre demande de processeur. Pour les pods à 4 cœurs ou plus, utilisez une valeur de référence à partir de 2 à 4 threads. De nombreux petits modèles fonctionnent mieux avec moins de threads grâce à l'efficacité du cache. Si vous utilisez le HPA avec de nombreuses capsules fines, 1 à 2 fils par capsule l'emportent presque toujours.

Planification et optimisation des coûts

Deux pratiques combinées permettent de réduire de manière significative les coûts d'inférence du processeur : les instances Spot avec consolidation Karpenter et les images de conteneurs à arches multiples.

La consolidation de Karpenter fonctionne bien pour l'inférence du processeur, car les modules d'inférence sans état situés derrière une file d'attente ou un équilibreur de charge tolèrent les interruptions de manière harmonieuse. Configurez la consolidation pour agir sur les nœuds sous-utilisés avec un budget qui limite les interruptions simultanées (par exemple, 20 % des nœuds à la fois) afin d'éviter les baisses de capacité lors de la réduction d'échelle. Les nodePool spécifications de Karpenter vous permettent de combiner Spot et On-Demand capacité dans un seul pool, avec Spot comme option préférée et On-Demand comme solution de secours.

La création d'images multi-arches (arm64etamd64) permet de débloquer davantage cela. Les deux architectures étant disponibles, Karpenter peut choisir parmi une gamme complète de familles d'instances (Graviton, AMD, Intel) en fonction du prix et de la disponibilité en temps réel. Cela est particulièrement utile pour les charges de travail ponctuelles où la diversification entre les types d'instances et les architectures réduit la fréquence des interruptions. Utilisez docker buildx un pipeline CI avec des versions multiplateformes pour produire un manifeste unique couvrant les deux architectures.

Optimisation du démarrage des conteneurs

Lorsque Karpenter provisionne un nouveau nœud (mise à l'échelle, remplacement de Spot), le moteur d'exécution du conteneur doit extraire l'image d'inférence avant que le pod ne puisse démarrer. Pour les images d'inférence de plusieurs Go, cela peut ajouter 30 à 60 secondes au démarrage du pod.

Nous recommandons d'utiliser Bottlerocket comme système d'exploitation du nœud pour les charges de travail d'inférence, en combinaison avec le snapshotter SOCI en mode parallèle. pull/unpack SOCI remplace l'extraction de couches séquentielle par défaut par des téléchargements parallèles basés sur des segments, ce qui réduit considérablement le temps d'extraction des images pour les images de grande taille. Il n'est pas nécessaire de modifier les images de vos conteneurs.

Pour obtenir des conseils de configuration détaillés, consultez la section Performances de ce guide, qui couvre la configuration SOCI, le pré-extraction des snapshots EBS et les stratégies de cache d'exécution des conteneurs.

Observabilité

Sans observabilité au niveau de la couche du modèle, vous effectuez une mise à l'échelle à l'aveuglette. Nous recommandons d'exposer les métriques Prometheus pour chaque service d'inférence et de les utiliser pour piloter à la fois le dimensionnement et les tableaux de bord opérationnels de KEDA.

La plupart des serveurs d'inférence (llama.cpp, vLLM, Triton TorchServe) exposent les Prometheus-compatible métriques sur un point de terminaison. /metrics Les noms des métriques varient selon le serveur, mais les concepts sont les mêmes.

Indicateurs clés à utiliser :

Catégorie métrique Description Seuil d'alerte

Traitement des demandes/en vol

Nombre de demandes actuellement traitées par le serveur.

À utiliser pour la mise à l'échelle (voir la section de mise à l'échelle automatique ci-dessous)

Demandes en file d'attente/différées

Nombre de demandes en attente d'un créneau de traitement.

Déclencheur d'échelle. Toute file d'attente prolongée signifie que la latence est sur le point de se dégrader.

Débit de jetons

Jetons générés par seconde.

Alerte si le débit chute en dessous de 50 % de la valeur de référence sous charge

Latence des demandes

End-to-end histogramme de latence (traitement rapide + génération de jetons).

Alerte en cas de dépassement de votre SLO par p95

Utilisation du cache KV

Niveau de remplissage du cache clé-valeur (0,0 à 1,0). À l'approche de la version 1.0, le serveur commencera à rejeter ou à mettre les demandes en file d'attente.

Alerte à plus de 85 %

Mémoire du conteneur

Mémoire RSS par pod (container_memory_working_set_bytes).

Alerte à 85 % de la limite

Autoscaling : mise à l'échelle en fonction de la profondeur de la file d'attente, et non de l'utilisation

L'utilisation du processeur est une mesure de saturation. Il atteint un pic une fois que la latence s'est déjà dégradée. Au moment où le dimensionnement automatique basé sur l'utilisation réagit, les utilisateurs attendent déjà.

La profondeur de la file d'attente (demandes deferred/waiting) est un indicateur avancé. Elle augmente avant que la latence ne se dégrade, car les demandes commencent à être mises en file d'attente lorsque tous les créneaux de traitement sont occupés. L'augmentation de la profondeur des files d'attente signifie que de nouvelles répliques sont mises en service alors que les répliques existantes répondent toujours normalement.

KEDA permet de combiner plusieurs métriques en une seule formule de mise à l'échelle en utilisant scalingModifiers (nécessite KEDA 2.12+). Le modèle recommandé pour les charges de travail d'inférence consiste à combiner les demandes en cours d'attente avec les demandes en file d'attente, en pondérant fortement la métrique de la file d'attente :

advanced: scalingModifiers: formula: "running + (waiting * 10)" target: "25" activationTarget: "5"

La formule running + (waiting * 10) signifie que même 3 demandes en file d'attente portent la métrique combinée à 55, bien au-dessus de l'objectif de 25. La mise à l'échelle commence avant que la latence ne se dégrade. Le 5 empêche le bruit activationTarget de déclencher des événements inutiles de mise à l'échelle à partir de zéro.

Évaluation de la qualité des modèles pour les charges CPU-First de travail

Le déploiement d'un SLM quantifié sur le processeur est une décision de coût et de latence. Cela n'a de sens que si le modèle produit toujours des résultats corrects et utiles pour votre charge de travail.

Les modèles plus petits ou la quantification réduisent les coûts de calcul, mais peuvent réduire la qualité. L'impact varie. Les charges de travail qui fonctionnent bien sur le processeur (classification, extraction, routage, synthèse, intégration) conservent souvent une bonne qualité dans la B-7B gamme 3 avec une quantification et des instructions appropriées.

Ce qu'il faut évaluer

Les différentes charges de travail se dégradent de différentes manières :

Charge de travail Qu'est-ce qui peut se dégrader Ce qu'il faut mesurer

Intention ou classification des billets

Erreurs sur les entrées ambiguës

Précision, F1 par classe

Extraction structurée (JSON)

Champs manquants ou schéma erroné

Correspondance exacte, validité du schéma

RAG répond

Hallucinations ou ignorance du contexte

Fidélité, pertinence des réponses

Résumé

Informations manquantes ou couverture insuffisante

ROUGE-L, BertScore, évaluation humaine

Routage des agents

Sélection du mauvais outil

Précision de l'outil

Intégrations

Moins bonne qualité de récupération

Rappeler @K, NDCG

Un flux de travail d'évaluation pratique

Nous vous recommandons de créer un contrôle qualité avant la production, de la même manière que vous exécuteriez un test de charge avant de choisir un type d'instance. Le flux de travail comporte quatre étapes :

  1. Créer un ensemble de données d'évaluation : créez un petit ensemble de données d'évaluation (100 à 300 exemples étiquetés) à partir de votre charge de travail réelle. Évitez les points de référence génériques tels que le MMLU qui mesurent le raisonnement général plutôt que votre tâche réelle.

  2. Établir une base de référence — Exécutez l'ensemble de données par rapport à un modèle fiable (par exemple, un LLM de grande envergure dont vous savez qu'il produit des résultats corrects).

  3. Tester le modèle de processeur — Exécutez le même ensemble de données sur votre SLM quantifié et comparez-le.

  4. Évaluer : définissez votre seuil de qualité avant de tester, par exemple, « Précision SLM à moins de 5 points de pourcentage de la valeur de référence ». Le bon seuil dépend de la tâche : un classificateur examiné par des humains peut tolérer plus d'erreurs qu'un système prenant des décisions automatiques.

Comment retrouver la qualité

Si le modèle fonctionne mal, essayez les solutions suivantes par ordre d'effort :

  • Ajoutez quelques exemples de photos dans l'invite : zéro coût, immédiat. L'inclusion de 3 à 5 exemples étiquetés dans l'invite permet souvent de combler l'écart en matière de tâches de classification et d'extraction.

  • Utilisez un format de quantification de meilleure qualité : le passage du quatrième au quatrième trimestre rétablit souvent une grande partie de la perte de qualité, au prix d'environ deux fois plus de mémoire et d'un débit inférieur.

  • Utilisez le routage hybride : laissez le SLM gérer les cas simples et envoyez des entrées difficiles à un modèle plus grand. Il s'agit d'une modification architecturale qui permet de maintenir le coût de votre processeur à un faible niveau pour la majeure partie du trafic.

  • Fine-tune le modèle de votre domaine : l'option la plus coûteuse, mais la plus efficace. Une étude menée par LoRa Land (ar Xiv:2405.00732) a révélé que les modèles 7B affinés surpassent la majorité des tâches GPT-4 spécifiques au domaine testées.

Références