Clase MLServer

MLServer

azureml.deploy.server.MLServer

Bases: azureml.deploy.operationalization.Operationalization

Este módulo proporciona una implementación de servicio para ML Server.

autenticación

authentication(context)

Nota:

Aunque Microsoft Entra ID es el nuevo nombre de Azure Active Directory (Azure AD), para evitar interrumpir los entornos existentes, Azure AD sigue estando en algunos elementos codificados de forma rígida como campos de interfaz de usuario, proveedores de conexiones, códigos de error y cmdlets. En este artículo, los dos nombres son intercambiables.

Invalidar

Método de ciclo de vida de autenticación al que llama el marco. Invoca el punto de entrada de autenticación para la jerarquía de clases.

ML Server admite dos formas de contextos de autenticación:

  • LDAP: tupla (nombre de usuario, contraseña)

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

  • access-token: str =4534535

Argumentos

context

Contexto de autenticación: LDAP, Azure Active Directory (AAD) o una cadena access-token existente.

HttpException

Si se produjo un error HTTP al llamar a ML Server.

create_or_update_service_pool

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

Crea o actualiza el grupo para el servicio web publicado, con determinados tamaños de grupo iniciales y máximos en ML Server por nombre y versión.

Ejemplo:

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

Argumentos

name

Nombre único del servicio web.

version

La versión del servicio web.

initial_pool_size

El tamaño inicial del grupo para el servicio web.

max_pool_size

El tamaño máximo del grupo para el servicio web. No puede ser menor que initial_pool_size.

Devoluciones

requests.models.Response: estado HTTP que indica si la solicitud se envió correctamente o no.

HttpException

Si se produjo un error HTTP al llamar a ML Server.

delete_service

delete_service(name, **opts)

Eliminar un servicio web

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

Argumentos

name

El nombre del servicio web.

opta

