0 / 0
Go back to the English version of the documentation
Środowiska usług Microsoft Azure ML w systemie Watson OpenScale
Last updated: 15 cze 2023
Środowiska usług Microsoft Azure ML w systemie Watson OpenScale

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

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:

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.

  1. Utwórz nazwę użytkownika usługi Azure Active Directory .
  2. 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, falselub null .
  • 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, nulllub 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 lub No 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
            ]
           }
        ]
    

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 Ikona karty konfiguracji , dodaj dostawcę uczenia maszynowego i kliknij ikonę Edytuj Ikona edycji . 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

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more