Classe MLServer

MLServer

azureml.deploy.server.MLServer

Bases: azureml.deploy.operationalization.Operationalization

Este módulo fornece uma implementação de serviço para o ML Server.

autenticação

authentication(context)

Observação

Embora o Microsoft Entra ID seja o novo nome do Azure Active Directory (Azure AD), para evitar a interrupção de ambientes existentes, o Azure AD ainda permanecerá em alguns elementos codificados, como campos de interface do usuário, provedores de conexão, códigos de erro e cmdlets. Neste artigo, os dois nomes são intercambiáveis.

Override

Método de ciclo de vida de autenticação chamado pela estrutura. Invoca o ponto de entrada de autenticação para a hierarquia de classe.

O ML Server dá suporte a duas formas de contextos de autenticação:

  • LDAP: tupla (nome de usuário, senha)

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

  • access-token: str =4534535

Argumentos

contexto

O contexto de autenticação: LDAP, AAD (Azure Active Directory) ou cadeia de caracteres de token de acesso existente.

HttpException

Se uma falha de HTTP ocorreu ao chamar o ML Server.

create_or_update_service_pool

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

Cria ou atualiza o pool para o serviço Web publicado, com os tamanhos de pool inicial e máximo fornecidos no ML Server por name e version.

Exemplo:

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

Argumentos

name

O nome exclusivo do serviço Web.

version

A versão do serviço Web.

initial_pool_size

O tamanho inicial do pool para o serviço Web.

max_pool_size

O tamanho máximo do pool para o serviço Web. Ele não pode ser menor que initial_pool_size.

Retornos

requests.models.Response: status HTTP indicando se a solicitação foi enviada com êxito ou não.

HttpException

Se uma falha de HTTP ocorreu ao chamar o ML Server.

delete_service

delete_service(name, **opts)

Excluir um serviço Web.

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

Argumentos

name

O nome do serviço Web.

opts

