MLServer-Klasse

MLServer

azureml.deploy.server.MLServer

Basiswerte: azureml.deploy.operationalization.Operationalization

Dieses Modul bietet eine Dienstimplementierung für die ML Server-Instanz.

authentication

authentication(context)

Hinweis

Während Microsoft Entra-ID der neue Name für Azure Active Directory (Azure AD) ist, bleibt Azure AD in einigen fest kodierten Elementen wie Benutzeroberfläche-Feldern, Verbindungsanbietern, Fehlercodes und Cmdlets erhalten, um Störungen in bestehenden Umgebungen zu vermeiden. In diesem Artikel sind die beiden Namen austauschbar.

Überschreiben

Vom Framework aufgerufene Lebenszyklusmethode für die Authentifizierung. Ruft den Authentifizierungseinstiegspunkt für die Klassenhierarchie auf.

ML Server unterstützt zwei Formen von Authentifizierungskontexten:

  • LDAP: Tupel (Benutzername, Kennwort)

  • Azure Active Directory (AAD): dict {…}

  • access-token: str =4534535

Argumente

context

Der Authentifizierungskontext: LDAP, Azure Active Directory (AAD) oder vorhandene access-token-Zeichenfolge.

HttpException

Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.

create_or_update_service_pool

 create_or_update_service_pool(name, version, initial_pool_size, max_pool_size, **opts)

Erstellt oder aktualisiert den Pool für den veröffentlichten Webdienst mit der angegebenen anfänglichen und maximalen Poolgröße auf der ML Server-Instanz anhand von Name und Version.

Beispiel:

>>> client.create_or_update_service_pool(
        'regression',
        version = 'v1.0.0',
        initial_pool_size = 1,
        maximum_pool_size = 10)
<Response [200]>
>>>

Argumente

name

Der eindeutige Name des Webdiensts.

Version

Die Version des Webdiensts.

initial_pool_size

Die anfängliche Poolgröße für den Webdienst.

max_pool_size

Die maximale Poolgröße für den Webdienst. Diese darf nicht kleiner sein als „initial_pool_size“.

Gibt zurück

requests.models.Response: HTTP-Status, der angibt, ob die Anforderung erfolgreich übermittelt wurde.

HttpException

Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.

delete_service

delete_service(name, **opts)

einen Webdienst löschen

success = client.delete_service('example', version='v1.0.1')
print(success)
True

Argumente

name

Der Name des Webdiensts.

opts

Die Version des Webdiensts (version=’v1.0.1).

Gibt zurück

Ein bool-Wert, der angibt, ob das Löschen des Diensts erfolgreich war.

HttpException

Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.

delete_service_pool

delete_service_pool(name, version, **opts)

Löscht den Pool für den veröffentlichten Webdienst auf der ML Server-Instanz anhand von Name und Version.

Beispiel:

>>> client.delete_service_pool('regression', version = 'v1.0.0')
<Response [200]>
>>>

Argumente

name

Der eindeutige Name des Webdiensts.

Version

Die Version des Webdiensts.

Gibt zurück

requests.models.Response: HTTP-Status, wenn der Pool für den Dienst gelöscht wurde.

HttpException

Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.

deploy_realtime

deploy_realtime(name, **opts)

Veröffentlicht einen neuen Echtzeitwebdienst auf der ML Server-Instanz anhand von Name und Version.

Alle Eingabe- und Ausgabetypen werden als pandas.DataFrame definiert.

Beispiel:

model = rx_serialize_model(model, realtime_scoring_only=True)
opts = {
    'version': 'v1.0.0',
    'description': 'Real-time service description.',
    'serialized_model': model
}

service = client.deploy_realtime('scoring', **opts)
df = movie_reviews.as_df()
res = service.consume(df)
answer = res.outputs

Hinweis

Die Verwendung von deploy_realtime() auf diese Weise ist identisch mit der Veröffentlichung eines Diensts mithilfe von deploy() der Fluent-API.

Argumente

name

Der Name des Webdiensts.

opts

