Be Software Architecture Wise
Be Wise Apps

Read in English · Leer en español · Auf Deutsch lesen

Section 12.2 sur 12.8 · Avancé · 30 min de lecture

La place des modèles dans une architecture

Leçon vidéo

5 min · narré en anglais, avec sous-titres
Écouter seulement (audio)
Lire la transcription

Choisir le meilleur modèle du mois compte moins qu’on pourrait le croire. Dans les systèmes fondés sur l’intelligence artificielle, ou IA, les décisions durables portent sur l’endroit où tourne un modèle, ce qui se trouve devant lui, et ce qui se passe quand il tombe en panne.

Voyez un modèle comme un prestataire spécialisé. Vous pouvez en louer un auprès d’une agence, moyennant un tarif horaire. C’est une API hébergée : les modèles les plus performants et aucun matériel, mais vous payez au token, et vos données sortent de votre périmètre. Vous pouvez employer votre propre spécialiste, avec tout l’équipement que cela suppose. C’est l’auto-hébergement d’un modèle à poids ouverts : vous maîtrisez les données et la version, mais vous planifiez la capacité d’accélérateurs rares et coûteux. Ou vous pouvez donner à chaque client une petite boîte à outils à utiliser chez lui. C’est un modèle sur l’appareil : privé, hors ligne et sans coût par appel, mais bien moins performant.

Ensuite, demandez-vous si un utilisateur attend. L’inférence en ligne se trouve sur le chemin de la requête : les réponses sont donc diffusées en streaming, et les appels ont besoin de délais d’expiration et de capacité pour le pic du soir. Le travail par lots n’a personne qui attend, comme l’étiquetage nocturne de deux millions de plats de la carte avec leurs allergènes. Il peut utiliser le modèle suffisant le moins cher, et réessayer sans précipitation. L’inférence asynchrone met la requête en file d’attente et informe l’utilisateur que le résultat suivra. Sortir le travail du chemin en ligne est l’une des décisions les plus efficaces qui soient pour le coût et la fiabilité.

Dès que plus d’une fonctionnalité appelle des modèles, une AI gateway se rentabilise. Ici, un assistant de support, une tâche nocturne par lots et un outil de recherche pour le personnel l’appellent tous, chacun avec sa propre identité interne. La passerelle offre une seule API pour tous les modèles. Elle détient les clés des fournisseurs, route les appels et gère les replis, fait respecter les quotas et les limites de débit, journalise chaque appel avec caviardage, et offre des points d’accroche pour les garde-fous. Derrière elle se trouvent deux fournisseurs hébergés et un modèle auto-hébergé. Changer de fournisseur devient une décision de configuration, et non une modification du code de chaque service. Le prix à payer est une nouvelle dépendance critique qui doit être hautement disponible, et un stockage concentré de prompts susceptibles de contenir des données à caractère personnel.

Toutes les requêtes n’ont pas besoin du modèle le plus performant. Le routage décide d’emblée. Une question comme « où en est ma commande ? » peut aller à un petit modèle bon marché, tandis qu’une réclamation portant sur trois problèmes va à un modèle plus grand. Une cascade essaie d’abord un modèle bon marché, et ne passe au niveau supérieur que lorsqu’une vérification échoue. Les meilleures vérifications sont déterministes, comme l’échec de la validation d’un schéma. La déclaration de confiance d’un modèle sur sa propre réponse est le signal le moins fiable. Quand un modèle est limité en débit ou en panne, une échelle de repli essaie l’échelon suivant : le même modèle ailleurs, un autre fournisseur, un modèle plus petit, et enfin une réponse sans aucune IA, comme un transfert vers une personne. Donnez à chaque échelon son propre délai d’expiration et à l’échelle entière une échéance globale, pour que personne n’attende plusieurs échecs lents d’affilée. Et enregistrez l’échelon qui a répondu.

