AI Tutorial
Home All Courses Blog Interview Prep ↗ Export PDF 0%
1
Curious builder 0 XP earned · 300 to level 2
0 days Finish a lesson to begin
Badge collection
0 of 5 unlocked
small wins to finish your path
Next lesson →

Model catalog and deployments

Export PDF

Before you can call a model in Foundry you must deploy it, and the choices you make — which model, which deployment type, how much capacity, which version policy — decide your latency, data residency, reliability, and bill. This lesson explains the catalog, every deployment type, how quotas really work, provisioned throughput, model versions, and the model router.

Last updated: 01 Nov, 2026 · azure-ai-projects 2.x · Python 3.10+

The model catalog

Definition · Model catalog

The searchable list of models available in Foundry, each with a model card describing capabilities, context window, supported regions and deployment types, pricing, license, and intended use.

CategoryExamplesBilled and supported by
Models sold directly by AzureOpenAI GPT and o-series, GPT image and audio models, embeddings; Microsoft Phi and MAI; DeepSeek; Meta Llama; Mistral; xAI Grok; Black Forest LabsMicrosoft, under Azure terms and SLAs
Models from partners and communityThousands of models from Hugging Face and vendors such as Cohere, NVIDIA, and othersThe provider's terms; often deployed to managed compute you pay for by the hour
Anthropic ClaudeClaude models deployed in FoundryThrough Foundry, with its own endpoint and SDK

How to choose a model

  1. Start from the task. Classification and extraction rarely need the biggest model. Multi-step reasoning, coding, and agents benefit from stronger reasoning models.
  2. Check the hard constraints. Context window, modalities (text, image, audio), tool-calling support, structured output support, and region availability.
  3. Use the leaderboards in the catalog to compare quality, cost, and throughput side by side — then confirm on your data with an evaluation (lesson 9).
  4. Prefer the smallest model that passes your evaluation. It is cheaper, faster, and usually has more available quota.

Deployments: the thing you actually call

Definition · Deployment

A named instance of a specific model version on your Foundry resource, with its own deployment type, capacity (quota), guardrail policy, and version-upgrade policy. Your code sends the deployment name in the model field — not the model's catalog name.

You can name a deployment anything. Many teams use the model name (gpt-5-mini) for simplicity, while others use purpose names (chat-default, summariser) so they can swap the underlying model without changing code.

Deployment types

The deployment type controls where inference runs and how you pay. This is one of the most important decisions in this course.

TypeWhere inference runsBillingBest for
Global StandardAny Azure region worldwide, routed for capacityPay per tokenThe default: highest quota, newest models first
Data Zone StandardOnly within a data zone (US or EU)Pay per tokenData residency requirements with good capacity
Standard (regional)Only the resource's regionPay per tokenStrict single-region processing; lower quota
Global / Data Zone / Regional ProvisionedAs namedReserved PTUs, hourly or monthly/yearly reservationPredictable high volume, latency-sensitive production
Global / Data Zone BatchAs namedAbout 50% cheaper per token; results within 24 hoursLarge offline jobs: classification, enrichment, evaluations
DeveloperGlobalPer token, no SLATesting fine-tuned models cheaply
Data residency nuance

For all types, data at rest (files, conversations, fine-tuning data) stays in your resource's geography. The type only controls where processing may happen. If your compliance team says “EU only”, use Data Zone (EU) or regional deployments in an EU region.

Quota: TPM and RPM

Definition · Tokens per minute (TPM)

The rate-limit quota for a Standard-family deployment. You assign capacity in units of 1,000 TPM. The total of all your deployments of a model cannot exceed your subscription's quota for that model, region, and deployment type.

Definition · Requests per minute (RPM)

A second limit derived from TPM. For many chat models it is 6 RPM per 1,000 TPM, but the ratio varies by model — check the quota page.

Two details trip people up. First, the limiter estimates each request's cost before it runs, using prompt tokens plus max_output_tokens — so setting a huge maximum output wastes quota even if the reply is short. Second, limits are enforced over short windows (seconds), so bursts can hit 429 even when the per-minute average looks fine.

Python
def capacity(tpm_units: int, rpm_per_1k_tpm: int = 6) -> dict:
    """Standard deployments: capacity is set in units of 1,000 tokens per minute."""
    tpm = tpm_units * 1_000
    return {"TPM": tpm, "RPM": tpm_units * rpm_per_1k_tpm}


def requests_that_fit(tpm: int, avg_in: int, max_out: int) -> int:
    """The limiter counts prompt tokens plus max output tokens per request."""
    return tpm // (avg_in + max_out)


