Partilhar via


Integração do Machine Learning Studio (clássica) no Stream Analytics

Importante

O suporte para o Azure Machine Learning Studio (clássico) terminará em 31 de agosto de 2024. Recomendamos que faça a transição para o Azure Machine Learning até essa data.

A partir de 1º de dezembro de 2021, não é possível criar novos recursos (clássicos) do Machine Learning Studio (espaço de trabalho e plano de serviço Web). Até 31 de agosto de 2024, você pode continuar a usar os experimentos e serviços Web existentes do Machine Learning Studio (clássicos). Para obter mais informações, consulte:

A documentação do Machine Learning Studio (clássica) está sendo desativada e pode não ser atualizada no futuro.

O Azure Stream Analytics dá suporte a UDFs (funções definidas pelo usuário) que chamam pontos de extremidade (clássicos) do Azure Machine Learning Studio. A biblioteca da API REST do Stream Analytics descreve o suporte à API REST para esse recurso.

Este artigo fornece informações suplementares necessárias para a implementação bem-sucedida desse recurso no Stream Analytics. Um tutorial também está disponível.

Visão geral: Terminologia (clássica) do Machine Learning Studio

O Machine Learning Studio (clássico) fornece uma ferramenta colaborativa de arrastar e soltar que você pode usar para criar, testar e implantar soluções de análise preditiva em seus dados. Você pode usar o Machine Learning Studio (clássico) para interagir com estes recursos de aprendizado de máquina:

  • Espaço de trabalho: um contêiner que mantém todos os outros recursos de aprendizado de máquina juntos para gerenciamento e controle.
  • Experimento: Um teste que cientistas de dados criam para utilizar conjuntos de dados e treinar um modelo de aprendizado de máquina.
  • Ponto de extremidade: um objeto que você usa para usar recursos como entrada, aplicar um modelo de aprendizado de máquina especificado e retornar a saída com pontuação.
  • Serviço Web de pontuação: uma coleção de pontos de extremidade.

Cada endpoint tem APIs para execução em lote e execução síncrona. O Stream Analytics usa execução síncrona. O serviço específico é chamado de serviço de solicitação/resposta no Machine Learning Studio (clássico).

Recursos (clássicos) do Machine Learning Studio necessários para trabalhos do Stream Analytics

Para fins de processamento de tarefas do Stream Analytics, um ponto de extremidade de solicitação/resposta, uma chave de API e uma definição de Swagger são necessários para uma execução bem-sucedida. O Stream Analytics tem um ponto de extremidade adicional que constrói a URL para um ponto de extremidade Swagger, procura a interface e retorna uma definição UDF padrão para o usuário.

Configurar um UDF do Stream Analytics e do Machine Learning Studio (clássico) por meio da API REST

Usando APIs REST, você pode configurar seu trabalho para chamar funções (clássicas) do Machine Learning Studio:

  1. Criar uma tarefa do Stream Analytics.
  2. Defina uma entrada.
  3. Defina uma saída.
  4. Crie um UDF.
  5. Escreva uma transformação do Stream Analytics que chame UDF.
  6. Inicie o trabalho.

Criar um UDF com propriedades básicas

Como exemplo, o código de exemplo a seguir cria um UDF escalar chamado newudf que se liga a um ponto de extremidade do Machine Learning Studio (clássico). Você pode encontrar o endpoint valor (URI do serviço) na página de ajuda da API para o serviço escolhido. Você pode encontrar o apiKey valor na página principal do serviço.

PUT : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>?api-version=<apiVersion>

Exemplo de corpo da solicitação:

    {
        "name": "newudf",
        "properties": {
            "type": "Scalar",
            "properties": {
                "binding": {
                    "type": "Microsoft.MachineLearning/WebService",
                    "properties": {
                        "endpoint": "https://ussouthcentral.services.azureml.net/workspaces/f80d5d7a77fb4b46bf2a30c63c078dca/services/b7be5e40fd194258796fb402c1958eaf/execute ",
                        "apiKey": "replacekeyhere"
                    }
                }
            }
        }
    }