Voici comment tout s’assemble pour l’assistant de support de la plateforme de livraison de repas. Il traite environ quarante mille conversations par jour. Environ deux tiers concernent des commandes en retard, des articles manquants ou des remboursements. Les premiers mots diffusés doivent arriver en moins de deux secondes, et la réponse complète en moins de huit, toutes deux au quatre-vingt-quinzième percentile. Le chat doit être disponible quatre-vingt-dix-neuf virgule neuf pour cent du temps. Deux fournisseurs hébergés se trouvent derrière une AI gateway. Un petit modèle route chaque tour et répond aux questions simples sur le statut. Un modèle plus grand traite les réclamations. Les remboursements de plus de quinze livres nécessitent un humain, et le service de remboursements applique les règles dans du code ordinaire, pas dans le modèle. L’échelle va du modèle principal au second fournisseur, puis à un petit modèle, et enfin à un message préparé avec la possibilité de se mettre en file d’attente pour parler à une personne. En cas d’escalade, les agents voient la transcription, les sources utilisées et l’action proposée, pour que le client n’ait pas à se répéter.

L’humain dans la boucle recouvre plusieurs conceptions : l’approbation avant une action, la revue après coup, l’escalade ou le retour. Précisez laquelle vous entendez. L’approbation crée une file d’attente qui doit être dimensionnée pour le volume de pointe, comme la file d’examen des fraudes de la section douze point un. Les personnes qui approuvent des centaines de bonnes suggestions finissent par approuver sans lire. C’est le biais d’automatisation. Montrez donc les éléments de preuve et l’action exacte, et mesurez à quelle fréquence les relecteurs modifient la proposition. Et choisissez les modèles avec votre propre jeu d’évaluation composé d’exemples réels, pas avec les classements publics. Attendez-vous à une combinaison, pas à un seul gagnant.

La section complète compare les options d’hébergement et énumère les critères de choix d’un modèle. Ensuite, dans la section douze point trois, nous verrons la génération augmentée par récupération. À très vite.

Ce qu’il faut savoir

Le modèle est une dépendance, pas l’architecture

La section 12.1 a décrit un modèle comme une fonction probabiliste accessible par une API. Dans une architecture, c’est un conteneur parmi d’autres, et généralement une petite partie du code. Un assistant de support client comporte un frontend de chat, un stockage des conversations, des intégrations avec les services de commandes et de remboursements, un index de recherche, une gestion des identités, de la journalisation, un transfert vers des agents humains et un pipeline de déploiement ; l’appel au modèle n’est qu’une ligne au milieu. Les questions d’architecture sont donc des questions familières posées à un nouveau type de dépendance : où s’exécute-t-elle, comment est-elle appelée, qu’y a-t-il entre elle et ses appelants, que se passe-t-il quand elle est lente, se trompe ou est indisponible, et qui répond de sa sortie ?

Bien répondre à ces questions compte davantage que de choisir le meilleur modèle du mois. Les modèles sont remplacés tous les quelques mois ; la passerelle, la conception des replis, le jeu d’évaluation et le processus de revue humaine durent des années. Les décisions de cette section sont des décisions significatives et difficiles à inverser au sens du chapitre 1 : elles méritent donc des enregistrements de décision ; le choix d’une version de modèle particulière, lui, doit être facile à changer.

Trois endroits où un modèle peut s’exécuter

API de modèles hébergés. Le fournisseur fait tourner le modèle et vous payez au token. Cela couvre les API propres aux fournisseurs de pointe (OpenAI, Anthropic et Google, entre autres) et les plateformes cloud qui revendent les modèles de plusieurs éditeurs au sein de votre compte cloud existant. C’est le moyen le plus rapide de démarrer, et il donne accès aux modèles les plus performants, sans accélérateurs à acheter ni à exploiter. Les contreparties sont une tarification au token qui augmente avec l’usage, des limites de débit fixées par quelqu’un d’autre, une dépendance à la disponibilité du fournisseur, des modèles retirés selon le calendrier du fournisseur, et des données qui sortent de votre périmètre. Les contrats, les conditions de traitement des données, les options de conservation nulle ou limitée et le traitement régional atténuent ce dernier problème sans le supprimer.

