Share via


Classe MLServer

MLServer

azureml.deploy.server.MLServer

Basi: azureml.deploy.operationalization.Operationalization

In questo modulo viene fornita un'implementazione di servizio per ML Server.

di Azure AD

authentication(context)

Nota

Anche se Microsoft Entra ID è il nuovo nome per Azure Active Directory (Azure AD), per evitare l'interruzione degli ambienti esistenti, Azure AD rimane ancora in alcuni elementi hardcoded, ad esempio campi dell'interfaccia utente, provider di connessioni, codici di errore e cmdlet. In questo articolo i due nomi sono intercambiabili.

Override

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

ML Server supporta due formati di contesti di autenticazione:

  • LDAP: tupla (nome utente, password)

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

  • Token di accesso: stringa =4534535

Argomenti

context

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

HttpException

In caso di errore HTTP durante la chiamata di 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 specificate per il pool in ML Server, 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]>
>>>

Argomenti

name

Nome univoco del servizio Web.

Versione

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. Questo valore non può essere inferiore al valore initial_pool_size.

Valori restituiti

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

HttpException

In caso di errore HTTP durante la chiamata di ML Server.

delete_service

delete_service(name, **opts)

Eliminare un servizio Web.

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

Argomenti

name

Nome del servizio Web.

opts

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

Valori restituiti

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

HttpException

In caso di errore HTTP durante la chiamata di ML Server.

delete_service_pool

delete_service_pool(name, version, **opts)

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

Esempio:

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

Argomenti

name

Nome univoco del servizio Web.

Versione

Versione del servizio Web.

Valori restituiti

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

HttpException

In caso di errore HTTP durante la chiamata di ML Server.

deploy_realtime

deploy_realtime(name, **opts)

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

Tutti i tipi di input e output sono 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

Nota

Questo modo di usare deploy_realtime() equivale alla pubblicazione di un servizio tramite le API Fluent deploy()

Argomenti

name

Nome del servizio Web.

opts

Proprietà del servizio da pubblicare come dict. L'argomento opts supporta le proprietà facoltative riportate di seguito.

  • version (stringa): definisce una versione univoca in formato alfanumerico del servizio Web. Se la versione non è specificata, in sostituzione viene generato un identificativo GUID univoco. Questa proprietà è utile durante lo sviluppo del servizio, prima che la versione semantica da condividere sia pronta per la pubblicazione ufficiale.

  • description (stringa): descrizione del servizio.

  • alias (stringa): nome della funzione di utilizzo. L'impostazione predefinita è consume.

Valori restituiti

Una nuova istanza di Service che rappresenta il servizio in tempo reale ridistribuito.

HttpException

In caso di errore HTTP durante la chiamata di ML Server.

deploy_service

deploy_service(name, **opts)

Pubblicare un nuovo servizio Web in ML Server 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')

Nota

Questo modo di usare deploy_service() equivale alla pubblicazione di un servizio tramite le API Fluent deploy().

Argomenti

name

Nome univoco del servizio Web.

opts

Proprietà del servizio da pubblicare. Il dict opts supporta le proprietà facoltative riportate di seguito.

  • version (stringa): definisce una versione univoca in formato alfanumerico del servizio Web. Se la versione non è specificata, in sostituzione viene generato un identificativo GUID univoco. Questa proprietà è utile durante lo sviluppo del servizio, prima che la versione semantica da condividere sia pronta per la pubblicazione ufficiale.

  • description (stringa): descrizione del servizio.

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

  • init_str (stringa): blocco di codice Python per l'inizializzazione del servizio.

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

  • init_fn (funzione): funzione per l'inizializzazione del servizio.

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

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

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

    • int

    • float

    • str

    • bool

    • numpy.array

    • numpy.matrix

    • pandas.DataFrame

  • outputs (dict): definisce lo schema di output del servizio Web. Se questo dict rimane vuoto, il servizio non restituirà alcun valore di risposta. Gli output vengono definiti come dizionario {'x'=int} o {'x': 'int'} contenente le descrizioni dei nomi dei parametri di output e i 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 dei file è codificato come Base64 String.

  • alias (stringa): nome della funzione di utilizzo. L'impostazione predefinita è consume. Se viene specificata la funzione code_fn, per impostazione predefinita verrà usato tale nome di funzione.