Die Diensteigenschaften, die als dict veröffentlicht werden sollen. Das opts-Element unterstützt die folgenden optionalen Eigenschaften:

  • version (str): Definiert eine eindeutige alphanumerische Bezeichnung für die Webdienstversion. Wenn die Version leer gelassen wird, wird an ihrer Stelle eine eindeutige GUID generiert. Dies ist während der Entwicklung eines Diensts nützlich, bevor der Autor bereit ist, offiziell eine semantische Version zur Freigabe zu veröffentlichen.

  • description (str): Die Dienstbeschreibung.

  • alias (str): Der Name der Nutzungsfunktion. Der Standardwert lautet consume.

Gibt zurück

Eine neue Instanz von Service, die den Echtzeitdienst als redeployed (erneut bereitgestellt) darstellt.

HttpException

Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.

deploy_service

deploy_service(name, **opts)

Veröffentlicht einen neuen Webdienst auf der ML Server-Instanz anhand von Name und Version.

Beispiel:

opts = {
   'version': 'v1.0.0',
   'description': 'Service description.',
   'code_fn': run,
   'init_fn': init,
   'objects': {'local_obj': 50},
   'models': {'model': 100},
   'inputs': {'x': int},
   'outputs': {'answer': float},
   'artifacts': ['histogram.png'],
   'alias': 'consume_service_fn_alias'
 }

 service = client.deploy('regression', **opts)
 res = service.consume_service_fn_alias(100)
 answer = res.output('answer')
 histogram = res.artifact('histogram.png')

Hinweis

Die Verwendung von deploy_service() auf diese Weise ist identisch mit der Veröffentlichung eines Diensts mithilfe von deploy() der Fluent-API.

Argumente

name

Der eindeutige Name des Webdiensts.

opts

Die Diensteigenschaften, die veröffentlicht werden sollen. Das dict-Element opts unterstützt die folgenden optionalen Eigenschaften:

  • version (str): Definiert eine eindeutige alphanumerische Bezeichnung für die Webdienstversion. Wenn die Version leer gelassen wird, wird an ihrer Stelle eine eindeutige GUID generiert. Dies ist während der Entwicklung eines Diensts nützlich, bevor der Autor bereit ist, offiziell eine semantische Version zur Freigabe zu veröffentlichen.

  • description (str): Die Dienstbeschreibung.

  • code_str (str): Ein Python-Codeblock, der ausgeführt und ausgewertet werden soll.

  • init_str (str): Ein Python-Codeblock zum Initialisieren des Diensts.

  • code_fn (function): Eine Funktion, die ausgeführt und ausgewertet werden soll.

  • init_fn (function): Eine Funktion zum Initialisieren des Diensts.

  • objects (dict): Name und Wert der einzuschließenden Objekte.

  • models (dict): Name und Wert der einzuschließenden Modelle.

  • inputs (dict): Diensteingabeschema nach Name und Typ. Die folgenden Typen werden unterstützt:

    • INT

    • float

    • str

    • bool

    • numpy.array

    • numpy.matrix

    • pandas.DataFrame

  • outputs (dict): Definiert das Ausgabeschema des Webdiensts. Wenn der Wert leer ist, gibt der Dienst keinen Antwortwert zurück. outputs sind als {'x'=int}- oder {'x': 'int'}-Funktion eines Wörterbuchs definiert, die die Ausgabeparameternamen und die entsprechenden Datentypen beschreiben. Die folgenden Typen werden unterstützt:

    • INT

    • float

    • str

    • bool

    • numpy.array

    • numpy.matrix

    • pandas.DataFrame

  • artifacts (list): Eine Sammlung von Dateiartefakten, die zurückgegeben werden sollen. Der Dateiinhalt ist als Base64-Zeichenfolge codiert.

  • alias (str): Der Name der Nutzungsfunktion. Der Standardwert lautet consume. Wenn die Funktion code_fn bereitgestellt wird, verwendet sie standardmäßig diesen Funktionsnamen.

Gibt zurück

Eine neue Instanz von Service, die den Dienst als deployed (bereitgestellt) darstellt.

HttpException

Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.

Destruktor

destructor()

Überschreiben

Zerstört die Lebenszyklusmethode, die vom Framework aufgerufen wird. Ruft Destruktoren für die Klassenhierarchie auf.

get_service

get_service(name, **opts)

Ruft einen Webdienst zur Nutzung ab.

