MODULE 2 · DAY 1
Serving Local Models
Open engines behind one universal endpoint
Gourav Shah · School of DevOps & AI · Hands-on
M2·01
What you'll learn
Five ideas that make model serving portable and boring.
M2·02
The problem: every engine speaks differently?
One API per engine means one rewrite per swap. It doesn't have to.
M2·03
The quick demo: Docker Model Runner
One command serves a model — tied to Docker's toolchain, not runtime-agnostic.
M2·04
Open engines: different machines, same cup
Machines differ inside, but every espresso pours into one standard cup.
M2·05
Which engine, when
Three open engines, three jobs — reach for the one that fits.
M2·06
The universal contract: the /v1 endpoint
Swap the power station behind the socket — the appliance never notices.
M2·07
Swap engines by changing one variable
The endpoint is one environment variable — not a code change.
M2·08
GGUF: the JPEG of model weights
RAW is huge and perfect; a JPEG at 80% looks the same and loads instantly.
M2·09
Picking a model for a 16 GB laptop
Big models get discussed; small ones get required for the labs.
M2·10
Two wiring patterns, one app
Same app code — only OPENAI_BASE_URL changes between the two.
M2·11
BIG IDEA
The engine is a deployment choice, not a code choice
Next: containerize a client that speaks this contract.
Continue to the Serving lab. · Gourav Shah · School of DevOps & AI
M2·12