Setelah model Anda disempurnakan, Anda dapat menyebarkan model dan menggunakannya di aplikasi Anda sendiri.
Saat Anda menyebarkan model, Anda membuat model tersedia untuk inferensi, dan itu dikenakan biaya hosting per jam. Namun, model yang disempurnakan dapat disimpan di Microsoft Foundry tanpa biaya sampai Anda siap untuk menggunakannya.
Azure OpenAI menyediakan pilihan jenis penyebaran untuk model yang disempurnakan pada struktur hosting yang sesuai dengan pola bisnis dan penggunaan yang berbeda: Standard, Global Standard (pratinjau) dan Provisioned Throughput (pratinjau). Pelajari selengkapnya tentang jenis penyebaran untuk model yang disempurnakan dan konsep semua jenis penyebaran.
Menyebarkan model yang dioptimalkan
Penting
Untuk menyebarkan model, Anda perlu diberi peran Azure AI Owner atau peran apa pun dengan tindakan Microsoft.CognitiveServices/accounts/deployments/write.
Untuk menyebarkan model kustom Anda, pilih model kustom yang akan disebarkan, lalu pilih Sebarkan.
Kotak dialog Sebarkan model terbuka. Dalam kotak dialog, masukkan Nama penyebaran Anda lalu pilih Buat untuk memulai penyebaran model kustom Anda.
Anda dapat memantau kemajuan penyebaran Anda di panel Penyebaran di portal Foundry.
Portal tidak mendukung penyebaran lintas wilayah. Gunakan SDK Python atau REST API sebagai gantinya.
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())
| Variabel |
Definisi |
| token |
Ada beberapa cara untuk menghasilkan token otorisasi. Metode term mudah untuk pengujian awal adalah meluncurkan Cloud Shell dari portal Azure. Kemudian jalankan az account get-access-token. Anda dapat menggunakan token ini sebagai token otorisasi sementara untuk pengujian API. Sebaiknya simpan ini dalam variabel lingkungan baru. |
| langganan |
ID langganan untuk sumber daya OpenAI Azure terkait. |
| kelompok_sumber_daya |
Nama grup sumber daya untuk sumber daya OpenAI Azure Anda. |
| nama_sumber_daya |
Nama sumber daya Azure OpenAI. |
| model_deployment_name |
Nama kustom untuk penyebaran model baru yang telah disesuaikan. Ini adalah nama yang direferensikan dalam kode Anda saat melakukan panggilan penyelesaian obrolan. |
| model yang telah disesuaikan |
Ambil nilai ini dari hasil pekerjaan penyesuaian Anda pada langkah sebelumnya. Sepertinya gpt-4.1-mini-2025-04-14.ft-b044a9d3cf9c4228b5d393567f693b83. Anda perlu menambahkan nilai tersebut ke json deploy_data. Atau, Anda dapat menyebarkan titik pemeriksaan dengan meneruskan ID titik pemeriksaan, yang muncul dalam format ftchkpt-e559c011ecc04fc68eaa339d8227d02d. |
Penyebaran lintas wilayah
Penyempurnaan mendukung penyebaran model yang disempurnakan ke wilayah yang berbeda dari tempat model awalnya disempurnakan. Anda juga dapat menyebarkan ke langganan/wilayah yang berbeda.
Satu-satunya batasan adalah bahwa wilayah baru juga harus mendukung penyempurnaan, dan saat menyebarkan langganan silang, akun yang menghasilkan token otorisasi untuk penyebaran harus memiliki akses ke langganan sumber dan tujuan.
Contoh berikut ini menyebarkan model yang telah disesuaikan di satu langganan/wilayah ke langganan/wilayah lain.
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())
Untuk menyebarkan antara langganan yang sama, tetapi wilayah yang berbeda, Anda hanya akan memiliki grup langganan dan sumber daya yang identik untuk variabel sumber dan tujuan dan hanya nama sumber daya sumber dan tujuan yang harus unik.
Penyebaran antar penyewa
Akun yang digunakan untuk menghasilkan token akses dengan az account get-access-token --tenant harus memiliki izin Kontributor OpenAI Cognitive Services untuk sumber dan tujuan sumber daya Azure OpenAI. Anda harus menghasilkan dua token yang berbeda, satu untuk penyewa sumber dan satu untuk penyewa tujuan.
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()}")
Contoh berikut menunjukkan cara menggunakan REST API untuk membuat penyebaran model untuk model yang disesuaikan. API REST menghasilkan nama untuk penyebaran model yang disesuaikan.
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"
}
}
}'
| Variabel |
Definisi |
| token |
Ada beberapa cara untuk menghasilkan token otorisasi. Metode term mudah untuk pengujian awal adalah meluncurkan Cloud Shell dari portal Azure. Kemudian jalankan az account get-access-token. Anda dapat menggunakan token ini sebagai token otorisasi sementara untuk pengujian API. Sebaiknya simpan ini dalam variabel lingkungan baru. |
| langganan |
ID langganan untuk sumber daya OpenAI Azure terkait. |
| kelompok_sumber_daya |
Nama grup sumber daya untuk sumber daya OpenAI Azure Anda. |
| nama_sumber_daya |
Nama sumber daya Azure OpenAI. |
| model_deployment_name |
Nama kustom untuk penyebaran model baru yang telah disesuaikan. Ini adalah nama yang direferensikan dalam kode Anda saat melakukan panggilan penyelesaian obrolan. |
| model yang telah disesuaikan |
Ambil nilai ini dari hasil pekerjaan penyesuaian Anda pada langkah sebelumnya. Sepertinya gpt-4.1-mini-2025-04-14.ft-b044a9d3cf9c4228b5d393567f693b83. Anda perlu menambahkan nilai tersebut ke json deploy_data. Atau, Anda dapat menyebarkan titik pemeriksaan dengan meneruskan ID titik pemeriksaan, yang muncul dalam format ftchkpt-e559c011ecc04fc68eaa339d8227d02d. |
Penyebaran lintas wilayah
Penyempurnaan mendukung penyebaran model yang disempurnakan ke wilayah yang berbeda dari tempat model awalnya disempurnakan. Anda juga dapat menyebarkan ke langganan/wilayah yang berbeda.
Satu-satunya batasan adalah bahwa wilayah baru juga harus mendukung penyempurnaan dan saat menyebarkan langganan silang, akun yang menghasilkan token otorisasi untuk penyebaran harus memiliki akses ke langganan sumber dan tujuan.
Di bawah ini adalah contoh penerapan model yang telah disempurnakan dalam satu langganan/wilayah ke langganan/wilayah yang lain.
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}"
}
}
}'
Untuk menyebarkan antara langganan yang sama, tetapi wilayah yang berbeda, Anda hanya perlu memiliki langganan dan grup sumber daya yang identik untuk variabel sumber dan tujuan, dan hanya nama sumber daya pada sumber dan tujuan yang harus unik.
Penyebaran antar penyewa
Akun yang digunakan untuk menghasilkan token akses dengan az account get-access-token --tenant harus memiliki izin Kontributor OpenAI Cognitive Services untuk sumber dan tujuan sumber daya Azure OpenAI. Anda harus menghasilkan dua token yang berbeda, satu untuk penyewa sumber dan satu untuk penyewa tujuan.
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}"
}
}
}'
Contoh berikut menunjukkan cara menggunakan Azure CLI untuk menyebarkan model yang disesuaikan. Dengan Azure CLI, Anda harus menentukan nama untuk penyebaran model yang disesuaikan. Untuk informasi selengkapnya tentang cara menggunakan Azure CLI untuk menyebarkan model yang disesuaikan, lihat az cognitiveservices account deployment.
Untuk menjalankan perintah Azure CLI ini di jendela konsol, Anda harus mengganti <placeholders> dengan nilai yang sesuai untuk model yang telah dikustomisasi:
| Placeholder |
Nilai |
|
<YOUR_AZURE_SUBSCRIPTION> |
Nama atau ID langganan Azure Anda. |
|
<YOUR_RESOURCE_GROUP> |
Nama grup sumber daya Azure Anda. |
|
<YOUR_RESOURCE_NAME> |
Nama sumber daya OpenAI Azure Anda. |
|
<YOUR_DEPLOYMENT_NAME> |
Nama yang ingin Anda gunakan untuk penyebaran model Anda. |
|
<YOUR_FINE_TUNED_MODEL_ID> |
Nama model kustom Anda. |
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"
Penting
Setelah Anda menyebarkan model yang disesuaikan, jika kapan saja penyebaran tetap tidak aktif selama lebih dari 15 hari, penyebaran akan dihapus. Penyebaran model yang disesuaikan tidak aktif jika model disebarkan lebih dari 15 hari yang lalu dan tidak ada penyelesaian obrolan atau panggilan API respons yang dilakukan padanya selama periode 15 hari berkelanjutan.
Penghapusan deploymen yang tidak aktif tidak menghapus atau memengaruhi model yang dikustomisasi dasar. Model yang disesuaikan dapat disebarkan ulang kapan saja.
Seperti yang dijelaskan dalam Azure OpenAI dalam penetapan harga Model Foundry Microsoft, setiap model yang telah dioptimalkan yang disebarkan akan dikenakan biaya hosting per jam terlepas dari apakah penyelesaian chat atau panggilan API untuk respons dilakukan ke model tersebut. Untuk mempelajari selengkapnya tentang merencanakan dan mengelola biaya dengan Azure OpenAI, lihat Plan dan kelola biaya untuk Azure OpenAI.
Gunakan model yang sudah di-deploy dan dioptimalkan
Setelah model kustom Anda disebarkan, Anda dapat menggunakannya seperti model lain yang disebarkan. Anda dapat menggunakan Playgrounds di dalam portal Foundry untuk bereksperimen dengan penyebaran baru Anda. Anda dapat terus menggunakan parameter yang sama dengan model kustom Anda, seperti temperature dan max_tokens, sebagaimana Anda bisa dengan model lain yang telah disebarkan.
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 hanya untuk operasi sarana kontrol seperti pembuatan sumber daya dan penyebaran model. Untuk operasi inferensi, gunakan REST API, atau SDK berbasis bahasa.
Penyimpanan cache prompt
Penyempurnaan Azure OpenAI mendukung penyimpanan sementara perintah dengan model tertentu. Penyimpanan sementara perintah memungkinkan Anda mengurangi latensi permintaan keseluruhan dan biaya untuk perintah yang lebih panjang yang memiliki konten identik di awal perintah. Untuk mempelajari selengkapnya tentang penembolokan perintah, lihat mulai menggunakan penembolokan perintah.
Jenis Penyebaran
Azure Pengoptimalan OpenAI mendukung tipe penyebaran berikut.
Standar
Penyebaran standar menyediakan model penagihan bayar per token dengan residensi data terbatas pada wilayah yang disebarkan.
| Model |
US Timur2 |
US Tengah Utara |
Swedia Tengah |
| o4-mini |
✅ |
|
✅ |
| GPT-4.1 |
|
✅ |
✅ |
| GPT-4.1-mini |
|
✅ |
✅ |
| GPT-4.1-nano |
|
✅ |
✅ |
| GPT-4o |
✅ |
|
✅ |
| GPT-4o-mini |
|
✅ |
✅ |
Standar Global
Standar global penyempurnaan penyebaran yang disesuaikan menawarkan penghematan biaya, tetapi bobot model kustom dapat disimpan sementara di luar wilayah sumber daya OpenAI Azure Anda.
Penyebaran standar global tersedia dari semua wilayah OpenAI Azure untuk model berikut:
- o4-mini
- GPT-4.1
- GPT-4.1-mini
- GPT-4.1-nano
- GPT-4o
- GPT-4o-mini
Tingkat Pengembang
Penyebaran yang telah dioptimalkan oleh pengembang menawarkan pengalaman serupa seperti Standar Global tanpa biaya hosting per jam, tetapi tidak menawarkan jaminan tingkat layanan untuk ketersediaan. Penyebaran pengembang dirancang untuk evaluasi kandidat model dan bukan untuk penggunaan operasional.
Penyebaran oleh pengembang tersedia dari semua wilayah Azure untuk OpenAI untuk model berikut:
| Model |
Ketersediaan |
| o4-mini |
Semua wilayah |
| GPT-4.1 |
Semua wilayah |
| GPT-4.1-mini |
Semua wilayah |
| GPT-4.1-nano |
Semua wilayah |
Throughput yang Disediakan
| Model |
US Tengah Utara |
Swedia Tengah |
| GPT-4.1 |
|
✅ |
| GPT-4o |
✅ |
✅ |
| GPT-4o-mini |
✅ |
✅ |
Penyebaran throughput yang diprovisikan yang disempurnakan menawarkan performa yang dapat diprediksi untuk agen dan aplikasi yang sensitif terhadap latensi. Mereka menggunakan kapasitas throughput regional (PTU) yang sama dengan model dasar, jadi jika Anda sudah memiliki kuota PTU regional, Anda dapat menyebarkan model yang disempurnakan di wilayah dukungan.
Bersihkan deployment Anda
Untuk menghapus penyebaran, gunakan Deployments - Delete REST API dan kirim HTTP DELETE ke sumber daya penyebaran. Seperti halnya membuat penyebaran, Anda harus menyertakan parameter berikut:
- ID langganan Azure
- nama grup sumber daya Azure
- Nama sumber daya Azure OpenAI
- Nama penyebaran yang akan dihapus
Di bawah ini adalah contoh REST API untuk menghapus penyebaran:
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>"
Anda juga dapat menghapus penyebaran di portal Foundry, atau menggunakan Azure CLI.
Langkah berikutnya