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-ml
Azure 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
- Sikertelen üzembe helyezés hibaelhárítása
- Üzembe helyezés az Azure Kubernetes Service-ben
- Ügyfélalkalmazások létrehozása webszolgáltatások használatához
- Webszolgáltatás frissítése
- Modell üzembe helyezése egyéni Docker-rendszerkép használatával
- TLS használata webszolgáltatás védelméhez az Azure Machine Learning szolgáltatás segítségével
- Azure Machine Learning-modellek monitorozása az Application Insights használatával
- Adatok gyűjtése éles modellekhez
- Eseményriasztások és eseményindítók létrehozása modelltelepítésekhez