Valori restituiti

Una nuova istanza di Service che rappresenta il servizio distribuito.

HttpException

In caso di errore HTTP durante la chiamata di ML Server.

Distruttore

destructor()

Override

Metodo del ciclo di vita per l'eliminazione definitiva 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>
   ...
   ...
   ...

Argomenti

name

Nome del servizio Web.

opts

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

Valori restituiti

Nuova istanza di Service.

HttpException

In caso di errore HTTP durante la chiamata di ML Server.

get_service_pool_status

get_service_pool_status(name, version, **opts)

Ottenere lo stato del pool in ogni nodo di calcolo di ML Server 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'}]

Argomenti

name

Nome univoco del servizio Web.

Versione

Versione del servizio Web.

Valori restituiti

Valore str: json che rappresenta lo stato del pool in ogni nodo di calcolo relativo al servizio distribuito.

HttpException

In caso di errore HTTP durante la chiamata di ML Server.

initializer(http_client, config, adapters=None)

Override

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

Argomenti

http_client

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

config

Configurazione globale.

Adattatori

dict di adattatori di trasporto basato sull'URL.

list_services

list_services(name=None, **opts)

Elencare i diversi servizi Web pubblicati in ML Server.

Il nome 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 congiuntamente 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')

Argomenti

name

Nome del servizio Web.

opts

Versione facoltativa del servizio Web.

Valori restituiti

list dei metadati del servizio.

HttpException

In caso di errore HTTP durante la chiamata di ML Server.

realtime_service

realtime_service(name)

Iniziare il concatenamento delle API Fluent delle proprietà 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')

Argomenti

name

Nome del servizio Web.

Valori restituiti

Un'istanza RealtimeDefinition per il concatenamento delle API Fluent.

redeploy_realtime

redeploy_realtime(name, **opts)

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

Tutti i tipi di input e output sono 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

Nota

Questo modo di usare redeploy_realtime() equivale alla pubblicazione di un servizio tramite le API Fluent redeploy()

Argomenti

name

Nome del servizio Web.

opts

Proprietà del servizio da aggiornare come dict. L'argomento opts supporta le proprietà facoltative riportate di seguito.

  • version (stringa): specifica della versione del servizio Web.

  • description (stringa): descrizione del servizio.

  • alias (stringa): nome della funzione di utilizzo. L'impostazione predefinita è consume.

Valori restituiti

Una nuova istanza di Service che rappresenta il servizio in tempo reale ridistribuito.

HttpException

In caso di errore HTTP durante la chiamata di ML Server.

redeploy_service

redeploy_service(name, **opts)

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

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

Nota

Questo modo di usare redeploy_service() equivale alla pubblicazione di un servizio tramite le API Fluent redeploy()

Argomenti

name

Nome del servizio Web.

opts

Proprietà del servizio da aggiornare come dict. L'argomento opts supporta le proprietà facoltative riportate di seguito.

  • version (stringa): definisce una versione univoca in formato alfanumerico del servizio Web. Se la versione non è specificata, in sostituzione viene generato un identificativo GUID univoco. Questa proprietà è utile durante lo sviluppo del servizio, prima che la versione semantica da condividere sia pronta per la pubblicazione ufficiale.

  • description (stringa): descrizione del servizio.

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

  • init_str (stringa): blocco di codice Python per l'inizializzazione del servizio.

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

  • init_fn (funzione): funzione per l'inizializzazione del servizio.

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

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

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

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

  • artifacts (elenco): raccolta di artefatti di file da restituire. Il contenuto dei file è codificato come Base64 String.

  • alias (stringa): nome della funzione di utilizzo. L'impostazione predefinita è consume. Se viene specificata la funzione code_fn, per impostazione predefinita verrà usato tale nome di funzione.

Valori restituiti

Una nuova istanza di Service che rappresenta il servizio distribuito.

HttpException

In caso di errore HTTP durante la chiamata di ML Server.

servizio

service(name)

Iniziare il concatenamento delle API Fluent delle proprietà per la definizione di un servizio Web standard.

Esempio:

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

Argomenti

name

Nome del servizio Web.

Valori restituiti

Un'istanza ServiceDefinition per il concatenamento delle API Fluent.