0 / 0
Go back to the English version of the documentation
Niestandardowe środowiska uczenia maszynowego w systemie Watson OpenScale
Last updated: 20 paź 2023
Niestandardowe środowiska uczenia maszynowego w systemie Watson OpenScale

Niestandardowe środowisko uczenia maszynowego można wykorzystać do rejestrowania ładunku, rejestrowania informacji zwrotnych oraz do mierzenia dokładności wydajności, wykrywania błędów w czasie wykonywania, wyjaśniania, wykrywania dryftu i funkcji automatycznego obciążania w systemie IBM Watson OpenScale. Niestandardowe środowisko uczenia maszynowego musi mieć odpowiednik IBM Watson Machine Learning.

IBM Watson OpenScale w pełni obsługuje następujące niestandardowe środowiska uczenia maszynowego:

Tabela 1. Szczegóły obsługi środowiska

Szczegóły obsługi środowiska
Środowisko Typ problemu Typ danych
Odpowiednik IBM Watson Machine Learning Danych Strukturalne
Odpowiednik IBM Watson Machine Learning Regresja Strukturalne

W przypadku modelu, który nie jest odpowiednikiem modelu IBM Watson Machine Learning, należy utworzyć opakowanie dla modelu niestandardowego, który udostępnia wymagane punkty końcowe interfejsu REST API. Należy również połączyć wejście/wyjście między systemem Watson OpenScale i rzeczywistym niestandardowym mechanizmem uczenia maszynowego.

Kiedy niestandardowy mechanizm uczenia maszynowego jest dla mnie najlepszym wyborem?

Niestandardowy mechanizm uczenia maszynowego jest najlepszym wyborem, gdy spełnione są następujące warunki:

  • Do obsługi modeli uczenia maszynowego nie są używane żadne natychmiast dostępne produkty. Masz system do obsługi modeli i nie ma bezpośredniego wsparcia dla tej funkcji w systemie Watson OpenScale .
  • Używany mechanizm udostępniania od dostawcy 3rd-party nie jest jeszcze obsługiwany przez system Watson OpenScale . W takim przypadku należy rozważyć utworzenie niestandardowego mechanizmu uczenia maszynowego jako opakowania dla pierwotnych lub rodzimych wdrożeń.

Jak to działa?

Na poniższym obrazku przedstawiono obsługę środowiska niestandardowego:

Sposób wyświetlania wykresu niestandardowego. Przedstawia on pola dla środowiska niestandardowego z interfejsem API klienta i interfejsem API Watson OpenScale .

Można również odwołać się do następujących odsyłaczy:

Interfejs API rejestrowania ładunkuWatson OpenScale

Pakiet SDK klientaPython

