Ayaansiddiq07/ingénierie-d'inférence

Prenez des décisions architecturales, de performance et de production pour servir des modèles d'IA générative. À utiliser lors de la sélection de modèles ou de matériel, du diagnostic de latence ou de débit, de l'optimisation de l'inférence LLM ou multimodale, du benchmarking, de la mise à l'échelle de services GPU ou de l'estimation des coûts de service.

Qu'est-ce que ingénierie-d'inférence ?

Cette compétence, intitulée Ingénierie d'Inférence, transforme les exigences de qualité, de latence, de fiabilité et de coût d'un produit d'IA en un système d'inférence mesuré. Basée sur une synthèse opérationnelle indépendante inspirée de l'ouvrage *Inference Engineering* de Philip Kiely (Baseten Books, 2026), elle offre un guide pratique pour les développeurs et ingénieurs travaillant avec des modèles d'IA générative. Elle n'est pas affiliée à l'auteur ou à l'éditeur. La compétence couvre un large éventail de plateformes et d'outils, y compris les technologies de serveur d'inférence, les frameworks de deep learning et les environnements cloud, en mettant l'accent sur les modèles LLM et multimodaux. Le document SKILL.md fournit un flux de travail structuré en huit étapes, allant de la caractérisation de la charge de travail à la validation en production, en passant par le choix des modèles, la définition des budgets, l'adaptation du modèle au matériel, l'établissement d'une référence reproductible, la localisation du goulot d'étranglement, l'optimisation incrémentale et la validation du comportement en production. Il détaille des métriques clés comme le TTFT, l'ITL, la latence de bout en bout, le débit et le *goodput*, et propose des guides de diagnostic pour interpréter les symptômes. Des *playbooks* d'optimisation couvrent le batching, la quantification, le décodage spéculatif, la mise en cache KV, le parallélisme, la désagrégation, et l'optimisation des noyaux et de l'exécution. Enfin, il aborde la préparation à la production, y compris la capacité, la fiabilité, le déploiement, l'observabilité, les coûts, la sécurité et la conformité, avec des références vers des documents externes pour des sujets plus avancés.

Compatible avec~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/Ayaansiddiq07/Inference-skill/tree/HEAD

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Ingénierie d'Inférence

Utilisez cette compétence pour transformer les exigences de qualité, de latence, de fiabilité et de coût d'un produit d'IA en un système d'inférence mesuré. Il s'agit d'une synthèse opérationnelle indépendante inspirée de l'ouvrage Inference Engineering de Philip Kiely (Baseten Books, 2026), et n'est pas affiliée ni approuvée par l'auteur ou l'éditeur. Les fonctionnalités des fournisseurs, les versions de modèles, la disponibilité du matériel et le comportement des logiciels évoluent rapidement ; vérifiez les détails actuels auprès de la documentation officielle avant de prendre des décisions de mise en œuvre.

Commencez par la charge de travail

Avant de choisir un moteur ou une optimisation, établissez :

  • Contrat produit : qualité de sortie requise, modalités, tailles de contexte/d'entrée, forme de la réponse, besoins de streaming et comportement en cas d'échec.
  • Forme du trafic : taux de requêtes, concurrence, rafales, schéma d'arrivée, distributions des longueurs d'entrée/sortie et fréquence des préfixes mis en cache.
  • Objectifs de service : latence P50/P95/P99 de bout en bout, délai jusqu'au premier token (TTFT), latence inter-tokens (ITL), débit, disponibilité et objectifs de récupération.
  • Contraintes : budget, régions, résidence des données, confidentialité, licence, accès au matériel et capacité opérationnelle.
  • Référence : évaluation de qualité représentative plus performance de bout en bout et coût sous charge réaliste.

N'optimisez pas une métrique proxy isolément. Définissez l'unité de travail et incluez le temps client, de file d'attente, réseau, prétraitement, modèle et post-traitement le cas échéant. Pour les flux agentiques, mesurez la tâche entière, y compris les appels d'outils et les tentatives.

