Bagikan melalui


Cara menyebarkan dan menyimpulkan penyebaran komputasi terkelola dengan kode

Katalog model AI Studio menawarkan lebih dari 1.600 model, dan cara paling umum untuk menyebarkan model ini adalah dengan menggunakan opsi penyebaran komputasi terkelola, yang juga kadang-kadang disebut sebagai penyebaran online terkelola.

Penyebaran model bahasa besar (LLM) membuatnya tersedia untuk digunakan di situs web, aplikasi, atau lingkungan produksi lainnya. Penyebaran biasanya melibatkan hosting model di server atau di cloud dan membuat API atau antarmuka lain bagi pengguna untuk berinteraksi dengan model. Anda dapat memanggil penyebaran untuk inferensi real time aplikasi AI generatif seperti obrolan dan salinan.

Dalam artikel ini, Anda mempelajari cara menyebarkan model menggunakan Azure Pembelajaran Mesin SDK. Artikel ini juga membahas cara melakukan inferensi pada model yang disebarkan.

Mendapatkan ID model

Anda dapat menyebarkan model komputasi terkelola menggunakan Azure Pembelajaran Mesin SDK, tetapi pertama-tama, mari kita telusuri katalog model dan dapatkan ID model yang Anda butuhkan untuk penyebaran.

  1. Masuk ke AI Studio dan buka halaman Beranda .

  2. Pilih Katalog model dari bilah sisi kiri.

  3. Di filter Opsi penyebaran, pilih Komputasi terkelola.

    Cuplikan layar memperlihatkan cara memfilter berdasarkan model komputasi terkelola dalam katalog.

  4. Pilih model.

  5. Salin ID model dari halaman detail model yang Anda pilih. Ini terlihat seperti ini: azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/16

Menyebarkan model

Mari kita sebarkan model.

Pertama, Anda perlu menginstal Azure Pembelajaran Mesin SDK.

pip install azure-ai-ml
pip install azure-identity

Gunakan kode ini untuk mengautentikasi dengan Azure Pembelajaran Mesin dan membuat objek klien. Ganti tempat penampung dengan ID langganan, nama grup sumber daya, dan nama proyek AI Studio Anda.

from azure.ai.ml import MLClient
from azure.identity import InteractiveBrowserCredential

client = MLClient(
    credential=InteractiveBrowserCredential,
    subscription_id="your subscription name goes here",
    resource_group_name="your resource group name goes here",
    workspace_name="your project name goes here",
)

Untuk opsi penyebaran komputasi terkelola, Anda perlu membuat titik akhir sebelum penyebaran model. Anggap titik akhir sebagai kontainer yang dapat menampung beberapa penyebaran model. Nama titik akhir harus unik di suatu wilayah, jadi dalam contoh ini kita menggunakan tanda waktu untuk membuat nama titik akhir yang unik.

import time, sys
from azure.ai.ml.entities import (
    ManagedOnlineEndpoint,
    ManagedOnlineDeployment,
    ProbeSettings,
)

# Make the endpoint name unique
timestamp = int(time.time())
online_endpoint_name = "customize your endpoint name here" + str(timestamp)

# Create an online endpoint
endpoint = ManagedOnlineEndpoint(
    name=online_endpoint_name,
    auth_mode="key",
)
workspace_ml_client.begin_create_or_update(endpoint).wait()

Buat penyebaran. Anda dapat menemukan ID model di katalog model.

model_name = "azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/16" 

demo_deployment = ManagedOnlineDeployment(
    name="demo",
    endpoint_name=online_endpoint_name,
    model=model_name,
    instance_type="Standard_DS3_v2",
    instance_count=2,
    liveness_probe=ProbeSettings(
        failure_threshold=30,
        success_threshold=1,
        timeout=2,
        period=10,
        initial_delay=1000,
    ),
    readiness_probe=ProbeSettings(
        failure_threshold=10,
        success_threshold=1,
        timeout=10,
        period=10,
        initial_delay=1000,
    ),
)
workspace_ml_client.online_deployments.begin_create_or_update(demo_deployment).wait()
endpoint.traffic = {"demo": 100}
workspace_ml_client.begin_create_or_update(endpoint).result()

Inferensi penyebaran

Anda memerlukan sampel data json untuk menguji inferensi. Buat sample_score.json dengan contoh berikut.

{
  "inputs": {
    "question": [
      "Where do I live?",
      "Where do I live?",
      "What's my name?",
      "Which name is also used to describe the Amazon rainforest in English?"
    ],
    "context": [
      "My name is Wolfgang and I live in Berlin",
      "My name is Sarah and I live in London",
      "My name is Clara and I live in Berkeley.",
      "The Amazon rainforest (Portuguese: Floresta Amaz\u00f4nica or Amaz\u00f4nia; Spanish: Selva Amaz\u00f3nica, Amazon\u00eda or usually Amazonia; French: For\u00eat amazonienne; Dutch: Amazoneregenwoud), also known in English as Amazonia or the Amazon Jungle, is a moist broadleaf forest that covers most of the Amazon basin of South America. This basin encompasses 7,000,000 square kilometres (2,700,000 sq mi), of which 5,500,000 square kilometres (2,100,000 sq mi) are covered by the rainforest. This region includes territory belonging to nine nations. The majority of the forest is contained within Brazil, with 60% of the rainforest, followed by Peru with 13%, Colombia with 10%, and with minor amounts in Venezuela, Ecuador, Bolivia, Guyana, Suriname and French Guiana. States or departments in four nations contain \"Amazonas\" in their names. The Amazon represents over half of the planet's remaining rainforests, and comprises the largest and most biodiverse tract of tropical rainforest in the world, with an estimated 390 billion individual trees divided into 16,000 species."
    ]
  }
}

Mari kita inferensi dengan sample_score.json. Ubah lokasi berdasarkan tempat Anda menyimpan sampel file json Anda.

scoring_file = "./sample_score.json" 
response = workspace_ml_client.online_endpoints.invoke(
    endpoint_name=online_endpoint_name,
    deployment_name="demo",
    request_file=scoring_file,
)
response_json = json.loads(response)
print(json.dumps(response_json, indent=2))

Menghapus titik akhir penyebaran

Untuk menghapus penyebaran di AI Studio, pilih tombol Hapus di panel atas halaman detail penyebaran.

Pertimbangan kuota

Untuk menyebarkan dan melakukan inferensi dengan titik akhir real time, Anda menggunakan kuota inti Komputer Virtual (VM) yang ditetapkan ke langganan Anda berdasarkan per wilayah. Saat mendaftar ke AI Studio, Anda menerima kuota VM default untuk beberapa keluarga VM yang tersedia di wilayah tersebut. Anda dapat terus membuat penyebaran hingga mencapai batas kuota Anda. Setelah itu terjadi, Anda dapat meminta penambahan kuota.

Langkah berikutnya