Python SDK for IBM Watson OpenScale

  • Kryteria wejściowe dla modelu do obsługi monitorów

    W poniższym przykładzie model przyjmuje jako dane wejściowe wektor predyktora, który jest zasadniczo zbiorem nazwanych zmiennych i ich wartości.

    {
    "fields": [
        "name",
        "age",
        "position"
    ],
    "values": [
        [
            "john",
            33,
            "engineer"
        ],
        [
            "mike",
            23,
            "student"
        ]
    ]
    
    

    Zmienna “age” może być wartościowana dla rzetelności.

    Jeśli dane wejściowe to tensor lub macierz, która jest transformowana z przestrzeni właściwości wejściowych, model ten nie może być obsługiwany przez platformę Watson OpenScale w bieżącej wersji. Co za tym idzie, modele uczenia głębokiego z danymi wejściowymi tekstowymi lub obrazowymi nie mogą być obsługiwane w celu wykrywania i łagodzenia uprzedzeń.

    Ponadto dane uczące muszą być załadowane w celu obsługi funkcji Explainability.

    Dla wyjaśnienia tekstu, pełny tekst powinien być jedną z funkcji. Wyjaśnianie obrazów dla modelu niestandardowego nie jest obsługiwane w bieżącej wersji.

  • Kryteria wyjściowe modelu do obsługi monitorów

    Model generuje wektor predyktorów obok prawdopodobieństw predykcji różnych klas w tym modelu.

    {
    "fields": [
        "name",
        "age",
        "position",
        "prediction",
        "probability"
    ],
    "labels": [
        "personal",
        "camping"
    ],
    "values": [
        [
            "john",
            33,
            "engineer",
            "personal",
            [
                0.6744664422398081,
                0.3255335577601919
            ]
        ],
        [
            "mike",
            23,
            "student"
            "camping",
            [
                0.2794765664946941,
                0.7205234335053059
            ]
        ]
    ]
    }
    

    W tym przykładzie "personal” i “camping” są możliwymi klasami, a oceny w każdym wyniku oceniania są przypisane do obu klas. Jeśli prawdopodobieństwa predykcji są brakujące, wykrywanie odchyleń działa, ale auto-debias nie działa.

    Dostęp do danych wyjściowych oceniania można uzyskać z punktu końcowego oceniania na żywo, który Watson OpenScale może wywoływać za pomocą interfejsu API REST. W przypadku modeli CUSTOMML, SageMakeri IBM Watson Machine Learning Watson OpenScale bezpośrednio łączy się z rodzimymi punktami końcowymi oceniania.

Niestandardowy mechanizm uczenia maszynowego

Niestandardowy mechanizm uczenia maszynowego udostępnia infrastrukturę i funkcje hostingowe dla modeli uczenia maszynowego i aplikacji WWW. Niestandardowe mechanizmy uczenia maszynowego, które są obsługiwane przez system Watson OpenScale , muszą spełniać następujące wymagania:

  • Udostępnij dwa typy punktów końcowych interfejsu REST API:

    • Punkt końcowy wykrywania (GET-lista wdrożeń i szczegółów)
    • punkty końcowe oceny (punktacja online i w czasie rzeczywistym)
  • Wszystkie punkty końcowe muszą być zgodne ze specyfikacją Swagger, aby były obsługiwane.

  • Ładunek wejściowy i dane wyjściowe do lub z wdrożenia muszą być zgodne z formatem pliku JSON opisanym w specyfikacji.

System Watson OpenScale obsługuje tylko formaty uwierzytelniania BasicAuth, nonelub apiKey .

Aby wyświetlić specyfikację punktów końcowych interfejsu REST API, należy zapoznać się z sekcją Interfejs REST APIWatson OpenScale.

Dodawanie niestandardowego mechanizmu uczenia maszynowego do systemu Watson OpenScale

Produkt Watson OpenScale można skonfigurować do pracy z niestandardowym dostawcą uczenia maszynowego za pomocą jednej z następujących metod:

Eksploruj dalej

Użyj niestandardowego monitora uczenia maszynowego, aby utworzyć sposób interakcji z innymi usługami:

Określanie instancji niestandardowej usługi ML

Pierwszym krokiem w narzędziu Watson OpenScale jest określenie instancji usługi. Instancja usługi jest miejscem, w którym przechowywane są modele i wdrożenia sztucznej inteligencji.

Połącz instancję usługi niestandardowej

Watson OpenScale łączy się z modelami i wdrożeniami sztucznej inteligencji w instancji usługi. Można połączyć się z usługą niestandardową. Aby połączyć usługę z systemem Watson OpenScale, przejdź do karty Konfiguruj Ikona karty konfiguracji , dodaj dostawcę uczenia maszynowego i kliknij ikonę Edytuj Ikona karty konfiguracji . Oprócz nazwy, opisu i określenia typu środowiska Przedprodukcyjnego lub produkcyjnego należy podać następujące informacje specyficzne dla tego typu instancji usługi:

  • Nazwa użytkownika
  • Hasło
  • Punkt końcowy interfejsu API, który używa formatu https://host:port, na przykład https://custom-serve-engine.example.net:8443

Wybierz, czy połączyć się z wdrożeniami , żądając listy , czy wprowadzając pojedyncze punkty końcowe oceniania.

Żądanie listy wdrożeń

Jeśli wybrano kafel Żądaj listy wdrożeń , wprowadź referencje i punkt końcowy interfejsu API, a następnie zapisz konfigurację.

Udostępnianie pojedynczych punktów końcowych oceniania

Jeśli wybrano kafel Wprowadź pojedyncze punkty końcowe oceniania , wprowadź referencje dla punktu końcowego interfejsu API, a następnie zapisz konfigurację.

Teraz można wybrać wdrożone modele i skonfigurować monitory. Watson OpenScale wyświetla wdrożone modele na panelu kontrolnym Insights , na którym można kliknąć opcję Dodaj do panelu kontrolnego. Wybierz wdrożenia, które mają być monitorowane, i kliknij opcję Konfiguruj.

Więcej informacji na ten temat zawiera sekcja Konfigurowanie monitorów.

Przykłady niestandardowego mechanizmu uczenia maszynowego

Poniższe pomysły umożliwiają skonfigurowanie własnego niestandardowego mechanizmu uczenia maszynowego.

Python i kolba

Do obsługi modelu scikit-learn można używać języka Python i kolby.

Aby wygenerować model wykrywania dryftu, należy użyć narzędzia scikit-learn w wersji 0.20.2 w notatniku.

Aplikację można wdrożyć lokalnie na potrzeby testowania i jako aplikację na platformie IBM Cloud.

Node.js

Można również znaleźć przykład niestandardowego mechanizmu uczenia maszynowego, który został napisany w języku Node.js tutaj.

Wzorzec kodu End2end

Wzorzec kodu przedstawiający przykład end2end niestandardowego wdrożenia mechanizmu i integracji z systemem Watson OpenScale.

Rejestrowanie ładunku przy użyciu niestandardowego mechanizmu uczenia maszynowego

Aby skonfigurować rejestrowanie ładunku dla mechanizmu innego niżIBM Watson Machine Learning lub niestandardowego mechanizmu uczenia maszynowego, należy powiązać mechanizm ML jako niestandardowy.

Dodaj niestandardowy mechanizm uczenia maszynowego

Mechanizm inny niżWatson Machine Learning jest dodawany jako mechanizm niestandardowy przy użyciu metadanych i nie istnieje bezpośrednia integracja z usługą inną niżIBM Watson Machine Learning . Do systemu Watson OpenScale można dodać więcej niż jeden mechanizm uczenia maszynowego, używając metody wos_client.service_providers.add .

CUSTOM_ENGINE_CREDENTIALS = {
    "url": "***",
    "username": "***",
    "password": "***",
}
 
wos_client.service_providers.add(
        name=SERVICE_PROVIDER_NAME,
        description=SERVICE_PROVIDER_DESCRIPTION,
        service_type=ServiceTypes.CUSTOM_MACHINE_LEARNING,
        credentials=CustomCredentials(
            url= CUSTOM_ENGINE_CREDENTIALS['url'],
            username= CUSTOM_ENGINE_CREDENTIALS['username'],
            password= CUSTOM_ENGINE_CREDENTIALS['password'],
        ),
        background_mode=False
    ).result

Dostawcę usług można wyświetlić za pomocą następującej komendy:

client.service_providers.get(service_provider_id).result.to_dict()

Ogólne powiązanie ML

Skonfiguruj zabezpieczenia przy użyciu klucza API

Aby skonfigurować zabezpieczenia niestandardowego mechanizmu uczenia maszynowego, system Watson OpenScale obsługuje IBM Cloud i IBM Cloud Pak for Data jako dostawców uwierzytelniania. Adresu URL https://iam.cloud.ibm.com/identity/token można użyć do wygenerowania tokenu IAM dla IBM Cloud , a adresu URL https://<$hostname>/icp4d-api/v1/authorize do wygenerowania tokenu dla Cloud Pak for Data.

Żądania POST /v1/deployments/{deployment_id}/online można użyć do zaimplementowania interfejsu API oceniania w następujących formatach:

Żądanie

{
	"input_data": [{
		"fields": [
			"name",
			"age",
			"position"
		],
		"values": [
			[
			"john",
			 33,
			"engineer"
			],
			[
			"mike",
			 23,
			"student"
			]
		]
	}]
}

Reagowanie

{
	"predictions": [{
		"fields": [
			"name",
			"age",
			"position",
			"prediction",
			"probability"
		],
		"labels": [
			"personal",
			"camping"
		],
		"values": [
			[
			"john",
			 33,
			"engineer",
			"personal",
			[
			0.6744664422398081,
			0.32553355776019194
			]
			],
			[
			"mike",
			 23,
			"student",
			"camping",
			[
			0.2794765664946941,
			0.7205234335053059
			]
			]
		]
	}]
}

Dodaj subskrypcję niestandardową

Aby dodać subskrypcję niestandardową, uruchom następującą komendę:

custom_asset = Asset(
        asset_id=asset['entity']['asset']['asset_id'],
        name=asset['entity']['asset']['name'],
        url = "dummy_url",
        asset_type=asset['entity']['asset']['asset_type'] if 'asset_type' in asset['entity']['asset'] else 'model',
        problem_type=ProblemType.MULTICLASS_CLASSIFICATION,
        input_data_type=InputDataType.STRUCTURED,
    )
deployment = AssetDeploymentRequest(
        deployment_id=asset['metadata']['guid'],
        url=asset['metadata']['url'],
        name=asset['entity']['name'],
        deployment_type=asset['entity']['type'],
        scoring_endpoint =  scoring_endpoint
    )
asset_properties = AssetPropertiesRequest(
        prediction_field='predicted_label',
        probability_fields = ["probability"],
        training_data_reference=None,
        training_data_schema=None,
        input_data_schema=None,
        output_data_schema=output_schema,
    )
result = ai_client.subscriptions.add(
        data_mart_id=cls.datamart_id,
        service_provider_id=cls.service_provider_id,
        asset=custom_asset,
        deployment=deployment,
        asset_properties=asset_properties,
        background_mode=False
    ).result

Aby uzyskać listę subskrypcji, uruchom następującą komendę:

subscription_id = subscription_details.metadata.id
subscription_id
 
details: wos_client.subscriptions.get(subscription_id).result.to_dict()

Włącz rejestrowanie ładunku

Aby włączyć rejestrowanie ładunku w subskrypcji, uruchom następującą komendę:

request_data = {'fields': feature_columns, 
                'values': [[payload_values]]}

Aby uzyskać szczegółowe informacje na temat rejestrowania, uruchom następującą komendę:

response_data = {'fields': list(result['predictions'][0]),
                 'values': [list(x.values()) for x in result['predictions']]}

Rejestrowanie wyników i ładunku

  • Oceń swój model.

  • Zapisz żądanie i odpowiedź w tabeli rejestrowania ładunku

    records_list = [PayloadRecord(request=request_data, response=response_data, response_time=response_time), PayloadRecord(request=request_data, response=response_data, response_time=response_time)]
    
    subscription.payload_logging.store(records=records_list)
    

W przypadku języków innych niż Pythonładunek można również rejestrować przy użyciu interfejsu API REST.

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