Rozwiązywanie problemów z wdrażaniem modelu

Ukończone

Wdrożenie usługi obejmuje wiele elementów, w tym wytrenowany model, konfigurację środowiska uruchomieniowego, skrypt oceniania, obraz kontenera i hosta kontenera. Rozwiązywanie problemów z nieudanym wdrożeniem lub błędem podczas korzystania z wdrożonej usługi może być skomplikowane.

Sprawdzanie stanu usługi

W ramach pierwszego kroku rozwiązywania problemów możesz sprawdzić stan usługi:

from azureml.core.webservice import AksWebservice

# Get the deployed service
service = AksWebservice(name='classifier-service', workspace=ws)

# Check its state
print(service.state)

Uwaga

Aby wyświetlić stan usługi, należy użyć typu usługi specyficznego dla obliczeń (na przykład AksWebservice), a nie ogólnego obiektu WebService.

W przypadku usługi operacyjnej stan powinien wskazywać, że jest ona W dobrej kondycji.

Przeglądanie dzienników usługi

Jeśli usługa nie jest w dobrej kondycji lub występują błędy podczas korzystania z niej, możesz przejrzeć jej dzienniki:

print(service.get_logs())

Dzienniki zawierają szczegółowe informacje o aprowizacji usługi oraz przetworzonych przez nią żądaniach, i często mogą zapewnić szczegółowe informacje o przyczynie nieoczekiwanych błędów.

Wdrażanie w kontenerze lokalnym

Błędy wdrożenia i środowiska uruchomieniowego można łatwiej zdiagnozować, wdrażając usługę jako kontener w lokalnym wystąpieniu platformy Docker, na przykład:

from azureml.core.webservice import LocalWebservice

deployment_config = LocalWebservice.deploy_configuration(port=8890)
service = Model.deploy(ws, 'test-svc', [model], inference_config, deployment_config)

Następnie można przetestować lokalnie wdrożoną usługę przy użyciu zestawu SDK:

print(service.run(input_data = json_data))

Następnie możesz rozwiązać problemy dotyczące środowiska uruchomieniowego, wprowadzając zmiany w pliku oceniania, do którego odwołuje się konfiguracja wnioskowania, i ponownie ładując usługę bez ponownego wdrażania (coś, co można zrobić tylko z usługą lokalną):

service.reload()
print(service.run(input_data = json_data))