Flux de travail opérationnel

  1. Caractérisez la charge de travail. Séparez le trafic interactif en ligne du travail hors ligne/par lots ; identifiez les chemins sensibles à la latence et ceux orientés débit. Enregistrez les distributions réelles d'entrée/sortie et la concurrence.
  2. Choisissez les modèles candidats. Présélectionnez en fonction de la qualité spécifique à la tâche, de la modalité, du contexte, des contraintes de service, de la licence et de l'adéquation opérationnelle. Utilisez les benchmarks publics uniquement pour réduire les candidats ; évaluez sur des données produit représentatives et des cas d'échec.
  3. Définissez les budgets. Traduisez les objectifs de bout en bout en budgets pour la file d'attente, le réseau, le prétraitement, le préremplissage, le décodage et le post-traitement. Incluez une marge pour les rafales et les conditions dégradées.
  4. Adaptez le modèle au matériel. Estimez la mémoire des poids, la surcharge d'exécution/activation, la demande de cache KV et la marge utilisable. Vérifiez la bande passante mémoire mesurée, le calcul, l'interconnexion et la topologie ; une spécification d'accélérateur nominale n'est pas un benchmark de charge de travail.
  5. Établissez une référence reproductible. Fixez la révision du modèle, le moteur/la version, le matériel, la précision, la configuration, le mélange de prompts, les limites de sortie et la forme de la charge. Échauffez, exécutez suffisamment d'échantillons et rapportez les percentiles et le débit en même temps.
  6. Localisez le goulot d'étranglement. Utilisez d'abord les mesures de bout en bout, puis le profilage système et noyau. Distinguez la file d'attente, le préremplissage, le décodage, la capacité/bande passante mémoire, le calcul, la communication et la surcharge hôte.
  7. Modifiez une variable à la fois. Appliquez l'optimisation la moins complexe qui traite le goulot d'étranglement mesuré. Revérifiez ensemble la qualité, la latence de queue, le débit, la mémoire et le coût.
  8. Validez le comportement en production. Testez les surcharges, les démarrages à froid, les événements de mise à l'échelle, les échecs, les déploiements, l'annulation, le streaming et la récupération. Instrumentez les mêmes métriques que celles utilisées dans les objectifs de service.

Métriques et diagnostic

  • TTFT : temps entre un événement de début clairement énoncé (par exemple, envoi client ou acceptation serveur) et le premier token généré. Gardez cette limite cohérente lors de la comparaison des exécutions ; elle est sensible à la file d'attente, à la longueur du prompt, au préremplissage et aux effets de démarrage.
  • ITL : temps entre les tokens générés ; reflète la réactivité du décodage. Rapportez les distributions par requête, pas seulement le taux de tokens agrégé.
  • Latence de bout en bout : temps d'achèvement observé par le client ; inclut le réseau et le travail applicatif.
  • Débit : requêtes ou tokens terminés par unité de temps à une charge de travail et une enveloppe de latence/qualité spécifiées. Indiquez si les tokens/s sont par utilisateur ou à l'échelle du système.
  • Percentiles : rapportez P50 plus les objectifs de queue tels que P95/P99 ; les moyennes peuvent cacher des requêtes lentes.
  • Goodput : travail achevé tout en respectant les objectifs de latence et de qualité pertinents. Utilisez-le pour comparer des configurations qui échangent la vitesse contre la qualité ou le comportement de queue.

Interprétez les symptômes comme des hypothèses, puis vérifiez avec des traces/profils :

SymptômeZones probables à mesurer
TTFT élevé, ITL normalAttente en file, prompts longs, calcul de préremplissage, démarrage à froid, prétraitement
TTFT normal, ITL médiocreBande passante de décodage, contention de lots, pression du cache KV, efficacité du noyau
Les deux s'aggravent avec la concurrenceFile d'attente, capacité mémoire, politique de lots, contrôle d'admission, saturation
Faible utilisation GPU, latence élevéeCPU/tokenisation, transfert de données, synchronisation, réseau, ordonnancement
Le débit augmente mais la latence de queue viole le SLOPolitique de lots/concurrence, limites de file, isolation de la charge de travail

Ce sont des pistes de diagnostic, pas des conclusions. Confirmez le goulot d'étranglement actif avant de modifier la configuration.

Décisions relatives aux modèles et au matériel

  • Privilégiez le modèle le plus petit/le moins coûteux qui réussit l'évaluation de qualité du produit avec une marge acceptable. Envisagez le prompting, la récupération, le fine-tuning ou la distillation uniquement lorsque l'évaluation identifie un écart spécifique et que le coût du cycle de vie est justifié.
  • Séparez les déploiements en ligne et hors ligne lorsque leurs objectifs de latence, de lots ou de disponibilité sont en conflit et que le trafic mesuré justifie la surcharge opérationnelle.
  • Adaptez le modèle et l'état d'exécution dans la mémoire de l'accélérateur avec une marge explicite pour le cache KV, les activations, la fragmentation et la concurrence. L'ajustement du poids seul est insuffisant.
  • Pour les LLM autorégressifs, le préremplissage et le décodage sollicitent le matériel différemment : le préremplissage est généralement lourd en calcul ; le décodage devient souvent limité par la bande passante mémoire. Mesurez les deux pour la séquence réelle et le mélange de lots.
  • Les choix multi-GPU échangent mémoire/latence/débit contre communication et complexité. Le parallélisme tensoriel peut réduire la latence par requête pour un modèle divisé ; le parallélisme d'experts peut servir des experts creux à grande échelle. Validez les coûts d'interconnexion et de synchronisation. L'exécution multi-nœuds nécessite une mesure de communication particulièrement minutieuse.
  • Pour les charges de travail d'image, vidéo, audio, embedding et vision-langage, utilisez des pipelines et des métriques spécifiques à la modalité. Incluez les coûts de prétraitement, de segmentation, d'encodeur/décodeur et de post-traitement ; n'appliquez pas aveuglément les métriques de token LLM.
  • Vérifiez les licences des modèles et des ensembles de données ainsi que les exigences de sécurité, de confidentialité et réglementaires applicables avant le déploiement.

