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.DataFrameartifacts (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.
Comentaris
https://aka.ms/ContentUserFeedback.
Properament: al llarg del 2024 eliminarem gradualment GitHub Issues com a mecanisme de retroalimentació del contingut i el substituirem per un nou sistema de retroalimentació. Per obtenir més informació, consulteu:Envieu i consulteu els comentaris de