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.DataFrameartifacts (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.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per