Pour le raisonnement derrière ces choix, utilisez les fondamentaux des modèles et du matériel. Pour la compatibilité des frameworks, formats et moteurs de service, utilisez la sélection de la pile logicielle. Ces références fournissent des méthodes de décision, pas des classements intemporels : vérifiez la prise en charge du modèle, de l'accélérateur, de la version d'exécution et de l'ensemble de fonctionnalités exacts.

Playbooks d'optimisation

Appliquez uniquement après avoir établi une référence et identifié un goulot d'étranglement compatible :

Traitement par lots et ordonnancement

Le traitement par lots peut améliorer l'utilisation de l'accélérateur et amortir les frais généraux, tout en augmentant la file d'attente et la latence par requête. Ajustez la concurrence, les limites de lots, les fenêtres d'attente et le contrôle d'admission en fonction des arrivées réalistes. Protégez le trafic interactif du travail par lots lorsque leurs objectifs sont en conflit.

Quantification

Traitez la quantification comme un spectre qualité/performance, pas comme un réglage binaire. Choisissez les composants et la précision à modifier en fonction des contraintes mesurées de mémoire, bande passante, calcul et qualité. Évaluez la qualité de la tâche représentative, les cas limites et les ensembles de régression après chaque modification ; observez séparément les effets sur les poids, les activations, l'attention et le cache KV lorsque le moteur le permet. Revenez en arrière si le seuil de qualité ou la cible de fiabilité du produit n'est pas atteint.

Décodage spéculatif

Utilisez un mécanisme de brouillon/proposition uniquement lorsque son coût de proposition et son comportement d'acceptation produisent un gain net pour la charge de travail cible. Mesurez le taux d'acceptation, la surcharge mémoire, l'impact sur la taille des lots, l'ITL par utilisateur, le débit agrégé et le coût. Le bénéfice peut diminuer ou s'inverser à une concurrence élevée ou avec une faible acceptation.

Mise en cache KV et de préfixe

Réutilisez l'état mis en cache lorsque les préfixes se répètent et que les exigences de correction/isolation le permettent. Mesurez le taux de succès, le travail de préremplissage économisé, le coût de stockage/mémoire, le comportement d'éviction et la localité de routage. Définissez les clés de cache et les limites de locataire/sécurité afin qu'une requête ne puisse pas réutiliser le contexte privé d'un autre locataire. Les contextes longs et la concurrence élevée augmentent la pression KV ; tenez compte des coûts de placement et de transfert.

Parallélisme et désagrégation

Introduisez le parallélisme lorsque les mesures d'ajustement du modèle, de latence ou de débit justifient la surcharge de communication. Désagrégez le préremplissage et le décodage uniquement lorsque la charge de travail est suffisamment importante et stable pour bénéficier d'une allocation de ressources indépendante et que le système peut gérer le transfert/routage KV. Incluez la bande passante réseau, la latence de transfert, les modes de défaillance et la complexité opérationnelle dans la comparaison.

Optimisation des noyaux et de l'exécution

Profilez avant d'écrire ou de sélectionner des noyaux spécialisés. La fusion de noyaux peut réduire le trafic mémoire et les frais de lancement, mais la compatibilité et le comportement numérique sont importants. Comparez les candidats framework/exécution/moteur en utilisant la même révision de modèle, matériel, mélange de prompts, longueurs de sortie, charge et contrôles de qualité.

Pour des comparaisons détaillées des méthodes de quantification, des familles de décodage spéculatif, du placement de cache, du service de contexte long et de l'exécution distribuée, lisez le playbook d'optimisation.