for units in (10, 50, 250):
    cap = capacity(units)
    fit = requests_that_fit(cap["TPM"], avg_in=1_500, max_out=500)
    print(f"{units:>4} units -> {cap['TPM']:>7,} TPM, {cap['RPM']:>5,} RPM, "
          f"~{fit:>4} req/min at 1.5k in + 500 max out")
10 units -> 10,000 TPM, 60 RPM, ~ 5 req/min at 1.5k in + 500 max out 50 units -> 50,000 TPM, 300 RPM, ~ 25 req/min at 1.5k in + 500 max out 250 units -> 250,000 TPM, 1,500 RPM, ~ 125 req/min at 1.5k in + 500 max out

Notice that a deployment with 60 RPM can only serve about 5 requests a minute of this size — tokens, not requests, are the binding limit. Size capacity from your real prompt sizes and set max_output_tokens realistically.

Terminal
# deploy a model (check names/versions with: az cognitiveservices account list-models -n $RES -g $RG -o table)
az cognitiveservices account deployment create \
  --name $RES \
  --resource-group $RG \
  --deployment-name gpt-5-mini \
  --model-name gpt-5-mini \
  --model-version "2025-08-07" \
  --model-format OpenAI \
  --sku-name GlobalStandard \
  --sku-capacity 50          # 50 x 1,000 = 50,000 TPM

# see what you have and how much quota is used
az cognitiveservices account deployment list -n $RES -g $RG -o table
az cognitiveservices usage list --location $LOC -o table

Provisioned throughput (PTU)

Definition · Provisioned throughput unit (PTU)

A unit of reserved model processing capacity. You buy a number of PTUs for a deployment and get a predictable throughput and latency, billed by the hour (or at a discount with monthly or yearly reservations) regardless of how many tokens you use.

Standard (pay per token)Provisioned (PTU)
Cost modelVariable: pay for what you useFixed: pay for capacity whether used or not
LatencyCan vary with platform loadConsistent and lower at high utilisation
When over capacity429 rate-limit errors429 once your PTUs are saturated (you can spill over to a Standard deployment)
Good forSpiky, small, or unknown trafficSteady, high, latency-sensitive traffic

Use the capacity calculator in the portal to estimate how many PTUs your traffic needs. The cost lesson shows a break-even calculation between the two.

Model versions and upgrades

Models get new versions (for example, a dated snapshot) and old versions are eventually retired. Each deployment has a version-upgrade policy:

PolicyBehaviourUse when
Auto-update to defaultMoves to the new default version automaticallyDev and test; you want the latest
Upgrade when expiredStays on the pinned version until it retires, then upgradesMost production apps
No auto-upgradeStops working when the version retiresStrict validation; you upgrade manually after re-evaluation
Retirement dates

Every model version has a retirement date listed on the model lifecycle page. Put these dates in your team calendar. Re-run your evaluation set on the new version before the retirement forces an upgrade.

Model router

Definition · Model router

A deployable model in Foundry that, for each request, picks one of several underlying models (from small to large, and across vendors) based on the prompt's complexity, aiming to keep quality while lowering cost. You call it like any deployment; the response tells you which model actually answered.

A router is useful for general chat traffic where many requests are simple. For tasks with strict output formats or evaluated prompts, pin a specific model so behaviour stays predictable.

Fine-tuning in one paragraph

Foundry supports supervised fine-tuning, preference fine-tuning (DPO), and reinforcement fine-tuning for selected models. You upload training data as JSONL in chat format, start a job, and deploy the resulting model (often with the cheap Developer type first). Fine-tune only after prompt engineering and RAG are exhausted — it is best for consistent style, format, or narrow domain behaviour, not for teaching new facts.

Try it
  1. Deploy gpt-5-mini (or any available chat model) as Global Standard with 10K TPM.
  2. Open the deployment in the portal and find its rate limits, version, upgrade policy, and guardrail.
  3. Change requests_that_fit to your own prompt sizes and decide how much capacity you would request for 100 requests per minute.
Key takeaways
  • The catalog has models sold directly by Azure (Microsoft-supported) and partner/community models.
  • You call a deployment name; a deployment fixes model, version, type, capacity, and guardrail.
  • Global Standard is the default; Data Zone keeps processing in the US or EU; Batch halves cost for offline work; Provisioned reserves capacity.
  • Quota is TPM (and derived RPM) per subscription, region, model, and type; requests are charged prompt + max_output_tokens against it.
  • Pin versions in production, track retirement dates, and re-evaluate before upgrading.