Menyebarkan model sumber terbuka dengan komputasi terkelola (pratinjau)

Note

Komputasi terkelola di Foundry saat ini masih dalam pratinjau. Pratinjau ini disediakan tanpa adanya perjanjian tingkat layanan, dan kami tidak menyarankan penggunaannya untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk informasi lebih lanjut, lihat Supplemental Terms of Use for Microsoft Azure Previews.

Penerapan komputasi terkelola (pratinjau) di Microsoft Foundry menjalankan model sumber terbuka dengan kapasitas GPU khusus. Microsoft mengelola topologi GPU, runtime, image kontainer, dan penambalan keamanan. Anda memilih model, templat penyebaran, keluarga akselerator, dan perilaku penskalaan yang sesuai dengan beban kerja Anda. Artikel ini membahas alur kerja end-to-end untuk menyebarkan model sumber terbuka ke komputasi terkelola di Microsoft Foundry.

Dalam artikel ini, Anda akan mempelajari cara:

  • Memilih model dalam katalog model
  • Pilih templat penyebaran
  • Menyebarkan model menggunakan portal Foundry atau SDK Python
  • Melakukan inferensi menggunakan OpenAI SDK
  • Menskalakan dan memantau penyebaran
  • Minta lebih banyak kuota

Untuk ikhtisar penyebaran komputasi terkelola di Foundry, termasuk instans model, templat penyebaran, runtime, keluarga akselerator, penagihan, dan batasan saat ini, lihat Komputasi terkelola di Microsoft Foundry (pratinjau).

Prerequisites

  • Langganan Azure aktif. Untuk membuatnya, lihat Buat akun gratis Azure Anda.

  • Grup sumber daya dalam langganan tempat Anda memiliki izin untuk membuat sumber daya.

  • Akun Microsoft Foundry (akun Cognitive Services jenis AIServices) dan proyek Foundry. Untuk membuatnya, lihat Membuat proyek Foundry.

  • Penetapan peran Azure berikut pada cakupan akun Foundry:

    • Kontributor Cognitive Services (atau Pemilik Foundry / Pemilik Akun Foundry) — diperlukan untuk membuat, memperbarui, dan menghapus deployment komputasi terkelola. Lihat kontrol akses berbasis Role untuk Microsoft Foundry — operasi sarana kontrol komputasi terkelola.
    • Pengguna Foundry — diperlukan untuk memanggil deployment dengan Microsoft Entra ID melalui Playground, SDK, atau REST.
  • Kuota komputasi terkelola yang disetujui untuk keluarga akselerator yang ingin Anda gunakan di wilayah target (A100, H100, atau MI300X). Kuota komputasi terkelola terpisah dari kuota VM Azure. Lihat Meminta lebih banyak kuota di akhir artikel ini.

  • Alat lokal untuk contoh SDK dan CLI:

    pip install "azure-mgmt-cognitiveservices==15.0.0b2" azure-identity openai requests
    az login
    
  • Azure CLI 2.60 atau yang lebih baru.

Important

Komputasi terkelola di Foundry tersedia dalam pratinjau publik. API, nama SKU, dan wilayah yang didukung mungkin berubah sebelum ketersediaan umum. Pemfilteran konten bawaan bukan bagian dari jalur data komputasi terkelola dalam pratinjau publik. Jika Anda memerlukan pemfilteran tingkat permintaan atau tingkat respons, panggil API Keamanan Konten Azure AI langsung dari aplikasi Anda.

Pilih model dalam katalog

Komputasi terkelola menerapkan model dari Hugging Face Collection di katalog model Foundry, yang disajikan dari registri azure-huggingface.

Untuk informasi tentang ketersediaan model Hugging Face dalam proyek Anda dan panduan penyebaran khusus Hugging Face, lihat Model Hugging Face di Microsoft Foundry.

  1. Masuk ke Microsoft Foundry. Pastikan tombol New Foundry aktif. Langkah-langkah ini mengacu pada Foundry (baru).
  2. Pilih langganan Anda dan sumber daya Foundry.
  3. Pilih Bangun di navigasi kanan atas, lalu pilih Model di panel kiri.
  4. Filter katalog menurut Koleksi. Pilih Memeluk Wajah. Anda juga dapat menggunakan salah satu filter lain untuk mempersempit model yang ingin Anda sebarkan (misalnya, memilih keluarga model seperti Qwen) atau dengan modalitas atau tugas. Anda juga dapat mencari berdasarkan nama model.
  5. Pilih kartu model (misalnya, nvidia-nemotron-3-nano-30b-a3b-fp8) untuk membuka detailnya.