Chamar o ponto de extremidade RetrieveDefaultDefinition para o UDF padrão

Depois de criar o UDF esqueleto, você precisa da definição completa do UDF. O RetrieveDefaultDefinition ponto de extremidade ajuda você a obter a definição padrão para uma função escalar vinculada a um ponto de extremidade do Estúdio de Aprendizado de Máquina (clássico).

A carga útil a seguir requer que você obtenha a definição UDF padrão para uma função escalar vinculada a um ponto de extremidade Studio (clássico). Ele não especifica o ponto de extremidade real, porque a PUT solicitação já o forneceu.

O Stream Analytics chama o ponto de extremidade da solicitação, se a solicitação fornecer explicitamente um ponto de extremidade. Caso contrário, o Stream Analytics usa o ponto de extremidade que foi originalmente referenciado. Aqui, o UDF usa um único parâmetro string (uma frase) e retorna uma única saída do tipo string que indica o Sentiment rótulo para essa frase.

POST : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>/RetrieveDefaultDefinition?api-version=<apiVersion>

Exemplo de corpo da solicitação:

    {
        "bindingType": "Microsoft.MachineLearning/WebService",
        "bindingRetrievalProperties": {
            "executeEndpoint": null,
            "udfType": "Scalar"
        }
    }

A saída dessa solicitação se parece com o exemplo a seguir:

    {
        "name": "newudf",
        "properties": {
            "type": "Scalar",
            "properties": {
                "inputs": [{
                    "dataType": "nvarchar(max)",
                    "isConfigurationParameter": null
                }],
                "output": {
                    "dataType": "nvarchar(max)"
                },
                "binding": {
                    "type": "Microsoft.MachineLearning/WebService",
                    "properties": {
                        "endpoint": "https://ussouthcentral.services.azureml.net/workspaces/f80d5d7a77ga4a4bbf2a30c63c078dca/services/b7be5e40fd194258896fb602c1858eaf/execute",
                        "apiKey": null,
                        "inputs": {
                            "name": "input1",
                            "columnNames": [{
                                "name": "tweet",
                                "dataType": "string",
                                "mapTo": 0
                            }]
                        },
                        "outputs": [{
                            "name": "Sentiment",
                            "dataType": "string"
                        }],
                        "batchSize": 10
                    }
                }
            }
        }
    }

Corrija o UDF com a resposta

Agora, você deve corrigir o UDF com a resposta anterior.

PATCH : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>?api-version=<apiVersion>

Corpo do pedido (saída de RetrieveDefaultDefinition):

    {
        "name": "newudf",
        "properties": {
            "type": "Scalar",
            "properties": {
                "inputs": [{
                    "dataType": "nvarchar(max)",
                    "isConfigurationParameter": null
                }],
                "output": {
                    "dataType": "nvarchar(max)"
                },
                "binding": {
                    "type": "Microsoft.MachineLearning/WebService",
                    "properties": {
                        "endpoint": "https://ussouthcentral.services.azureml.net/workspaces/f80d5d7a77ga4a4bbf2a30c63c078dca/services/b7be5e40fd194258896fb602c1858eaf/execute",
                        "apiKey": null,
                        "inputs": {
                            "name": "input1",
                            "columnNames": [{
                                "name": "tweet",
                                "dataType": "string",
                                "mapTo": 0
                            }]
                        },
                        "outputs": [{
                            "name": "Sentiment",
                            "dataType": "string"
                        }],
                        "batchSize": 10
                    }
                }
            }
        }
    }

Implementar uma transformação do Stream Analytics para chamar a UDF

Consulte o UDF (aqui chamado scoreTweet) para cada evento de entrada e escreva uma resposta para esse evento em uma saída:

    {
        "name": "transformation",
        "properties": {
            "streamingUnits": null,
            "query": "select *,scoreTweet(Tweet) TweetSentiment into blobOutput from blobInput"
        }
    }

Obter ajuda

Para obter mais assistência, tente a página de Perguntas e Respostas da Microsoft para o Azure Stream Analytics.

Próximos passos