Serving Large Language Models
Weigh the tradeoffs
Serving LLMs becomes useful when you can predict its behavior, measure it, and name its limits.
Before you start
Why this matters
Imagine you must cut either latency, cost, or error rate by 30% for Serving LLMs. Which goal would conflict with another? Write the conflict before reading.
1Learn the idea
Read
There is no free setting
See it
Training
Inference
Training = long study · Inference = quick answer from what it already learned
Larger batches improve GPU utilization and tokens per second but can worsen queueing and per-user latency. Quantization reduces memory and may increase throughput with possible quality loss. Longer contexts expand usefulness while sharply increasing KV memory and prefill work.
Tradeoffs become manageable when expressed on a shared scorecard. Record task quality, p95 latency, unit cost, operational burden, and risk exposure. Do not collapse them immediately into one number; a weighted score can hide an unacceptable safety or privacy threshold. First mark non-negotiable constraints, then optimize among the surviving options.
Consider the mechanism when judging a trade. Requests enter a queue, are tokenized, and are batched. Prefill processes prompt tokens in parallel; decode then generates one token per active sequence step while retaining a KV cache. Continuous batching inserts and removes sequences dynamically. Memory is consumed by weights, activations, and per-request KV state, so scheduling directly affects throughput and latency. That explains why a control can improve one stage while degrading the whole pipeline. Test at the system boundary seen by the user, not only inside the component. A locally faster retriever, sampler, or model does not help if queueing, retries, validation, or human review dominates end-to-end time.
Read
Apply it to a concrete case
A service receives 20 short chats and one 32k-token prompt. Admission control places the long request in a separate queue so it cannot delay all chats; continuous batching keeps decode slots busy as short requests finish.
The worked number is approximate weight memory for 7B parameters at 16 bits = 7B × 2 bytes ≈ 14 GB, before KV cache and runtime overhead. State the unit and denominator whenever you report it. A percentage without a denominator can conceal a tiny sample; a latency without a percentile can conceal slow users; a similarity score without a labeled task can conceal irrelevant neighbors. Compare the observed value with a threshold chosen before seeing the final test result.
Now test the tempting shortcut. Suppose the team optimizes only the most visible metric. The result may look better while the system becomes less trustworthy. The reason is concrete: Larger batches improve GPU utilization and tokens per second but can worsen queueing and per-user latency. Quantization reduces memory and may increase throughput with possible quality loss. Longer contexts expand usefulness while sharply increasing KV memory and prefill work. This is why the decision record must include both the intended gain and the tolerated regression. If the tolerated regression is unknown, the change is not ready for a consequential workflow.
Read
Decision rules
- Prefer a measured baseline over a persuasive demo.
- Keep versions, inputs, and thresholds reproducible.
- Separate syntactic success from semantic correctness and authorization.
- Escalate or abstain when evidence falls outside the contract.
- Re-evaluate when data, traffic, models, providers, or user goals change.
These rules turn the topic into an engineering decision rather than a slogan. They also make disagreement productive: another person can challenge the assumptions, rerun the evaluation, and reach a documented conclusion.
Read
Make the decision reversible
Write two candidate designs and place each on a small Pareto chart with quality on one axis and cost or latency on the other. A design is dominated when another is at least as good on every measured dimension and better on one. Eliminate dominated choices, then apply hard constraints such as privacy, authorization, or an SLO. For the remaining choice, define a rollback trigger before launch. Reversibility matters because estimates can be wrong: a feature flag, versioned index, pinned model, or shadow run can turn an uncertain tradeoff into a controlled experiment.