После настройки модели можно ее развернуть и использовать в собственном приложении.
При развертывании модели вы предоставляете её для инференции, и за это взимается почасовая плата за размещение. Однако точно настроенные модели можно хранить в Microsoft Foundry без затрат, пока вы не будете готовы к их использованию.
Azure OpenAI предоставляет варианты типов развертывания для точно настроенных моделей в хостинговой структуре, которая подходит для различных бизнес-моделей и сценариев использования: Standard, Global Standard (предварительная версия) и Предоставленная Пропускная способность (предварительная версия). Дополнительные сведения о типах развертывания для точно настроенных моделей и понятиях всех типов развертывания.
Разверните вашу точно настроенную модель
Важно
Для того чтобы развернуть модели, вам необходимо быть назначенным на роль Azure AI Owner или любую роль с действием Microsoft.CognitiveServices/accounts/deployments/write.
Чтобы развернуть настраиваемую модель, выберите пользовательскую модель для развертывания и нажмите кнопку "Развернуть".
Откроется диалоговое окно "Развертывание модели ". В диалоговом окне введите имя развертывания и нажмите кнопку "Создать ", чтобы начать развертывание пользовательской модели.
Ход развертывания можно отслеживать на панели "Развертывания " на портале Foundry.
Портал не поддерживает развертывание между регионами. Вместо этого используйте пакет SDK Python или 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())
| Переменная |
Определение |
| Токен |
Существует несколько способов генерации токена авторизации. Самый простой способ начального тестирования — запустить Cloud Shell на портале Azure. Затем выполните команду az account get-access-token. Этот маркер можно использовать в качестве временного маркера авторизации для тестирования API. Мы рекомендуем хранить это в новой переменной среды. |
| Подписка |
Идентификатор подписки для связанного Azure ресурса OpenAI. |
| группа ресурсов |
Имя группы ресурсов для ресурса Azure OpenAI. |
| resource_name |
Имя ресурса Azure OpenAI. |
| model_deployment_name |
Настраиваемое имя для нового точно настроенного развертывания модели. Это имя, на которое ссылается ваш код при выполнении вызовов для завершения чата. |
| модель_с_тонкой_настройкой |
Извлеките это значение из результатов вашей работы по точной настройке на предыдущем этапе. Похоже gpt-4.1-mini-2025-04-14.ft-b044a9d3cf9c4228b5d393567f693b83. Необходимо добавить это значение в deploy_data json. Кроме того, можно развернуть контрольную точку, передав идентификатор контрольной точки, который отображается в формате ftchkpt-e559c011ecc04fc68eaa339d8227d02d. |
Развертывание между регионами
Точная настройка поддерживает развертывание точно настроенной модели в другом регионе, отличном от того, где модель была изначально настроена. Вы также можете развернуть на другую подписку или регион.
Единственными ограничениями являются то, что новый регион также обязан поддерживать настройку параметров, а при развертывании между различными подписками учетная запись, создающая маркер авторизации для развертывания, должна иметь доступ как к исходным, так и к целевым подпискам.
В следующем примере развертывается модель, которая была дополнительно настроена в одной подписке или одном регионе и перенесена в другой.
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())
Чтобы развернуть в рамках одной подписки, но в разных регионах, необходимо, чтобы подписка и группы ресурсов оставались идентичными для обоих — как для переменных источника, так и для переменных назначения, и только имена исходных и целевых ресурсов должны быть уникальными.
Развертывание между клиентами
Учетная запись, используемая для создания маркеров доступа с помощью az account get-access-token --tenant, должна иметь разрешения участника OpenAI Cognitive Services для исходных и целевых ресурсов Azure OpenAI. Необходимо создать два разных токена, один для исходного клиента и один для целевого клиента.
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()}")
В следующем примере показано, как использовать REST API для создания развертывания модели для настраиваемой модели. REST API создает имя для развертывания вашей настраиваемой модели.
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"
}
}
}'
| Переменная |
Определение |
| Токен |
Существует несколько способов генерации токена авторизации. Самый простой способ начального тестирования — запустить Cloud Shell на портале Azure. Затем выполните команду az account get-access-token. Этот маркер можно использовать в качестве временного маркера авторизации для тестирования API. Мы рекомендуем хранить это в новой переменной среды. |
| Подписка |
Идентификатор подписки для связанного Azure ресурса OpenAI. |
| группа ресурсов |
Имя группы ресурсов для ресурса Azure OpenAI. |
| resource_name |
Имя ресурса Azure OpenAI. |
| model_deployment_name |
Настраиваемое имя для нового точно настроенного развертывания модели. Это имя, на которое ссылается ваш код при выполнении вызовов для завершения чата. |
| модель_с_тонкой_настройкой |
Извлеките это значение из результатов вашей работы по точной настройке на предыдущем этапе. Похоже gpt-4.1-mini-2025-04-14.ft-b044a9d3cf9c4228b5d393567f693b83. Необходимо добавить это значение в deploy_data json. Кроме того, можно развернуть контрольную точку, передав идентификатор контрольной точки, который отображается в формате ftchkpt-e559c011ecc04fc68eaa339d8227d02d. |
Развертывание между регионами
Точная настройка поддерживает развертывание точно настроенной модели в другом регионе, отличном от того, где модель была изначально настроена. Вы также можете развернуть на другую подписку или регион.
Единственными ограничениями являются то, что новый регион также должен поддерживать тонкую настройку, а при развертывании кросс-подписку учетная запись, которая создает маркер авторизации для развертывания, должна иметь доступ как к исходным, так и к целевым подпискам.
Ниже приведен пример развертывания модели, которая была точно настроена в одной подписке или регионе в другой.
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}"
}
}
}'
Для развертывания в рамках одной подписки, но в разных регионах подписка и группы ресурсов должны быть одинаковыми для переменных источника и назначения, а имена исходных и целевых ресурсов должны быть уникальными.
Развертывание между клиентами
Учетная запись, используемая для создания маркеров доступа с помощью az account get-access-token --tenant, должна иметь разрешения участника OpenAI Cognitive Services для исходных и целевых ресурсов Azure OpenAI. Необходимо создать два разных токена, один для исходного клиента и один для целевого клиента.
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}"
}
}
}'
В следующем примере показано, как использовать Azure CLI для развертывания настраиваемой модели. В Azure CLI необходимо указать имя развертывания настраиваемой модели. Дополнительные сведения об использовании Azure CLI для развертывания настраиваемых моделей см. в разделе az cognitiveservices account deployment.
Чтобы выполнить эту команду Azure CLI в окне консоли, необходимо заменить следующие <placeholders> соответствующими значениями для настраиваемой модели:
| плейсхолдер |
Значение |
|
<YOUR_AZURE_SUBSCRIPTION> |
Имя или идентификатор подписки Azure. |
|
<YOUR_RESOURCE_GROUP> |
Имя группы ресурсов Azure. |
|
<YOUR_RESOURCE_NAME> |
Имя вашего ресурса Azure OpenAI. |
|
<YOUR_DEPLOYMENT_NAME> |
Имя, которое вы хотите использовать для развертывания модели. |
|
<YOUR_FINE_TUNED_MODEL_ID> |
Имя настраиваемой модели. |
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"
Важно
После развертывания настраиваемой модели, если развертывание в любое время остается неактивным в течение более 15 дней, развертывание удаляется. Развертывание настраиваемой модели неактивно, если модель была развернута более 15 дней назад и в течение непрерывного 15-дневного периода не выполнялись вызовы API на завершение чата или вызовы API получения ответов.
Удаление неактивного развертывания не влияет на базовую настраиваемую модель. Настраиваемая модель может быть развернута в любое время.
Как описано в ценообразовании модели Azure OpenAI в Microsoft Foundry, каждая кастомизированная (тонко настроенная) модель, которая развертывается, требует почасовой оплаты за размещение, независимо от того, проводятся ли завершения чата или делаются вызовы к API модели. Дополнительные сведения о планировании и управлении затратами на Azure OpenAI см. в статье Plan и управление затратами на Azure OpenAI.
Используйте развернутую адаптированную модель
После развертывания пользовательской модели, её можно использовать как любую другую развернутую модель. Вы можете использовать игровые площадки на портале Foundry для экспериментов с новым развертыванием. Вы можете продолжать использовать те же параметры для своей пользовательской модели, например temperature и max_tokens, как и с другими развернутыми моделями.
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?"}]}'
Azure CLI предназначен только для операций уровня управления, таких как создание ресурсов и развертывание модель. Для операций вывода используйте REST API или языковые пакеты SDK.
Кэширование запросов
Azure OpenAI точной настройке поддерживает кэширование запросов для определённых моделей. Кэширование запросов позволяет сократить общую задержку запроса и затраты на более длинные запросы, имеющие идентичное содержимое в начале запроса. Дополнительные сведения о кэшировании запросов см. в статье о начале работы с кэшированием запросов.
Типы развертывания
Azure OpenAI поддерживает тонкую настройку для следующих типов развертывания.
Стандартный
Стандартные развертывания предоставляют модель оплаты за токен с размещением данных, ограниченного развернутым регионом.
| Модели |
Восточная часть США2 |
Северная часть США |
Центральная Швеция |
| o4-mini |
✅ |
|
✅ |
| GPT-4.1 |
|
✅ |
✅ |
| GPT-4.1-mini |
|
✅ |
✅ |
| GPT-4.1-nano |
|
✅ |
✅ |
| GPT-4o |
✅ |
|
✅ |
| GPT-4o-mini |
|
✅ |
✅ |
Глобальный стандарт
Global standard точно настроенные развертывания предлагают экономию затрат, но пользовательские весы моделей могут временно храниться за пределами географического региона ресурса Azure OpenAI.
Глобальные стандартные развертывания доступны во всех регионах OpenAI Azure для следующих моделей:
- o4-mini
- GPT-4.1
- GPT-4.1-mini
- GPT-4.1-nano
- GPT-4o
- GPT-4o-mini
Уровень разработчика
Развертывания, настроенные для разработчиков, предлагают аналогичный опыт использования, как и Global Standard, без почасовой платы за размещение, но не предлагают SLA доступности. Развертывания разработчиков предназначены для оценки моделей-кандидатов, а не для промышленной эксплуатации.
Развертывания для разработчиков доступны во всех регионах Azure OpenAI для следующих моделей:
| Модели |
Доступность |
| o4-mini |
Все регионы |
| GPT-4.1 |
Все регионы |
| GPT-4.1-mini |
Все регионы |
| GPT-4.1-nano |
Все регионы |
Подготовленная пропускная способность
| Модели |
Северная часть США |
Центральная Швеция |
| GPT-4.1 |
|
✅ |
| GPT-4o |
✅ |
✅ |
| GPT-4o-mini |
✅ |
✅ |
Развертывания с предоставленной пропускной способностью обеспечивают прогнозируемую производительность для агентов и приложений, чувствительных к задержкам. Они используют ту же региональную пропускную способность (PTU), что и базовые модели, поэтому если у вас уже есть региональная квота PTU, вы можете развернуть предобученную модель в поддерживаемых регионах.
Очистите развертывание
Чтобы удалить развертывание, используйте Deployments - Delete REST API и отправьте HTTP DELETE запрос непосредственно в ресурс развертывания. Как и при создании развертываний, необходимо включить следующие параметры:
- идентификатор подписки Azure
- имя группы ресурсов Azure
- имя ресурса Azure OpenAI
- Имя развертывания для удаления
Ниже приведен пример REST API для удаления развертывания:
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>"
Вы также можете удалить развертывание на портале Foundry или использовать Azure CLI.
Дальнейшие действия