Cold start is one of the most common friction points in production LLM inference. It occurs when a model is not loaded into GPU memory and must be initialized before the first token can be generated. For serverless or autoscaling deployments, this delay can stretch from several seconds to over a minute, directly impacting user experience and system throughput. While the industry has developed several mitigation patterns, the most reliable fix is to choose infrastructure that eliminates the problem entirely.
What Is Cold Start in LLM Inference?
At the infrastructure level, cold start has two distinct phases. The first is container startup: pulling the inference image, initializing the runtime, and establishing network endpoints. The second, and usually more expensive, phase is model weight loading. A 70B parameter model at BF16 precision requires roughly 140 GB of VRAM. Moving these weights from storage into GPU memory across PCIe or NVLink takes time, and subsequent allocation of the KV cache adds further latency. Only after both phases complete can the first forward pass begin.
Why Cold Start Hurts Cost and UX
Latency spikes break SLAs. A chat interface that pauses for ten seconds before streaming its first token will degrade trust quickly. To avoid this, teams often over-provision dedicated GPUs to keep models resident, paying for idle compute. Conversely, pure serverless offerings shift cost to the user through unpredictable latency. For long-context workloads, the pain is compounded. Even after weights are loaded, a 100K token prompt increases time-to-first-token, so any initial delay is magnified.
Mitigation Strategies
Several engineering practices can reduce cold start frequency and duration.
Keep Models Resident
The simplest strategy is to avoid unloading the model. Always-on replicas guarantee sub-second first-token latency, but they require reserved capacity. This is cost-effective only when request volume is steady.
Use Tiered Storage and Fast Formats
Loading weights from local NVMe is faster than pulling from object storage. Using formats like Safetensors, which enable zero-copy mapping and bypass redundant deserialization, can cut load times significantly. Quantization to FP8 or INT4 also reduces the bytes that must move across the bus.
Implement Predictive Scaling
Instead of reacting to traffic, forecast it. By monitoring request queue depth and historical patterns, autoscalers can preemptively spin up containers before the current fleet saturates. The gap between scale-up and first request is where cold start lives, so shrinking that window helps.
Optimize Container Images
Shrink Docker images by stripping build artifacts and using minimal base images. Pre-pull images onto worker nodes so that Kubernetes or ECS only needs to create the container, not download layers.
Architectural Patterns
Beyond tuning, architecture choices determine how often you encounter cold starts.
Dedicated vs. Serverless
Dedicated clusters eliminate cold starts but carry fixed costs. Serverless platforms autoscale to zero, which saves money during lulls but penalizes the first request. Many teams adopt a hybrid model: dedicated capacity for baseline traffic with serverless burst handling.
Warm Pools
A warm pool maintains initialized containers in a paused state, ready to unpause when traffic arrives. This works best when model weights are already mapped into GPU memory, reducing the activation cost to a context switch.
Request Batching
Once a model is warm, maximize its utilization through continuous batching. Higher throughput per replica means fewer replicas are needed, which lowers the probability of hitting a cold instance.
Oxlo.ai and Zero Cold Start
Oxlo.ai takes a different path. Rather than forcing developers to manage warm pools or predictive scaling, Oxlo.ai keeps popular models permanently resident on GPU clusters. There are no cold starts on flagship models such as Llama 3.3 70B, DeepSeek R1 671B MoE, Qwen 3 32B, and DeepSeek V4 Flash. You get consistent time-to-first-token without reserving capacity or tuning autoscalers.
Because Oxlo.ai is fully OpenAI SDK compatible, switching requires only a base URL change.
import os
import openai
client = openai.OpenAI(
base_url="https://api.oxlo.ai/v1",
api_key=os.environ["OXLO_API_KEY"]
)
response = client.chat.completions.create(
model="llama-3.3-70b",
messages=[{"role": "user", "content": "Explain cold start mitigation."}],
stream=True
)
for chunk in response:
print(chunk.choices[0].delta.content, end="")
Another advantage appears when you send long prompts. Oxlo.ai uses request-based pricing, so cost does not scale with input token count. You can attach full context windows without the token meter running, which is ideal for agentic and long-context workloads that would be prohibitively expensive on token-based providers. See https://oxlo.ai/pricing for current plan details.
Bottom Line
Cold start is a solvable problem, but the solution you choose depends on your team's appetite for infrastructure work. If you self-host, expect to trade engineering hours for control. If you use generic serverless APIs, expect to trade latency for cost. Oxlo.ai removes the trade-off by keeping models warm and charging per request instead of per token, giving you predictable latency and predictable billing.
Top comments (0)