Guide Professeur â Session 8 : Infrastructure & DĂ©ploiement
Programme : Applied AI â Niveau IntermĂ©diaire Instructeur : Yann Isola DurĂ©e : 2 heures (120 minutes) Module couvert : Module 6 â Infrastructure & DĂ©ploiement
1. Vue dâensemble de la session
Objectifs pédagogiques
Ă la fin de cette session, chaque participant doit ĂȘtre capable de :
- DĂ©crire le fossĂ© notebook â production : ce qui fonctionne « sur mon ordinateur portable » pour 1 utilisateur ne tient pas face Ă 10 000 utilisateurs â et lister les 6 chantiers qui sĂ©parent les deux mondes (authentification, latence, coĂ»ts, observabilitĂ©, sĂ©curitĂ©, montĂ©e en charge).
- IntĂ©grer proprement une API (Application Programming Interface, interface de programmation applicative) de LLM (Large Language Model, grand modĂšle de langage) : gestion des clĂ©s API, OAuth (Open Authorization, protocole dâautorisation dĂ©lĂ©guĂ©e), limites de dĂ©bit (rate limits), stratĂ©gies de nouvelle tentative (retry) avec backoff exponentiel (attente qui double Ă chaque Ă©chec).
- Raisonner en budget de latence : combien de temps lâutilisateur peut-il attendre ? Expliquer pourquoi le streaming via SSE (Server-Sent Events, Ă©vĂ©nements envoyĂ©s par le serveur) transforme lâexpĂ©rience perçue.
- Piloter les coĂ»ts : compter les tokens, exploiter le prompt caching (mise en cache du prompt â jusquâĂ 90 % dâĂ©conomie â ), router intelligemment (modĂšle Ă©conomique pour les tĂąches simples, modĂšle puissant pour les tĂąches difficiles).
- Mettre en place lâobservabilitĂ© : journaliser chaque requĂȘte/rĂ©ponse, suivre la consommation de tokens, les percentiles de latence (p50, p95, p99), les taux dâerreur.
- Traiter les prompts comme du code : versionnage, tests, revue â et intĂ©grer une suite dâĂ©valuations dans la CI/CD (IntĂ©gration Continue / DĂ©ploiement Continu).
- Choisir un patron de dĂ©ploiement : serverless (sans serveur â Lambda, Cloud Functions), conteneur (Docker), instance GPU (Graphics Processing Unit, processeur graphique) dĂ©diĂ©e â et justifier le choix selon le cas dâusage.
- Sécuriser la production : jamais de clé API cÎté client, assainissement des entrées (input sanitization), filtrage des sorties (output filtering).
Prérequis
- Sessions 1 Ă 7 suivies (notamment Session 5 â tool calling, et les sessions sur les prompts et le RAG, Retrieval-Augmented Generation, gĂ©nĂ©ration augmentĂ©e par rĂ©cupĂ©ration).
- Comprendre ce quâest une requĂȘte HTTP (HyperText Transfer Protocol, protocole de transfert hypertexte) et une rĂ©ponse JSON (JavaScript Object Notation, format dâĂ©change de donnĂ©es).
- Aucune compĂ©tence DevOps (fusion dĂ©veloppement/exploitation) prĂ©alable requise : cette session est lâinitiation DevOps appliquĂ©e Ă lâIA.
Matériel nécessaire
- Vidéoprojecteur + slides (
slides/slides.md). - Page web interactive (
webpage/index.html) â fonctionne hors ligne : calculateur de coĂ»ts en tokens, constructeur dâarchitecture de dĂ©ploiement, maquette de tableau de bord de monitoring avec mĂ©triques animĂ©es. - Feuilles dâexercices (
exercises/exercises.md). - Quiz de fin de session (
quiz/quiz.md). - IdĂ©alement : un ordinateur portable pour deux participants (le calculateur de coĂ»ts est lâactivitĂ© phare).
Message central de la session
« Un prototype IA qui marche, câest 20 % du travail. Les 80 % restants sâappellent production : authentification, latence, coĂ»ts, observabilitĂ©, sĂ©curitĂ©, montĂ©e en charge. Personne ne verra jamais ces 80 % â sauf quand ils manquent. »
RĂ©pĂ©tez cette idĂ©e sous plusieurs formes tout au long de la session. Un participant qui ne retient que cela repart avec lâessentiel : la production est une discipline, pas un dĂ©tail.
Fil conducteur narratif
Toute la session suit une seule application fil rouge : « SupportBot », un assistant de support client interne qui rĂ©pond aux questions des employĂ©s dâune entreprise de 5 000 personnes. On le suit du notebook du dĂ©veloppeur jusquâĂ un service qui encaisse 10 000 requĂȘtes/jour. Chaque partie de la session rĂ©sout un problĂšme que SupportBot rencontre en grandissant :
- đ Partie A : SupportBot marche dans le notebook⊠et câest tout.
- đ Partie B : SupportBot se fait couper par les rate limits.
- â±ïž Partie C : les utilisateurs trouvent SupportBot « lent ».
- đž Partie D : la facture mensuelle explose.
- đ Partie E : « ça marche pas » â mais personne ne sait pourquoi.
- đ Partie F : oĂč et comment dĂ©ployer, sĂ©curiser, monter en charge.
La continuitĂ© narrative est votre meilleur outil pĂ©dagogique : chaque concept arrive comme la solution dâun problĂšme vĂ©cu par SupportBot, jamais comme une notion abstraite.
2. Déroulé minute par minute
| Horaire | Durée | Séquence | Support |
|---|---|---|---|
| 0:00 â 0:05 | 5 min | Accueil, rappel Session 7, objectifs, prĂ©sentation de SupportBot | Slides 1â3 |
| 0:05 â 0:18 | 13 min | Partie A â Le fossĂ© notebook â production | Slides 4â6 |
| 0:18 â 0:33 | 15 min | Partie B â IntĂ©gration API : auth, rate limits, retry & backoff | Slides 7â11 |
| 0:33 â 0:45 | 12 min | Partie C â Budget de latence & streaming (SSE) | Slides 12â14 + dĂ©mo web (dashboard, courbe latence) |
| 0:45 â 1:00 | 15 min | Exercice 1 : Calculateur de coĂ»ts (sur la page web) | Feuille dâexercices + webpage |
| 1:00 â 1:05 | 5 min | â Pause courte | â |
| 1:05 â 1:20 | 15 min | Partie D â Gestion des coĂ»ts : tokens, caching, routage de modĂšles | Slides 15â18 + calculateur web |
| 1:20 â 1:32 | 12 min | Partie E â ObservabilitĂ©, versionnage des prompts, CI/CD | Slides 19â22 + maquette dashboard web |
| 1:32 â 1:45 | 13 min | Exercice 2 : Concevoir une architecture de dĂ©ploiement | Feuille dâexercices + constructeur web |
| 1:45 â 1:53 | 8 min | Partie F â Patrons de dĂ©ploiement, sĂ©curitĂ©, montĂ©e en charge | Slides 23â27 |
| 1:53 â 2:00 | 7 min | Quiz Ă©clair + Exit Tickets + annonce Session 9 | Slides 28â30 |
Note de flexibilitĂ© : lâExercice 3 (conception dâun tableau de bord de monitoring) est prĂ©vu comme devoir Ă la maison ou activitĂ© bonus. Si vous prenez du retard, compressez la Partie F Ă 5 minutes en projetant seulement le tableau comparatif serverless / conteneur / GPU dĂ©diĂ© â mais ne sacrifiez jamais la Partie D (coĂ»ts) ni le passage sĂ©curitĂ© « jamais de clĂ© API cĂŽtĂ© client » : ce sont les deux protections les plus rentables pour vos participants.
3. Notes pédagogiques détaillées par séquence
0:00 â 0:05 | Accueil et cadrage
Quoi dire : « La derniĂšre session, vous avez construit des systĂšmes qui raisonnent et agissent. Aujourdâhui, question brutale : combien dâentre vous ont dĂ©jĂ vu un prototype gĂ©nial⊠qui nâest jamais sorti du notebook ? » (Mains levĂ©es garanties.) « Cette session, câest le mode dâemploi pour franchir ce fossĂ©. »
Présentez SupportBot en 30 secondes : un assistant RAG + outils qui répond aux questions internes. Il marche parfaitement⊠pour son développeur, seul, un mardi aprÚs-midi.
PiĂšge Ă Ă©viter : ne laissez pas les non-dĂ©veloppeurs dĂ©crocher dĂšs la premiĂšre minute. Annoncez explicitement : « ZĂ©ro ligne de code Ă Ă©crire aujourdâhui. On raisonne en architecte, pas en dĂ©veloppeur. Les dĂ©cisions quâon va apprendre Ă prendre sont des dĂ©cisions de gestion de projet et de budget autant que des dĂ©cisions techniques. »
0:05 â 0:18 | Partie A â Le fossĂ© notebook â production
Idée maßtresse : « ça marche sur mon ordinateur » et « ça sert 10 000 utilisateurs » sont deux métiers différents.
Déroulé :
- Projetez le tableau des différences (slide 5). Faites-le vivre avec SupportBot :
- Notebook : 1 utilisateur (le dĂ©veloppeur), clĂ© API en clair dans le code, aucune gestion dâerreur, coĂ»t invisible, latence « on sâen fiche ».
- Production : 10 000 requĂȘtes/jour, secrets protĂ©gĂ©s, pannes rĂ©seau inĂ©vitables, facture mensuelle scrutĂ©e par la direction, utilisateurs qui abandonnent aprĂšs 5 secondes.
- Introduisez les 6 chantiers (slide 6) : authentification & intégration API, latence, coûts, observabilité, sécurité, montée en charge. Annoncez que la session les traite dans cet ordre.
Analogie qui fonctionne bien : le food-truck vs le restaurant. La recette (le prompt, le modĂšle) est la mĂȘme. Mais le restaurant a besoin de rĂ©servations (rate limits), dâune cuisine dimensionnĂ©e (scaling), dâune comptabilitĂ© (coĂ»ts), dâhygiĂšne contrĂŽlĂ©e (sĂ©curitĂ©) et dâun chef qui sait ce qui se passe dans sa salle (observabilitĂ©).
Question Ă poser Ă la salle : « Quel est, selon vous, le chantier le plus souvent oubliĂ© ? » RĂ©ponse attendue et correcte : lâobservabilitĂ© â parce quâelle ne se voit pas tant que tout va bien.
0:18 â 0:33 | Partie B â IntĂ©gration API : authentification, rate limits, retry
Concepts Ă couvrir, dans lâordre :
- ClĂ©s API (slide 8) : une clĂ© API est un mot de passe de service. RĂšgles dâor :
- Jamais dans le code source (ni dans Git, lâoutil de gestion de versions).
- Jamais cĂŽtĂ© client (navigateur, application mobile) â quiconque ouvre les outils dĂ©veloppeur du navigateur peut la lire et la voler.
- Toujours dans des variables dâenvironnement ou un gestionnaire de secrets (AWS Secrets Manager, HashiCorp Vault, etc.).
- Rotation rĂ©guliĂšre : une clĂ© doit pouvoir ĂȘtre rĂ©voquĂ©e sans tout casser.
- OAuth (slide 9) : quand lâapplication agit au nom dâun utilisateur (accĂ©der Ă son agenda Google, son CRM â Customer Relationship Management, gestion de la relation client), on nâutilise pas une clĂ© API globale mais OAuth : lâutilisateur autorise explicitement, lâapplication reçoit un jeton (token dâaccĂšs) limitĂ© et rĂ©vocable. Simplifiez : « clĂ© API = badge de lâentreprise ; OAuth = badge visiteur nominatif, avec date dâexpiration ».
- Rate limits (slide 10) : les fournisseurs limitent le dĂ©bit â typiquement en RPM (Requests Per Minute, requĂȘtes par minute) et TPM (Tokens Per Minute, tokens par minute). â Les chiffres exacts varient selon le fournisseur et le niveau de compte : donnez un ordre de grandeur (ex. quelques centaines Ă quelques milliers de RPM) et insistez sur le rĂ©flexe : lire la rĂ©ponse HTTP
429 Too Many Requestset lâen-tĂȘteretry-after. - Retry & backoff exponentiel (slide 11) : quand un appel Ă©choue (erreur 429 ou 5xx), on rĂ©essaie â mais pas immĂ©diatement et pas indĂ©finiment :
- Tentative 1 Ă©choue â attendre 1 s â tentative 2 â attendre 2 s â tentative 3 â attendre 4 s â tentative 4 â abandon propre.
- Ajouter du jitter (variation alĂ©atoire) pour Ă©viter que 1 000 clients rĂ©essaient exactement au mĂȘme instant (effet « troupeau » â thundering herd).
- Ne jamais rĂ©essayer les erreurs 400/401/403 (requĂȘte invalide, authentification manquante, interdit) : rĂ©essayer une requĂȘte invalide donnera le mĂȘme rĂ©sultat invalide.
Anecdote SupportBot : « Lundi matin, 9 h 00 : 800 employĂ©s ouvrent SupportBot en mĂȘme temps. Sans retry ni backoff, 30 % des requĂȘtes Ă©chouent avec une erreur 429 et les utilisateurs voient âErreur serveurâ. Avec backoff + jitter : tout le monde est servi, avec 2â3 secondes dâattente pour les moins chanceux. MĂȘme code mĂ©tier, expĂ©rience radicalement diffĂ©rente. »
Erreur frĂ©quente des participants : confondre rate limit (limitation volontaire du fournisseur) et panne (indisponibilitĂ© involontaire). Les deux se gĂšrent par retry, mais le rate limit se prĂ©vient aussi : lisser le trafic, mettre en file dâattente, demander une augmentation de quota.
0:33 â 0:45 | Partie C â Budget de latence & streaming
Concepts :
- Le budget de latence (slide 12) : partir de lâutilisateur, pas de la technique. RepĂšres UX (User eXperience, expĂ©rience utilisateur) classiques :
- < 1 s : perçu comme instantané ou fluide.
- 1â3 s : acceptable avec un indicateur dâattente.
- 3â10 s : frustrant ; nĂ©cessite du streaming ou une barre de progression honnĂȘte.
- > 10 s : Ă traiter en asynchrone (« nous vous notifierons quand ce sera prĂȘt »).
- DĂ©composer la latence (slide 13) : rĂ©seau aller (+ ~50â100 ms) + TTFT (Time To First Token, dĂ©lai avant le premier token â souvent 200 ms Ă 1 s â ) + gĂ©nĂ©ration (proportionnelle au nombre de tokens de sortie) + rĂ©seau retour. Le poste dominant est presque toujours la gĂ©nĂ©ration des tokens de sortie. ConsĂ©quence directe : une rĂ©ponse deux fois plus courte est ~deux fois plus rapide â le contrĂŽle de la longueur de sortie est une optimisation de latence.
- Streaming via SSE (slide 14) : au lieu dâattendre la rĂ©ponse complĂšte, le serveur envoie les tokens au fil de la gĂ©nĂ©ration. SSE = Server-Sent Events, un mĂ©canisme HTTP standard oĂč la connexion reste ouverte et le serveur pousse des Ă©vĂ©nements. La latence totale ne change presque pas, mais la latence perçue sâeffondre : lâutilisateur voit le premier mot en moins dâune seconde.
DĂ©mo web : ouvrez la page interactive, onglet « Monitoring », montrez la ligne TTFT vs latence totale. Puis posez la question : « Que prĂ©fĂ©rez-vous : une rĂ©ponse complĂšte en 8 secondes dâĂ©cran figĂ©, ou un premier mot Ă 0,8 s et la suite qui dĂ©file ? » Câest exactement pourquoi toutes les interfaces de chat IA streament.
Point subtil Ă mentionner : le streaming complique lĂ©gĂšrement le code (gestion dâĂ©vĂ©nements partiels, gestion dâerreur en cours de flux) et le filtrage de sortie (on filtre quoi, si la rĂ©ponse arrive par morceaux ?). Rien dâinsurmontable, mais ce nâest pas gratuit.
0:45 â 1:00 | Exercice 1 â Calculateur de coĂ»ts (15 min)
Organisation : binĂŽmes, un ordinateur par binĂŽme, page web onglet « Calculateur de coĂ»ts ». La feuille dâexercices guide pas Ă pas.
Objectif pédagogique caché : faire découvrir par la manipulation trois vérités :
- Les tokens de sortie coĂ»tent plus cher que les tokens dâentrĂ©e (souvent 3 Ă 5Ă â ).
- Le prompt caching change radicalement lâĂ©quation quand le prompt systĂšme est long et rĂ©pĂ©tĂ©.
- Le routage de modÚles (petit modÚle pour 80 % des cas) est souvent la plus grosse économie disponible.
Circulation dans la salle : repĂ©rez les binĂŽmes qui ont fini tĂŽt et lancez-leur le dĂ©fi bonus (« trouvez la configuration qui divise la facture par 10 sans changer le volume de requĂȘtes »).
Restitution (3 derniĂšres minutes) : demandez Ă deux binĂŽmes leurs chiffres. Ăcrivez au tableau la facture « naĂŻve » vs la facture « optimisĂ©e ». LâĂ©cart (souvent 5â15Ă) est le moment mĂ©morable de la session.
1:00 â 1:05 | â Pause
Pendant la pause, laissez projetée la maquette du dashboard de monitoring (métriques animées) : elle intrigue et prépare la Partie E.
1:05 â 1:20 | Partie D â Gestion des coĂ»ts
Concepts, appuyĂ©s sur ce que lâExercice 1 vient de faire vivre :
- Compter les tokens (slide 15) : un token â Ÿ de mot en anglais, un peu moins en français (â 1,3â2 tokens par mot â selon le tokeniseur). La facture = tokens dâentrĂ©e Ă prix dâentrĂ©e + tokens de sortie Ă prix de sortie. Ordres de grandeur â (mi-2026, Ă vĂ©rifier avant chaque session) : de ~0,1â1 $ par million de tokens dâentrĂ©e pour les petits modĂšles Ă ~3â15 $ pour les grands ; la sortie coĂ»te typiquement 3â5Ă lâentrĂ©e.
- Prompt caching (slide 16) : si le dĂ©but du prompt est identique dâune requĂȘte Ă lâautre (prompt systĂšme, documents de rĂ©fĂ©rence, dĂ©finitions dâoutils), le fournisseur peut le mettre en cache et facturer les tokens en cache Ă une fraction du prix â jusquâĂ 90 % dâĂ©conomie sur la partie cachĂ©e â . RĂšgle pratique : mettre tout le contenu stable au dĂ©but du prompt, le contenu variable (question de lâutilisateur) Ă la fin.
- Routage de modĂšles (slide 17) : toutes les requĂȘtes ne se valent pas. « Quels sont les horaires du support ? » nâa pas besoin du mĂȘme modĂšle que « Analyse ce contrat de 40 pages ». Architecture : un classifieur (ou un petit modĂšle, ou des rĂšgles simples) route chaque requĂȘte vers le modĂšle le moins cher capable de la traiter. En pratique, 70â90 % â du trafic dâun assistant de support relĂšve du modĂšle Ă©conomique.
- Plafonds et alertes (slide 18) : budget mensuel de tokens, alerte Ă 50 %/80 %/100 %, coupure ou dĂ©gradation gracieuse (bascule vers le petit modĂšle) en cas de dĂ©passement. « Une facture surprise de 20 000 ⏠tue plus de projets IA quâun bug. »
PiĂšge pĂ©dagogique : ne transformez pas cette partie en cours de tarification â les prix changent tous les trimestres. Enseignez la mĂ©thode de calcul et le rĂ©flexe « je vĂ©rifie la grille tarifaire du jour », pas les chiffres.
1:20 â 1:32 | Partie E â ObservabilitĂ©, versionnage des prompts, CI/CD
Concepts :
- Journaliser chaque requĂȘte/rĂ©ponse (slide 19) : horodatage, identifiant de requĂȘte, version du prompt, modĂšle utilisĂ©, tokens entrĂ©e/sortie, latence, statut. Sans journal, le premier « ça ne marche pas » dâun utilisateur est indiagnosticable. Attention RGPD (RĂšglement GĂ©nĂ©ral sur la Protection des DonnĂ©es) : dĂ©finir la durĂ©e de rĂ©tention et anonymiser/pseudonymiser si les prompts contiennent des donnĂ©es personnelles.
- Percentiles de latence (slide 20) : la moyenne ment. p50 (mĂ©diane) = lâexpĂ©rience typique ; p95 = lâexpĂ©rience dâ1 utilisateur sur 20 ; p99 = les pires cas. Un service peut afficher 1,2 s de moyenne et 9 s au p99 â et ce sont les utilisateurs du p99 qui se plaignent et partent. Les SLA (Service Level Agreement, engagement de niveau de service) sâĂ©crivent en percentiles : « p95 < 3 s », jamais « moyenne < 2 s ».
- Taux dâerreur et alertes (slide 21) : seuils dâalerte sur le taux dâerreur (ex. > 2 % sur 5 minutes), la latence p95, le budget de tokens. Une alerte doit ĂȘtre actionnable : si personne ne sait quoi faire quand elle sonne, supprimez-la ou documentez-la.
- Les prompts sont du code (slide 22) : versionnĂ©s (Git), revus (revue de pairs), testĂ©s (suite dâĂ©valuations). CI/CD pour lâIA : Ă chaque PR (Pull Request, demande de fusion de code) qui modifie un prompt, la suite dâĂ©vals tourne automatiquement â tests de rĂ©gression de prompts. « Changer un mot dans un prompt peut casser 15 % des rĂ©ponses. Sans Ă©vals en CI, vous le dĂ©couvrez en production, via vos utilisateurs. »
DĂ©mo web : maquette du dashboard â montrez les mĂ©triques qui bougent, le p95 qui dĂ©croche, lâalerte budget qui passe Ă lâorange. Demandez : « Quelle mĂ©trique regarderiez-vous en premier lundi matin ? »
Lien avec les sessions prĂ©cĂ©dentes : rappelez que la suite dâĂ©valuations a Ă©tĂ© construite conceptuellement dans les sessions consacrĂ©es Ă la qualitĂ© des prompts â ici, on lâautomatise.
1:32 â 1:45 | Exercice 2 â Architecture de dĂ©ploiement (13 min)
Organisation : mĂȘmes binĂŽmes. Cahier des charges dans la feuille dâexercices (trois scĂ©narios au choix : chatbot RH interne, API de rĂ©sumĂ© de documents Ă fort volume, assistant temps rĂ©el cĂŽtĂ© client). Le constructeur dâarchitecture de la page web sert de support visuel : glisser les composants (passerelle API, fournisseur LLM, cache, file dâattente, base de donnĂ©es) et lire lâestimation de latence.
Ce que vous évaluez en circulant :
- La clé API est-elle bien cÎté serveur (jamais dans le navigateur) ?
- Y a-t-il un composant dâobservabilitĂ© (journalisation) ?
- Le scĂ©nario asynchrone utilise-t-il une file dâattente ?
- Le choix serverless/conteneur/GPU est-il justifiĂ© (et pas juste « Docker parce que câest cool ») ?
Restitution (3 min) : un binĂŽme prĂ©sente son architecture ; la salle challenge. Vous jouez lâavocat du diable : « Que se passe-t-il si le fournisseur LLM tombe 10 minutes ? » (RĂ©ponses attendues : retry, message dĂ©gradĂ©, file dâattente qui absorbe, Ă©ventuellement fournisseur de secours.)
1:45 â 1:53 | Partie F â Patrons de dĂ©ploiement, sĂ©curitĂ©, montĂ©e en charge
Cette partie est volontairement dense et rapide â lâExercice 2 a dĂ©jĂ fait manipuler les concepts.
- Trois patrons de déploiement (slide 24) :
- Serverless (Lambda, Cloud Functions) : zĂ©ro serveur Ă gĂ©rer, facturation Ă lâexĂ©cution, montĂ©e en charge automatique. Limites : durĂ©e dâexĂ©cution plafonnĂ©e, dĂ©marrage Ă froid (cold start). IdĂ©al pour trafic irrĂ©gulier et Ă©quipes rĂ©duites.
- Conteneur (Docker, orchestré par exemple avec Kubernetes) : portable, reproductible, contrÎle fin. Coût de compétence plus élevé. Idéal pour un trafic soutenu et régulier.
- Instance GPU dĂ©diĂ©e : uniquement si vous hĂ©bergez le modĂšle vous-mĂȘme (open-weights) â souverainetĂ© des donnĂ©es, coĂ»t fixe Ă©levĂ©, expertise pointue. La majoritĂ© des projets nâen a pas besoin : lâappel API Ă un fournisseur suffit.
- SĂ©curitĂ© (slide 25) : les trois rĂšgles non nĂ©gociables â clĂ© API jamais cĂŽtĂ© client (toujours un backend intermĂ©diaire), assainissement des entrĂ©es (longueur maximale, dĂ©tection dâinjection de prompt), filtrage des sorties (donnĂ©es sensibles, contenu inappropriĂ©) avant affichage.
- MontĂ©e en charge (slide 26) : montĂ©e horizontale (plusieurs instances derriĂšre un rĂ©partiteur de charge â load balancer) plutĂŽt que verticale (une machine plus grosse). Pour les traitements longs ou massifs : architecture Ă file dâattente (queue) â le client dĂ©pose une tĂąche, des workers la traitent au rythme des rate limits, le client est notifiĂ©. Câest LE patron pour le traitement par lots.
Raccourci si retard : projetez uniquement le tableau comparatif des trois patrons et la slide sĂ©curitĂ©. La file dâattente a dĂ©jĂ Ă©tĂ© vue dans lâExercice 2.
1:53 â 2:00 | Quiz, Exit Tickets, clĂŽture
- Quiz : 10 QCM (questionnaire Ă choix multiples), 5â6 minutes, auto-correction collective rapide si le temps le permet (sinon corrigĂ© en ligne).
- Exit tickets (ci-dessous) : 1 minute, un post-it ou formulaire par participant.
- Teaser Session 9 : « Vous savez maintenant dĂ©ployer. La prochaine fois : comment savoir si ce que vous avez dĂ©ployĂ© est bon â Ă©valuation avancĂ©e et amĂ©lioration continue. »
4. Les 5 Exit Tickets
à distribuer (papier ou formulaire) dans les 5 derniÚres minutes. Chaque participant répond à une question (distribuez-les en alternance) ou aux cinq en version courte.
-
« Citez deux diffĂ©rences entre un prototype en notebook et un service en production, et expliquez pourquoi elles comptent. » Attendu : deux Ă©lĂ©ments parmi â gestion des secrets, retry/rate limits, latence maĂźtrisĂ©e, suivi des coĂ»ts, observabilitĂ©, sĂ©curitĂ©, montĂ©e en charge â avec une justification dâune phrase.
-
« Votre application reçoit une erreur HTTP 429. Que signifie-t-elle et que doit faire votre code ? » Attendu : rate limit dĂ©passĂ© (Too Many Requests) â attendre puis rĂ©essayer avec backoff exponentiel (+ jitter), en respectant lâen-tĂȘte
retry-aftersâil est prĂ©sent. Ne pas marteler lâAPI. -
« Expliquez en deux phrases pourquoi le streaming SSE amĂ©liore lâexpĂ©rience utilisateur sans rĂ©duire la latence totale. » Attendu : les tokens sont affichĂ©s au fil de la gĂ©nĂ©ration ; le premier token arrive en < 1 s, donc la latence perçue chute, mĂȘme si la gĂ©nĂ©ration complĂšte prend le mĂȘme temps.
-
« Donnez deux leviers pour rĂ©duire la facture dâune application LLM sans rĂ©duire le volume de requĂȘtes. » Attendu : deux parmi â prompt caching (contenu stable en dĂ©but de prompt), routage vers un modĂšle moins cher pour les tĂąches simples, rĂ©duction de la longueur des sorties, rĂ©duction du contexte injectĂ© (meilleur RAG).
-
« Pourquoi dit-on que âles prompts sont du codeâ ? Citez une pratique concrĂšte qui en dĂ©coule. » Attendu : un changement de prompt change le comportement du systĂšme comme un changement de code â versionnage Git, revue de pairs, tests de rĂ©gression (suite dâĂ©vals) exĂ©cutĂ©s en CI/CD Ă chaque modification.
Exploitation : lisez les tickets avant la Session 9. Si plus de 30 % des réponses au ticket 2 confondent 429 et panne serveur, prévoyez 5 minutes de rappel en ouverture de la session suivante.
5. Questions frĂ©quentes des participants (et rĂ©ponses prĂȘtes)
« Pourquoi ne pas appeler lâAPI du fournisseur directement depuis le navigateur ? Ce serait plus simple. » Parce que la clĂ© API serait visible par quiconque ouvre les outils dĂ©veloppeur du navigateur (F12 â onglet RĂ©seau). Elle serait volĂ©e en quelques heures et utilisĂ©e Ă vos frais. Un backend intermĂ©diaire â mĂȘme minuscule, mĂȘme serverless â est obligatoire. Câest la rĂšgle de sĂ©curitĂ© n° 1 de la session.
« Le prompt caching, câest nous qui le gĂ©rons ou le fournisseur ? » Le fournisseur hĂ©berge le cache, mais vous structurez le prompt pour en profiter : contenu stable au dĂ©but, contenu variable Ă la fin, et selon les fournisseurs un marqueur explicite de point de cache. Si votre prompt systĂšme change Ă chaque requĂȘte (horodatage dynamique, par exemple), le cache ne sert Ă rien.
« Faut-il un GPU pour dĂ©ployer une application IA ? » Non, dans la grande majoritĂ© des cas. Si vous appelez lâAPI dâun fournisseur (Anthropic, OpenAI, MistralâŠ), le GPU est chez lui. Vous nâavez besoin de GPU que si vous hĂ©bergez vous-mĂȘme un modĂšle open-weights â un choix qui se justifie par la souverainetĂ© des donnĂ©es ou un volume Ă©norme, pas par dĂ©faut.
« Combien coĂ»te vraiment une application comme SupportBot ? » â Cela dĂ©pend des tarifs du jour, mais la mĂ©thode est stable : volume quotidien Ă (tokens dâentrĂ©e Ă prix dâentrĂ©e + tokens de sortie Ă prix de sortie), puis appliquer caching et routage. LâExercice 1 donne la mĂ©thode ; refaites le calcul avec la grille tarifaire du moment. Ordre de grandeur : de quelques dizaines Ă quelques milliers dâeuros/mois selon le volume et lâoptimisation.
« La moyenne de latence de notre service est bonne, pourquoi les utilisateurs se plaignent-ils ? » Parce que la moyenne cache la queue de distribution. Regardez le p95 et le p99 : si le p99 est Ă 9 s, 1 requĂȘte sur 100 est insupportable â et ces utilisateurs-lĂ sont bruyants. Engagez-vous sur des percentiles, pas des moyennes.
« On a dĂ©jĂ une CI/CD pour notre code. Quâest-ce qui change avec lâIA ? » Deux ajouts : (1) la suite dâĂ©valuations tourne Ă chaque PR qui touche un prompt ou un paramĂštre de modĂšle â ce sont les tests unitaires du comportement du modĂšle ; (2) les sorties Ă©tant non dĂ©terministes, les tests portent sur des critĂšres (format respectĂ©, prĂ©sence dâinformations clĂ©s, score dâun juge) plutĂŽt que sur une Ă©galitĂ© stricte.
6. Matériel de secours (si la technique lùche)
- La page web ne sâouvre pas â lâExercice 1 est faisable Ă la main : la feuille dâexercices contient la grille tarifaire fictive et les formules. PrĂ©voyez des calculatrices (ou tĂ©lĂ©phones).
- Pas de vidĂ©oprojecteur â le tableau comparatif des patrons de dĂ©ploiement et le schĂ©ma retry/backoff se dessinent au tableau blanc en 2 minutes chacun ; les gabarits sont dans les notes des slides 11 et 24.
- Session Ă distance â partagez la page web en amont (fichier unique, fonctionne hors ligne) ; les binĂŽmes deviennent des salles de sous-groupes de 15 minutes.