Translation not up to date
Usługa Microsoft Azure ML Service umożliwia rejestrowanie ładunku, rejestrowanie informacji zwrotnych i mierzenie dokładności wydajności, wykrywanie, wykrywanie i automatyczne debiuowanie w środowisku wykonawczym w produkcie IBM Watson OpenScale.
Produkt IBM Watson OpenScale w pełni obsługuje następujące środowiska Microsoft Azure Machine Learning Service:
Tabela 1. Szczegóły obsługi środowiska
Środowisko | Typ problemu | Typ danych |
---|---|---|
Własne | Danych | Strukturalne |
scikit-naucz się | Danych | Strukturalne |
scikit-naucz się | Regresja | Strukturalne |
Aby wygenerować model wykrywania driftu, należy użyć narzędzia scikit-learn w wersji 0.20.2 w Notatniku.
Dodawanie usługi Microsoft Azure ML do usługi Watson OpenScale
Usługę Watson OpenScale można skonfigurować w taki sposób, aby współpracował z usługą Microsoft Azure ML Service przy użyciu jednej z następujących metod:
- Po pierwszym dodaniu dostawcy uczenia maszynowego do systemu Watson OpenScalemożna skorzystać z interfejsu konfiguracyjnego. Więcej informacji na ten temat zawiera sekcja Określanie instancji usługi Microsoft Azure ML Service.
- Korzystając z pakietu Python SDK, można również dodać dostawcę uczenia maszynowego. Tej metody należy użyć, jeśli wymagane jest posiadanie więcej niż jednego dostawcy. Więcej informacji na ten temat zawiera sekcja Dodawanie mechanizmu uczenia maszynowego Microsoft Azure.
Usługa Watson OpenScale wywołuje różne punkty końcowe usługi REST, które są niezbędne do interakcji z usługą Azure ML. Aby to zrobić, należy powiązać usługę Azure Machine Learning Watson OpenScale.
- Utwórz nazwę użytkownika usługi Azure Active Directory .
- Określ szczegóły referencji podczas dodawania powiązania usługi Azure ML usługi za pomocą interfejsu użytkownika lub pakietu Watson OpenScale Python SDK.
Wymagania dotyczące żądań JSON i plików odpowiedzi
Aby produkt Watson OpenScale działał z usługą Azure ML, tworzone wdrożenia usługi Web Service muszą spełniać określone wymagania. Utworzone wdrożenia usługi Web Service muszą akceptować żądania JSON i zwracać odpowiedzi JSON zgodnie z następującymi wymaganiami.
Wymagany format żądania JSON usługi Web Service
- Treść żądania interfejsu REST API musi być dokumentem JSON, który zawiera jedną tablicę JSON obiektów JSON.
- Tablica JSON musi mieć nazwę
"input"
. - Każdy obiekt JSON może zawierać tylko proste pary klucz-wartość, gdzie wartości mogą być łańcuchami, liczbą,
true
,false
lubnull
. - Wartości nie mogą być obiektem lub tablicą JSON
- Każdy obiekt JSON w tablicy musi mieć określone te same klucze (i z tego powodu liczba kluczy), niezależnie od tego, czy jest dostępna wartość inna niż
null
.
Poniższy przykładowy plik JSON spełnia powyższe wymagania i może zostać użyty jako szablon do tworzenia własnych plików żądań JSON:
{
"input": [
{
"field1": "value1",
"field2": 31,
"field3": true,
"field4": 2.3
},
{
"field1": "value2",
"field2": 15,
"field3": false,
"field4": 0.1
},
{
"field1": null,
"field2": 5,
"field3": true,
"field4": 6.1
}
]
}
Wymagany format odpowiedzi JSON usługi Web Service
Podczas tworzenia pliku odpowiedzi JSON należy zanotować następujące elementy:
Treść odpowiedzi interfejsu REST API musi być dokumentem JSON, który zawiera jedną tablicę JSON obiektów JSON.
Tablica JSON musi mieć nazwę
"output"
.Każdy obiekt JSON może zawierać tylko pary klucz-wartość, w których wartości mogą być łańcuchami, liczbą,
true
,false
,null
lub tablicą, która nie zawiera żadnych innych obiektów lub tablic JSON.Wartości nie mogą być obiektem JSON
Każdy obiekt JSON w tablicy musi mieć określone te same klucze (i liczbę kluczy), niezależnie od tego, czy jest dostępna wartość inna niż
null
.W przypadku modeli klasyfikacji: usługa Web Service musi zwracać tablicę prawdopodobieństw dla każdej klasy, a kolejność prawdopodobieństw musi być spójna dla każdego obiektu JSON w tablicy.
- Przykład: załóżmy, że istnieje binarny model klasyfikacji, który przewiduje ryzyko kredytowe, w przypadku których klasy to
Risk
lubNo Risk
- Dla każdego wyniku zwróconego z powrotem w tablicy "output" obiekty muszą zawierać parę klucz-wartość, która zawiera prawdopodobieństwa w ustalonej kolejności, w postaci:
{ "output": [ { "Scored Probabilities": ["Risk" probability,"No Risk" probability ] }, { "Scored Probabilities": ["Risk" probability,"No Risk" probability ] } ]
- Przykład: załóżmy, że istnieje binarny model klasyfikacji, który przewiduje ryzyko kredytowe, w przypadku których klasy to
Aby uzyskać spójność z narzędziami wizualnymi Azure ML, które są używane zarówno w produkcie Azure ML Studio, jak i w usłudze, należy użyć następujących nazw kluczy:
- Nazwa klucza
"Scored Labels"
dla klucza wyjściowego oznaczająca przewidywaną wartość modelu - Nazwa klucza
"Scored Probabilities"
dla klucza wyjściowego, który oznacza tablicę prawdopodobieństw dla każdej klasy
Poniższy przykładowy plik JSON spełnia powyższe wymagania i może zostać użyty jako szablon do tworzenia własnych plików odpowiedzi JSON:
{
"output": [
{
"Scored Labels": "No Risk",
"Scored Probabilities": [
0.8922524675865824,
0.10774753241341757
]
},
{
"Scored Labels": "No Risk",
"Scored Probabilities": [
0.8335192848546905,
0.1664807151453095
]
}
]
}
Przykładowe notebooki
W następujących notatnikach przedstawiono sposób pracy z usługą Microsoft Azure ML:
Określanie instancji usługi Microsoft Azure ML Service
Pierwszym krokiem w narzędziu Watson OpenScale jest określenie instancji usługi Microsoft Azure ML Service. Instancja usługi Azure ML Service służy do przechowywania modeli AI i wdrożeń.
Usługa Watson OpenScale łączy się z modelami i wdrożeniami AI w instancji usługi Azure ML Service. Aby połączyć usługę z usługą Watson OpenScale, przejdź do karty Konfiguruj , dodaj dostawcę uczenia maszynowego i kliknij ikonę Edytuj . Oprócz nazwy i opisu oraz tego, czy środowisko to Pre-produkcja , czy Produkcja, należy podać następujące informacje:
- Identyfikator klienta: rzeczywista wartość łańcuchowa identyfikatora klienta, który sprawdza, czy użytkownik jest i uwierzytelnia i autoryzuje wywołania wykonywane w usłudze Azure .
- Klucz tajny klienta: rzeczywista wartość łańcucha w tajemnicy, która sprawdza, czy użytkownik jest i uwierzytelnia i autoryzuje wywołania do usługi Azure .
- Podmiot użytkujący: identyfikator podmiotu użytkującego odpowiada organizacji użytkownika i jest dedykowaną instancją usługi Azure AD. Aby znaleźć identyfikator najemcy, umieść wskaźnik myszy nad nazwą konta, aby uzyskać identyfikator katalogu i podmiotu użytkującego, lub wybierz opcję Azure Active Directory > Właściwości > ID katalogu w portalu Azure .
- Identyfikator subskrypcji: referencje subskrypcji, które jednoznacznie identyfikują subskrypcję programu Microsoft Azure . Subskrypcja jest częścią identyfikatora URI dla każdego wywołania usługi.
Informacje na temat sposobu pobierania referencji produktu Microsoft Azure zawiera sekcja W jaki sposób: użyć portalu do utworzenia aplikacji Azure AD i nazwy użytkownika usługi, która może uzyskać dostęp do zasobów .
Teraz można wybrać wdrożone modele i skonfigurować monitory. Watson OpenScale przedstawia listę wdrożonych modeli na panelu kontrolnym Insights , na którym można kliknąć opcję Dodaj do panelu kontrolnego. Wybierz wdrożenia, które mają być monitorowane, a następnie kliknij przycisk Konfiguruj.
Więcej informacji na ten temat zawiera sekcja Konfigurowanie monitorów.
Rejestrowanie ładunku w mechanizmie usługi Microsoft Azure ML
Dodawanie mechanizmu usługi Microsoft Azure ML Service
Mechanizm inny niżIBM Watson Machine Learning jest powiązany jako niestandardowy i składa się z metadanych. There is no direct integration with the non-IBM Watson Machine Learning service.
service_type = "azure_machine_learning_service"
added_service_provider_result = wos_client.service_providers.add(
name=SERVICE_PROVIDER_NAME,
description=SERVICE_PROVIDER_DESCRIPTION,
service_type = service_type,
credentials=AzureCredentials(
subscription_id= AZURE_ENGINE_CREDENTIALS['subscription_id'],
client_id = AZURE_ENGINE_CREDENTIALS['client_id'],
client_secret= AZURE_ENGINE_CREDENTIALS['client_secret'],
tenant = AZURE_ENGINE_CREDENTIALS['tenant']
),
background_mode=False
).result
Powiązanie usługi można wyświetlić za pomocą następującej komendy:
client.service_providers.list()
Przykładowe dane wyjściowe:
uid name service_type created
410e730f-8462-45fe-8b41-a029d6d6043a My Azure ML Service engine azure_machine_learning_service2019-06-10T22:10:29.398Z
Dodaj subskrypcję usługi Microsoft Azure ML
Dodaj subskrypcję
asset_deployment_details = wos_client.service_providers.list_assets(data_mart_id=data_mart_id, service_provider_id=service_provider_id).result
asset_deployment_details
deployment_id=''
for model_asset_details in asset_deployment_details['resources']:
if model_asset_details['metadata']['guid']==deployment_id:
break
azure_asset = Asset(
asset_id=model_asset_details["entity"]["asset"]["asset_id"],
name=model_asset_details["entity"]["asset"]["name"],
url=model_asset_details["entity"]["asset"]["url"],
asset_type=model_asset_details['entity']['asset']['asset_type'] if 'asset_type' in model_asset_details['entity']['asset'] else 'model',
input_data_type=InputDataType.STRUCTURED,
problem_type=ProblemType.BINARY_CLASSIFICATION
)
deployment_scoring_endpoint = model_asset_details['entity']['scoring_endpoint']
scoring_endpoint = ScoringEndpointRequest(url = model_asset_details['entity']['scoring_endpoint']['url'],request_headers = model_asset_details['entity']['scoring_endpoint']['request_headers'],
credentials = None)
deployment = AssetDeploymentRequest(
deployment_id=model_asset_details['metadata']['guid'],
url=model_asset_details['metadata']['url'],
name=model_asset_details['entity']['name'],
description=model_asset_details['entity']['description'],
deployment_type=model_asset_details['entity']['type'],
scoring_endpoint = scoring_endpoint
)
asset_properties = AssetPropertiesRequest(
label_column="Risk ",
prediction_field='Scored Labels',
probability_fields=['Scored Probabilities'],
training_data_reference=training_data_reference,
training_data_schema=None,
input_data_schema=None,
output_data_schema=None,
)
subscription_details = wos_client.subscriptions.add(
data_mart_id=data_mart_id,
service_provider_id=service_provider_id,
asset=azure_asset,
deployment=deployment,
asset_properties=asset_properties,
background_mode=False
).result
Pobierz listę subskrypcji
subscription_id = subscription_details.metadata.id
subscription_id
details: wos_client.subscriptions.get(subscription_id).result.to_dict()
Włącz rejestrowanie ładunku
Włącz rejestrowanie ładunku w subskrypcji
payload_data_set_id = None
payload_data_set_id = wos_client.data_sets.list(type=DataSetTypes.PAYLOAD_LOGGING,
target_target_id=subscription_id,
target_target_type=TargetTypes.SUBSCRIPTION).result.data_sets[0].metadata.id
Pobieranie szczegółów rejestrowania
subscription.payload_logging.get_details()
Rejestrowanie i rejestrowanie ładunku
Oceniaj swój model. Pełny przykład można znaleźć w sekcji Praca z programem Azure Machine Learning Service Engine Notebook.
Zapisz żądanie i odpowiedź w tabeli rejestrowania ładunku:
wos_client.data_sets.store_records(data_set_id=payload_data_set_id, request_body=[PayloadRecord(
scoring_id=str(uuid.uuid4()),
request=request_data,
response=response_data,
response_time=460
)])
W przypadku języków innych niż Pythonmożna również rejestrować ładunek przy użyciu interfejsu REST API.
Temat nadrzędny: Obsługiwane mechanizmy uczenia maszynowego, środowiska i modele