Modèles à poids ouverts auto-hébergés. Un modèle à poids ouverts publie ses poids entraînés : vous pouvez donc le faire tourner sur vos propres accélérateurs ou sur des accélérateurs loués, avec un serveur d’inférence comme vLLM. On peut citer les modèles de Meta (Llama), Mistral, Alibaba (Qwen), DeepSeek, Google (Gemma) et OpenAI (gpt-oss). Vous maîtrisez le chemin des données, la version exacte et le fine-tuning, et à volume élevé et régulier, le coût par token peut descendre bien en dessous des prix des API. En contrepartie, vous prenez en charge la planification de la capacité d’un matériel rare et coûteux, son taux d’utilisation (des accélérateurs inactifs coûtent autant que des accélérateurs occupés), les mises à niveau, les correctifs de sécurité et l’astreinte. Les licences comptent : certains modèles à poids ouverts utilisent des licences permissives comme Apache 2.0, tandis que d’autres utilisent des licences spécifiques assorties de conditions d’usage ou d’échelle, et la plupart ne publient pas leurs données d’entraînement. L’Open Source AI Definition de l’Open Source Initiative (version 1.0, octobre 2024) place la barre plus haut que les seuls poids ouverts. Une voie intermédiaire, utilisée par le chatbot de ce cours, consiste à appeler des modèles à poids ouverts via un fournisseur d’inférence tiers : tarification au token, aucun matériel, et la liberté de déplacer le même modèle ailleurs.

Modèles sur l’appareil. De petits modèles, souvent de quelques milliards de paramètres ou moins et quantifiés à une précision réduite, tournent sur des téléphones, des ordinateurs portables ou dans le navigateur. Ils offrent la confidentialité (les données ne quittent jamais l’appareil), le fonctionnement hors ligne, aucun coût par appel et une latence très faible, au prix de capacités bien moindres, d’une grande disparité de performances entre appareils, de téléchargements d’application plus lourds et de la difficulté de mettre à jour des modèles déjà déployés sur des millions d’appareils. Beaucoup de produits les combinent : un petit modèle sur l’appareil traite les tâches rapides et privées et transmet les plus difficiles au cloud.

Comparaison des options

OptionPoints fortsCoûts et risquesUsage typique
API propriétaire hébergéeMeilleures capacités, aucune infrastructure, démarrage rapide, passage à l’échelle géré par le fournisseurCoût par token à grande échelle, limites de débit, pannes et retraits de modèles chez le fournisseur, données qui sortent de votre périmètre, dépendance au fournisseur via des fonctionnalités spécifiquesLa plupart des nouvelles fonctionnalités ; volume faible ou irrégulier ; tâches exigeant des capacités de pointe
Modèle à poids ouverts via un fournisseur d’inférenceTarification au token sans matériel ; les mêmes poids peuvent passer chez un autre hébergeur ou en interneReste une dépendance externe ; capacités en deçà de l’état de l’art sur certaines tâches ; qualité et limites variables selon le fournisseurFonctionnalités sensibles au coût ; portabilité ; une étape vers l’auto-hébergement
Poids ouverts auto-hébergésContrôle total des données, de la version et de l’ajustement ; faible coût marginal sous forte charge régulièreCoût et rareté des accélérateurs, capacité inutilisée, compétences d’exploitation, mises à niveau, conditions de licenceContraintes strictes sur les données ; volume très élevé et régulier ; fine-tuning intensif
Sur l’appareilConfidentialité, usage hors ligne, aucun coût par appel, latence minimalePetits modèles uniquement ; fragmentation des appareils ; distribution des mises à jour ; batterie et mémoireTâches rapides et privées, autocomplétion, fonctionnalités hors ligne, premier niveau d’une cascade

Inférence en ligne et scoring par lots

La deuxième question est de savoir si un utilisateur attend. L’inférence en ligne appelle le modèle sur le chemin de la requête, si bien que des objectifs de latence s’appliquent : les utilisateurs remarquent le délai avant les premiers mots visibles, c’est pourquoi les réponses de chat sont diffusées en streaming, et ils abandonnent une requête qui prend de nombreuses secondes. Les appels en ligne ont besoin de délais d’expiration, de limites de concurrence et de capacité pour le pic du soir, exactement comme toute dépendance synchrone du chapitre 6.

