serve.py
Baseten
A model-serving platform. You call a hosted model by name or deploy your own onto GPUs you choose, and it scales replicas, down to zero when idle.

Inference picks it per requestOn Baseten you pick and deploy the model. ML.ai Inference routes each request across frontier and tuned models, and a 30-day pilot proves the saving on your traffic.
Baseten, model serving
How Baseten works

Inference picks the route per request
main.py
Routing decision tier: Standard
Summarize the ticket
Tuned model
Standardskipped
Highskipped
Cleared the acceptance bar
On Baseten, someone picks and deploys a model before anything runs. On ML.ai Inference, each request is scored and sent to a route that clears your bar.
Same request, both products
“Summarize the ticket”
1Choose a model
2Deploy it
3Scale up
1Scores the request
Tuned modelPicked
StandardSkipped
HighSkipped
2Checks the bar

Inference and Baseten each doserve.py
A model-serving platform. You call a hosted model by name or deploy your own onto GPUs you choose, and it scales replicas, down to zero when idle.
route.py
A router between your app and the model stack. Each request goes to the cheapest route that clears your acceptance bar, and a model tuned on your traffic takes over what repeats.
Use this if
You already know which model should run, and the job left is serving it reliably: packaging, GPU choice, autoscaling and uptime.
Use this if
Your cost problem is that every request goes to the same model, and you want routing proven against your own quality bar before you commit.
The same categories, row by row. Every line on both sides comes from a doc, pricing page or published benchmark.
Baseten
A model-serving platform: you call a hosted model by name or deploy your own on GPUs you choose.
![]()
ML.ai
A router between your app and the model stack: route, verify and learn.
No rewrite and no new SDK.
Baseten
You do, in every call, by naming the model or the deployment.
![]()
ML.ai
The router, per request.
You pick a tier and a policy (Automatic, Frontier only or Self-hosted only), and ML.ai picks the model.
Baseten
Deployments scale to zero after 15 minutes idle by default.
Startup is billed per minute, even before the replica serves.
![]()
ML.ai
Requests go to routes that are already running.
Baseten
Not applicable.
Baseten serves the model you chose, so the saving depends on that choice.
![]()
ML.ai
A 30-day pilot: baseline, agreed targets, a live slice of real traffic, then go or no-go.
The 30–45% cost cut is a target the pilot tests.
Baseten
Baseten Cloud (with a single-tenant option), self-hosted in your own VPC, or hybrid with overflow to Baseten Cloud.
![]()
ML.ai
Routes can include frontier APIs, self-hosted models and private VPC endpoints.
Private deployment is scoped with the ML.ai team.
Baseten
SOC 2 Type II and HIPAA, per its security page.
![]()
ML.ai
SOC 2 and ISO 27001, as listed on ml.ai.
PII controls and an audit trail run on every request.
ML.ai’s own limits sit beside theirs, with the same weight.
Every request goes to the model someone picked.
Nothing moves a request to a cheaper model on its own.
Scale to zero saves idle cost, but the next request waits for startup, and startup minutes are billed.
No. You name the model or deployment in each call. ML.ai Inference picks the route per request against your acceptance bar.
No. The pilot starts in shadow mode on top of your existing calls, so nothing changes in your code until you decide to move traffic.
Not yet. It runs as a 30-day pilot with the ML.ai team, with cost, quality and rollout targets agreed before real traffic moves.

pilotCost, quality and rollout targets are agreed before a single real request moves.