Integração do Azure Machine Learning Studio (clássico) no Stream Analytics
Importante
O suporte para o Estúdio do Azure Machine Learning (clássico) terminará em 31 de agosto de 2024. Recomendamos que você 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 do Estúdio do Machine Learning (clássico) (workspace 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 Estúdio do Machine Learning (clássico). Para saber mais, veja:
- Migrar para o Azure Machine Learning do Estúdio do Machine Learning (clássico)
- O que é Azure Machine Learning?
A documentação do Estúdio do Machine Learning (clássico) está sendo desativada e pode não ser atualizada no futuro.
O Azure Stream Analytics oferece suporte a funções definidas pelo usuário (UDFs) que chamam pontos de extremidade do Estúdio do Azure Machine Learning (clássico). A biblioteca da API REST do Stream Analytics descreve o suporte à API REST para esse recurso.
Este artigo fornece informações complementares necessárias para a implementação bem-sucedida desse recurso no Stream Analytics. Um tutorial também está disponível.
Visão geral: terminologia do Azure Machine Learning Studio (clássico)
O Estúdio do Azure Machine Learning (clássico) oferece uma ferramenta colaborativa do tipo "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 Estúdio do Machine Learning (clássico) para interagir com esses recursos de machine learning:
- Workspace: um contêiner que mantém todos os outros recursos de machine learning para gerenciamento e controle.
- Experimento: um teste que cientistas de dados criam a fim de usar conjuntos de dados e treinar um modelo de machine learning.
- Ponto de extremidade: um objeto que você usa para aproveitar recursos como entrada, aplicar um modelo de machine learning especificado e retornar a saída pontuada.
- Serviço Web de pontuação: uma coleção de pontos de extremidade.
Cada ponto de extremidade tem APIs para execução em lote e execução síncrona. O Stream Analytics usa a execução síncrona. O serviço específico é chamado de serviço de solicitação/resposta no Estúdio do Machine Learning (clássico).
Recursos do Estúdio do Machine Learning (clássico) necessários para trabalhos do Stream Analytics
Para que o processamento de trabalhos do Stream Analytics seja bem-sucedido, é necessário ter um ponto de extremidade de solicitação/resposta, uma chave de API e uma definição do Swagger. O Stream Analytics tem um ponto de extremidade adicional que constrói o URL do ponto de extremidade do Swagger, procura a interface e retorna uma definição de UDF padrão para o usuário.
Configurar uma UDF do Stream Analytics e Estúdio do Machine Learning (clássico) por meio da API REST
Com as APIs REST, você pode configurar seu trabalho para chamar funções do Estúdio do Machine Learning (clássico):
- Criar um trabalho do Stream Analytics.
- Definir uma entrada.
- Definir uma saída.
- Criar uma UDF.
- Criar uma transformação do Stream Analytics que chama a UDF.
- Iniciar o trabalho.
Criar uma UDF com propriedades básicas
Por exemplo, o exemplo de código a seguir cria uma UDF escalar chamada newudf, que se associa a um ponto de extremidade do Estúdio do Machine Learning (clássico). Você encontra o valor endpoint
(URI de serviço) na página de ajuda da API do serviço escolhido. Você pode encontrar o valor apiKey
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 de 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 a UDF padrão
Após criar o esqueleto da UDF, é necessário concluir a definição da UDF. O ponto de extremidade RetrieveDefaultDefinition
ajuda a obter a definição padrão para uma função de valor escalar associada a um ponto de extremidade do Estúdio do Machine Learning (clássico).
O conteúdo abaixo exige que você obtenha definição padrão da UDF para uma função de valor escalar associada a um ponto de extremidade do Estúdio (clássico). Ele não especifica o ponto de extremidade real, pois a solicitação PUT
já o forneceu.
O Stream Analytics chama o ponto de extremidade da solicitação, se a solicitação forneceu explicitamente um ponto de extremidade. Caso contrário, o Stream Analytics usará o ponto de extremidade que foi referenciado originalmente. Neste exemplo, a UDF usa um parâmetro de cadeia de caracteres única (uma sentença) e retorna uma saída única do tipo string
que indica o rótulo Sentiment
daquela sentença.
POST : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>/RetrieveDefaultDefinition?api-version=<apiVersion>
Exemplo de corpo de solicitação:
{
"bindingType": "Microsoft.MachineLearning/WebService",
"bindingRetrievalProperties": {
"executeEndpoint": null,
"udfType": "Scalar"
}
}
A saída desta solicitação será semelhante ao seguinte exemplo:
{
"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
}
}
}
}
}
Aplicar patch à UDF com a resposta
Agora, você deve aplicar patch à UDF com a resposta anterior.
PATCH : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>?api-version=<apiVersion>
Corpo da solicitação (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 que chama a UDF
Consulte a UDF (chamada aqui de scoreTweet
) para cada evento de entrada e grave 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, experimente a página do Microsoft Q&A sobre o Azure Stream Analytics.
Próximas etapas
- Introdução ao Stream Analytics do Azure
- Analisar os dados de uma chamada fraudulenta com o Stream Analytics e visualizar os resultados em um painel do Power BI
- Escalar um trabalho do Azure Stream Analytics para aumentar a taxa de transferência
- Referência de linguagem de consulta do Azure Stream Analytics
- API REST do Gerenciamento do Azure Stream Analytics