service = client.get_service('example', version='v1.0.1')
print(service)
<ExampleService>
   ...
   ...
   ...

Argumente

name

Der Name des Webdiensts.

opts

Die optionale Version des Webdiensts. Im Fall von version=None wird der neueste Dienst zurückgegeben.

Gibt zurück

Eine neue Instanz von Service.

HttpException

Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.

get_service_pool_status

get_service_pool_status(name, version, **opts)

Ruft den Poolstatus auf jedem Computeknoten der ML Server-Instanz für die veröffentlichten Dienste mit dem angegebenen Namen und der angegebenen Version ab.

Beispiel:

>>> client.create_or_update_service_pool(
        'regression',
        version = 'v1.0.0',
        initial_pool_size = 5,
        maximum_pool_size = 5)
<Response [200]>
>>> client.get_service_pool_status('regression', version = 'v1.0.0')
[{'computeNodeEndpoint': 'http://localhost:12805/', 'status': 'Pending'}]
>>> client.get_service_pool_status('regression', version = 'v1.0.0')
[{'computeNodeEndpoint': 'http://localhost:12805/', 'status': 'Success'}]

Argumente

name

Der eindeutige Name des Webdiensts.

Version

Die Version des Webdiensts.

Gibt zurück

str: json – stellt den Poolstatus auf jedem Computeknoten für den bereitgestellten Dienst dar.

HttpException

Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.

initializer(http_client, config, adapters=None)

Überschreiben

Vom Framework während der Konstruktion aufgerufene Lebenszyklusmethode für die Initialisierung. Legt Attribute fest und ruft Initialisierer für die Klassenhierarchie auf.

Argumente

http_client

Die HTTP-Anforderungssitzung zum Verwalten und dauerhaften Speichern von Einstellungen über Anforderungen hinweg (Authentifizierung, Proxys).

config

Die globale Konfiguration.

adapter

Ein dict-Element mit Transportadaptern nach URL.

list_services

list_services(name=None, **opts)

Listet die verschiedenen veröffentlichten Webdienste auf der ML Server-Instanz auf.

Der Name und die Version des Diensts sind optionale Angaben. Mit diesem Aufruf können Sie Dienstinformationen zu Folgendem abrufen:

  • Alle veröffentlichten Dienste

  • Alle Dienste mit Versionsangabe für einen bestimmten benannten Dienst

  • Eine bestimmte Version für einen benannten Dienst