Benchmarking et profilage

  • Utilisez des traces de production ou une charge de travail respectueuse de la vie privée qui préserve les tailles de requêtes, les schémas d'arrivée et les caractéristiques de cache. Les tests synthétiques sont utiles pour les expériences contrôlées, mais indiquez leurs limites.
  • Enregistrez séparément le comportement à froid et à chaud. Incluez l'échauffement, une durée/un nombre d'échantillons adéquats, des exécutions répétées, la variance et les versions matérielles/logicielles.
  • Balayez la charge pour trouver à la fois la saturation et le goodput maximum sous SLO. Évitez de comparer une exécution légèrement chargée avec une exécution surchargée.
  • Modifiez un facteur à la fois pour l'attribution ; après réglage, exécutez un test de bout en bout combiné car les optimisations peuvent interagir.
  • Associez les benchmarks système à l'évaluation de la qualité de la tâche. Les améliorations de performance qui dégradent les sorties au-delà du seuil du produit ne sont pas des victoires.
  • Le benchmarking montre ce qui est lent ; le profilage aide à expliquer pourquoi. Utilisez le profileur le moins intrusif qui peut isoler le goulot d'étranglement actif et validez le correctif proposé avec un nouveau benchmark.

Préparation à la production

  • Capacité et mise à l'échelle automatique : montez en charge sur des indicateurs avancés (profondeur de file, utilisation, pression mémoire/KV, taux d'arrivée) ainsi que sur le travail achevé. Tenez compte du temps de provisionnement et de chargement du modèle ; maintenez une capacité suffisante ou dégradez gracieusement lorsque les démarrages à froid violent les objectifs.
  • File d'attente et surcharge : limitez les files d'attente et les tailles de requêtes, définissez des délais d'attente/annulation, utilisez le contrôle d'admission et définissez des réponses explicites à la surcharge. Une file d'attente illimitée transforme la saturation en échec de latence de queue.
  • Fiabilité : testez les contrôles de santé, les tentatives avec limites, l'idempotence si nécessaire, la perte d'instance, la défaillance régionale/fournisseur, le déploiement, le retour arrière, l'épuisement de capacité. Les tentatives peuvent amplifier la surcharge.
  • Déploiement : figez les artefacts et dépendances du modèle, validez le démarrage/préparation, déployez progressivement avec une stratégie de canari, comparez les métriques de qualité et de service, et conservez un chemin de retour arrière testé. Évitez d'exposer les secrets dans les images, les journaux ou les artefacts de benchmark.
  • Observabilité : corrélez les traces de requêtes avec les versions du modèle, du moteur, du matériel et de la configuration. Suivez le TTFT, l'ITL, les percentiles de bout en bout, le temps de file, le débit/goodput, les erreurs, le taux de succès du cache, l'utilisation, la mémoire, les démarrages à froid et le coût.
  • Coût : comparez le coût par requête réussie ou sortie utile à la qualité et au SLO requis, y compris la capacité inactive, la réplication, le réseau, le stockage et la charge d'ingénierie/exploitation. La mise à l'échelle à zéro peut réduire les dépenses inactives mais ajoute de la latence de démarrage à froid.
  • Sécurité et conformité : contrôlez l'accès au modèle et aux données, isolez les locataires, protégez les prompts et les sorties dans les journaux, définissez la conservation, validez les dépendances et artefacts, et respectez les exigences applicables de résidence des données et réglementaires.

Pour la reproductibilité des conteneurs, la capacité et le routage, les opérations multi-régions, les protocoles clients et les pratiques de déploiement, lisez les opérations de production. Pour les mesures par modalité, lisez les considérations d'inférence spécifiques à la modalité.

Routage des références

TâcheÀ lire
Construire une fiche de charge de travail, établir une référence ou localiser un goulot d'étranglementCe fichier, puis playbook d'optimisation
Comprendre l'exécution du modèle, l'ajustement à l'accélérateur ou les compromis matérielsFondamentaux des modèles et du matériel
Sélectionner un framework, un format de modèle, un chemin de noyau ou un moteur de serviceSélection de la pile logicielle
Ajuster la quantification, la spéculation, les caches, le parallélisme ou la désagrégationPlaybook d'optimisation
Servir des charges de travail de vision, embeddings, audio, image ou vidéoConsidérations spécifiques à la modalité
Planifier la mise à l'échelle automatique, le déploiement, la fiabilité, le comportement API/client et le coûtOpérations de production

Format de réponse pour les tâches d'inférence

Lorsque vous conseillez ou implémentez, fournissez :

  1. Hypothèses de charge de travail et mesures manquantes.
  2. L'objectif et les métriques de référence.
  3. L'hypothèse du goulot d'étranglement principal et comment la prouver.
  4. Un plan d'expérience classé avec les compromis attendus.
  5. Les critères d'acceptation de qualité, de latence de queue, de fiabilité, de sécurité et de coût.
  6. Les faits actuels sur le fournisseur/modèle/exécution avec des liens vers les sources officielles lorsqu'ils affectent la recommandation.

Skills associés