Kartu model menampilkan lisensi sumber, modalitas, tugas yang didukung, dan templat penerapan yang dipublikasikan untuk model tersebut. Jika Anda berencana untuk menyebarkan melalui Python SDK atau REST alih-alih menggunakan wizard portal, Anda akan memerlukan tiga nilai sebagai input ke panggilan penyebaran. Anda dapat menemukan nilai-nilai ini di portal Foundry sebagai berikut:

  • ID Model: ID aset registri yang sepenuhnya memenuhi syarat untuk model. Tersedia di kartu model di katalog (salin dari panel detail model). Contoh:

    azureml://registries/azure-huggingface/models/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8/versions/2
    
  • ID templat penyebaran: mengidentifikasi runtime, keluarga dan jumlah akselerator, dan panjang konteks untuk model. Tersedia di wizard deployment yang muncul saat Anda memilih Deploy di kartu model. Pilih templat dan salin ID templat Penyebaran dari wizard. Contoh:

    azureml://registries/azure-huggingface/deploymenttemplates/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8--nvidia-h100/labels/latest
    

    Note

    ID model dan ID templat penyebaran harus kompatibel; setiap templat mencantumkan versi model yang didukungnya. Wizard portal hanya menampilkan templat yang kompatibel untuk model yang Anda pilih. Jika Anda melakukan deployment menggunakan kode, pastikan bahwa kedua referensi mengarah ke aset registri yang valid dalam registri azure-huggingface.

    Untuk mempelajari selengkapnya tentang templat penyebaran, lihat Templat penyebaran di artikel Gambaran umum komputasi terkelola.

  • Jenis akselerator: misalnya, , H100_80GB, A100_80GBatau MI300_192GB. Ditampilkan di samping setiap templat dalam panduan penerapan.

Menerapkan model

  1. Pilih Deploy pada kartu model untuk membuka panduan deployment.

  2. Tentukan Nama penyebaran. Nama deployment adalah nama yang diteruskan aplikasi Anda di kolom model saat inferensi — pilih nama yang stabil dan ramah untuk aplikasi (misalnya, nemotron-3-nano-30b).

  3. Jenis deployment (Global Managed Compute) sudah dipilih sebelumnya di wizard deployment.

  4. Pilih templat Penyebaran yang cocok dengan beban kerja Anda. Misalnya, templat H100 akselerator tunggal untuk biaya terendah dengan panjang konteks sedang, atau templat dua akselerator jika perintah Anda melebihi batas konteks akselerator tunggal.

  5. Pilih jenis Akselerator, misalnya, H100_80GB.

  6. Atur Instans Model ke 1 (atau lebih tinggi jika Anda telah mengukur beban kerja Anda). Instans model menentukan ukuran komputasi terkelola dan merupakan nilai capacity pada SKU deployment. Setiap instans menggunakan jumlah akselerator yang ditentukan oleh templat; misalnya, templat yang menentukan satu H100 per instans dengan kapasitas 2 menggunakan total dua akselerator H100.

    Tip

    Mulailah dengan capacity: 1 untuk penerapan awal, lalu tingkatkan skala dengan menambah kapasitas setelah mengukur beban kerja. Lihat Mengelola dan menskalakan penyebaran tentang cara meningkatkan kapasitas.

  7. Pilih kotak centang untuk mengakui biaya penyebaran.

  8. Pilih Sebarkan. Pemfasilitasan biasanya memakan waktu 10 hingga 15 menit.

Verifikasi proses penyebaran

Halaman detail deployment berubah dari Creating menjadi Succeeded saat model aktif di balik endpoint Foundry. Anda dapat melihat detail tentang penyebaran, termasuk status provisi, jenis penyebaran, dan pilihan lain yang Anda buat saat membuat penyebaran.

Mengirim permintaan pengujian