Le scoring par lots traite de nombreux éléments sans que personne n’attende : étiqueter pendant la nuit deux millions de plats de la carte avec leurs allergènes, résumer les conversations de support de la veille, recalculer les embeddings d’une collection de documents. Le travail par lots peut utiliser le modèle suffisant le moins cher, s’exécuter quand la capacité est libre et réessayer sans précipitation. Plusieurs fournisseurs proposent des interfaces de traitement par lots asynchrones qui acceptent un fichier de requêtes et renvoient les résultats en quelques heures, avec une remise substantielle. Entre les deux se situe l’inférence asynchrone : une requête est mise en file d’attente, l’utilisateur est informé que le résultat suivra (une décision de remboursement par e-mail, un résumé de document en quelques minutes), et des workers vident la file à un rythme maîtrisé, en s’appuyant sur les files d’attente et la back pressure du chapitre 9 pour absorber les pics et les limites de débit des fournisseurs. Sortir le travail du chemin en ligne est l’une des décisions les plus efficaces qui soient pour le coût et la fiabilité.

Une AI gateway entre les applications et les modèles

Dès que plus d’une équipe ou d’une fonctionnalité appelle des modèles, une AI gateway dédiée se rentabilise. Elle joue le rôle qu’une API gateway joue pour les microservices, spécialisée pour le trafic vers les modèles. Les applications appellent un seul endpoint interne avec un seul format de requête et leur propre identité ; la passerelle détient les clés des fournisseurs, traduit vers l’API de chaque fournisseur, applique le routage et les replis, fait respecter les quotas et les budgets de dépenses par équipe, applique les limites de débit, enregistre chaque appel (modèle, version, nombre de tokens, latence, coût, résultat) pour le traçage et la répartition des coûts, peut mettre les réponses en cache, et offre un endroit où brancher de manière centralisée des garde-fous d’entrée et de sortie.

Les avantages sont architecturaux : le choix du fournisseur devient une décision de configuration au lieu d’une modification du code de chaque service, les clés ne sont plus dispersées entre les applications, les dépenses sont visibles par fonctionnalité, et une panne de fournisseur est traitée une seule fois. Les coûts sont ceux de tout intermédiaire partagé. C’est une nouvelle dépendance critique qui doit être hautement disponible, elle ajoute un peu de latence, et ses journaux deviennent un stockage concentré de prompts susceptibles de contenir des données à caractère personnel : les règles de caviardage et de conservation (voir protection de la vie privée dès la conception) s’y appliquent donc. Il existe des passerelles open source et des produits gérés, et les plateformes cloud intègrent des fonctions de passerelle ; en construire une légère est raisonnable pour un petit système, mais les quotas, le streaming, les nouvelles tentatives et la comptabilité représentent plus de travail qu’il n’y paraît.

Une AI gateway

Les applications appellent une AI gateway qui détient les clés et route chaque requête vers des fournisseurs hébergés ou un modèle open-weight auto-hébergéAssistant supportchat en ligneÉtiquetage cartelot nocturneRecherche interneoutil pers.Fourniss. AAPI hébergéeFourniss. BAPI hébergéeModèle open-weightauto-hébergéAI gatewayune API pour tout modèleclés des fournisseurs iciroutage et repliquotas et budgetslimites débitjournaux avec caviardagecache des réponsespoints garde-fousidentité interneidentifiants fourniss.
Les applications s’authentifient auprès de la passerelle avec leur propre identité ; seule la passerelle détient les identifiants des fournisseurs, et c’est elle qui décide quel modèle sert chaque appel.

Routage et cascades

Toutes les requêtes n’ont pas besoin du modèle le plus performant. Le routage décide d’emblée quel modèle doit traiter une requête, à l’aide de règles (la fonctionnalité, le niveau d’abonnement du client, la langue) ou d’un petit classifieur rapide. Dans l’assistant de support, où en est ma commande ? peut aller à un petit modèle bon marché qui appelle un seul outil, tandis qu’une réclamation portant sur trois problèmes distincts va à un modèle plus grand. Une cascade de modèles essaie au contraire d’abord un modèle moins cher et ne passe au niveau supérieur que lorsqu’une vérification indique que sa réponse n’est pas assez bonne. FrugalGPT de Chen, Zaharia et Zou (2023) a montré que des cascades bien réglées peuvent approcher la qualité du modèle le plus performant pour une fraction du coût.

