Every LLM workload runs in one of two serving modes, and they sell different contracts: batch inference processes large, fixed datasets on a schedule and returns results in minutes to hours; real-time inference answers unpredictable individual requests in seconds. Confusing the contracts is expensive in both directions — paying real-time premiums for work a nightly batch would do at a fraction of the cost, or forcing interactive features through batch queues users will not tolerate. This page defines the contracts, explains the cost mechanics, and provides the two-question classification that assigns workloads to modes.
Two Modes, Two Contracts
The modes sell different contracts: batch inference processes large, fixed datasets on a schedule with results in minutes to hours, while real-time inference answers unpredictable individual requests in seconds — and every downstream difference (cost, capacity shape, failure behavior) follows from which contract the workload needs.
| Contract term | Batch inference | Real-time inference |
| Input pattern | Large, fixed datasets submitted together | Individual requests, arriving unpredictably |
| Result window | Minutes to hours, on schedule | Seconds, on demand |
| Capacity shape | Scheduled runs at high utilization | Warm capacity standing by continuously |
| Failure handling | Retry cheaply on the next run | Retry is user-visible |

Cloud provider guidance defines batch inference exactly this way — predictions for large groups of data points generated at once rather than one at a time — and platform documentation contrasts the two modes' requirements and trade-offs along the same lines. One boundary blurs the picture: near-real-time batch (results in minutes) serves dashboards and monitoring that feel interactive but tolerate schedule. The classification test at the end resolves it: classify by whether a human is actively waiting, not by how fast the results technically arrive.
Why Batch Costs Less per Request
Batch saves by never paying for waiting: large sets pack densely onto compute running at high utilization, while real-time serving keeps warm capacity standing by for requests that arrive unpredictably — the premium real-time charges buys the low-latency contract, and workloads that do not need that contract should not pay it.
| Cost driver | Batch | Real-time |
| Utilization | Packed runs near full utilization | Capacity held warm through idle periods |
| Pricing | Discounted scheduled processing at most providers | Per-request or per-hour premium for elasticity |
| Overhead per request | Amortized across the dataset | Full serving overhead per interaction |
Cost analysis of the two modes reaches the same mechanics from the pricing side: batch increases the number of processed requests per compute cycle, reducing cost per request, while real-time pays to keep capacity warm precisely so that low latency is possible. The premium is not a markup — it is the price of the contract. A chat product cannot batch its responses, so it pays for warm capacity; a nightly enrichment job gains nothing from warmth, so paying for it is waste. The savings question is never "is batch cheaper" (it is, per request) but "does this workload need the contract that warmth buys."
Classifying Your Workloads
Classify by two questions: is a human waiting for this output, and does the input arrive on a schedule — enrichment, classification sweeps, evaluation runs, embeddings, and backfills are batch workloads; chat, search, and copilots are real-time; and most real products run both, with the interactive path live and the heavy lifting scheduled behind it.
| Workload | Mode | Why |
| Data enrichment and tagging sweeps | Batch | Large sets, no human waiting per record |
| Model evaluation runs | Batch | Cost-sensitive, parallelizable, scheduled |
| Embeddings generation and backfills | Batch | Scheduled corpus work |
| Chat, copilots, live search | Real-time | A human is waiting |
| Content moderation on new uploads | Usually real-time | Latency is part of the safety contract |
Cloud guidance catalogs exactly these batch families — enrichment, classification, evaluation — as the cost-sensitive parallelizable workloads. The two-question test keeps the classification honest as products evolve: latency expectations drift downward over a product's life, and a batch feature that users start waiting on has become a real-time workload requiring reclassification. The hybrid end state is normal and healthy — one product running a real-time interactive path with scheduled batch behind it for enrichment and evaluation, each workload on the contract it actually needs.
FAQ
How much cheaper is batch inference than real-time?
Directionally substantial — batch providers price at meaningful discounts for scheduled work because packed batches run at high utilization — but the exact spread is provider- and volume-specific. The reliable comparison prices your actual workload both ways rather than quoting a percentage.
Is batch inference output lower quality than real-time?
No — same model, same output quality; the differences are operational (results arrive on a schedule, retries are cheaper, data freshness lags), not quality. If quality differs between your modes, a configuration difference is the cause, not the mode.
Can one product use both batch and real-time inference?
Yes, and most do: the interactive path runs real-time for user-facing requests while enrichment, embeddings, and evaluation run as scheduled batch behind it — the classification exercise tells you which parts of the product live on which side.