A versão do serviço Web (versão='v1.0.1).

Retornos

Um bool indicando que a exclusão do serviço foi bem-sucedida.

HttpException

Se uma falha de HTTP ocorreu ao chamar o ML Server.

delete_service_pool

delete_service_pool(name, version, **opts)

Exclua o pool para o serviço Web publicado no ML Server por name e version.

Exemplo:

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

Argumentos

name

O nome exclusivo do serviço Web.

version

A versão do serviço Web.

Retornos

requests.models.Response: status HTTP se o pool foi excluído para o serviço.

HttpException

Se uma falha de HTTP ocorreu ao chamar o ML Server.

deploy_realtime

deploy_realtime(name, **opts)

Publique um novo serviço Web em tempo real no ML Server por name e version.

Todos os tipos de entrada e saída são definidos como um pandas.DataFrame.

Exemplo:

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

Observação

O uso de deploy_realtime () dessa maneira é idêntico à publicação de um serviço usando as APIs fluentes deploy()

Argumentos

name

O nome do serviço Web.

opts

As propriedades do serviço a serem publicadas como um dict. opts dá suporte às seguintes propriedades opcionais:

  • version (str) – define uma versão alfanumérica exclusiva do serviço Web. Se a versão for deixada em branco, um GUID exclusivo será gerado em seu lugar. Útil durante o desenvolvimento do serviço antes que o autor esteja pronto para publicar oficialmente uma versão semântica para compartilhamento.

  • description (str) – a descrição do serviço.

  • alias (str) – o nome da função de consumo. O padrão é consume.

Retornos

Uma nova instância do Service que representa o serviço em tempo real reimplantado.

HttpException

Se uma falha de HTTP ocorreu ao chamar o ML Server.

deploy_service

deploy_service(name, **opts)

Publique um novo serviço Web no ML Server por name e version.

Exemplo:

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

Observação

Usar deploy_service() dessa maneira é idêntico à publicação de um serviço usando as APIs fluentes deploy().

Argumentos

name

O nome exclusivo do serviço Web.

opts

As propriedades do serviço a serem publicadas. O dict opts dá suporte às seguintes propriedades opcionais:

  • version (str) – define uma versão alfanumérica exclusiva do serviço Web. Se a versão for deixada em branco, um GUID exclusivo será gerado em seu lugar. Útil durante o desenvolvimento do serviço antes que o autor esteja pronto para publicar oficialmente uma versão semântica para compartilhamento.

  • description (str) – a descrição do serviço.

  • code_str (str) – um bloco de código Python a ser executado e avaliado.

  • init_str (str) – um bloco de código Python para inicializar o serviço.

  • code_fn (function) – uma função a ser executada e avaliada.

  • init_fn (function) – uma função para inicializar o serviço.

  • objects (dict) – nome e valor dos objetos a serem incluídos.

  • models (dict) – nome e valor dos modelos a serem incluídos.

  • inputs (dict) – esquema de entrada do serviço por nome e tipo. Os seguintes tipos têm suporte:

    • INT

    • FLOAT

    • str

    • bool

    • numpy.array

    • numpy.matrix

    • pandas.DataFrame

  • outputs (dict) – define o esquema de saída do serviço Web. Se estiver vazio, o serviço não retornará um valor de resposta. As outputs são definidas como um dicionário {'x'=int} ou {'x': 'int'} que descreve os nomes dos parâmetros de saída e seus tipos de dados correspondentes. Os seguintes tipos têm suporte:

    • INT

    • FLOAT

    • str

    • bool

    • numpy.array

    • numpy.matrix

    • pandas.DataFrame

  • artifacts (list) – uma coleção de artefatos de arquivo a ser retornada. O conteúdo do arquivo é codificado como uma Cadeia de caracteres em Base64.

  • alias (str) – o nome da função de consumo. O padrão é consume. Se a função code_fn for fornecida, ela usará esse nome de função por padrão.

Retornos

Uma nova instância do Service que representa o serviço implantado.

HttpException

Se uma falha de HTTP ocorreu ao chamar o ML Server.

destruidor

destructor()

Override

Destrói o método de ciclo de vida chamado pela estrutura. Invoca destruidores para a hierarquia de classe.

get_service

get_service(name, **opts)

Obtém um serviço Web para consumo.

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

Argumentos

name

O nome do serviço Web.

opts

A versão opcional do serviço Web. Se version=None, o serviço mais recente será retornado.

Retornos

Uma nova instância de Service.

HttpException

Se uma falha de HTTP ocorreu ao chamar o ML Server.

get_service_pool_status

get_service_pool_status(name, version, **opts)

Obtém o status do pool em cada nó de computação do ML Server para os serviços publicados com o nome e aversãofornecidos.

Exemplo:

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

O nome exclusivo do serviço Web.

version

A versão do serviço Web.

Retornos

str: json que representa o status do pool em cada nó de computação para o serviço implantado.

HttpException

Se uma falha de HTTP ocorreu ao chamar o ML Server.

initializer(http_client, config, adapters=None)

Override

Método de ciclo de vida de inicialização chamado pela estrutura, invocado durante a construção. Configura os atributos e invoca os inicializadores para a hierarquia de classe.

Argumentos

http_client

A sessão de solicitação HTTP para gerenciar e persistir configurações entre solicitações (autenticação, proxies).

config

A configuração global.

adaptadores

Um dict de adaptadores de transporte por URL.

list_services

list_services(name=None, **opts)

Lista os diferentes serviços Web publicados no ML Server.

O nome e a versão do serviço são opcionais. Essa chamada permite que você recupere informações de serviço relacionadas a:

  • Todos os serviços publicados

  • Todos os serviços com versão para um serviço nomeado específico

  • Uma versão específica para um serviço nomeado

Os usuários podem usar essas informações junto com a operação [get_service()](#getservice) para interagir com o serviço Web e consumi-lo.

Exemplo:

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

O nome do serviço Web.

opts

A versão opcional do serviço Web.

Retornos

Uma list de metadados de serviço.

HttpException

Se uma falha de HTTP ocorreu ao chamar o ML Server.

realtime_service

realtime_service(name)

Comece o encadeamento da API fluente de propriedades para definir um serviço Web em tempo real.

Exemplo:

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

Argumentos

name

O nome do serviço Web.

Retornos

Uma instância de RealtimeDefinition para encadeamento de API fluente.

redeploy_realtime

redeploy_realtime(name, **opts)

Atualiza as propriedades em um serviço Web em tempo real existente no Servidor por nome e versão. Se version=None, o serviço mais recente será atualizado.

Todos os tipos de entrada e saída são definidos como um pandas.DataFrame.

Exemplo:

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

Observação

Usar redeploy_realtime() dessa maneira é idêntico à atualização de um serviço usando as APIS fluentes redeploy()

Argumentos

name

O nome do serviço Web.

opts

As propriedades do serviço a serem atualizadas como um dict. opts dá suporte às seguintes propriedades opcionais:

  • version (str) – define a versão do serviço Web.

  • description (str) – a descrição do serviço.

  • alias (str) – o nome da função de consumo. O padrão é consume.

Retornos

Uma nova instância do Service que representa o serviço em tempo real reimplantado.

HttpException

Se uma falha de HTTP ocorreu ao chamar o ML Server.

redeploy_service

redeploy_service(name, **opts)

Atualiza as propriedades em um serviço Web existente no ML Server por nome e versão. Se version=None, o serviço mais recente será atualizado.

Exemplo:

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

Observação

O uso de redeploy_service() dessa maneira é idêntico à atualização de um serviço usando as APIs fluentes redeploy()

Argumentos

name

O nome do serviço Web.

opts

As propriedades do serviço a serem atualizadas como um dict. opts dá suporte às seguintes propriedades opcionais:

  • version (str) – define uma versão alfanumérica exclusiva do serviço Web. Se a versão for deixada em branco, um GUID exclusivo será gerado em seu lugar. Útil durante o desenvolvimento do serviço antes que o autor esteja pronto para publicar oficialmente uma versão semântica para compartilhamento.

  • description (str) – a descrição do serviço.

  • code_str (str) – um bloco de código Python a ser executado e avaliado.

  • init_str (str) – um bloco de código Python para inicializar o serviço.

  • code_fn (function) – uma função a ser executada e avaliada.

  • init_fn (function) – uma função para inicializar o serviço.

  • objects (dict) – nome e valor dos objetos a serem incluídos.

  • models (dict) – nome e valor dos modelos a serem incluídos.

  • inputs (dict) – esquema de entrada do serviço por nome e tipo. Há suporte para os seguintes tipos: – int – float – str – bool – numpy.array – numpy.matrix – pandas.DataFrame

  • outputs (dict) – define o esquema de saída do serviço Web. Se estiver vazio, o serviço não retornará um valor de resposta. As outputs são definidas como um dicionário {'x'=int} ou {'x': 'int'} que descreve os nomes dos parâmetros de saída e seus tipos de dados correspondentes. Há suporte para os seguintes tipos: – int – float – str – bool – numpy.array – numpy.matrix – pandas.DataFrame

  • artifacts (list) – uma coleção de artefatos de arquivo a ser retornada. O conteúdo do arquivo é codificado como uma Cadeia de caracteres em Base64.

  • alias (str) – o nome da função de consumo. O padrão é consume. Se a função code_fn for fornecida, ela usará esse nome de função por padrão.

Retornos

Uma nova instância do Service que representa o serviço implantado.

HttpException

Se uma falha de HTTP ocorreu ao chamar o ML Server.

serviço

service(name)

Inicie o encadeamento de API fluente de propriedades para definir um serviço Web padrão.

Exemplo:

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

Argumentos

name

O nome do serviço Web.

Retornos

Uma instância ServiceDefinition para encadeamento de API fluente.