La versión del servicio web (version='v1.0.1).

Devoluciones

Un bool que indica que la eliminación del servicio se ha eliminado correctamente.

HttpException

Si se produjo un error HTTP al llamar a ML Server.

delete_service_pool

delete_service_pool(name, version, **opts)

Elimine el grupo para el servicio web publicado en ML Server por nombre y versión.

Ejemplo:

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

Argumentos

name

Nombre único del servicio web.

version

La versión del servicio web.

Devoluciones

requests.models.Response: estado HTTP si se eliminó el grupo para el servicio.

HttpException

Si se produjo un error HTTP al llamar a ML Server.

deploy_realtime

deploy_realtime(name, **opts)

Publique un nuevo servicio web en tiempo real en ML Server por nombre y versión.

Todos los tipos de entrada y salida se definen como un pandas.DataFrame.

Ejemplo:

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

El uso de deploy_realtime() de este modo es idéntico a publicar un servicio mediante las API fluidas deploy().

Argumentos

name

El nombre del servicio web.

opta

Las propiedades del servicio que se publicarán como un dict. El objeto opts admite los siguientes parámetros opcionales:

  • version (str): define una versión de servicio web alfanumérica única. Si la versión se deja en blanco, se genera un guid único en su lugar. Resulta útil durante el desarrollo del servicio antes de que el autor esté listo para publicar oficialmente una versión semántica para compartir.

  • description (str): la descripción del servicio.

  • alias (str): el nombre de la función consume. El valor predeterminado es consume.

Devoluciones

Nueva instancia de Service que representa el servicio en tiempo real que se ha vuelto a implementar.

HttpException

Si se produjo un error HTTP al llamar a ML Server.

deploy_service

deploy_service(name, **opts)

Publica un nuevo servicio web en ML Server por nombre y versión.

Ejemplo:

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

El uso de deploy_service() de este modo es idéntica a publicar un servicio mediante las API fluidas deploy().

Argumentos

name

Nombre único del servicio web.

opta

Las propiedades del servicio que se publicarán. opts dict admite los siguientes parámetros opcionales:

  • version (str): define una versión de servicio web alfanumérica única. Si la versión se deja en blanco, se genera un guid único en su lugar. Resulta útil durante el desarrollo del servicio antes de que el autor esté listo para publicar oficialmente una versión semántica para compartir.

  • description (str): la descripción del servicio.

  • code_str (str): un bloque de código python para ejecutar y evaluar.

  • init_str (str): bloque de código python para inicializar el servicio.

  • code_fn (función): función que se ejecuta y evalúa.

  • init_fn (función): una función para inicializar el servicio.

  • objects (dict): nombre y valor de los objetos que se incluirán.

  • models (dict): nombre y valor de los modelos que se incluirán.

  • inputs (dict): esquema de entrada de servicio por nombre y tipo. Se admiten los siguientes tipos:

    • int

    • FLOAT

    • str

    • bool

    • numpy.array

    • numpy.matrix

    • pandas.DataFrame

  • outputs (dict): define el esquema de salida del servicio web. Si está vacío, el servicio no devolverá un valor de respuesta. Las salidas se definen como un diccionario {'x'=int} o {'x': 'int'} que describe los nombres de parámetro de salida y sus tipos de datos correspondientes. Se admiten los siguientes tipos:

    • int

    • FLOAT

    • str

    • bool

    • numpy.array

    • numpy.matrix

    • pandas.DataFrame

  • artifacts (list): una colección de artefactos de archivo que se devolverán. El contenido del archivo se codifica como una cadena Base64.

  • alias (str): el nombre de la función consume. El valor predeterminado es consume. Si se proporciona la función code_fn, usará ese nombre de función de forma predeterminada.

Devoluciones

Nueva instancia de Service que representa el servicio implementado.

HttpException

Si se produjo un error HTTP al llamar a ML Server.

destructor

destructor()

Invalidar

Destruye el método de ciclo de vida al que llama el marco. Invoca a destructores para la jerarquía de clases.

get_service

get_service(name, **opts)

Obtiene un servicio web para su consumo.

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

Argumentos

name

El nombre del servicio web.

opta

La versión del servicio web opcional. Si version=None, se devolverá el servicio más reciente.

Devoluciones

Nueva instancia de Service.

HttpException

Si se produjo un error HTTP al llamar a ML Server.

get_service_pool_status

get_service_pool_status(name, version, **opts)

Obtiene el estado del grupo en cada nodo de proceso de ML Server para los servicios publicados con el nombre y la versión proporcionados.

Ejemplo:

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

Argumentos

name

Nombre único del servicio web.

version

La versión del servicio web.

Devoluciones

str: archivo json que representa el estado del grupo en cada nodo de proceso para el servicio implementado.

HttpException

Si se produjo un error HTTP al llamar a ML Server.

initializer(http_client, config, adapters=None)

Invalidar

Método de ciclo de vida de inicialización llamado por el marco, invocado durante la construcción. Configura atributos e invoca inicializadores para la jerarquía de clases.

Argumentos

http_client

La sesión de solicitud HTTP para administrar y conservar la configuración entre solicitudes (autenticación, servidores proxy).

config

La configuración global.

almacenamiento

Un dict de adaptadores de transporte por dirección URL.

list_services

list_services(name=None, **opts)

Enumera los distintos servicios web publicados en ML Server.

El nombre del servicio y la versión del servicio son opcionales. Esta llamada le permite recuperar información del servicio con respecto a:

  • Todos los servicios publicados

  • Todos los servicios con control de versiones para un servicio con nombre específico

  • Una versión específica para un servicio con nombre

Los usuarios pueden usar esta información junto con la operación [get_service()](#getservice) para interactuar con el servicio web y consumirlo.

Ejemplo:

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

Argumentos

name

El nombre del servicio web.

opta

La versión del servicio web opcional.

Devoluciones

Una list de metadatos de servicio.

HttpException

Si se produjo un error HTTP al llamar a ML Server.

realtime_service

realtime_service(name)

Comience el encadenamiento de API fluida de propiedades para definir un servicio web en tiempo real.

Ejemplo:

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

Argumentos

name

El nombre del servicio web.

Devoluciones

Una instancia de RealtimeDefinition para el encadenamiento de API fluida.

redeploy_realtime

redeploy_realtime(name, **opts)

Actualiza las propiedades de un servicio web en tiempo real existente en el servidor por nombre y versión. Si version=None se actualizará el servicio más reciente.

Todos los tipos de entrada y salida se definen como un pandas.DataFrame.

Ejemplo:

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

El uso de redeploy_realtime() de este modo es idéntico a actualizar un servicio mediante las API fluidas redeploy().

Argumentos

name

El nombre del servicio web.

opta

Las propiedades del servicio que se actualizarán como un dict. El objeto opts admite los siguientes parámetros opcionales:

  • version (str): define la versión del servicio web.

  • description (str): la descripción del servicio.

  • alias (str): el nombre de la función consume. El valor predeterminado es consume.

Devoluciones

Nueva instancia de Service que representa el servicio en tiempo real que se ha vuelto a implementar.

HttpException

Si se produjo un error HTTP al llamar a ML Server.

redeploy_service

redeploy_service(name, **opts)

Actualiza las propiedades de un servicio web existente en ML Server por nombre y versión. Si version=None se actualizará el servicio más reciente.

Ejemplo:

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

El uso de redeploy_service() de este modo es idéntico a actualizar un servicio mediante las API fluidas redeploy().

Argumentos

name

El nombre del servicio web.

opta

Las propiedades del servicio que se actualizarán como un dict. El objeto opts admite los siguientes parámetros opcionales:

  • version (str): define una versión de servicio web alfanumérica única. Si la versión se deja en blanco, se genera un guid único en su lugar. Resulta útil durante el desarrollo del servicio antes de que el autor esté listo para publicar oficialmente una versión semántica para compartir.

  • description (str): la descripción del servicio.

  • code_str (str): un bloque de código python para ejecutar y evaluar.

  • init_str (str): bloque de código python para inicializar el servicio.

  • code_fn (función): función que se ejecuta y evalúa.

  • init_fn (función): una función para inicializar el servicio.

  • objects (dict): nombre y valor de los objetos que se incluirán.

  • models (dict): nombre y valor de los modelos que se incluirán.

  • inputs (dict): esquema de entrada de servicio por nombre y tipo. Se admiten los siguientes tipos: - int - float - str - bool - numpy.array - numpy.matrix - pandas.DataFrame

  • outputs (dict): define el esquema de salida del servicio web. Si está vacío, el servicio no devolverá un valor de respuesta. Las salidas se definen como un diccionario {'x'=int} o {'x': 'int'} que describe los nombres de parámetro de salida y sus tipos de datos correspondientes. Se admiten los siguientes tipos: - int - float - str - bool - numpy.array - numpy.matrix - pandas.DataFrame

  • artifacts (list): una colección de artefactos de archivo que se devolverán. El contenido del archivo se codifica como una cadena Base64.

  • alias (str): el nombre de la función consume. El valor predeterminado es consume. Si se proporciona la función code_fn, usará ese nombre de función de forma predeterminada.

Devoluciones

Nueva instancia de Service que representa el servicio implementado.

HttpException

Si se produjo un error HTTP al llamar a ML Server.

service

service(name)

Comience el encadenamiento de API fluida de propiedades para definir un servicio web estándar.

Ejemplo:

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

Argumentos

name

El nombre del servicio web.

Devoluciones

Una instancia de ServiceDefinition para el encadenamiento de API fluida.