Une cascade ne vaut que ce que vaut sa vérification d’escalade. Les vérifications fiables sont déterministes : la sortie échoue à la validation du schéma, une source citée n’existe pas, un champ obligatoire manque, une règle métier rejette la proposition. Un modèle vérificateur qui note la réponse est moins solide mais souvent utile. La déclaration de confiance d’un modèle sur sa propre réponse est le signal le moins fiable et ne doit pas être utilisée seule. Les cascades ont aussi des coûts : les requêtes escaladées paient deux appels et attendent les deux, il y a désormais deux modèles à évaluer et à maintenir en phase, et le plafond de qualité est fixé par la vérification, pas par le modèle performant. Mesurez le taux d’escalade ; si la plupart des requêtes sont escaladées, faites plutôt du routage.

Échelles de repli entre modèles et fournisseurs

Les API de modèles échouent de toutes les manières dont échouent les dépendances distantes, plus quelques-unes qui leur sont propres : des réponses de limite de débit (HTTP 429) quand un quota est épuisé, des erreurs de surcharge aux heures chargées, des réponses lentes qui dépassent un délai d’expiration, des pannes régionales et des modèles retirés à une date d’obsolescence. Les patrons du chapitre 9 s’appliquent directement, organisés en échelle de repli : une liste ordonnée d’échelons, chacun essayé lorsque celui du dessus échoue. Une échelle typique comprend le modèle principal ; le même modèle dans une autre région ou chez un autre hébergeur ; un modèle différent de capacités similaires chez un second fournisseur ; un modèle plus petit et plus rapide ; et enfin une réponse sans IA, comme un message préparé utile, les résultats de recherche du centre d’aide ou un transfert vers une personne.

Règles de conception d’une échelle : donnez à chaque échelon son propre délai d’expiration et à l’échelle entière une échéance globale, afin que l’utilisateur n’attende jamais quatre échecs lents d’affilée ; respectez Retry-After et placez un modèle soumis à une limite de débit en période de refroidissement (un simple disjoncteur) au lieu de le bombarder ; ne réessayez pas les erreurs qui échoueront de nouveau, comme une requête trop volumineuse ou rejetée par un filtre de contenu ; validez la sortie à chaque échelon, car un échelon inférieur peut produire des réponses de forme légèrement différente ; évaluez chaque échelon avec le même jeu d’évaluation, car les prompts doivent souvent être ajustés pour chaque modèle ; et enregistrez l’échelon qui a répondu, afin que les tableaux de bord de qualité puissent distinguer une réponse dégradée d’une réponse normale.

Les fonctionnalités d’IA de ce cours en sont un petit exemple réel. Les réponses d’ArchitectBot et la notation des réponses rédigées aux tests sont générées via une échelle de plusieurs modèles à poids ouverts servis par un fournisseur d’inférence, essayés dans un ordre de préférence fixe. Un modèle qui renvoie une réponse de limite de débit est mis au repos pendant la durée demandée par le fournisseur (dans des bornes fixées), une requête qui échoue, dépasse son délai ou renvoie une réponse inutilisable passe à l’échelon suivant, ces échelons partagent un budget de temps global, et un second fournisseur sert de dernier échelon. La conception sacrifie un peu de qualité de réponse sur les échelons inférieurs au profit de la disponibilité : une réponse un peu moins bonne est préférable à pas de réponse du tout.

Les humains dans la boucle

