Megosztás a következőn keresztül:


Modell profilja az erőforrás-kihasználtság meghatározásához

ÉRVÉNYES:Azure CLI ml-bővítmény v1Python SDK azureml v1

Ez a cikk bemutatja, hogyan profilozza a gépi tanulást a modellhez annak meghatározásához, hogy mennyi processzort és memóriát kell lefoglalnia a modellhez webszolgáltatásként való üzembe helyezéskor.

Fontos

Ez a cikk a CLI 1- és SDK-v1-re vonatkozik. Ez a profilkészítési technika nem érhető el a CLI vagy az SDK 2-s verziójához.

Fontos

A cikkben szereplő Azure CLI-parancsok némelyike az azure-cli-mlAzure Machine Learning bővítményét vagy v1-et használja. A v1-bővítmény támogatása 2025. szeptember 30-án megszűnik. Addig a dátumig telepítheti és használhatja a v1-bővítményt.

Javasoljuk, hogy 2025. szeptember 30-a előtt váltsa át a ml(vagy v2) bővítményt. További információ a v2-es bővítményről: Azure ML CLI-bővítmény és Python SDK v2.

Előfeltételek

Ez a cikk feltételezi, hogy betanított és regisztrált egy modellt az Azure Machine Learningben. Az itt látható minta oktatóanyag egy scikit-learn modell betanítására és regisztrálására mutat példát az Azure Machine Learningben.

Korlátozások

  • A profilkészítés nem fog működni, ha a munkaterületHez tartozó Azure Container Registry (ACR) egy virtuális hálózat mögött található.

A profilkészítő futtatása

Miután regisztrálta a modellt, és előkészítette az üzembe helyezéshez szükséges egyéb összetevőket, meghatározhatja, hogy az üzembe helyezett szolgáltatásnak milyen processzorra és memóriára lesz szüksége. A profilkészítés teszteli a modellt futtató szolgáltatást, és olyan információkat ad vissza, mint a processzorhasználat, a memóriahasználat és a válaszkésés. Emellett javaslatot tesz a processzorra és a memóriára az erőforrás-használat alapján.

A modell profilkészítéséhez a következőkre lesz szüksége:

  • Regisztrált modell.
  • Következtetéskonfiguráció az indítási szkript és a következtetési környezet definíciója alapján.
  • Egyoszlopos táblázatos adathalmaz, amelyben minden sor a minta kérési adatokat jelző sztringet tartalmaz.

Fontos

Ezen a ponton csak olyan szolgáltatások profilkészítését támogatjuk, amelyek elvárják, hogy a kérelem adatai sztringek legyenek, például: sztring szerializált json, szöveg, sztring szerializált kép stb. Az adathalmaz (sztring) egyes sorainak tartalma bekerül a HTTP-kérelem törzsébe, és elküldi a modellt pontozásra beágyazó szolgáltatásnak.

Fontos

Csak a ChinaEast2 és USGovArizona régióban legfeljebb 2 PROCESSZOR profilkészítését támogatjuk.

Az alábbi példa bemutatja, hogyan hozhat létre bemeneti adatkészletet egy olyan szolgáltatás profilozásához, amely elvárja, hogy a bejövő kérelem adatai szerializált JSON-t tartalmazzanak. Ebben az esetben létrehoztunk egy adathalmazon alapuló 100 példányt ugyanabból a kérelemadat-tartalomból. Valós helyzetekben azt javasoljuk, hogy használjon nagyobb, különböző bemeneteket tartalmazó adathalmazokat, különösen akkor, ha a modell erőforrás-kihasználtsága/viselkedése bemenetfüggő.

A KÖVETKEZŐKRE VONATKOZIK: 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)

Ha elkészült a mintakérési adatokat tartalmazó adatkészlet, hozzon létre egy következtetési konfigurációt. A következtetés konfigurálása a score.py és a környezet definícióján alapul. Az alábbi példa bemutatja, hogyan hozhatja létre a következtetési konfigurációt és futtathatja a profilkészítést:

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()

A KÖVETKEZŐRE VONATKOZIK: Azure CLI ml-bővítmény 1-es verzió

Az alábbi parancs bemutatja, hogyan lehet profilt létrehozni egy modellről a parancssori felület használatával:

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>

Tipp.

A profilkészítés által visszaadott információk megőrzéséhez használjon címkéket vagy tulajdonságokat a modellhez. A címkék vagy tulajdonságok használata tárolja az adatokat a modelllel a modellregisztrációs adatbázisban. Az alábbi példák egy új címkét adnak hozzá, amely tartalmazza az requestedCpu adatokat:requestedMemoryInGb

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

Következő lépések