Ketika penyebaran siap, uji secara interaktif di Foundry Playground.

  1. Pilih tab Playground untuk beralih ke tab tersebut dari halaman Detail deployment.
  2. Kirim perintah untuk menguji penyebaran.

Memantau penyebaran

Penyebaran komputasi terkelola menghasilkan metrik di Azure Monitor yang sama seperti penyebaran Foundry lainnya. Dari halaman detail penyebaran di portal Foundry, tab Monitor memperlihatkan:

  • Jumlah permintaan dikelompokkan menurut kode status HTTP.
  • Persentil waktu respons (p50, p90, p99).
  • Untuk model penyelesaian obrolan: jumlah token input dan output, persentil time-to-first-token (TTFT), dan persentil waktu dekode antar-token.

Untuk analisis atau peringatan yang lebih mendalam, buka penyebaran di portal Azure dan gunakan Metrics di bawah Monitoring untuk membuat bagan metrik, mengelompokkan berdasarkan penyebaran, dan mengonfigurasi pemberitahuan yang sama. Tag penagihan per deployment dibuat secara otomatis. Filter Cost Management menurut tag penyebaran untuk mengaitkan pengeluaran ke penyebaran komputasi terkelola tertentu. Untuk detailnya, lihat Plan dan kelola biaya untuk Microsoft Foundry.

Menghapus penerapan

Menghapus deployment akan membebaskan alokasi akselerator dan segera menghentikan penagihan. Untuk menghapus deployment:

  1. Buka daftar penyebaran di portal Foundry.
  2. Pilih tombol radio di samping nama penyebaran Anda.
  3. Di panel kanan, pilih Hapus.

Minta lebih banyak kuota

Kuota komputasi terkelola diberikan per keluarga akselerator per wilayah melalui proses kuota Foundry dan pisahkan dari kuota VM Azure. Kuota VM Azure yang ada tidak dapat diterapkan ke penyebaran komputasi terkelola.

Untuk meminta lebih banyak kuota:

  1. Pilih Kelola di navigasi kanan atas, lalu pilih Kuota di panel kiri.
  2. Pilih tab Komputasi terkelola . Tabel mencantumkan alokasi saat ini yang dikelompokkan menurut keluarga dan wilayah akselerator.
  3. Pilih Minta kuota di sudut kanan atas.
  4. Dalam formulir permintaan, pilih keluarga akselerator (A100, H100, atau MI300X), wilayah target, dan kuota yang diminta. Kirim permintaan.

Izinkan hingga 15 menit agar perubahan kuota yang disetujui disebarluaskan. Refresh halaman Kuota untuk memverifikasi alokasi yang diperbarui. Untuk informasi selengkapnya tentang konsep kuota, lihat Mengelola dan meningkatkan kuota untuk sumber daya.

Gunakan skrip Python berikut untuk menyebarkan model. Ganti placeholder dengan ID langganan, grup sumber daya, nama akun Foundry, dan nama deployment Anda sendiri.

Tip

Mulailah dengan capacity: 1 untuk penerapan awal, lalu tingkatkan skala dengan menambah kapasitas setelah mengukur beban kerja. Lihat Mengelola dan menskalakan penyebaran tentang cara meningkatkan kapasitas.

from azure.identity import DefaultAzureCredential
from azure.mgmt.cognitiveservices import CognitiveServicesManagementClient

SUBSCRIPTION_ID  = "<your-subscription-id>"
RESOURCE_GROUP   = "<your-resource-group>"
ACCOUNT_NAME     = "<your-foundry-account>"
DEPLOYMENT_NAME  = "nemotron-3-nano-30b"

MODEL = "azureml://registries/azure-huggingface/models/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8/versions/2"
TEMPLATE = "azureml://registries/azure-huggingface/deploymenttemplates/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8--nvidia-h100/labels/latest"

client = CognitiveServicesManagementClient(
    DefaultAzureCredential(), SUBSCRIPTION_ID
)

