Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO:
Rozšíření Azure CLI ml v1Python SDK azureml v1
Důležité
Tento článek poskytuje informace o použití Azure Machine Learning SDK verze 1. Sada SDK v1 je od 31. března 2025 zastaralá. Podpora bude ukončena 30. června 2026. Do tohoto data můžete nainstalovat a používat sadu SDK v1. Vaše stávající pracovní postupy využívající sadu SDK v1 budou fungovat i po datu ukončení podpory. Mohou však být vystaveny bezpečnostním rizikům nebo zásadním změnám v případě změn architektury v produktu.
Doporučujeme přejít na SDK v2 před 30. červnem 2026. Další informace o sadě SDK v2 najdete v tématu Co je Azure Machine Learning CLI a Python SDK v2? a referenční informace k sadě SDK v2.
V tomto článku se dozvíte, jak profilovat strojové učení k modelování, abyste zjistili, kolik procesoru a paměti je potřeba pro model přidělit při nasazování jako webové služby.
Důležité
Tento článek se týká rozhraní příkazového řádku v1 a sady SDK verze 1. Tato technika profilace není dostupná pro rozhraní příkazového řádku nebo sadu SDK verze 2.
Důležité
Některé příkazy Azure CLI v tomto článku používají azure-cli-mlrozšíření (nebo v1) pro Azure Machine Learning. Podpora rozhraní příkazového řádku v1 skončila 30. září 2025. Společnost Microsoft již nebude poskytovat technickou podporu ani aktualizace této služby. Vaše stávající pracovní postupy využívající rozhraní příkazového řádku v1 budou fungovat i po datu ukončení podpory. Mohou však být vystaveny bezpečnostním rizikům nebo zásadním změnám v případě změn architektury v produktu.
Doporučujeme, abyste co nejdříve přešli na rozšíření ml, tedy v2. Další informace o rozšíření v2 najdete v tématu Rozšíření Azure Machine Learning CLI a Python SDK v2.
Požadavky
Tento článek předpokládá, že vytrénujete a zaregistrujete model ve službě Azure Machine Learning. Příklad trénování a registrace modelu scikit-learn ve službě Azure Machine Learning najdete v tomto ukázkovém kurzu.
Omezení
- Profilace nefunguje, když je Azure Container Registry (ACR) pro váš pracovní prostor za virtuální sítí.
Spuštění profileru
Jakmile zaregistrujete model a připravíte další komponenty potřebné pro jeho nasazení, můžete určit procesor a paměť, které nasazená služba potřebuje. Profilace testuje službu, která spouští váš model, a vrací informace, jako je využití procesoru, využití paměti a latence odezvy. Poskytuje také doporučení pro procesor a paměť na základě využití prostředků.
K profilování modelu potřebujete:
- Registrovaný model.
- Konfigurace odvozování založená na zaváděcím skriptu a definici prostředí pro odvozování.
- Tabulková datová sada s jedním sloupcem, kde každý řádek obsahuje řetězec představující ukázková data požadavku.
Důležité
Azure Machine Learning podporuje pouze profilaci služeb, které očekávají, že jejich data požadavku budou řetězcem, například řetězec serializovaný json, text, serializovaný obrázek řetězce atd. Obsah každého řádku datové sady (řetězec) se vloží do textu požadavku HTTP a odešle do služby zapouzdření modelu pro bodování.
Důležité
Profilaci podporujeme pouze 2 procesory v oblasti ChinaEast2 a USGovArizona.
Následuje příklad, jak můžete vytvořit vstupní datovou sadu pro profilování služby, která očekává, že data příchozích požadavků budou obsahovat serializovaný json. V tomto případě jsme vytvořili datovou sadu založenou na 100 instancích stejného obsahu dat požadavku. Ve scénářích reálného světa doporučujeme používat větší datové sady obsahující různé vstupy, zejména pokud je využití a chování prostředků modelu závislé na vstupu.
PLATÍ PRO:
Azure Machine Learning SDK v1 pro Python
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)
Jakmile máte datovou sadu obsahující ukázková data požadavku připravená, vytvořte konfiguraci odvozování. Konfigurace odvozování je založená na score.py a definici prostředí. Následující příklad ukazuje, jak vytvořit konfiguraci odvozování a spustit profilaci:
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()
PLATÍ PRO:
Rozšíření Azure CLI ml v1
Následující příkaz ukazuje, jak profilovat model pomocí rozhraní příkazového řádku:
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>
Návod
Chcete-li zachovat informace vrácené profilací, použijte značky nebo vlastnosti modelu. Použití značek nebo vlastností ukládá data s modelem v registru modelu. Následující příklady ukazují přidání nové značky obsahující tyto requestedCpu informace 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
Další kroky
- Řešení potíží s neúspěšným nasazením
- Nasazení do služby Azure Kubernetes Service
- Vytváření klientských aplikací pro využívání webových služeb
- Aktualizace webové služby
- Nasazení modelu pomocí vlastní image Dockeru
- Zabezpečení webové služby prostřednictvím služby Azure Machine Learning s využitím protokolu TLS
- Monitorování modelů Azure Machine Learning pomocí Application Insights
- Shromažďování dat pro modely v produkčním prostředí
- Vytváření upozornění a triggerů událostí pro nasazení modelů