Share via


Kaynak kullanımını belirlemek için modelinizin profilini oluşturma

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v1Python SDK azureml v1

Bu makalede, modeli web hizmeti olarak dağıtırken ne kadar CPU ve bellek ayırmanız gerekeceğini belirlemek üzere modele yönelik bir makine öğrenmesinin profilinin nasıl alınacağı gösterilmektedir.

Önemli

Bu makale CLI v1 ve SDK v1 için geçerlidir. Bu profil oluşturma tekniği CLI veya SDK'nın v2'sinde kullanılamaz.

Önemli

Bu makaledeki Azure CLI komutlarından bazıları Azure Machine Learning için uzantısını veya v1'i kullanır azure-cli-ml. v1 uzantısı desteği 30 Eylül 2025'te sona erecektir. Bu tarihe kadar v1 uzantısını yükleyip kullanabilirsiniz.

30 Eylül 2025'e mlkadar , veya v2 uzantısına geçmenizi öneririz. v2 uzantısı hakkında daha fazla bilgi için bkz. Azure ML CLI uzantısı ve Python SDK v2.

Önkoşullar

Bu makalede, Azure Machine Learning ile bir modeli eğitip kaydettiğiniz varsayılır. Azure Machine Learning ile scikit-learn modelini eğitip kaydetme örneği için buradaki örnek öğreticiye bakın.

Sınırlamalar

  • Çalışma alanınız için Azure Container Registry (ACR) bir sanal ağın arkasında olduğunda profil oluşturma çalışmaz.

Profil oluşturucuyu çalıştırma

Modelinizi kaydettikten ve dağıtımı için gerekli diğer bileşenleri hazırladıktan sonra, dağıtılan hizmetin ihtiyaç duyacağı CPU ve belleği belirleyebilirsiniz. Profil oluşturma modelinizi çalıştıran hizmeti test ederek CPU kullanımı, bellek kullanımı ve yanıt gecikme süresi gibi bilgileri döndürür. Ayrıca, kaynak kullanımına göre CPU ve bellek için bir öneri sağlar.

Modelinizin profilini yapmak için şunları yapmanız gerekir:

  • Kayıtlı bir model.
  • Giriş betiği ve çıkarım ortamı tanımınızı temel alan bir çıkarım yapılandırması.
  • Her satırın örnek istek verilerini temsil eden bir dize içerdiği, tek sütunlu bir tablo veri kümesi.

Önemli

Bu noktada yalnızca istek verilerinin dize olmasını bekleyen hizmetlerin profil oluşturmasını destekliyoruz, örneğin: dize serileştirilmiş json, metin, dize serileştirilmiş görüntüsü vb. Veri kümesinin (dize) her satırının içeriği HTTP isteğinin gövdesine konur ve modeli puanlama için kapsülleyerek hizmete gönderilir.

Önemli

ÇinEast2 ve USGovArizona bölgesinde yalnızca 2 CPU'ya kadar profil oluşturmayı destekliyoruz.

Gelen istek verilerinin serileştirilmiş json içermesini bekleyen bir hizmetin profilini oluşturmak için giriş veri kümesini nasıl oluşturabileceğinize ilişkin bir örnek aşağıda verilmiştir. Bu örnekte, aynı istek veri içeriğinin 100 örneğini temel alan bir veri kümesi oluşturduk. Gerçek dünya senaryolarında, özellikle model kaynağı kullanımınız/davranışınız girişe bağımlıysa, çeşitli girişler içeren daha büyük veri kümeleri kullanmanızı öneririz.

ŞUNLAR IÇIN GEÇERLIDIR:Python SDK azureml v1

import json
from azureml.core import Datastore
from azureml.core.dataset import Dataset
from azureml.data import dataset_type_definitions

input_json = {'data': [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                       [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]]}
# create a string that can be utf-8 encoded and
# put in the body of the request
serialized_input_json = json.dumps(input_json)
dataset_content = []
for i in range(100):
    dataset_content.append(serialized_input_json)
dataset_content = '\n'.join(dataset_content)
file_name = 'sample_request_data.txt'
f = open(file_name, 'w')
f.write(dataset_content)
f.close()

# upload the txt file created above to the Datastore and create a dataset from it
data_store = Datastore.get_default(ws)
data_store.upload_files(['./' + file_name], target_path='sample_request_data')
datastore_path = [(data_store, 'sample_request_data' +'/' + file_name)]
sample_request_data = Dataset.Tabular.from_delimited_files(
    datastore_path, separator='\n',
    infer_column_types=True,
    header=dataset_type_definitions.PromoteHeadersBehavior.NO_HEADERS)
sample_request_data = sample_request_data.register(workspace=ws,
                                                   name='sample_request_data',
                                                   create_new_version=True)

Örnek istek verilerini içeren veri kümesini hazırladıktan sonra bir çıkarım yapılandırması oluşturun. Çıkarım yapılandırması, score.py ve ortam tanımını temel alır. Aşağıdaki örnekte çıkarım yapılandırmasının nasıl oluşturulacağı ve profil oluşturmanın nasıl çalıştıracağı gösterilmektedir:

from azureml.core.model import InferenceConfig, Model
from azureml.core.dataset import Dataset


model = Model(ws, id=model_id)
inference_config = InferenceConfig(entry_script='path-to-score.py',
                                   environment=myenv)
input_dataset = Dataset.get_by_name(workspace=ws, name='sample_request_data')
profile = Model.profile(ws,
            'unique_name',
            [model],
            inference_config,
            input_dataset=input_dataset)

profile.wait_for_completion(True)

# see the result
details = profile.get_details()

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v1

Aşağıdaki komut, CLI kullanarak bir modelin profilinin nasıl yapılacağını gösterir:

az ml model profile -g <resource-group-name> -w <workspace-name> --inference-config-file <path-to-inf-config.json> -m <model-id> --idi <input-dataset-id> -n <unique-name>

İpucu

Profil oluşturma tarafından döndürülen bilgileri kalıcı hale getirmek için modelin etiketlerini veya özelliklerini kullanın. Etiketlerin veya özelliklerin kullanılması, verileri model kayıt defterinde modelle birlikte depolar. Aşağıdaki örneklerde ve requestedMemoryInGb bilgilerini içeren yeni bir etiket ekleme gösterilmektedirrequestedCpu:

model.add_tags({'requestedCpu': details['requestedCpu'],
                'requestedMemoryInGb': details['requestedMemoryInGb']})
az ml model profile -g <resource-group-name> -w <workspace-name> --i <model-id> --add-tag requestedCpu=1 --add-tag requestedMemoryInGb=0.5

Sonraki adımlar