deployment = client.managed_compute_deployments.begin_create_or_update(
    resource_group_name=RESOURCE_GROUP,
    account_name=ACCOUNT_NAME,
    deployment_name=DEPLOYMENT_NAME,
    resource={
        "sku": {"name": "GlobalManagedCompute", "capacity": 1},
        "properties": {
            "model": MODEL,
            "deploymentTemplate": TEMPLATE,
            "acceleratorType": "H100_80GB",
            "versionUpgradeOption": "OnceNewDefaultVersionAvailable",
        },
    },
).result()  # blocks until terminal state (~10–15 min)

print(f"State: {deployment.properties.provisioning_state}")
print(f"ID:    {deployment.id}")

Verifikasi proses penyebaran

Setelah deployment dibuat, pastikan deployment tersebut dalam kondisi sehat sebelum mengarahkan trafik.

d = client.managed_compute_deployments.get(
    resource_group_name=RESOURCE_GROUP,
    account_name=ACCOUNT_NAME,
    deployment_name=DEPLOYMENT_NAME,
)

print(f"State:        {d.properties.provisioning_state}")    # expect: Succeeded
print(f"Model:        {d.properties.model}")
print(f"Template:     {d.properties.deployment_template}")
print(f"Accelerator:  {d.properties.accelerator_type}")
print(f"Capacity:     {d.sku.capacity}")

Cari:

  • provisioningState: Succeeded berarti deployment sudah aktif.
  • acceleratorType cocok dengan nilai yang Anda minta.
  • sku.capacity cocok dengan jumlah instans yang Anda minta.

Jika provisioningState adalah Failed, lihat Pemecahan Masalah.

Mengirim permintaan pengujian

Penyebaran komputasi terkelola dapat dijangkau melalui titik akhir Foundry terpadu di:

https://<account>.services.ai.azure.com/openai/v1/

Bidang model dalam isi permintaan mengambil nama penyebaran yang Anda tentukan, bukan ID model.

from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import OpenAI

ACCOUNT_NAME    = "<your-foundry-account>"
DEPLOYMENT_NAME = "nemotron-3-nano-30b"

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(),
    "https://cognitiveservices.azure.com/.default",
)

client = OpenAI(
    base_url=f"https://{ACCOUNT_NAME}.services.ai.azure.com/openai/v1",
    api_key="placeholder",  # required by OpenAI SDK; overridden by Authorization header
    default_headers={"Authorization": f"Bearer {token_provider()}"},
)

resp = client.chat.completions.create(
    model=DEPLOYMENT_NAME,
    messages=[{"role": "user", "content": "What is the capital of France?"}],
)

print(resp.choices[0].message.content)

Memanggil penyebaran dengan Microsoft Entra ID memerlukan peran Azure AI User pada akun Foundry.

Mengelola dan menskalakan penyebaran

Karena penyebaran komputasi terkelola bersifat sentris model, Anda menskalakan penyebaran dengan mengubah jumlah instans model, bukan dengan mengukur node.

Ubah kapasitas

d = client.managed_compute_deployments.get(
    RESOURCE_GROUP, ACCOUNT_NAME, DEPLOYMENT_NAME
)
d.sku.capacity = 3

client.managed_compute_deployments.begin_create_or_update(
    resource_group_name=RESOURCE_GROUP,
    account_name=ACCOUNT_NAME,
    deployment_name=DEPLOYMENT_NAME,
    resource=d,
).result()

Menerima pembaruan runtime dan model

Mengatur versionUpgradeOption ke OnceNewDefaultVersionAvailable pada deployment membuat deployment tersebut menggunakan model default dan versi runtime baru saat Microsoft menerbitkannya. Patch runtime dan perbaikan CVE diterapkan secara otomatis pada deployment pelanggan yang aktif; Anda tidak perlu men-deploy ulang model untuk mendapatkan pembaruan tersebut.

Memantau penyebaran

Penyebaran komputasi terkelola menghasilkan metrik di Azure Monitor yang sama seperti penyebaran Foundry lainnya. Untuk analisis atau pemberitahuan yang lebih mendalam, buka penyebaran di portal Azure dan gunakan Metrics di bawah Monitoring untuk membuat metrik seperti:

  • Jumlah permintaan dikelompokkan menurut kode status HTTP.
  • Persentil waktu respons (p50, p90, p99).
  • Untuk model penyelesaian obrolan: jumlah token input dan output, persentil time-to-first-token (TTFT), dan persentil waktu dekode antar-token.

