Who chooses the model: the application or the platform?
Pinning a model version gives reproducibility; letting a platform route by requirements eases upgrades. Model retirement schedules make the trade-off concrete.
The idea in brief
Choosing a deployment by name is simple, but it ties an application to a specific model version, region and price. Model versions also have a published end of life. Microsoft's documentation for models in Azure AI Foundry is a useful public example of how that lifecycle works.
Models have a lifecycle
Microsoft's model lifecycle documentation describes stages from Preview through Generally Available, Legacy, Deprecated and Retired. Some details it lists:
- A standard GA model lifecycle of 18 months from launch, with the retirement date published at launch.
- At least 60 days' notice before a GA model retires, and at least 30 days for preview models.
- After retirement, existing deployments stop working and inference requests return
410 Gone.
For an application that hard-codes a deployment, retirement means a change and a redeploy before the date.
Built-in upgrade options
The same docs describe a versionUpgradeOption setting for standard deployments:
| Value | Behaviour described in the docs |
|---|---|
OnceNewDefaultVersionAvailable | Upgrades when a new default version is set |
OnceCurrentVersionExpired | Upgrades only at retirement |
NoAutoUpgrade | Never upgrades; the deployment stops working at retirement |
The docs note that provisioned deployments are not upgraded automatically and need a manual migration. They also suggest evaluating replacement models on your own data, comparing quality, latency and cost.
The trade-off
- Application pins the model: behaviour is reproducible and testable, which matters for evaluation, but every retirement needs a change.
- Platform chooses by requirement (latency, cost, data location): upgrades are easier, but the exact model behind a response can change, so it needs to be recorded, for example with the
gen_ai.response.modelattribute from OpenTelemetry.
Limitations
Vendor details vary.
Lifecycle lengths and notice periods differ by provider and model family, and can change.
Automatic upgrades change behaviour.
A newer version can respond differently, so evaluation is still needed before relying on it.
Routing adds a layer.
A platform that picks models on the application's behalf takes on responsibility for explaining what ran.
Sources
Cite this post
Adam, Ammar. (Sep 2026). Who chooses the model: the application or the platform? www.ammaradam.dev. https://www.ammaradam.dev/posts/who-chooses-the-model/.
BibTeX
@article{adam2026whochoosesthemodel,
title = {Who chooses the model: the application or the platform?},
author = {Adam, Ammar},
journal = {www.ammaradam.dev},
year = {2026},
month = {Sep},
url = {https://www.ammaradam.dev/posts/who-chooses-the-model/}
}
Comments
Sign in with GitHub to like this post or join the discussion.