Benutzer können diese Informationen zusammen mit dem Vorgang [get_service()](#getservice) verwenden, um mit dem Webdienst zu interagieren und diesen zu nutzen.

Beispiel:

all_services = client.list_services()
all_versions_of_add_service = client.list_services('add-service')
add_service_v1 = client.list_services('add-service', version='v1')

Argumente

name

Der Name des Webdiensts.

opts

Die optionale Version des Webdiensts.

Gibt zurück

Ein list-Element mit Dienstmetadaten.

HttpException

Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.

realtime_service

realtime_service(name)

Startet die Fluent-API-Verkettung von Eigenschaften zum Definieren eines Echtzeitwebdiensts.

Beispiel:

client.realtime_service('scoring')
   .description('A new real-time web service')
   .version('v1.0.0')

Argumente

name

Der Name des Webdiensts.

Gibt zurück

Eine RealtimeDefinition-Instanz für die Fluent-API-Verkettung.

redeploy_realtime

redeploy_realtime(name, **opts)

Aktualisiert Eigenschaften für einen vorhandenen Echtzeitwebdienst auf dem Server nach Name und Version. Im Fall von version=None wird der neueste Dienst aktualisiert.

Alle Eingabe- und Ausgabetypen werden als pandas.DataFrame definiert.

Beispiel:

model = rx_serialize_model(model, realtime_scoring_only=True)
opts = {
    'version': 'v1.0.0',
    'description': 'Real-time service description.',
    'serialized_model': model
 }

 service = client.redeploy_realtime('scoring', **opts)
 df = movie_reviews.as_df()
 res = service.consume(df)
 answer = res.outputs

Hinweis

Die Verwendung von redeploy_realtime() auf diese Weise ist identisch mit der Aktualisierung eines Diensts mithilfe von redeploy() der Fluent-API.

Argumente

name

Der Name des Webdiensts.

opts

Die zu aktualisierenden Diensteigenschaften als dict. Das opts-Element unterstützt die folgenden optionalen Eigenschaften:

  • version (str): Definiert die Webdienstversion.

  • description (str): Die Dienstbeschreibung.

  • alias (str): Der Name der Nutzungsfunktion. Der Standardwert lautet consume.

Gibt zurück

Eine neue Instanz von Service, die den Echtzeitdienst als redeployed (erneut bereitgestellt) darstellt.

HttpException

Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.

redeploy_service

redeploy_service(name, **opts)

Aktualisiert Eigenschaften für einen vorhandenen Webdienst auf der ML Server-Instanz nach Name und Version. Im Fall von version=None wird der neueste Dienst aktualisiert.

Beispiel:

opts = {
   'version': 'v1.0.0',
   'description': 'Service description.',
   'code_fn': run,
   'init_fn': init,
   'objects': {'local_obj': 50},
   'models': {'model': 100},
   'inputs': {'x': int},
   'outputs': {'answer': float},
   'artifacts': ['histogram.png'],
   'alias': 'consume_service_fn_alias'
 }

 service = client.redeploy('regression', **opts)
 res = service.consume_service_fn_alias(100)
 answer = res.output('answer')
 histogram = res.artifact('histogram.png')

Hinweis

Die Verwendung von redeploy_service() auf diese Weise ist identisch mit der Aktualisierung eines Diensts mithilfe von redeploy() der Fluent-API.

Argumente

name

Der Name des Webdiensts.

opts

Die zu aktualisierenden Diensteigenschaften als dict. Das opts-Element unterstützt die folgenden optionalen Eigenschaften:

  • version (str): Definiert eine eindeutige alphanumerische Bezeichnung für die Webdienstversion. Wenn die Version leer gelassen wird, wird an ihrer Stelle eine eindeutige GUID generiert. Dies ist während der Entwicklung eines Diensts nützlich, bevor der Autor bereit ist, offiziell eine semantische Version zur Freigabe zu veröffentlichen.

  • description (str): Die Dienstbeschreibung.

  • code_str (str): Ein Python-Codeblock, der ausgeführt und ausgewertet werden soll.

  • init_str (str): Ein Python-Codeblock zum Initialisieren des Diensts.

  • code_fn (function): Eine Funktion, die ausgeführt und ausgewertet werden soll.

  • init_fn (function): Eine Funktion zum Initialisieren des Diensts.

  • objects (dict): Name und Wert der einzuschließenden Objekte.

  • models (dict): Name und Wert der einzuschließenden Modelle.

  • inputs (dict): Diensteingabeschema nach Name und Typ. Die folgenden Typen werden unterstützt: int, float, str, bool, numpy.array, numpy.matrix, pandas.DataFrame

  • outputs (dict): Definiert das Ausgabeschema des Webdiensts. Wenn der Wert leer ist, gibt der Dienst keinen Antwortwert zurück. outputs sind als {'x'=int}- oder {'x': 'int'}-Funktion eines Wörterbuchs definiert, die die Ausgabeparameternamen und die entsprechenden Datentypen beschreiben. Die folgenden Typen werden unterstützt: int, float, str, bool, numpy.array, numpy.matrix, pandas.DataFrame

  • artifacts (list): Eine Sammlung von Dateiartefakten, die zurückgegeben werden sollen. Der Dateiinhalt ist als Base64-Zeichenfolge codiert.

  • alias (str): Der Name der Nutzungsfunktion. Der Standardwert lautet consume. Wenn die Funktion code_fn bereitgestellt wird, verwendet sie standardmäßig diesen Funktionsnamen.

Gibt zurück

Eine neue Instanz von Service, die den Dienst als deployed (bereitgestellt) darstellt.

HttpException

Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.

Dienst

service(name)

Startet die Fluent-API-Verkettung von Eigenschaften zum Definieren eines Standardwebdiensts.

Beispiel:

client.service('scoring')
   .description('A new web service')
   .version('v1.0.0')

Argumente

name

Der Name des Webdiensts.

Gibt zurück

Eine ServiceDefinition-Instanz für die Fluent-API-Verkettung.