Classe MLServer
MLServer
azureml.deploy.server.MLServer
Bases : azureml.deploy.operationalization.Operationalization
Ce module fournit une implémentation du service pour ML Server.
authentification
authentication(context)
Remarque
Bien que Microsoft Entra ID soit le nouveau nom d'Azure Active Directory (Azure AD) pour empêcher l'interruption des environnements existants, Azure AD reste toujours dans certains éléments codés en dur, tels que les champs d'interface utilisateur, les fournisseurs de connexions, les codes d'erreur et cmdlets. Dans cet article, les deux noms sont interchangeables.
Remplacer
Méthode du cycle de vie de l’authentification appelée par l’infrastructure. Invoque le point d’entrée d’authentification pour la hiérarchie de classes.
ML Server prend en charge deux formes de contextes d’authentification :
LDAP : tuple (nom d’utilisateur, mot de passe)
Azure Active Directory (AAD) : dict {…}
access-token : str =4534535
Arguments
contexte
Contexte d’authentification : LDAP, Azure Active Directory (AAD) ou chaîne access-token existante.
HttpException
Si une erreur HTTP s’est produite lors de l’appel de ML Server.
create_or_update_service_pool
create_or_update_service_pool(name, version, initial_pool_size, max_pool_size, **opts)
Crée ou met à jour le pool pour le service web publié, avec les tailles de pool initiales et maximales spécifiées sur ML Server par name et version.
Exemple :
>>> client.create_or_update_service_pool(
'regression',
version = 'v1.0.0',
initial_pool_size = 1,
maximum_pool_size = 10)
<Response [200]>
>>>
Arguments
name
Nom unique du service web.
version
Version du service web.
initial_pool_size
Taille initiale du pool pour le service web.
max_pool_size
Taille maximale du pool pour le service web. Cette valeur ne peut pas être inférieure à initial_pool_size.
Retours
requests.models.Response : état HTTP indiquant si la requête a été envoyée avec succès ou pas.
HttpException
Si une erreur HTTP s’est produite lors de l’appel de ML Server.
delete_service
delete_service(name, **opts)
Supprimer un service web.
success = client.delete_service('example', version='v1.0.1')
print(success)
True
Arguments
name
Nom du service web.
opts
Version du service web (version='v1.0.1).
Retours
bool
indiquant que la suppression du service a réussi.
HttpException
Si une erreur HTTP s’est produite lors de l’appel de ML Server.
delete_service_pool
delete_service_pool(name, version, **opts)
Supprimez le pool pour le service web publié sur ML Server par name et version.
Exemple :
>>> client.delete_service_pool('regression', version = 'v1.0.0')
<Response [200]>
>>>
Arguments
name
Nom unique du service web.
version
Version du service web.
Retours
requests.models.Response : état HTTP si le pool a été supprimé pour le service.
HttpException
Si une erreur HTTP s’est produite lors de l’appel de ML Server.
deploy_realtime
deploy_realtime(name, **opts)
Publiez un nouveau service web en temps réel sur ML Server par name et version.
Tous les types d’entrée et de sortie sont définis en tant que pandas.DataFrame
.
Exemple :
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
Notes
L’utilisation de deploy_realtime() de cette manière est identique à la publication d’un service à l’aide des API Fluent deploy()
Arguments
name
Nom du service web.
opts
Propriétés de service à publier en tant que dict
. opts prend en charge les paramètres facultatifs suivants :
version (str) : définit une version de service web alphanumérique unique. Si la version est laissée vide, une valeur guid unique est générée à la place. Utile pendant le développement du service avant que l’auteur soit prêt à publier officiellement une version sémantique à partager.
description (str) : description du service.
alias (str) : nom de la fonction consume. Paramètre par défaut : consume.
Retours
Nouvelle instance de Service
représentant le service en temps réel redéployé.
HttpException
Si une erreur HTTP s’est produite lors de l’appel de ML Server.
deploy_service
deploy_service(name, **opts)
Publiez un nouveau service web sur ML Server par name et version.
Exemple :
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')
Notes
L’utilisation de deploy_service()
de cette manière est identique à la publication d’un service à l’aide des API Fluent deploy()
.
Arguments
name
Nom unique du service web.
opts
Propriétés de service à publier. opts dict prend en charge les propriétés facultatives suivants :
version (str) : définit une version de service web alphanumérique unique. Si la version est laissée vide, une valeur guid unique est générée à la place. Utile pendant le développement du service avant que l’auteur soit prêt à publier officiellement une version sémantique à partager.
description (str) : description du service.
code_str (str) : bloc de code Python à exécuter et à évaluer.
init_str (str) : bloc de code Python pour initialiser le service.
code_fn (fonction) : fonction à exécuter et à évaluer.
init_fn (function) : fonction permettant d’initialiser le service.
objects (dict) : nom et valeur des propriétés objects à inclure.
models (dict) : nom et valeur des propriétés models à inclure.
inputs (dict) : schéma d’entrée du service par name et type. Les types suivants sont pris en charge :
int
float
str
bool
numpy.array
numpy.matrix
pandas.DataFrame
outputs (dict) : définit le schéma de sortie de service web. S’il est vide, le service ne retourne pas de valeur de réponse. Les sorties sont définies en tant que dictionnaire
{'x'=int}
ou{'x': 'int'}
décrivant les noms des paramètres de sortie et leurs types de données correspondants. Les types suivants sont pris en charge :int
float
str
bool
numpy.array
numpy.matrix
pandas.DataFrame
artefacts (list) : collection d’artefacts de fichiers à retourner. Le contenu du fichier est encodé sous la forme d’une chaîne Base64.
alias (str) : nom de la fonction consume. Paramètre par défaut : consume. Si la fonction code_fn est fournie, le nom de cette fonction par défaut est utilisé.
Retours
Nouvelle instance de Service
représentant le service déployé.
HttpException
Si une erreur HTTP s’est produite lors de l’appel de ML Server.
destructeur
destructor()
Remplacer
Méthode du cycle de vie destroy appelée par l’infrastructure. Invoque des destructeurs pour la hiérarchie de classes.
get_service
get_service(name, **opts)
Obtient un service web à consommer.
service = client.get_service('example', version='v1.0.1')
print(service)
<ExampleService>
...
...
...
Arguments
name
Nom du service web.
opts
Version de service web facultative. Si version=None
est défini, le service le plus récent est retourné.
Retours
Nouvelle instance de Service
.
HttpException
Si une erreur HTTP s’est produite lors de l’appel de ML Server.
get_service_pool_status
get_service_pool_status(name, version, **opts)
Obtient l’état du pool sur chaque nœud de calcul de ML Server pour les services publiés avec name et version fournis.
Exemple :
>>> 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
name
Nom unique du service web.
version
Version du service web.
Retours
str: json : json représentant l’état du pool sur chaque nœud de calcul pour le service déployé.
HttpException
Si une erreur HTTP s’est produite lors de l’appel de ML Server.
initializer(http_client, config, adapters=None)
Remplacer
Méthode Init de cycle de vie appelée par l’infrastructure, invoquée pendant la construction. Configure des attributs et invoque des initialiseurs pour la hiérarchie de classes.
Arguments
http_client
Session de requête HTTP pour gérer et conserver les paramètres entre les requêtes (authentification, proxies).
config
Configuration globale.
de stockage
dict
des adaptateurs de transport par URL.
list_services
list_services(name=None, **opts)
Répertorie les différents services web publiés sur ML Server.
name et version du service sont facultatifs. Cet appel vous permet de récupérer des informations sur le service concernant :
Tous les services publiés
Tous les services avec version pour un service nommé spécifique
Version spécifique pour un service nommé
Les utilisateurs peuvent utiliser ces informations avec l’opération [get_service()](#getservice)
pour interagir avec le service web et l’utiliser.
Exemple :
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
name
Nom du service web.
opts
Version de service web facultative.
Retours
list
de métadonnées de service.
HttpException
Si une erreur HTTP s’est produite lors de l’appel de ML Server.
realtime_service
realtime_service(name)
Commence le chaînage des propriétés de l’API Fluent pour la définition d’un service web en temps réel.
Exemple :
client.realtime_service('scoring')
.description('A new real-time web service')
.version('v1.0.0')
Arguments
name
Nom du service web.
Retours
Instance RealtimeDefinition
du chaînage de l’API Fluent.
redeploy_realtime
redeploy_realtime(name, **opts)
Met à jour les propriétés d’un service web en temps réel existant sur le serveur, par name et version. Si version=None
est défini, le service le plus récent est mis à jour.
Tous les types d’entrée et de sortie sont définis en tant que pandas.DataFrame
.
Exemple :
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
Notes
L’utilisation de redeploy_realtime() de cette manière est identique à la mise à jour d’un service à l’aide des API Fluent redeploy()
Arguments
name
Nom du service web.
opts
Propriétés de service à mettre à jour en tant que dict
. opts prend en charge les paramètres facultatifs suivants :
version (str) : version du service web.
description (str) : description du service.
alias (str) : nom de la fonction consume. Paramètre par défaut : consume.
Retours
Nouvelle instance de Service
représentant le service en temps réel redéployé.
HttpException
Si une erreur HTTP s’est produite lors de l’appel de ML Server.
redeploy_service
redeploy_service(name, **opts)
Met à jour les propriétés d’un service web existant sur ML Server par name et version. Si version=None
est défini, le service le plus récent est mis à jour.
Exemple :
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')
Notes
L’utilisation de redeploy_service() de cette manière est identique à la mise à jour d’un service à l’aide des API Fluent redeploy()
Arguments
name
Nom du service web.
opts
Propriétés de service à mettre à jour en tant que dict
. opts prend en charge les paramètres facultatifs suivants :
version (str) : définit une version de service web alphanumérique unique. Si la version est laissée vide, une valeur guid unique est générée à la place. Utile pendant le développement du service avant que l’auteur soit prêt à publier officiellement une version sémantique à partager.
description (str) : description du service.
code_str (str) : bloc de code Python à exécuter et à évaluer.
init_str (str) : bloc de code Python pour initialiser le service.
code_fn (fonction) : fonction à exécuter et à évaluer.
init_fn (function) : fonction permettant d’initialiser le service.
objects (dict) : nom et valeur des propriétés objects à inclure.
models (dict) : nom et valeur des propriétés models à inclure.
inputs (dict) : schéma d’entrée du service par name et type. Les types suivants sont pris en charge : – int – float – str – bool – numpy.array – numpy.matrix – pandas.DataFrame
outputs (dict) : définit le schéma de sortie de service web. S’il est vide, le service ne retourne pas de valeur de réponse. Les sorties sont définies en tant que dictionnaire
{'x'=int}
ou{'x': 'int'}
décrivant les noms des paramètres de sortie et leurs types de données correspondants. Les types suivants sont pris en charge : – int – float – str – bool – numpy.array – numpy.matrix – pandas.DataFrameartefacts (list) : collection d’artefacts de fichiers à retourner. Le contenu du fichier est encodé sous la forme d’une chaîne Base64.
alias (str) : nom de la fonction consume. Paramètre par défaut : consume. Si la fonction code_fn est fournie, le nom de cette fonction par défaut est utilisé.
Retours
Nouvelle instance de Service
représentant le service déployé.
HttpException
Si une erreur HTTP s’est produite lors de l’appel de ML Server.
service
service(name)
Commence le chaînage des propriétés de l’API Fluent pour la définition d’un service web standard.
Exemple :
client.service('scoring')
.description('A new web service')
.version('v1.0.0')
Arguments
name
Nom du service web.
Retours
Instance ServiceDefinition
du chaînage de l’API Fluent.