Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY:
Rozszerzenie interfejsu wiersza polecenia platformy Azure ml w wersji 1zestawu SDK języka Python azureml v1
Ważne
Ten artykuł zawiera informacje na temat korzystania z zestawu Azure Machine Learning SDK w wersji 1. Zestaw SDK w wersji 1 jest przestarzały od 31 marca 2025 r. Wsparcie dla niego zakończy się 30 czerwca 2026 r. Do tej pory można zainstalować zestaw SDK w wersji 1 i używać go. Istniejące przepływy pracy korzystające z zestawu SDK w wersji 1 będą nadal działać po dacie zakończenia pomocy technicznej. Mogą one jednak być narażone na zagrożenia bezpieczeństwa lub niespójności w przypadku zmian architektury w produkcie.
Zalecamy przejście do zestawu SDK w wersji 2 przed 30 czerwca 2026 r. Aby uzyskać więcej informacji na temat zestawu SDK w wersji 2, zobacz Co to jest interfejs wiersza polecenia usługi Azure Machine Learning i zestaw Python SDK w wersji 2? oraz dokumentacja zestawu SDK w wersji 2.
W tym artykule pokazano, jak profilować uczenie maszynowe w celu określenia, ile procesora CPU i pamięci należy przydzielić dla modelu podczas wdrażania go jako usługi internetowej.
Ważne
Ten artykuł dotyczy interfejsu wiersza polecenia w wersji 1 i zestawu SDK w wersji 1. Ta technika profilowania nie jest dostępna ani w wersji 2 interfejsu wiersza polecenia (CLI), ani zestawu SDK.
Ważne
Niektóre polecenia interfejsu wiersza polecenia platformy Azure w tym artykule używają azure-cli-mlrozszerzenia , lub w wersji 1 dla usługi Azure Machine Learning. Obsługa CLI w wersji 1 zakończyła się 30 września 2025 roku. Firma Microsoft nie będzie już zapewniać pomocy technicznej ani aktualizacji dla tej usługi. Istniejące przepływy pracy korzystające z interfejsu wiersza polecenia w wersji 1 będą nadal działać po dacie zakończenia pomocy technicznej. Mogą one jednak być narażone na zagrożenia bezpieczeństwa lub niespójności w przypadku zmian architektury w produkcie.
Zalecamy jak najszybsze przejście do ml, czyli rozszerzenia w wersji v2. Aby uzyskać więcej informacji na temat rozszerzenia w wersji 2, zobacz Rozszerzenie interfejsu wiersza polecenia usługi Azure Machine Learning i zestaw Python SDK w wersji 2.
Wymagania wstępne
W tym artykule założono, że wytrenujesz i zarejestrujesz model w usłudze Azure Machine Learning. Zapoznaj się z przykładowym samouczkiem tutaj , aby zapoznać się z przykładem trenowania i rejestrowania modelu scikit-learn w usłudze Azure Machine Learning.
Ograniczenia
- Profilowanie nie działa, gdy usługa Azure Container Registry (ACR) dla obszaru roboczego znajduje się za siecią wirtualną.
Uruchamianie profilera
Po zarejestrowaniu modelu i przygotowaniu innych składników niezbędnych do jego wdrożenia można określić procesor i pamięć potrzebną przez wdrożoną usługę. Profilowanie testuje usługę, która uruchamia model i zwraca informacje, takie jak użycie procesora CPU, użycie pamięci i opóźnienie odpowiedzi. Zawiera również zalecenie dotyczące procesora CPU i pamięci na podstawie użycia zasobów.
Aby profilować model, potrzebujesz:
- Zarejestrowany model.
- Konfiguracja wnioskowania na podstawie skryptu wejściowego i definicji środowiska wnioskowania.
- Jednokolumnowy tabelaryczny zestaw danych, w którym każdy wiersz zawiera ciąg reprezentujący przykładowe dane żądania.
Ważne
Usługa Azure Machine Learning obsługuje tylko profilowanie usług, które oczekują, że ich dane żądań będą ciągiem, na przykład: ciąg zserializowany jako JSON, tekst, ciąg zserializowany jako obraz, itp. Zawartość każdego wiersza zestawu danych (ciąg) jest umieszczana w treści żądania HTTP i wysyłana do usługi zawierającej model do oceny.
Ważne
Obsługujemy profilowanie do 2 procesorów CPU w regionie ChinaEast2 i USGovArizona.
Poniżej przedstawiono przykład tworzenia wejściowego zestawu danych w celu profilowania usługi, która oczekuje, że dane żądania przychodzącego będą zawierać serializowany kod json. W tym przypadku utworzyliśmy zestaw danych na podstawie 100 wystąpień tej samej zawartości danych żądania. W rzeczywistych scenariuszach sugerujemy użycie większych zestawów danych zawierających różne dane wejściowe, zwłaszcza jeśli użycie/zachowanie zasobu modelu jest zależne od danych wejściowych.
DOTYCZY:
SDK v1 usługi Azure Machine Learning dla języka 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)
Po uzyskaniu zestawu danych zawierającego przykładowe dane żądania utwórz konfigurację wnioskowania. Konfiguracja wnioskowania jest oparta na score.py i definicji środowiska. W poniższym przykładzie pokazano, jak utworzyć konfigurację wnioskowania i uruchomić profilowanie:
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()
DOTYCZY:
Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 1
Następujące polecenie pokazuje, jak profilować model przy użyciu interfejsu wiersza polecenia:
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>
Napiwek
Aby utrwały informacje zwracane przez profilowanie, użyj tagów lub właściwości modelu. Użycie tagów lub właściwości przechowuje dane z modelem w rejestrze modeli. W poniższych przykładach pokazano dodawanie nowego tagu zawierającego requestedCpu informacje i 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
Następne kroki
- Rozwiązywanie problemów z niepowodzeniem wdrożenia
- Wdrażanie w usłudze Azure Kubernetes Service
- Tworzenie aplikacji klienckich do korzystania z usług internetowych
- Aktualizowanie usługi internetowej
- Jak wdrożyć model przy użyciu niestandardowego obrazu platformy Docker
- Zabezpieczanie usługi internetowej za pomocą usługi Azure Machine Learning przy użyciu protokołu TLS
- Monitorowanie modeli usługi Azure Machine Learning za pomocą usługi Application Insights
- Zbieranie danych dla modeli w środowisku produkcyjnym
- Tworzenie alertów zdarzeń i wyzwalaczy dla wdrożeń modelu