Po dostrojeniu modelu możesz wdrożyć model i użyć go we własnej aplikacji.
Kiedy wdrażasz model, udostępniasz go do wnioskowania, co wiąże się z godzinową opłatą za hosting. Jednak dostrojone modele można przechowywać w usłudze Microsoft Foundry bez ponoszenia kosztów, dopóki nie będzie można ich używać.
Usługa Azure OpenAI udostępnia opcje typów wdrożeń dla dostosowanych modeli na strukturze hostingu odpowiedniej dla różnych wzorców biznesowych i użycia: Standard, Global Standard (wersja zapoznawcza) i Przepływność zarezerwowana (wersja zapoznawcza). Dowiedz się więcej na temat typów wdrożeń dla dostosowanych modeli i pojęć dotyczących wszystkich typów wdrożeń.
Wdrażaj dostrojony model
Aby wdrożyć model niestandardowy, wybierz model niestandardowy do wdrożenia, a następnie wybierz pozycję Wdróż.
Zostanie otwarte okno dialogowe Wdrażanie modelu . W oknie dialogowym wprowadź nazwę wdrożenia , a następnie wybierz pozycję Utwórz , aby rozpocząć wdrażanie modelu niestandardowego.
Postęp wdrażania można monitorować w okienku Wdrożenia w portalu Foundry.
Interfejs użytkownika nie obsługuje wdrażania między regionami, a zestaw SDK języka Python lub interfejs REST obsługuje.
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())
| zmienna |
Definition |
| kod przedpłaty |
Istnieje wiele sposobów generowania tokenu autoryzacji. Najprostszą metodą testowania początkowego jest uruchomienie usługi Cloud Shell w witrynie Azure Portal. Następnie należy uruchomić polecenie az account get-access-token. Możesz użyć tego tokenu jako tymczasowego tokenu autoryzacji na potrzeby testowania interfejsu API. Zalecamy przechowywanie tej wartości w nowej zmiennej środowiskowej. |
| abonament |
Identyfikator subskrypcji skojarzonego zasobu usługi Azure OpenAI. |
| resource_group |
Nazwa grupy zasobów dla zasobu usługi Azure OpenAI. |
| resource_name |
Nazwa zasobu usługi Azure OpenAI. |
| model_deployment_name |
Niestandardowa nazwa dla nowego, zoptymalizowanego wdrożenia modelu. Jest to nazwa, która zostanie przywołynięta w kodzie podczas wykonywania wywołań ukończenia czatu. |
| fine_tuned_model |
Pobierz tę wartość z wyników zadania dostrajania w poprzednim kroku. Będzie ona wyglądać następująco: gpt-4.1-mini-2025-04-14.ft-b044a9d3cf9c4228b5d393567f693b83. Musisz dodać wartość do pliku json deploy_data. Alternatywnie można wdrożyć punkt kontrolny, przekazując identyfikator punktu kontrolnego, który będzie wyświetlany w formacie ftchkpt-e559c011ecc04fc68eaa339d8227d02d |
Wdrażanie w różnych regionach
Dostrajanie wspiera wdrażanie dostosowanego modelu w innym regionie niż tam, gdzie został pierwotnie dostosowany. Można również wdrożyć w innej subskrypcji/regionie.
Jedynymi ograniczeniami jest to, że nowy region musi również obsługiwać dostrajanie, a podczas wdrażania subskrypcji krzyżowej konto generujące token autoryzacji dla wdrożenia musi mieć dostęp zarówno do subskrypcji źródłowych, jak i docelowych.
Poniżej przedstawiono przykład wdrożenia modelu, który został dostosowany w jednej subskrypcji/regionie do innej.
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())
Aby wdrożyć w obrębie tej samej subskrypcji, ale w różnych regionach, wystarczy, że subskrypcja i grupy zasobów będą identyczne zarówno dla zmiennych źródłowych, jak i docelowych, a tylko nazwy zasobów źródłowych i docelowych muszą być unikatowe.
Wdrażanie między dzierżawami
Konto używane do generowania tokenów dostępu z az account get-access-token --tenant powinno mieć uprawnienia Cognitive Services OpenAI Contributor zarówno do źródłowego, jak i docelowego zasobu Azure OpenAI. Należy wygenerować dwa różne tokeny: jeden dla dzierżawy źródłowej i jeden dla dzierżawy docelowej.
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()}")
W poniższym przykładzie pokazano, jak za pomocą interfejsu API REST utworzyć wdrożenie modelu dla dostosowanego modelu. Interfejs API REST generuje nazwę dla wdrożenia twojego dostosowanego modelu.
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"
}
}
}'
| zmienna |
Definition |
| kod przedpłaty |
Istnieje wiele sposobów generowania tokenu autoryzacji. Najprostszą metodą testowania początkowego jest uruchomienie usługi Cloud Shell w witrynie Azure Portal. Następnie należy uruchomić polecenie az account get-access-token. Możesz użyć tego tokenu jako tymczasowego tokenu autoryzacji na potrzeby testowania interfejsu API. Zalecamy przechowywanie tej wartości w nowej zmiennej środowiskowej. |
| abonament |
Identyfikator subskrypcji skojarzonego zasobu usługi Azure OpenAI. |
| resource_group |
Nazwa grupy zasobów dla zasobu usługi Azure OpenAI. |
| resource_name |
Nazwa zasobu usługi Azure OpenAI. |
| model_deployment_name |
Niestandardowa nazwa dla nowego, zoptymalizowanego wdrożenia modelu. Jest to nazwa, która zostanie przywołynięta w kodzie podczas wykonywania wywołań ukończenia czatu. |
| fine_tuned_model |
Pobierz tę wartość z wyników zadania dostrajania w poprzednim kroku. Będzie ona wyglądać następująco: gpt-4.1-mini-2025-04-14.ft-b044a9d3cf9c4228b5d393567f693b83. Musisz dodać wartość do pliku json deploy_data. Alternatywnie można wdrożyć punkt kontrolny, przekazując identyfikator punktu kontrolnego, który będzie wyświetlany w formacie ftchkpt-e559c011ecc04fc68eaa339d8227d02d |
Wdrażanie w różnych regionach
Dostrajanie wspiera wdrażanie dostosowanego modelu w innym regionie niż tam, gdzie został pierwotnie dostosowany. Można również wdrożyć w innej subskrypcji/regionie.
Jedynymi ograniczeniami jest to, że nowy region musi również obsługiwać dostrajanie, a podczas wdrażania subskrypcji krzyżowej konto generujące token autoryzacji dla wdrożenia musi mieć dostęp zarówno do subskrypcji źródłowych, jak i docelowych.
Poniżej przedstawiono przykład wdrożenia modelu, który został dostosowany w jednej subskrypcji/regionie do innej.
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}"
}
}
}'
Aby wdrażać w ramach tej samej subskrypcji, ale w różnych regionach, wystarczy, że subskrypcja i grupy zasobów będą identyczne zarówno dla zasobów źródłowych, jak i docelowych, a tylko nazwy zasobów źródłowych i docelowych muszą być unikalne.
Wdrażanie między dzierżawami
Konto używane do generowania tokenów dostępu z az account get-access-token --tenant powinno mieć uprawnienia Cognitive Services OpenAI Contributor zarówno do źródłowego, jak i docelowego zasobu Azure OpenAI. Należy wygenerować dwa różne tokeny: jeden dla dzierżawy źródłowej i jeden dla dzierżawy docelowej.
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}"
}
}
}'
W poniższym przykładzie pokazano, jak za pomocą interfejsu wiersza polecenia platformy Azure wdrożyć dostosowany model. Za pomocą interfejsu wiersza polecenia platformy Azure należy określić nazwę wdrożenia dostosowanego modelu. Aby uzyskać więcej informacji na temat sposobu wdrażania niestandardowych modeli za pomocą interfejsu wiersza polecenia platformy Azure, zobacz az cognitiveservices account deployment.
Aby uruchomić to polecenie CLI platformy Azure w oknie konsoli, należy zastąpić następujące <znaczniki> odpowiednimi wartościami dla dostosowanego modelu.
| Placeholder |
Value |
|
<YOUR_AZURE_SUBSCRIPTION> |
Nazwa lub identyfikator subskrypcji platformy Azure. |
|
<YOUR_RESOURCE_GROUP> |
Nazwa grupy zasobów platformy Azure. |
|
<YOUR_RESOURCE_NAME> |
Nazwa zasobu usługi Azure OpenAI. |
|
<TWOJA_NAZWA_WDROŻENIA> |
Nazwa, której chcesz użyć do wdrożenia modelu. |
|
<YOUR_FINE_TUNED_MODEL_ID> |
Nazwa dostosowanego modelu. |
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"
Important
Po wdrożeniu dostosowanego modelu, jeśli w dowolnym momencie wdrożenie pozostanie nieaktywne przez ponad piętnaście (15) dni, wdrożenie zostanie usunięte. Wdrożenie dostosowanego modelu jest nieaktywne, jeśli model został wdrożony ponad piętnaście (15) dni temu i nie wykonano do niego żadnych wywołań ani ukończeń czatu w ciągu nieprzerwanego 15-dniowego okresu.
Usunięcie nieaktywnego wdrożenia nie powoduje usunięcia lub wpływu na bazowy dostosowany model, a dostosowany model można wdrożyć ponownie w dowolnym momencie.
Zgodnie z opisem w Azure OpenAI w Microsoft Foundry Models — cennik, każdy dostosowany (dostrojony) model, który został wdrożony, wiąże się z kosztem hostingu naliczanym godzinowo, bez względu na to, czy do modelu są wysyłane żądania ukończeń lub żądania ukończeń czatu. Aby dowiedzieć się więcej na temat planowania kosztów i zarządzania nimi za pomocą usługi Azure OpenAI, zapoznaj się ze wskazówkami w artykule Planowanie zarządzania kosztami usługi Azure OpenAI.
Użyj wdrożonego, dostosowanego modelu
Po wdrożeniu modelu niestandardowego można go użyć jak każdy inny wdrożony model. Możesz użyć placu zabaw w portalu Foundry , aby eksperymentować z nowym wdrożeniem. Możesz nadal używać tych samych parametrów z modelem niestandardowym, takich jak temperature i max_tokens, podobnie jak w przypadku innych wdrożonych modeli.
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?"}]}'
Buforowanie komunikatów
Dostrajanie interfejsu Azure OpenAI obsługuje buforowanie monitów z wybranymi modelami. Buforowanie monitów pozwala zmniejszyć ogólne opóźnienie żądań i koszt dłuższych monitów, które mają identyczną zawartość na początku monitu. Aby dowiedzieć się więcej na temat buforowania monitów, zobacz Wprowadzenie do buforowania monitów.
Typy wdrożeń
Dostrajanie Azure OpenAI obsługuje następujące typy wdrożeń.
Standard
Wdrożenia standardowe zapewniają model rozliczeń z płatnością za token z miejscem przechowywania danych ograniczonym do wdrożonego regionu.
| Models |
Wschodnie stany USA 2 |
Północno-środkowe stany USA |
Szwecja Środkowa |
| o4-mini |
✅ |
|
✅ |
| GPT-4.1 |
|
✅ |
✅ |
| GPT-4.1-mini |
|
✅ |
✅ |
| GPT-4.1-nano |
|
✅ |
✅ |
| GPT-4o |
✅ |
|
✅ |
| GPT-4o-mini |
|
✅ |
✅ |
Standardowa globalna
Wdrożenia zgodne z globalnym standardem zapewniają oszczędności kosztów, ale niestandardowe wagi modeli mogą być tymczasowo przechowywane poza lokalizacją zasobu Azure OpenAI.
Globalne wdrożenia standardowe są dostępne we wszystkich regionach usługi Azure OpenAI dla następujących modeli:
- o4-mini
- GPT-4.1
- GPT-4.1-mini
- GPT-4.1-nano
- GPT-4o
- GPT-4o-mini
Warstwa dewelopera
Wdrożenia deweloperów dostrojone oferują podobne środowisko jak Global Standard bez opłaty za hosting godzinowy, ale nie oferują umowy SLA dotyczącej dostępności. Wdrożenia deweloperów są przeznaczone do oceny kandydata na model, a nie do użytku produkcyjnego.
Wdrożenia deweloperów są dostępne we wszystkich regionach usługi Azure OpenAI dla następujących modeli:
- GPT-4.1
- GPT-4.1-mini
- GPT-4.1-nano
- o4-mini
Aprowizowana przepływność
| Models |
Północno-środkowe stany USA |
Szwecja Środkowa |
| GPT-4.1 |
|
✅ |
| GPT-4o |
✅ |
✅ |
| GPT-4o-mini |
✅ |
✅ |
Wdrożenia z aprowizowaną przepływnością zapewniają przewidywalną wydajność dla agentów i aplikacji wrażliwych na opóźnienia. Używają one tej samej regionalnej pojemności aprowizowanej przepływności (PTU) co modele podstawowe, więc jeśli masz już regionalny limit PTU, możesz wdrożyć dostosowany model w regionach wsparcia.
Wyczyść swoje wdrożenie
Aby usunąć wdrożenie, użyj polecenia Deployments — Delete REST API (Wdrożenia — usuwanie interfejsu API REST ) i wyślij polecenie HTTP DELETE do zasobu wdrożenia. Podobnie jak w przypadku tworzenia wdrożeń, należy uwzględnić następujące parametry:
- Identyfikator subskrypcji Azure
- Nazwa grupy zasobów platformy Azure
- Nazwa zasobu usługi Azure OpenAI
- Nazwa wdrożenia do usunięcia
Poniżej przedstawiono przykład interfejsu API REST w celu usunięcia wdrożenia:
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>"
Możesz również usunąć wdrożenie w portalu Foundry lub użyć interfejsu wiersza polecenia platformy Azure.
Dalsze kroki