Talk to an engineer
Blog / Industry
Industry

From model selection to fleet management.

The conversation has shifted: from picking a model to managing the fifteen you already run, and why none of them talk to each other.

Most enterprise AI conversations in recent memory were about which model to pick. Most enterprise AI conversations today are about which fifteen models you are already running, and why none of them talk to each other.

That shift, from model selection to fleet management, is the single most underestimated transition in enterprise AI infrastructure. It is also where the majority of production programs quietly stall. This post walks through the pattern we see across enterprise deployments: how teams end up with sprawling, unmaintainable model fleets, what the strongest platform teams do differently, and the architecture decisions that separate a pilot from a system that survives its second year.

The pilot-to-production trap

A typical enterprise AI program starts cleanly. A platform team picks a leading open-weight model, stands it up on a serving endpoint, and ships a pilot. The pilot works. Stakeholders are happy. The team gets funded to expand.

Six months later, the picture looks different: a dozen fine-tuned variants in production, one per business line, each on a slightly different base checkpoint. Multiple cloud providers, because GPU availability forced opportunistic procurement. Two or three inference engines running side by side, with different quantization recipes. No unified observability, with every team running its own dashboard. And one very tired infrastructure engineer who has become, in their own words, a model babysitter.

The cost of this sprawl is not primarily monetary. It is operational. Every new model release triggers a multi-day onboarding cycle. A long document parse risks blowing up the latency budget for the real-time chatbot sharing the same GPU. A compliance review that passes in staging fails in production because staging and production are running different engine versions. This is not a model problem. It is a fleet management problem, and most teams are trying to solve it with tools built for single-model serving.

What the strongest platform teams do differently

The platform teams that survive the transition to enterprise scale treat models like a managed fleet, not individual pets. The mental shift looks roughly like this:

Pet-model thinkingFleet thinking
"Our model deployment""Our advisory SLA tier"
Manual benchmarking per modelAutomated benchmark on ingest
GPU pinned per workloadGPU pooled, routed by affinity
Roll-forward via manual approvalRoll-forward via signed manifest
One dashboard per teamOne control plane, scoped per tenant

Concretely, three architecture decisions separate the fleets that work from the ones that don't.

1. One control plane, many engines

The most common mistake is letting each team pick its own inference engine. Within a year or two you end up with a mixed stack nobody can patch coherently. The fix is a single control plane that abstracts over engines and exposes a uniform API for deployment, scaling, routing, and observability. Engine choice becomes an implementation detail the platform selects based on model architecture and hardware target, not a strategic decision each team defends on its own.

2. Versioning at the tensor level, not the tag level

A label like "model-finetuned-v2" is not a version. It's a name. A real version is a content-addressed manifest: tokenizer hash, weight hash, quantization recipe, engine version, runtime flags. Two deployments with the same manifest are provably the same. Two deployments with the same tag are not. This matters the first time compliance asks which exact weights handled a client interaction on a specific date. Without tensor-level versioning, the honest answer is "we don't know." With it, the answer is a manifest hash and a signed audit log.

3. Routing as a first-class primitive

Most teams treat routing as an afterthought, a load balancer sitting in front of a model pool. Teams that scale successfully treat routing as the product. The router needs to know which physical GPU class each model performs best on, which SLA tier each request belongs to, which tenants are under burst load and need fair-share throttling, and which model versions are eligible for canary traffic. That routing logic is where the real leverage lives. The models are commoditized. The orchestration is not.

What a unified fleet looks like

The architectural primitives that make this work: prefill and decode disaggregated serving, so a long document parse never starves a real-time chat session because they aren't even on the same GPUs. Tidal scheduling, where the same physical cluster runs real-time inference during business hours and batch embedding or fine-tuning jobs off-hours, with automatic reconfiguration at the boundary. Heterogeneous pooling across GPU classes in one logical cluster, with the router selecting the right tier per model and per request. Automated onboarding, from a model URL to a benchmarked, quantized, canaried, and promoted endpoint. And cross-environment parity, so "works in staging" reliably means "will work in production" because the bytes are identical.

None of these primitives are exotic individually. The leverage comes from having all of them in one control plane, with one consistent API, and one consistent audit trail.

What "done" looks like

A platform team running on a unified fleet doesn't spend its Monday standup discussing which model is in which environment. It discusses which SLA tier needs more headroom this week. The models become interchangeable. The fleet does not.

One financial services firm we work with went from a sprawling, multi-team, multi-cloud model deployment to a single private-cloud cluster serving 360,000 or more requests per day across four business lines, with 40 to 50% lower infrastructure cost and a model onboarding cycle compressed from days to hours. The models in that cluster will be different in six months. The fleet architecture will not. That is the point.

Stop managing models one at a time.

One control plane for routing, versioning, and observability across every model you run.

Talk to an engineer

More from the blog