Partage via


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.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.

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.