L’expression humain dans la boucle désigne plusieurs conceptions différentes, et il est utile de préciser laquelle on entend. Approbation avant effet : le modèle rédige un brouillon, une personne l’approuve (un remboursement au-delà d’un plafond, une réponse à un régulateur, une modification en production). Revue après effet : les sorties prennent effet immédiatement et des personnes examinent un échantillon ou les cas signalés. Escalade : le modèle traite ce qu’il peut et transmet le reste à une personne, avec la conversation et les éléments de preuve. Retour : des personnes étiquettent ou corrigent les sorties pour constituer des jeux d’évaluation et améliorer les prompts.

Chaque conception a des conséquences architecturales. L’approbation crée une file d’attente qui doit être dimensionnée pour le volume de pointe, comme la file d’examen des fraudes de la section 12.1, et ajoute une latence qui se compte en minutes ou en heures. Les personnes qui approuvent des centaines de bonnes suggestions finissent par approuver sans lire (biais d’automatisation) : l’interface doit donc montrer les éléments de preuve et l’action exacte, mettre en évidence ce qui est inhabituel, et mesurer à quelle fréquence les relecteurs modifient la proposition ; un taux de modification proche de zéro est un signal d’alerte, pas un succès. Les transferts ont besoin du contexte complet pour que le client n’ait pas à se répéter. Le contrôle humain exigé par la réglementation pour certains usages est plus exigeant encore : la personne doit comprendre les limites du système et pouvoir passer outre ses décisions.

Construire ou acheter, et comment choisir un modèle

La question « construire ou acheter » a plus de deux réponses. Vous pouvez acheter une fonctionnalité d’IA complète au sein d’un produit que vous utilisez déjà (l’assistant d’un éditeur de logiciel de support) ; construire sur des API hébergées ; faire du fine-tuning d’un modèle pour votre tâche ; auto-héberger des poids ouverts ; ou, rarement, entraîner votre propre modèle. Utilisez la grille de lecture stratégique de la conception pilotée par le domaine : achetez pour les capacités génériques comme la transcription de réunions, et construisez là où l’IA touche votre domaine cœur et où vos propres données vous donnent un avantage. Quoi que vous construisiez, gardez le code propre à chaque fournisseur derrière un port avec un adaptateur par fournisseur, et évitez de dépendre de fonctionnalités qu’un seul fournisseur propose, sauf si leur valeur justifie la dépendance au fournisseur.

Choisissez les modèles avec votre propre jeu d’évaluation, pas avec les classements publics. Les classements mesurent des tâches générales qui peuvent ne pas ressembler aux vôtres, et certains modèles ont été optimisés pour eux. Définissez les critères et leurs pondérations avant de tester, comme pour toute décision pondérée, puis présélectionnez deux ou trois candidats et mesurez-les sur quelques centaines d’exemples réels. Attendez-vous à ce que la réponse soit une combinaison, par exemple un petit modèle pour le routage et un plus grand pour les cas difficiles, plutôt qu’un seul gagnant.

Critères de choix d’un modèle

CritèreQuestions à poserComment vérifier
CapacitésFait-il notre tâche assez bien, dans nos langues et nos formats ?Évaluez-le sur votre propre jeu d’évaluation ; comparez les types d’erreurs, pas seulement les moyennes
CoûtCombien coûtent les tokens d’entrée, de sortie et de raisonnement à nos volumes ?Multipliez le nombre de tokens mesuré par requête par le trafic attendu ; incluez les nouvelles tentatives et les escalades
LatenceCombien de temps jusqu’au premier token, et combien de tokens par seconde, au pic ?Mesurez le p50 et le p95 depuis votre région, sous charge, avec des tailles de prompt réalistes
Longueur de contexteNotre entrée réaliste la plus longue tient-elle, avec de la place pour la réponse ?Testez la qualité à cette longueur ; la qualité en contexte long varie
Résidence et conservation des donnéesOù les données sont-elles traitées et stockées, pendant combien de temps, et servent-elles à l’entraînement ?Lisez les conditions de traitement des données ; faites confirmer par écrit les endpoints régionaux et les paramètres de conservation
Licence et conditionsPouvons-nous l’utiliser à cette fin, à cette échelle, et en faire le fine-tuning ?Lisez la licence ou les conditions d’utilisation, avec un conseil juridique si nécessaire
FonctionnalitésPrend-il en charge l’appel d’outils, les sorties structurées, le streaming, les images ou l’audio ?Prototypez exactement les fonctionnalités dont dépend la conception
ExploitationQuels sont les limites de débit, l’historique de disponibilité, le figeage des versions et la politique d’obsolescence ?Vérifiez les limites publiées, l’historique des incidents et la durée de prise en charge des versions figées

