The AI Infrastructure Roadmap for 2025
GPUs get the headlines, but inference serving, networking, and observability are where AI systems actually win or lose. Here's what the stack looks like now.
Key takeaways
- Training and inference are two different infrastructure problems: training is a batch workload optimized for throughput across NVLink-connected GPUs, while inference is a real-time service optimized for P99 latency on smaller, cheaper, horizontally scaled pools.
- vLLM is the sensible default for serving 7B to 70B open-source models because its PagedAttention algorithm treats the KV cache like virtual memory, and continuous batching is non-negotiable at any real scale.
- For distributed training the network is usually the bottleneck, not the GPUs, which is why InfiniBand at 400Gb/s NDR (and 800Gb/s XDR in newer clusters) is the gold standard, while RoCEv2 over Ethernet needs careful ECN and PFC tuning.
- AI observability needs metrics traditional monitoring skips: token-per-second throughput, KV cache eviction rate, latency by input length, and cost per inference, plus scheduled evals running against the production model.
- NVIDIA already owns the compute layer, so the durable businesses in AI infrastructure will be built in the middle layer of inference optimization, orchestration, and observability.
The amount of capital going into AI infrastructure right now is genuinely unprecedented. GPU clusters the size of small cities. Power deals negotiated with entire states. Cooling systems that drink more water than mid-sized towns. Microsoft, Alphabet, Amazon, and Meta have guided to something in the neighborhood of $700 billion of combined capex for 2026, roughly double what they spent in 2025. Nobody writes those checks speculatively. They believe the infrastructure they pour now decides the competitive landscape for the next decade, and they might be right.
Here's my take on where the real opportunities are: the compute layer is mostly captured. NVIDIA has a moat that's going to be very hard to dislodge. The interesting action is in the middle layer, inference optimization, orchestration, and observability. And for developers and engineering teams, the infrastructure decisions you make now will determine your cost structure for the next three years. This is worth getting right.
Training vs Inference: Two Different Infrastructure Problems
The biggest mistake in AI infrastructure planning is treating training and inference as the same problem. They're not. Training is a batch workload: you want maximum throughput, you tolerate high latency, and you need tight coordination across hundreds or thousands of GPUs. Inference is a real-time service: you're optimizing for P99 latency, you need to handle bursty traffic, and you're serving a model whose weights are fixed.
In practice, they should run on separate infrastructure with separate cost models. Training clusters benefit from NVLink and NVSwitch fabric for fast all-reduce operations. Inference clusters benefit from smaller, more heterogeneous GPU pools that can scale horizontally. Running inference on H100s designed for training is wasteful. A100s and L40S instances are often better suited for many serving workloads at a fraction of the cost.
The ratio matters too. Most teams underinvest in inference capacity relative to training. The training run is a one-time or periodic cost. Inference is continuous, compounds with usage, and is the thing users actually experience. If you're spending 80% of your GPU budget on training and 20% on inference, that ratio is probably inverted relative to where the user-facing value lives.
Inference Serving: The Framework Decision
vLLM has become the de facto standard for open-source LLM inference, and for good reason. Its PagedAttention algorithm treats the KV cache like virtual memory, which dramatically improves throughput on concurrent requests without wasting GPU memory on over-provisioned context. For most teams serving 7B to 70B parameter models, vLLM is the right default.
TensorRT-LLM is NVIDIA's optimized alternative. It delivers better throughput on NVIDIA hardware through kernel fusion and quantization-aware optimization, but it requires compiling the model for a specific GPU architecture. The tradeoff: faster inference on the happy path, more operational friction when you want to swap models or move to different hardware.
For teams deploying multimodal models or needing flexibility across hardware vendors, OpenVINO or ONNX Runtime provide a hardware-agnostic serving layer. The performance gap relative to TensorRT-LLM is real but narrowing.
Whatever you choose, the key architectural decision is continuous batching. Static batching, where you wait to fill a batch before processing, kills both throughput and latency. Every production inference server should be running continuous batching, processing requests as they arrive and dynamically scheduling them alongside in-progress sequences. This isn't optional at scale.
Networking: The Invisible Bottleneck
For distributed training, the network is often the actual bottleneck, not the GPUs. All-reduce operations during the backward pass require moving gradient data across all nodes, and network bandwidth determines how efficiently you can scale. InfiniBand is the gold standard for large training clusters, NDR at 400Gb/s in most deployments and 800Gb/s XDR in the newest ones. RoCEv2 over Ethernet is the cheaper alternative the hyperscalers lean on, but it needs careful ECN and PFC tuning or you trade a network bill for a congestion problem.
For inference, the networking story is different. You're optimizing for low-latency connections between the load balancer and inference workers, and between inference workers and your vector database or context store. A well-tuned inference cluster can saturate a 25GbE NIC per worker. 100GbE becomes relevant when you're serving large multimodal inputs or streaming large context windows.
What I find consistently underestimated in AI infrastructure planning is the networking cost at inference scale. It doesn't show up in the GPU bill, so it gets ignored until it becomes the bottleneck.
Model Registry and Serving Architecture
A model registry sounds like a nice-to-have. It isn't. Once you have more than a handful of models in production, including fine-tuned variants and quantized versions, you need a central catalog that tracks model versions, their lineage, which datasets they were trained on, their evaluation benchmarks, and their current deployment status.
MLflow and Weights and Biases both offer model registry functionality. The more important question is what you store. At minimum: the model artifact, the tokenizer configuration, the inference parameters used in production (temperature, max tokens, stop sequences), and the evaluation results that justified promotion to production. Anything less and you'll spend hours reconstructing why a particular model version behaved differently in production. I've seen this happen more than once, and it's always avoidable.
The serving architecture itself should decouple model loading from request handling. Hot-swapping models in response to traffic patterns, or A/B testing model versions without downtime, requires that your serving layer can load and unload model weights independently of the HTTP routing layer. This is table stakes for any mature AI product.
Observability Is Different for AI Systems
Standard application observability measures latency, error rates, and throughput. For AI systems, those are necessary but not sufficient. You also need to track output quality, cost per inference, token consumption, context length distribution, and cache hit rates.
The metrics that catch problems traditional monitoring misses: token-per-second throughput (a sudden drop often signals GPU memory pressure before OOM errors appear), KV cache eviction rate (high eviction means context windows are exceeding cache capacity), and model latency broken down by input length (a linear relationship is expected; superlinear means a configuration problem).
For LLM-specific reliability, you need evals in your monitoring pipeline, not just in pre-deployment testing. Run a held-out set of representative queries against your production model on a schedule and track quality scores over time. Prompt regressions after system updates, silent model drift from context window changes, and hallucination rate changes on specific domains are problems you'll only catch this way.
Cost observability matters just as much. A single misconfigured batch job can burn through a month's inference budget in hours. Set cost alerts at both the request level and the daily level, and tie cost attribution to specific features or users so you know which part of the product is driving spend before you get a surprise bill.
Storage for AI Workloads
Training data storage has two requirements that conflict: you need high throughput for streaming large datasets during training, and you need cheap, durable storage for long-term retention. The pattern that works is Parquet or Arrow files in object storage (S3 or GCS), with a caching layer of NVMe SSDs on the training nodes for the hot data accessed in each epoch.
For inference, the critical storage component is the vector database backing your RAG pipeline. Pinecone and Weaviate are the managed options most teams reach for. pgvector on PostgreSQL is genuinely viable for smaller indices (under 10 million vectors) and eliminates the operational complexity of a separate service. At larger scale, the ANN query performance of purpose-built vector databases starts to matter. The tradeoff between running vector search inside Postgres versus standing up a dedicated store is the same tradeoff you see in broader database architecture decisions: one more service to operate, versus one more workload in the primary DB.
The way I think about it: your vector database is as important to a RAG-based product as your primary database is to a conventional app. Treat it with the same operational discipline, including backups, index monitoring, and query performance tracking.
The Cost Model in Practice
GPU compute is expensive. A single H100 runs on the order of $30,000 to buy, and rental gets quoted anywhere from about $2 to $8 per GPU-hour depending on the provider and how much you commit. The teams that operate AI infrastructure efficiently understand their workload shape and match infrastructure to it.
For training: use spot instances where you can checkpoint frequently, reserved instances for sustained training programs, and on-demand only for time-sensitive runs. The spot discount is a large fraction of on-demand, and at cluster scale that is real money.
For inference: right-size your instances to the model. A 7B parameter model in FP16 needs roughly 14GB of VRAM for weights, plus KV cache. An A10G with 24GB VRAM can serve it comfortably. An H100 with 80GB is overkill. Build autoscaling around GPU utilization and request queue depth, not CPU metrics.
The investment angle here is real. The infrastructure teams winning in AI aren't the ones with the most GPUs. They're the ones who've gotten efficient enough that their cost-per-inference supports the product's unit economics. NVIDIA has the compute moat, but the companies building the optimization, orchestration, and observability layer on top of that compute are where I'd look for the next wave of durable businesses (for the public-market read on the hardware layer underneath, our semiconductor stocks piece is the companion view). The infrastructure decisions you make today will define your cost structure for years. That's worth treating seriously.
Frequently asked questions
- Which inference serving framework should I actually use?
- vLLM is the right default for most teams serving 7B to 70B parameter models. Its PagedAttention algorithm improves throughput on concurrent requests without over-provisioning GPU memory. TensorRT-LLM gets you more throughput on NVIDIA hardware but requires compiling for a specific GPU architecture, which adds operational friction. OpenVINO or ONNX Runtime make sense if you need hardware-agnostic serving.
- What is continuous batching and do I need it?
- Continuous batching processes requests as they arrive and dynamically schedules them alongside in-progress sequences, and yes, every production inference server needs it. Static batching, where you wait to fill a batch before processing anything, kills both throughput and latency at the same time. This isn't optional once you're at any real scale.
- Can I just use pgvector instead of a dedicated vector database?
- pgvector on PostgreSQL is genuinely viable for indices under about 10 million vectors, and it saves you from operating a separate service. Past that scale, the approximate-nearest-neighbor query performance of purpose-built stores like Pinecone or Weaviate starts to matter. Either way, treat the vector database with the same operational discipline as your primary database: backups, index monitoring, query performance tracking.
- How much does GPU compute actually cost for AI workloads?
- A single H100 runs on the order of $30,000 to buy, and renting one is commonly quoted in the $2 to $8 per GPU-hour range depending on provider and commitment. The efficiency comes from matching infrastructure to workload shape. Use spot instances for training runs you can checkpoint, and right-size inference instances to the model. A 7B model in FP16 needs roughly 14GB of VRAM for weights, so a 24GB A10G is plenty and an 80GB H100 is overkill.
Written by
Tech Talk News Editorial
Computer engineering background. Writes about software, AI, markets, and real estate, and the places where the three meet.
More about the author