Anda juga dapat mengelompokkan menurut penyebaran dan mengonfigurasi pemberitahuan. Tag penagihan per deployment dibuat secara otomatis. Filter Cost Management menurut tag penyebaran untuk mengaitkan pengeluaran ke penyebaran komputasi terkelola tertentu. Untuk detailnya, lihat Plan dan kelola biaya untuk Microsoft Foundry.

Menghapus penerapan

Menghapus deployment akan membebaskan alokasi akselerator dan segera menghentikan penagihan. Untuk menghapus deployment:

client.managed_compute_deployments.begin_delete(
    resource_group_name=RESOURCE_GROUP,
    account_name=ACCOUNT_NAME,
    deployment_name=DEPLOYMENT_NAME,
).result()

Ringkasan kontrol akses

Action Peran minimum
Membuat, memperbarui, atau menghapus penyebaran komputasi terkelola Kontributor Cognitive Services (atau Pemilik Foundry/Pemilik Akun Foundry) di akun Foundry
Membaca penyebaran atau daftar penyebaran Pengguna Cognitive Services, Pengguna Foundry, Manajer Proyek Foundry, atau peran mana pun di atas
Mengakses deployment dengan Microsoft Entra ID Pengguna Foundry di akun Foundry
Panggil deployment dengan kunci API Kunci akun (tidak ada peran Azure yang diperlukan untuk panggilan itu sendiri; pengambilan kunci memerlukan akses baca)

Untuk daftar lengkap operasi penyedia sumber daya Azure, matriks peran-ke-izin, dan perbandingan dengan penyebaran standar, lihat Kontrol akses berbasis peran untuk Microsoft Foundry — operasi bidang kontrol komputasi terkelola.

Troubleshooting

provisioningState: Failed

Konfirmasikan bahwa keluarga akselerator yang diminta telah menyetujui kuota di wilayah target, dan bahwa templat penyebaran yang dipilih mencantumkan keluarga akselerator. Model dan templat penyebaran yang tidak cocok, misalnya, templat yang diterbitkan untuk versi model yang berbeda, adalah penyebab umum. Pastikan kedua referensi merujuk ke aset registri yang valid di registri azure-huggingface.

"Kuota terlampaui" saat pembuatan

Akun Foundry tidak memiliki kuota komputasi terkelola yang cukup di wilayah untuk keluarga akselerator yang diminta. Minta lebih banyak kuota. Azure kuota VM tidak berlaku untuk komputasi terkelola.

"Kapasitas tidak mencukupi" di wilayah

Wilayah tersebut tidak memiliki kapasitas untuk keluarga akselerator yang diminta. Coba keluarga yang berbeda (misalnya, sebarkan pada MI300X alih-alih H100), pilih templat dengan akselerator yang lebih sedikit per instans, atau targetkan wilayah yang berbeda. Keluarga memori yang lebih besar seperti MI300X sering memiliki kapasitas untuk model yang tidak cocok pada A100.

404 dari rute /openai/v1/

Jika permintaan penyelesaian obrolan untuk https://<account>.services.ai.azure.com/openai/v1/chat/completions mengembalikan 404, verifikasi bahwa:

  • Nama penerapan dalam bodi permintaan cocok dengan penerapan yang Anda buat.
  • Penyebarannya provisioningState adalah Succeeded.
  • Runtime model menyediakan penyelesaian chat. Beberapa runtime (misalnya, TEI untuk penyematan) tidak mengekspos rute penyelesaian obrolan; gunakan rute yang didokumenkan pada kartu model sebagai gantinya.

Penerapan terjebak di Creating selama lebih dari 20 menit

Beberapa model yang lebih besar membutuhkan waktu lebih lama dari biasanya 10-15 menit untuk muncul. Jika provisioningState masih Creating setelah 20 menit, periksa halaman detail penyebaran di portal Foundry untuk melihat pesan status operasi, dan pastikan region dasarnya tidak mengalami degradasi. Jika deployment tetap berada dalam status Creating selama lebih dari 30 menit tanpa pesan operasi, hapus deployment tersebut lalu coba lagi. Penyediaan bersifat idempoten berdasarkan nama deployment.