Guide de décision

Guide de décision : où ce modèle doit-il s’exécuter ?

Posez les questions dans l’ordre pour chaque fonctionnalité d’IA ; différentes fonctionnalités d’un même produit aboutissent souvent à des endroits différents.

  1. La fonctionnalité doit-elle fonctionner hors ligne, ou les données ne doivent-elles jamais quitter l’appareil de l’utilisateur ?
    OuiUtilisez un modèle sur l’appareil, acceptez les limites d’un modèle plus petit, et prévoyez comment les mises à jour du modèle parviendront aux appareils. Envisagez de transmettre les cas difficiles au cloud avec le consentement de l’utilisateur.
    NonContinuez.
  2. Ces données peuvent-elles être traitées par un fournisseur externe dans un cadre contractuel (finalité, conservation, région) ?
    OuiContinuez.
    NonAuto-hébergez un modèle à poids ouverts dans votre propre environnement, ou utilisez un déploiement du fournisseur au sein de votre propre tenant cloud qui respecte les mêmes restrictions.
  3. La tâche exige-t-elle des capacités que les modèles à poids ouverts que vous pourriez faire tourner n’atteignent pas sur votre jeu d’évaluation ?
    OuiUtilisez une API hébergée de pointe derrière une AI gateway, avec un repli vers un second fournisseur et un dernier échelon sans IA.
    NonContinuez.
  4. Le volume est-il assez élevé et régulier pour occuper des accélérateurs dédiés, et avez-vous des personnes pour les exploiter ?
    OuiL’auto-hébergement de poids ouverts peut être moins cher. Prouvez-le avec un modèle de coûts qui inclut le personnel, la capacité inutilisée, la redondance et les mises à niveau.
    NonUtilisez une API hébergée, propriétaire ou un modèle à poids ouverts via un fournisseur d’inférence, et réexaminez la question quand le volume augmentera.

Exemple commenté

Exemple commenté : un assistant de support pour la plateforme de livraison de repas

La plateforme reçoit environ 40 000 conversations de support par jour, avec un pic au coup de feu du soir. Environ deux tiers concernent des commandes en retard, des articles manquants ou des remboursements. L’objectif est de résoudre automatiquement les cas courants, de transmettre les autres à des personnes avec leur contexte, et de ne jamais verser un remboursement que les règles n’autorisent pas.

Objectifs de qualitéPremiers mots diffusés en moins de 2 secondes au p95 ; réponse complète en moins de 8 secondes au p95 ; chat disponible 99,9 % du temps, avec un repli humain ou un message préparé lorsque les modèles sont indisponibles.
ContraintesClients au Royaume-Uni et dans l’UE : les données à caractère personnel sont donc traitées dans le cadre du RGPD, avec un traitement régional et une conservation limitée ; les remboursements de plus de 15 £ nécessitent un humain ; les services existants de commandes et de remboursements doivent rester les systèmes de référence.
Où tournent les modèlesDes API hébergées de deux fournisseurs derrière une AI gateway. Un petit modèle route chaque tour selon l’intention et répond aux questions simples sur le statut ; un modèle plus grand traite les réclamations et les conversations à plusieurs problèmes. La nuit, une tâche par lots résume et étiquette les conversations pour l’analytique via l’interface de traitement par lots d’un fournisseur.
ConnaissancesLes règles et les articles du centre d’aide sont récupérés au moment de la requête dans un index de recherche hybride (section 12.3), jamais intégrés dans un modèle par fine-tuning.
ActionsL’orchestrateur expose des outils en lecture seule (statut de la commande, articles de la commande) et un outil d’écriture qui propose un remboursement ; le service de remboursements applique les règles et les plafonds dans du code ordinaire (section 12.4 ; sécurisé à la section 12.6).
HumainsEscalade vers la console des agents quand le client le demande, après deux tentatives infructueuses, pour les remboursements au-delà du plafond, ou quand la conversation laisse penser que le client est vulnérable ; les agents voient la transcription, les sources récupérées et l’action proposée.
Comportement en cas de défaillanceÉchelle : modèle principal, second fournisseur, petit modèle, puis un message préparé avec un lien vers le centre d’aide et la possibilité de se mettre en file d’attente pour parler à une personne.
ObservabilitéChaque appel de modèle est tracé via la passerelle avec la version du modèle, les tokens, la latence, le coût, les sources récupérées et le résultat, ce qui alimente l’évaluation (section 12.5) et le suivi des coûts (section 12.7).

