Classe MLServer

MLServer

azureml.deploy.server.MLServer

Basi: azureml.deploy.operationalization.Operationalization

Questo modulo fornisce un'implementazione del servizio per ML Server.

autenticazione

authentication(context)

Annotazioni

Anche se Microsoft Entra ID è il nuovo nome per Azure Active Directory (Azure AD), per evitare l'interruzione degli ambienti esistenti, la denominazione Azure AD è tuttora mantenuta in alcuni elementi hardcoded, ad esempio campi dell'interfaccia utente, provider di connessioni, codici errore e cmdlet. All’interno di questo articolo i due nomi vengono utilizzati in modo intercambiabile.

Prevalere

Metodo del ciclo di vita dell'autenticazione chiamato dal framework. Richiama il punto di ingresso dell'autenticazione per la gerarchia di classi.

ML Server supporta due forme di contesti di autenticazione:

  • LDAP: tupla (nome utente, password)

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

  • access-token: str =4534535

Arguments

context

Contesto di autenticazione: LDAP, Azure Active Directory (AAD) o stringa di token di accesso esistente.

HttpException

Se si è verificato un errore HTTP che chiama ml Server.

create_or_update_service_pool

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

Crea o aggiorna il pool per il servizio Web pubblicato, con le dimensioni iniziali e massime del pool nel server ML in base al nome e alla versione.

Esempio:

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

Arguments

nome

Nome univoco del servizio Web.

version

Versione del servizio Web.

initial_pool_size

Dimensioni iniziali del pool per il servizio Web.

max_pool_size

Dimensioni massime del pool per il servizio Web. Non può essere minore di initial_pool_size.

Restituzioni

requests.models.Response: stato HTTP che indica se la richiesta è stata inviata correttamente o meno.

HttpException

Se si è verificato un errore HTTP che chiama ml Server.

delete_service

delete_service(name, **opts)

Eliminare un servizio Web.

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

Arguments

nome

Nome del servizio Web.

Opta

