Applied GenAI Curriculum for AI PMs · Core Sequence · CORE checkpoint next
The inference overview — prefill vs. decode, the standard performance metrics, and where cost actually comes from — so you stop writing roadmap items that are physically impossible at current latency.
You now know how to decide, build, evaluate, and feed an AI system. The last CORE piece is the physics that bounds all of it: every AI feature runs on inference, and inference has a speed and a price you don't get to wish away. You won't optimize inference — that's the engineers' job. But you need enough of the model to know roughly why something is slow or expensive, and to stop writing roadmap items that current latency makes impossible.
Model inference runs on an inference server (inside a broader inference service that routes and preprocesses requests). If you use an API like OpenAI or Google, that is the inference service; if you self-host, you own it. Generating a response happens in two phases with completely different characteristics:
Reads your input tokens, all in parallel. Limited by raw compute. Its duration scales with input length — this is what you wait through before the first token.
Generates output tokens one at a time, each requiring loading large matrices from memory. Limited by how fast data moves, not by compute. This is why longer outputs cost more time.
From the user's side, the axis is latency (response quality is the model's property, not the server's). For streaming responses it breaks into two numbers you'll hear constantly:
| TTFT | Time to first token — how fast the first token appears. It's the prefill step, so it grows with input length. Chatbots want this near-instant; document summarization can tolerate more. |
| TPOT | Time per output token — how fast each subsequent token comes. In streaming it only needs to beat reading speed (~6–8 tokens/sec is fine for most reading). |
Percentiles surface the tail your average hides — the p99 is where a slice of real users actually live.
Throughput — output tokens per second across all users — is what ties to cost. Higher throughput generally means lower cost per token. The cost of a request is simply prefill cost + decode cost, and you can back it out from hardware price and throughput. But raw throughput hides a trap:
Providers offer two API modes, and picking the right one is often the biggest cost decision a PM actually controls:
| Online API | Optimizes for latency — processes each request on arrival. For anything user-facing: chatbots, code generation. Often offers streaming (tokens shown as generated) to cut perceived wait. |
| Batch API | Optimizes for cost — trades speed (hours, not seconds) for a big discount (commonly ~50% off). Right for anything without strict latency needs: synthetic data, periodic reports, bulk document onboarding, model migrations, newsletters, reindexing. |
The move: before assuming an expensive real-time pipeline, ask whether the workload is actually latency-sensitive. Half of "too expensive" problems are online workloads that could be batch.
That completes the CORE pass — a standalone operating model from "should we build it?" to "why is it slow?" Next is the checkpoint that proves it produced judgment, not trivia.