Artificial Intelligence • • 5-8 minutes

Revolut Moved 2,000 Engineers to a Self-Hosted Model: Its AI Bill Fell to a Tenth

Diego Cortés
Diego Cortés
Full Stack Developer & SEO Specialist
Share:
Revolut Moved 2,000 Engineers to a Self-Hosted Model: Its AI Bill Fell to a Tenth
Image generated with AI

2,000 engineers, 56 GPUs and an AI bill that fell to a tenth. The interesting part of Revolut's GLM-5.3 story isn't the model it picked, it's how the bank stopped paying per token without buying more hardware.

What Revolut Actually Did, in Numbers

The story came out of a talk and not a press release: David Abitbol, who runs AI operations and infrastructure at the bank, told it at AI Engineer NYC, and The Register picked it up on November 3.

From Claude Code and Codex to GLM as the Default

Revolut didn't start with open weights. It tried Gemini in 2025 and Claude Code in early 2026 under strict budgets because spending was running away: Abitbol admits he watched engineers burn up to ten thousand dollars a month without much return. The fix wasn't a better price negotiation, it was moving inference in-house: GLM-5.1 in April, GLM-5.3 today. Claude and OpenAI became the exception, and a router sends vision queries to Gemini or GPT Luna because GLM only handles text.

56 B200s at $0.30 per Million Tokens

The deployment is 56 Nvidia B200 GPUs, the GPU count of seven eight-GPU DGX B200 systems. The model carries roughly 754 billion total parameters with about 40 billion active per token, and just holding the weights needs around 380 GB of memory. On that hardware, input and output settled near $0.30 per million tokens, a tenth of what Anthropic and OpenAI were charging.

A Flat Bill That Changes Behaviour

The real effect isn't the price, it's that the bill is flat. When the marginal token costs almost nothing, nobody rations usage, and that's where the bank's claimed improvement came from: 60% faster coding and 70% better lead time. Those are company figures, not an independent audit.

Why an API Bill Grows Without Warning

The Context an Agent Resends on Every Call

A coding agent chains steps, and every step resends the history, the open files and the instructions. Most of what you pay for is input you already paid for, so going from a 30,000-token context to 200,000 doesn't multiply the bill by seven, it blows it up. And list prices mislead: output costs more, but the volume sits in input.

Cost Per Task, Not Cost Per Token

The useful metric is what it costs to close a task. We already covered how to track that spend per task in Laravel; without the number, "self-hosting is cheaper" is an opinion.

Three Levers That Cut Latency Without Buying More GPUs

FP4 and Prefill Split From Decode

Quantizing weights to NVFP4 shrinks the memory the model occupies and lets it compute more per second, at some cost in precision. And serving a model has two phases: reading the context, highly parallel, and generating token by token, sequential. On one box one starves the other; splitting them keeps generation from waiting on a huge context.

Right-Sizing the Context: Long Context Is a Scam

The most uncomfortable line from the talk: even if you can serve a million tokens, what you need is 256,000, and beyond that you pay memory and latency for text the model doesn't use well. It's the only one of the three levers that doesn't touch hardware.

From Over 10 Seconds to 1.6 With 76% More Demand

With that tuning, time to first token went from more than 10 seconds to about 1.6 while demand rose 76%, according to Trending Topics. The team's target is under 3 seconds: past 5, Abitbol said, his Slack inbox fills up.

The Honest Math of Self-Hosting

Paying for an API is taking taxis: you don't buy the car, but every trip is billed. Self-hosting is buying the van: the marginal trip gets cheaper, but you pay for the vehicle, the insurance, the mechanic and the driver. $0.30 is the cost of the trip with 2,000 people already in the van.

What the Figure Includes and What It Doesn't

It includes cost per token served: amortized hardware, power and the tuning work spread across volume. It leaves out almost everything else: people who know inference, cooling, spares, on-call rotations and a plan for when a node dies at three in the morning. Revolut didn't publish the total cost, and that silence is the key detail: if your monthly bill doesn't cover the salary of one person dedicated to infrastructure, the cluster isn't an option.

What You Pay For Beyond the Hardware

Quality, Licensing and Lock-In

Revolut keeps frontier models for exceptions, and large refactors or UI code are the tasks that suffer most with an open model. On licensing there's a change that matters: earlier models in the family shipped under MIT and GLM-5.3 uses a custom Z.ai license, so "open weights" doesn't mean "do whatever you want". We already covered what this model family is.

When Not to Self-Host

With few users and intermittent use, the API almost always wins: savings per token don't cover the fixed cost of a model kept running, or of someone answering an incident. And if your product depends on state-of-the-art reasoning, an open model a couple of generations behind makes the bill cheaper and the output worse.

What a Small Team Can Copy

Measure, Test One Workflow, Route by Task

Log consumption per workflow, put an open model on the most repetitive task and compare quality and latency against what you used before. Then route: cheap by default, expensive for the hard parts, with a cap before you scale. That's Revolut's router at another scale; for the jump, here's our guide to local AI with Ollama, same principle with one GPU instead of 56.

Conclusion

The story isn't that a bank runs a Z.ai model, it's that self-hosted inference is now defended with a spreadsheet rather than a slogan. The first step isn't downloading weights, it's knowing what you spend today. If that's the part you need, the blog has you covered on cost per task.

Categories