Les appels de modèles sont une petite partie de la conception ; la plupart des conteneurs sont des services ordinaires aux responsabilités ordinaires.

Les décisions qui méritent le plus un ADR sont la passerelle, l’échelle à deux fournisseurs, le maintien des règles dans le service de remboursements et les règles d’escalade, car elles sont coûteuses à inverser ; le choix des versions de modèles est délibérément facile à changer.

Diagramme de conteneurs : assistant de support

Diagramme de conteneurs C4 d’un assistant de support client pour la livraison de repasClient[Personne]Agent support[Personne]Assistant de support [système logiciel]App mobile[iOS et Android]commandes, écran chatService chat[TypeScript]conversations, transfertConsole agents[app web]boîte agents humainsStock. conversations[PostgreSQL]messages, résultatsOrchestrateur[Python]prompts, outils, limitesRech. centre d’aide[index hybride]règles, articlesAI gateway[produit gateway]routage, clés, quotasTraces et évals[stock. traces]prompts, tokens, scoresCommandes, remb.[services existants]API plateformeFourniss. modèle A[externe, principal]API LLM hébergéeFourniss. modèle B[externe, repli]API LLM hébergéediscutegère transfertsWebSockettransfertSQLHTTPSchercheappels modèletracesHTTPSrepliappels outil (REST)
Vue des conteneurs C4 de l’assistant de support : les appels de modèles passent par l’orchestrateur et l’AI gateway, tandis que les commandes et les remboursements restent dans les services existants.

Vérifiez votre compréhension

Pourquoi les journaux d’une AI gateway peuvent-ils poser un problème de protection de la vie privée ?

Ils rassemblent en un seul endroit les prompts et les réponses de toutes les fonctionnalités, et les prompts contiennent souvent des données à caractère personnel : il faut donc du caviardage, du contrôle d’accès et des limites de conservation.

Quand le routage est-il un meilleur choix qu’une cascade ?

Quand le type de requête peut être reconnu d’emblée, ou quand la plupart des requêtes seraient de toute façon escaladées, si bien qu’essayer d’abord le modèle bon marché ne fait qu’ajouter du coût et de la latence.

Pourquoi chaque échelon d’une échelle de repli a-t-il besoin de son propre délai d’expiration, et l’échelle entière d’une échéance globale ?

Pour qu’un utilisateur n’attende jamais plusieurs échecs lents d’affilée ; l’échelle doit fournir une réponse dans le temps de réponse que les utilisateurs tolèrent.

Donnez un avantage et un inconvénient de l’exécution d’un modèle sur l’appareil de l’utilisateur.

Avantage : confidentialité, usage hors ligne, aucun coût par appel ou latence très faible. Inconvénient : capacités bien moindres, performances variables selon les appareils, téléchargements plus lourds ou mises à jour du modèle difficiles.

Suivant · 12.3RAGComment ancrer les réponses du modèle dans vos propres données : ingestion et chunking, embeddings et index vectoriels, récupération hybride et re-ranking, citations, contrôle d’accès, fraîcheur, évaluation et modes de défaillance.Continuer →

Sources et lectures complémentaires

Une question sur cette section ? ArchitectBot, l’assistant d’étude IA du cours, répond d’abord à partir du cours.

Demander : « Quand est-il judicieux d’auto-héberger un modèle à poids ouverts plutôt que de payer une API hébergée ? »