Speaker notes: Welcome. Opening question: “Who has ever seen a great AI prototype… that never came out of the notebook?” Hands are raised. “Today, we are learning to cross this divide.” Zero code to write: we think like an architect.
Speaker notes: 90 seconds max. Transition: “A brilliant system that no one can use is worth zero.”
Speaker notes: Clear contract. Specify the common thread: “We will follow a single application, SupportBot, from notebook to production. Each concept solves a problem she encountered growing up.”
Speaker Notes: Set the scene in 60 seconds. Emphasize: nothing is “wrong” in the prototype — it is just designed for a world that does not exist (one user, perfect network, infinite budget).
Speaker notes: Food-truck vs restaurant analogy: same recipe, but the restaurant needs reservations, a sized kitchen, accounting, hygiene and a chef who sees his room. The recipe (the prompt) is the easy part.
Speaker Notes: This is the session outline. Question to the room: “Which is most often forgotten?” Answer: observability — invisible as long as everything goes well, essential from the first incident. Central message to hammer home: “a prototype that works = 20% of the work”.
Speaker Notes: Reframe: In 90% of projects, you are NOT hosting the model — you are calling an API. The entire reliability of your product therefore depends on the quality of this integration.
Speaker Notes: Mental demonstration: “Open F12 in your browser, Network tab. Everything the browser sends, YOU see. A key in the front-end is de facto public — it will be stolen and used at your expense.” This is the #1 safety rule of the session, it will come back on slide 25.
Speaker notes: Do not go into detail about the protocol (flows, scopes) — remember the WHEN: global service identity → API key; action on behalf of a specific user → OAuth. SupportBot example: consult the leave balance of *this* employee → OAuth to the HRIS (HR information system).
Speaker notes: SupportBot anecdote: Monday 9 a.m., 800 employees connect at the same time → burst of 429. Distinguish: rate limit = voluntary, predictable, negotiable limitation (quota increase); breakdown = unintentional. Both are managed by retry, but the rate limit is also prevented (smoothing, queue).
Speaker notes: Diagram to reproduce on the board if necessary. Explain the “thundering herd” effect: without jitter, all clients try again at the same second and recreate the peak. With backoff + jitter, the Monday 9 a.m. experience goes from “30% errors” to “2–3 s wait for the less lucky”.
Speaker Notes: “How long can the user wait?” is a product question, not a technical question. Set the budget BEFORE choosing model and architecture. A chat user doesn't wait like a nightly batch service.
Speaker notes: Counter-intuitive insight: controlling the length of responses (concision guideline, `max_tokens`) is an optimization of LATENCY as well as cost. Participants often believe that latency comes from the network — no, it comes from generation.
Speaker notes: Rhetorical question: “Do you prefer 8 seconds of frozen screen, or a first word at 0.8 s and the rest scrolling?” Mention the hidden cost: error management during the flow and more delicate output filtering (what do we filter, if the response arrives in pieces?). Demo: Monitoring tab of the web page, TTFT line.
Speaker notes: Do not teach prices (they change every quarter), teach METHOD and the reflex “I check the price list before projecting a budget”. Transition: “Let’s look at the three levers to reduce this bill.” Exercise 1 just brought it to life — rely on their figures.
Speaker Notes: Figures from Exercise 1: SupportBot goes from $9,000 to ~$4,100/month just with cache. Classic trap: insert a dynamic timestamp at the top of the system prompt → cache invalidated on each request, zero savings. The cache is managed by the provider, but it is YOUR prompt structure that makes it possible.
Speaker notes: This is often THE biggest lever: in Exercise 1, 80/20 routing increases the bill from ~4,100 to ~$1,100/month (−88% vs. naive). The risk: misdirecting a difficult question to the small model → planning an escalation (the small model can say “I’m handing over”).
Speaker Notes: Generic true story: the agent loop running all night, or the test script running on the wrong loop. Without a ceiling, we discover it on the invoice. With ceiling + alert, we discover it at 50%. Graceful degradation is better than dead cut: the service continues, in economical mode.
Speaker Notes: Connect to Session 1: Inference is limited by **memory bandwidth**. Fewer bits to reread per token = faster AND lighter. The JPEG analogy is the key: everyone has already compressed a photo.
Speaker notes: Bring the figure to life: 140 GB = impossible on a 24 GB card. 40 GB = two 24 GB cards, or a unified memory Mac. Slider: beyond INT4 (e.g. 2 bits), the quality visibly drops — the model becomes “fuzzy”.
Speaker notes: `q4_K_M` = 4 bits, “K” blocks, medium size. Emphasize: quantization does not make a small model as good as a large one — it makes a **large model executable** locally. A 70B-Q4 > an 8B-FP16 with a comparable footprint. Transition to observability.
Speaker notes: Scenario: a user says “yesterday, SupportBot answered me nonsense”. Without log: impossible to diagnose. With log: you find the request, the exact prompt, the version, the model — and you reproduce. The “prompt version” in the newspaper prepares slide 22.
Speaker notes: Web demo: the dashboard displays p50/p95/p99 live — show the p95 dropping while the average remains reasonable. Shocking sentence: “Your users do not live average lives; everyone lives HIS request.”
Speaker notes: Absolute rule: an alert without documented action is noise — it will be ignored from the 3rd time, including when it is serious. If no one knows what to do when it rings: delete it or write down the instructions.
Speaker Notes: Bridge to previous sessions: “You learned how to construct evals. Here, we plug them into the tap: they turn automatically with each change.” AI specificity: non-deterministic outputs → test criteria (format, presence of key information, judge's score), not strict equality. Without that, regressions are discovered in production, via users.
Speaker Notes: Quick transition — Exercise 2 has already manipulated these choices. This part consolidates and names the patterns.
Speaker Notes: Key Point: Dedicated GPU (Graphics Processing Unit) is ONLY necessary if you are hosting the model yourself — data sovereignty or extreme volume. If you call an API, the GPU is with the provider. 90% of projects: serverless or container is enough. Cold start: first request after slower inactivity — acceptable or not depending on the latency budget (loop with slide 12).
Speaker notes: Rule 1 loops with slide 8 — this is intentional, spaced repetition. Rule 2: session callback on prompt injection — in production, the attacker really exists. Rule 3: the model can regurgitate data from the context (e.g. data from another client if the RAG is poorly partitioned) — last trickle before the user's screen.
Speaker notes: The queue reconciles two incompatible rhythms: the massive arrival of tasks and the throughput authorized by the supplier. Bonus: free resilience — if the supplier falls for 10 minutes, the line grows then empties, nothing is lost. This was scenario B of Exercise 2.
Speaker notes: Summary slide — the loop is closed: each component responds to a problem seen in the session. Have the room name each brick: “What is the gateway for? The router? Why is the newspaper plugged in everywhere?” 2–3 minutes of active recapitulation.
Speaker Notes: Read slowly. Each line corresponds to a project on slide 6. If a participant only remembers one sentence: “production is a discipline, not a detail”.
Speaker notes: Distribute the 5 exit tickets alternately in the room. Take note of them: they calibrate the opening of Session 9.
Speaker notes: Teaser in 30 seconds. Remember the trick question from Exercise 3 (the dashboard does not see the quality): “This is exactly the hole that Session 9 will fill.” Thank you, remain available for individual questions.