Versione del servizio Web (version='v1.0.1).

Restituzioni

Oggetto bool che indica che l'eliminazione del servizio è stata completata.

HttpException

Se si è verificato un errore HTTP che chiama ml Server.

delete_service_pool

delete_service_pool(name, version, **opts)

Eliminare il pool per il servizio Web pubblicato nel server ML in base al nome e alla versione.

Esempio:

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

Arguments

nome

Nome univoco del servizio Web.

version

Versione del servizio Web.

Restituzioni

requests.models.Response: stato HTTP se il pool è stato eliminato per il servizio.

HttpException

Se si è verificato un errore HTTP che chiama ml Server.

deploy_realtime

deploy_realtime(name, **opts)

Pubblicare un nuovo servizio Web in tempo reale nel server ML in base al nome e alla versione.

Tutti i tipi di input e output vengono definiti come .pandas.DataFrame

Esempio:

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

Annotazioni

L'uso di deploy_realtime() in questo modo è identico alla pubblicazione di un servizio tramite le API Fluent deploy()

Arguments

nome

Nome del servizio Web.

Opta

Proprietà del servizio da pubblicare come .dict Il consenso esplicito supporta le proprietà facoltative seguenti:

  • version (str): definisce una versione univoca del servizio Web alfanumerico. Se la versione viene lasciata vuota, viene generato un GUID univoco al suo posto. Utile durante lo sviluppo del servizio prima che l'autore sia pronto per pubblicare ufficialmente una versione semantica da condividere.

  • description (str) - Descrizione del servizio.

  • alias (str): nome della funzione consume. L'impostazione predefinita è utilizzata.

Restituzioni

Nuova istanza di Service che rappresenta la ridistribuzione del servizio in tempo reale.

HttpException

Se si è verificato un errore HTTP che chiama ml Server.

deploy_service

deploy_service(name, **opts)

Pubblicare un nuovo servizio Web nel server ML in base al nome e alla versione.

Esempio:

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')

Annotazioni

L'uso deploy_service() in questo modo è identico alla pubblicazione di un servizio usando l'API deploy()Fluent.

Arguments

nome

Nome univoco del servizio Web.

Opta

Proprietà del servizio da pubblicare. Opts dict supporta le proprietà facoltative seguenti:

  • version (str): definisce una versione univoca del servizio Web alfanumerico. Se la versione viene lasciata vuota, viene generato un GUID univoco al suo posto. Utile durante lo sviluppo del servizio prima che l'autore sia pronto per pubblicare ufficialmente una versione semantica da condividere.

  • description (str) - Descrizione del servizio.

  • code_str (str): blocco di codice Python da eseguire e valutare.

  • init_str (str): blocco di codice Python per inizializzare il servizio.

  • code_fn (funzione): funzione da eseguire e valutare.

  • init_fn (funzione): funzione da inizializzare il servizio.

  • oggetti (dict): nome e valore degli oggetti da includere.

  • models (dict): nome e valore dei modelli da includere.

  • input (dict): schema di input del servizio per nome e tipo. Sono supportati i tipi seguenti:

    • int

    • galleggiare

    • str

    • bool

    • numpy.array

    • numpy.matrix

    • Panda. DataFrame

  • output (dict): definisce lo schema di output del servizio Web. Se vuoto, il servizio non restituirà un valore di risposta. gli output vengono definiti come dizionario {'x'=int} o {'x': 'int'} che descrivono i nomi dei parametri di output e i relativi tipi di dati corrispondenti. Sono supportati i tipi seguenti:

    • int

    • galleggiare

    • str

    • bool

    • numpy.array

    • numpy.matrix

    • Panda. DataFrame

  • artifacts (elenco): raccolta di artefatti di file da restituire. Il contenuto del file viene codificato come stringa Base64.

  • alias (str): nome della funzione consume. L'impostazione predefinita è utilizzata. Se viene specificata code_fn funzione, per impostazione predefinita userà tale nome di funzione.

Restituzioni

Nuova istanza di Service che rappresenta il servizio distribuito.

HttpException

Se si è verificato un errore HTTP che chiama ml Server.

Distruttore

destructor()

Prevalere

Eliminare definitivamente il metodo del ciclo di vita chiamato dal framework. Richiama i distruttori per la gerarchia di classi.

get_service

get_service(name, **opts)

Ottenere un servizio Web per l'utilizzo.

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

Arguments

nome

Nome del servizio Web.

Opta

Versione facoltativa del servizio Web. Se version=None verrà restituito il servizio più recente.

Restituzioni

Nuova istanza di Service.

HttpException

Se si è verificato un errore HTTP che chiama ml Server.

get_service_pool_status

get_service_pool_status(name, version, **opts)

Ottenere lo stato del pool in ogni nodo di calcolo del server ML per i servizi pubblicati con il nome e la versione specificati.

Esempio:

>>> 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'}]

Arguments

nome

Nome univoco del servizio Web.

version

Versione del servizio Web.

Restituzioni

str: json che rappresenta lo stato del pool in ogni nodo di calcolo per il servizio distribuito.

HttpException

Se si è verificato un errore HTTP che chiama ml Server.

initializer(http_client, config, adapters=None)

Prevalere

Metodo del ciclo di vita init chiamato dal framework, richiamato durante la costruzione. Configura gli attributi e richiama gli inizializzatori per la gerarchia di classi.

Arguments

http_client

Sessione di richiesta HTTP per gestire e rendere persistenti le impostazioni tra le richieste (autenticazione, proxy).

config

Configurazione globale.

Adattatori

Oggetto dict degli adattatori di trasporto in base all'URL.

list_services

list_services(name=None, **opts)

Elencare i diversi servizi Web pubblicati nel server ML.

Il nome del servizio e la versione del servizio sono facoltativi. Questa chiamata consente di recuperare le informazioni sul servizio relative a:

  • Tutti i servizi pubblicati

  • Tutti i servizi con controllo delle versioni per un servizio denominato specifico

  • Una versione specifica per un servizio denominato

Gli utenti possono usare queste informazioni insieme all'operazione [get_service()](#getservice) per interagire e utilizzare il servizio Web.

Esempio:

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')

Arguments

nome

Nome del servizio Web.

Opta

Versione facoltativa del servizio Web.

Restituzioni

Oggetto list di metadati del servizio.

HttpException

Se si è verificato un errore HTTP che chiama ml Server.

realtime_service

realtime_service(name)

Iniziare il concatenamento delle proprietà fluent api per la definizione di un servizio Web in tempo reale .

Esempio:

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

Arguments

nome

Nome del servizio Web.

Restituzioni

RealtimeDefinition Istanza per il concatenamento delle API Fluent.

redeploy_realtime

redeploy_realtime(name, **opts)

Aggiorna le proprietà in un servizio Web in tempo reale esistente nel server in base al nome e alla versione. Se version=None il servizio più recente verrà aggiornato.

Tutti i tipi di input e output vengono definiti come .pandas.DataFrame

Esempio:

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

Annotazioni

L'uso di redeploy_realtime() in questo modo è identico all'aggiornamento di un servizio tramite le API Fluent redeploy()

Arguments

nome

Nome del servizio Web.

Opta

Proprietà del servizio da aggiornare come .dict Il consenso esplicito supporta le proprietà facoltative seguenti:

  • version (str): definisce la versione del servizio Web.

  • description (str) - Descrizione del servizio.

  • alias (str): nome della funzione consume. L'impostazione predefinita è utilizzata.

Restituzioni

Nuova istanza di Service che rappresenta la ridistribuzione del servizio in tempo reale.

HttpException

Se si è verificato un errore HTTP che chiama ml Server.

redeploy_service

redeploy_service(name, **opts)

Aggiorna le proprietà in un servizio Web esistente nel server ML in base al nome e alla versione. Se version=None il servizio più recente verrà aggiornato.

Esempio:

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')

Annotazioni

L'uso di redeploy_service() in questo modo è identico all'aggiornamento di un servizio tramite le API Fluentredeploy()

Arguments

nome

Nome del servizio Web.

Opta

Proprietà del servizio da aggiornare come .dict Il consenso esplicito supporta le proprietà facoltative seguenti:

  • version (str): definisce una versione univoca del servizio Web alfanumerico. Se la versione viene lasciata vuota, viene generato un GUID univoco al suo posto. Utile durante lo sviluppo del servizio prima che l'autore sia pronto per pubblicare ufficialmente una versione semantica da condividere.

  • description (str) - Descrizione del servizio.

  • code_str (str): blocco di codice Python da eseguire e valutare.

  • init_str (str): blocco di codice Python per inizializzare il servizio.

  • code_fn (funzione): funzione da eseguire e valutare.

  • init_fn (funzione): funzione da inizializzare il servizio.

  • oggetti (dict): nome e valore degli oggetti da includere.

  • models (dict): nome e valore dei modelli da includere.

  • input (dict): schema di input del servizio per nome e tipo. Sono supportati i tipi seguenti: - int - float - str - bool - numpy.array - numpy.matrix - pandas. DataFrame

  • output (dict): definisce lo schema di output del servizio Web. Se vuoto, il servizio non restituirà un valore di risposta. gli output vengono definiti come dizionario {'x'=int} o {'x': 'int'} che descrivono i nomi dei parametri di output e i relativi tipi di dati corrispondenti. Sono supportati i tipi seguenti: - int - float - str - bool - numpy.array - numpy.matrix - pandas. DataFrame

  • artifacts (elenco): raccolta di artefatti di file da restituire. Il contenuto del file viene codificato come stringa Base64.

  • alias (str): nome della funzione consume. L'impostazione predefinita è utilizzata. Se viene specificata code_fn funzione, per impostazione predefinita userà tale nome di funzione.

Restituzioni

Nuova istanza di Service che rappresenta il servizio distribuito.

HttpException

Se si è verificato un errore HTTP che chiama ml Server.

servizio

service(name)

Iniziare a concatenare le proprietà fluent per la definizione di un servizio Web standard .

Esempio:

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

Arguments

nome

Nome del servizio Web.

Restituzioni

ServiceDefinition Istanza per il concatenamento delle API Fluent.