Nachdem Ihr Modell optimiert wurde, können Sie das Modell bereitstellen und in Ihrer eigenen Anwendung verwenden.
Wenn Sie das Modell bereitstellen, stellen Sie das Modell für die Ableitung zur Verfügung, und dies verursacht eine stündliche Hostinggebühr. Fein abgestimmte Modelle können jedoch ohne Kosten in Microsoft Foundry gespeichert werden, bis Sie bereit sind, sie zu verwenden.
Azure OpenAI bietet Auswahlmöglichkeiten von Bereitstellungstypen für fein abgestimmte Modelle in der Hostingstruktur, die unterschiedlichen Geschäfts- und Nutzungsmustern entspricht: Standard, Global Standard (Vorschau) und Provisioned Throughput (Vorschau). Erfahren Sie mehr über Bereitstellungstypen für fein abgestimmte Modelle und die Konzepte aller Bereitstellungstypen.
Bereitstellen Ihres optimierten Modells
Wichtig
Um Modelle bereitzustellen, müssen Sie der Rolle Foundry Owner oder einer beliebigen Rolle mit der Aktion Microsoft.CognitiveServices/accounts/deployments/write zugewiesen werden.
Wichtig
Die Foundry-RBAC-Rollen wurden kürzlich umbenannt.
Foundry User, Foundry Owner, Foundry Account Owner und Foundry Project Manager wurden zuvor Azure KI-Benutzer, Azure KI-Besitzer, Azure KI-Kontobesitzer und Azure AI Project Manager benannt. Möglicherweise werden die vorherigen Namen an einigen Stellen weiterhin angezeigt, während der Umbenennungsrollout ausgeführt wird. Die Rollen-IDs und Kernberechtigungen bleiben durch die Umbenennung unverändert.
Um Ihr benutzerdefiniertes Modell bereitzustellen, wählen Sie das bereitzustellende benutzerdefinierte Modell aus, und wählen Sie dann "Bereitstellen" aus.
Das Dialogfeld " Modell bereitstellen " wird geöffnet. Geben Sie im Dialogfeld Ihren Bereitstellungsnamen ein, und wählen Sie dann "Erstellen" aus, um die Bereitstellung Ihres benutzerdefinierten Modells zu starten.
Sie können den Fortschritt Ihrer Bereitstellung im Bereich "Bereitstellungen " im Gießereiportal überwachen.
Das Portal unterstützt keine regionsübergreifende Bereitstellung. Verwenden Sie stattdessen das Python SDK oder die REST-API.
import json
import os
import requests
token = os.getenv("<TOKEN>")
subscription = "<YOUR_SUBSCRIPTION_ID>"
resource_group = "<YOUR_RESOURCE_GROUP_NAME>"
resource_name = "<YOUR_AZURE_OPENAI_RESOURCE_NAME>"
model_deployment_name = "gpt-4.1-mini-ft" # custom deployment name that you will use to reference the model when making inference calls.
deploy_params = {'api-version': "2024-10-21"}
deploy_headers = {'Authorization': 'Bearer {}'.format(token), 'Content-Type': 'application/json'}
deploy_data = {
"sku": {"name": "standard", "capacity": 1},
"properties": {
"model": {
"format": "OpenAI",
"name": <"fine_tuned_model">, #retrieve this value from the previous call, it will look like gpt-4.1-mini-2025-04-14.ft-b044a9d3cf9c4228b5d393567f693b83
"version": "1"
}
}
}
deploy_data = json.dumps(deploy_data)
request_url = f'https://management.azure.com/subscriptions/{subscription}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{resource_name}/deployments/{model_deployment_name}'
print('Creating a new deployment...')
r = requests.put(request_url, params=deploy_params, headers=deploy_headers, data=deploy_data)
print(r)
print(r.reason)
print(r.json())
| Variable |
Definition |
| Token |
Es gibt mehrere Möglichkeiten zum Generieren eines Autorisierungstokens. Die einfachste Methode zum ersten Testen besteht darin, die Cloud Shell über das Azure-Portal zu starten. Führen Sie dann aus az account get-access-token. Sie können dieses Token als temporäres Autorisierungstoken für API-Tests verwenden. Es wird empfohlen, dies in einer neuen Umgebungsvariable zu speichern. |
| Abonnement |
Die Abonnement-ID für die zugeordnete Azure OpenAI-Ressource. |
| Ressourcengruppe |
Der Ressourcengruppenname für Ihre Azure OpenAI-Ressource. |
| resource_name |
Der Azure OpenAI-Ressourcenname. |
| Modellbereitstellungsname |
Der benutzerdefinierte Name für die Bereitstellung Ihres neuen feinabgestimmten Modells. Dies ist der Name, auf den im Code verwiesen wird, wenn Chat-Abschlussanrufe ausgeführt werden. |
| fine_tuned_model |
Rufen Sie diesen Wert aus den Ergebnissen Ihres Auftrag zur Feinabstimmung aus dem vorherigen Schritt ab. Es sieht aus wie gpt-4.1-mini-2025-04-14.ft-b044a9d3cf9c4228b5d393567f693b83. Sie müssen diesen Wert zum deploy_data json hinzufügen. Alternativ können Sie einen Prüfpunkt bereitstellen, indem Sie die Prüfpunkt-ID übergeben, die im Format ftchkpt-e559c011ecc04fc68eaa339d8227d02dangezeigt wird. |
Regionsübergreifende Bereitstellung
Feinabstimmung ermöglicht die Bereitstellung des fein abgestimmten Modells in einer anderen Region als der ursprünglichen Region, in der das Modell fein abgestimmt wurde. Sie können es auch für ein anderes Abonnement/eine andere Region bereitstellen.
Die einzigen Einschränkungen sind, dass die neue Region auch Feinabstimmung unterstützen muss. Bei einer abonnementübergreifenden Bereitstellung muss das Konto, das das Autorisierungstoken für die Bereitstellung erstellt, Zugriff auf sowohl das Quell- als auch das Zielabonnement haben.
Im folgenden Beispiel wird ein Modell bereitgestellt, das in einem Abonnement/einer Region optimiert wurde.
import json
import os
import requests
token= os.getenv("<TOKEN>")
subscription = "<DESTINATION_SUBSCRIPTION_ID>"
resource_group = "<DESTINATION_RESOURCE_GROUP_NAME>"
resource_name = "<DESTINATION_AZURE_OPENAI_RESOURCE_NAME>"
source_subscription = "<SOURCE_SUBSCRIPTION_ID>"
source_resource_group = "<SOURCE_RESOURCE_GROUP>"
source_resource = "<SOURCE_RESOURCE>"
source = f'/subscriptions/{source_subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.CognitiveServices/accounts/{source_resource}'
model_deployment_name = "gpt-4.1-mini-ft" # custom deployment name that you will use to reference the model when making inference calls.
deploy_params = {'api-version': "2024-10-21"}
deploy_headers = {'Authorization': 'Bearer {}'.format(token), 'Content-Type': 'application/json'}
deploy_data = {
"sku": {"name": "standard", "capacity": 1},
"properties": {
"model": {
"format": "OpenAI",
"name": <"FINE_TUNED_MODEL_NAME">, # This value will look like gpt-4.1-mini-2025-04-14.ft-0ab3f80e4f2242929258fff45b56a9ce
"version": "1",
"source": source
}
}
}
deploy_data = json.dumps(deploy_data)
request_url = f'https://management.azure.com/subscriptions/{subscription}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{resource_name}/deployments/{model_deployment_name}'
print('Creating a new deployment...')
r = requests.put(request_url, params=deploy_params, headers=deploy_headers, data=deploy_data)
print(r)
print(r.reason)
print(r.json())
Um eine Bereitstellung im selben Abonnement, aber in unterschiedlichen Regionen auszuführen, müssen Abonnement und Ressourcengruppen für die Quell- und Zielvariablen identisch sein. Nur die Namen der Quell- und Zielressourcen müssen eindeutig sein.
Mandantenübergreifende Bereitstellung
Das Konto, das zum Generieren von Zugriffstoken mit az account get-access-token --tenant verwendet wird, sollte über Berechtigungen als Cognitive Services OpenAI Contributor für sowohl die Quellen- als auch die Ziel-Azure OpenAI-Ressourcen verfügen. Sie müssen zwei unterschiedliche Token generieren, eines für den Quellmandanten und eines für den Zielmandanten.
import requests
subscription = "DESTINATION-SUBSCRIPTION-ID"
resource_group = "DESTINATION-RESOURCE-GROUP"
resource_name = "DESTINATION-AZURE-OPENAI-RESOURCE-NAME"
model_deployment_name = "DESTINATION-MODEL-DEPLOYMENT-NAME"
fine_tuned_model = "gpt-4o-mini-2024-07-18.ft-f8838e7c6d4a4cbe882a002815758510" #source fine-tuned model id example id provided
source_subscription_id = "SOURCE-SUBSCRIPTION-ID"
source_resource_group = "SOURCE-RESOURCE-GROUP"
source_account = "SOURCE-AZURE-OPENAI-RESOURCE-NAME"
dest_token = "DESTINATION-ACCESS-TOKEN" # az account get-access-token --tenant DESTINATION-TENANT-ID
source_token = "SOURCE-ACCESS-TOKEN" # az account get-access-token --tenant SOURCE-TENANT-ID
headers = {
"Authorization": f"Bearer {dest_token}",
"x-ms-authorization-auxiliary": f"Bearer {source_token}",
"Content-Type": "application/json"
}
url = f"https://management.azure.com/subscriptions/{subscription}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{resource_name}/deployments/{model_deployment_name}?api-version=2024-10-01"
payload = {
"sku": {
"name": "standard",
"capacity": 1
},
"properties": {
"model": {
"format": "OpenAI",
"name": fine_tuned_model,
"version": "1",
"sourceAccount": f"/subscriptions/{source_subscription_id}/resourceGroups/{source_resource_group}/providers/Microsoft.CognitiveServices/accounts/{source_account}"
}
}
}
response = requests.put(url, headers=headers, json=payload)
# Check response
print(f"Status Code: {response.status_code}")
print(f"Response: {response.json()}")
Das folgende Beispiel zeigt, wie Sie die REST-API verwenden, um eine Modellbereitstellung für Ihr angepasstes Modell zu erstellen. Die REST-API generiert einen Namen für die Bereitstellung Ihres angepassten Modells.
curl -X POST "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>?api-version=2024-10-21" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"sku": {"name": "standard", "capacity": 1},
"properties": {
"model": {
"format": "OpenAI",
"name": "<FINE_TUNED_MODEL>",
"version": "1"
}
}
}'
| Variable |
Definition |
| Token |
Es gibt mehrere Möglichkeiten zum Generieren eines Autorisierungstokens. Die einfachste Methode zum ersten Testen besteht darin, die Cloud Shell über das Azure-Portal zu starten. Führen Sie dann aus az account get-access-token. Sie können dieses Token als temporäres Autorisierungstoken für API-Tests verwenden. Es wird empfohlen, dies in einer neuen Umgebungsvariable zu speichern. |
| Abonnement |
Die Abonnement-ID für die zugeordnete Azure OpenAI-Ressource. |
| Ressourcengruppe |
Der Ressourcengruppenname für Ihre Azure OpenAI-Ressource. |
| resource_name |
Der Azure OpenAI-Ressourcenname. |
| Modellbereitstellungsname |
Der benutzerdefinierte Name für die Bereitstellung Ihres neuen feinabgestimmten Modells. Dies ist der Name, auf den im Code verwiesen wird, wenn Chat-Abschlussanrufe ausgeführt werden. |
| fine_tuned_model |
Rufen Sie diesen Wert aus den Ergebnissen Ihres Auftrag zur Feinabstimmung aus dem vorherigen Schritt ab. Es sieht aus wie gpt-4.1-mini-2025-04-14.ft-b044a9d3cf9c4228b5d393567f693b83. Sie müssen diesen Wert zum deploy_data json hinzufügen. Alternativ können Sie einen Prüfpunkt bereitstellen, indem Sie die Prüfpunkt-ID übergeben, die im Format ftchkpt-e559c011ecc04fc68eaa339d8227d02dangezeigt wird. |
Regionsübergreifende Bereitstellung
Feinabstimmung ermöglicht die Bereitstellung des fein abgestimmten Modells in einer anderen Region als der ursprünglichen Region, in der das Modell fein abgestimmt wurde. Sie können es auch für ein anderes Abonnement/eine andere Region bereitstellen.
Die einzigen Einschränkungen sind, dass die neue Region ebenfalls die Feinabstimmung unterstützen muss und bei der bereichsübergreifenden Bereitstellung das Konto, das das Autorisierungstoken für die Bereitstellung generiert, Zugriff auf die Quell- und Zielabonnements haben muss.
Nachfolgend finden Sie ein Beispiel für die Bereitstellung eines Modells, das von einem Abonnement/einer Region in ein/e andere/s optimiert wurde.
curl -X PUT "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>?api-version=2024-10-21" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"sku": {"name": "standard", "capacity": 1},
"properties": {
"model": {
"format": "OpenAI",
"name": "<FINE_TUNED_MODEL>",
"version": "1",
"source": "/subscriptions/{sourceSubscriptionID}/resourceGroups/{sourceResourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{sourceAccount}"
}
}
}'
Um eine Bereitstellung im selben Abonnement, aber in unterschiedlichen Regionen auszuführen, müssen Abonnement und Ressourcengruppen für die Quell- und Zielvariablen identisch sein. Nur die Namen der Quell- und Zielressourcen müssen eindeutig sein.
Mandantenübergreifende Bereitstellung
Das Konto, das zum Generieren von Zugriffstoken mit az account get-access-token --tenant verwendet wird, sollte über Berechtigungen als Cognitive Services OpenAI Contributor für sowohl die Quellen- als auch die Ziel-Azure OpenAI-Ressourcen verfügen. Sie müssen zwei unterschiedliche Token generieren, eines für den Quellmandanten und eines für den Zielmandanten.
curl -X PUT "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>?api-version=2024-10-01" \
-H "Authorization: Bearer <DESTINATION TOKEN>" \
-H "x-ms-authorization-auxiliary: Bearer <SOURCE TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"sku": {"name": "standard", "capacity": 1},
"properties": {
"model": {
"format": "OpenAI",
"name": "<FINE_TUNED_MODEL>",
"version": "1",
"sourceAccount": "/subscriptions/{sourceSubscriptionID}/resourceGroups/{sourceResourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{sourceAccount}"
}
}
}'
Das folgende Beispiel zeigt, wie Sie das Azure CLI verwenden, um Ihr angepasstes Modell bereitzustellen. Mit dem Azure CLI müssen Sie einen Namen für die Bereitstellung Ihres angepassten Modells angeben. Weitere Informationen zur Verwendung der Azure CLI zur Bereitstellung angepasster Modelle finden Sie unter az cognitiveservices account deployment.
Um diesen Azure CLI Befehl in einem Konsolenfenster auszuführen, müssen Sie die folgenden <placeholders> durch die entsprechenden Werte für Ihr angepasstes Modell ersetzen:
| Platzhalter |
Wert |
|
<YOUR_AZURE_SUBSCRIPTION> |
Der Name oder die ID Ihres Azure-Abonnements. |
|
<YOUR_RESOURCE_GROUP> |
Der Name Ihrer Azure Ressourcengruppe. |
|
<YOUR_RESOURCE_NAME> |
Der Name Ihrer Azure OpenAI-Ressource. |
|
<YOUR_DEPLOYMENT_NAME> |
Der Name, den Sie für die Modellbereitstellung verwenden möchten. |
|
<YOUR_FINE_TUNED_MODEL_ID> |
Der Name des angepassten Modells. |
az cognitiveservices account deployment create
--resource-group <YOUR_RESOURCE_GROUP>
--name <YOUR_RESOURCE_NAME>
--deployment-name <YOUR_DEPLOYMENT_NAME>
--model-name <YOUR_FINE_TUNED_MODEL_ID>
--model-version "1"
--model-format OpenAI
--sku-capacity "1"
--sku-name "Standard"
Wichtig
Nach der Bereitstellung eines angepassten Modells wird die Bereitstellung gelöscht, wenn sie zu irgendeinem Zeitpunkt länger als 15 Tage inaktiv bleibt. Die Bereitstellung eines angepassten Modells ist inaktiv , wenn das Modell vor mehr als 15 Tagen bereitgestellt wurde und während eines kontinuierlichen Zeitraums von 15 Tagen keine Chat-Fertigstellungen oder Antwort-API-Aufrufe an das Modell vorgenommen wurden.
Das Löschen einer inaktiven Bereitstellung löscht das zugrunde liegende angepasste Modell nicht und wirkt sich auch nicht darauf aus. Das angepasste Modell kann jederzeit erneut bereitgestellt werden.
Wie in Azure OpenAI in Microsoft Foundry Models pricing beschrieben, entstehen jedem angepassten (fein abgestimmten) Modell, das bereitgestellt wird, stündliche Hostingkosten, unabhängig davon, ob Chatabschlusse oder Antwort-API-Aufrufe an das Modell getätigt werden. Weitere Informationen zum Planen und Verwalten von Kosten mit Azure OpenAI finden Sie unter Plan und Verwalten von Kosten für Azure OpenAI.
Verwenden Sie Ihr bereitgestelltes, fein abgestimmtes Modell
Nachdem Ihr benutzerdefiniertes Modell bereitgestellt wurde, können Sie es wie jedes andere bereitgestellte Modell verwenden. Sie können die Playgrounds im Foundry-Portal verwenden, um mit Ihrer neuen Bereitstellung zu experimentieren. Sie können weiterhin dieselben Parameter mit Ihrem benutzerdefinierten Modell verwenden, wie temperature und max_tokens, genau wie bei anderen bereitgestellten Modellen.
import os
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-02-01"
)
response = client.chat.completions.create(
model="gpt-4.1-mini-ft", # model = "Custom deployment name you chose for your fine-tuning model"
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
{"role": "user", "content": "Do other Azure services support this too?"}
]
)
print(response.choices[0].message.content)
curl $AZURE_OPENAI_ENDPOINT/openai/deployments/<deployment_name>/chat/completions?api-version=2024-10-21 \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d '{"messages":[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},{"role": "user", "content": "Do other Azure services support this too?"}]}'
Promptzwischenspeicherung
Die Azure OpenAI-Optimierung unterstützt Prompt-Caching bei ausgewählten Modellen. Mit der Eingabeaufforderungszwischenspeicherung können Sie die gesamte Anforderungslatenz und die Kosten für längere Eingabeaufforderungen reduzieren, die identischen Inhalt am Anfang der Eingabeaufforderung aufweisen. Weitere Informationen zum Eingabeaufforderungszwischenspeichern finden Sie in den ersten Schritten mit der Eingabeaufforderungszwischenspeicherung.
Bereitstellungstypen
Azure OpenAI-Feintuning unterstützt die folgenden Bereitstellungsarten.
Standard
Standardbereitstellungen bieten ein Pay-per-Token-Abrechnungsmodell, bei dem die Datenresidenz auf die bereitgestellte Region beschränkt ist.
| Modelle |
Ost-US2 |
Nord-Mittel-USA |
Schweden Zentral |
| o4-mini |
✅ |
|
✅ |
| GPT-4.1 |
|
✅ |
✅ |
| GPT-4.1-mini |
|
✅ |
✅ |
| GPT-4.1-nano |
|
✅ |
✅ |
| GPT-4o |
✅ |
|
✅ |
| GPT-4o-mini |
|
✅ |
✅ |
Globaler Standard
Optimierte Global Standard-Bereitstellungen bieten Kosteneinsparungen. Benutzerdefinierte Modellgewichtungen werden jedoch möglicherweise vorübergehend außerhalb der Region Ihrer Azure OpenAI-Ressource gespeichert.
Globale Standardbereitstellungen stehen in allen Azure OpenAI-Regionen für die folgenden Modelle zur Verfügung:
- o4-mini
- GPT-4.1
- GPT-4.1-mini
- GPT-4.1-nano
- GPT-4o
- GPT-4o-mini
Entwicklerebene
Für Entwickler feinabgestimmte Bereitstellungen bieten eine ähnliche Umgebung wie Global Standard ohne stündliche Hostinggebühr, bieten jedoch keine SLA zur Verfügbarkeit an. Entwicklerbereitstellungen sind für die Modellkandidatenbewertung und nicht für die Produktionsverwendung konzipiert.
Entwicklerbereitstellungen stehen in allen Azure OpenAI-Regionen für die folgenden Modelle zur Verfügung:
| Modelle |
Verfügbarkeit |
| o4-mini |
Alle Regionen |
| GPT-4.1 |
Alle Regionen |
| GPT-4.1-mini |
Alle Regionen |
| GPT-4.1-nano |
Alle Regionen |
Bereitgestellter Durchsatz
| Modelle |
Nord-Mittel-USA |
Schweden Zentral |
| GPT-4.1 |
|
✅ |
| GPT-4o |
✅ |
✅ |
| GPT-4o-mini |
✅ |
✅ |
Für Bereitgestellten Durchsatz optimierte Bereitstellungen bieten vorhersagbare Leistung für latenzsensitive Agents und Anwendungen. Sie verwenden dieselbe regionale bereitgestellte Durchsatzkapazität (PTU) wie Basismodelle. Wenn Sie also bereits über ein regionales PTU-Kontingent verfügen, können Sie Ihr abgestimmtes Modell in Supportregionen bereitstellen.
Bereinigen Sie Ihre Bereitstellung
Um eine Bereitstellung zu löschen, verwenden Sie die Bereitstellungen – REST-API löschen und eine HTTP DELETE an die Bereitstellungsressource senden. Wie beim Erstellen von Bereitstellungen müssen Sie die folgenden Parameter einschließen:
- Azure Abonnement-ID
- Azure Ressourcengruppenname
- Azure OpenAI-Ressourcenname
- Name der zu löschenden Bereitstellung
Nachfolgend sehen Sie das REST-API-Beispiel zum Löschen einer Bereitstellung:
curl -X DELETE "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>?api-version=2024-10-21" \
-H "Authorization: Bearer <TOKEN>"
Sie können eine Bereitstellung auch im Foundry-Portal löschen oder Azure CLI verwenden.
Nächste Schritte