Integración de Estudio de Machine Learning (clásico) en Stream Analytics
Importante
La compatibilidad con Estudio de Azure Machine Learning (clásico) finalizará el 31 de agosto de 2024. Se recomienda realizar la transición a Azure Machine Learning antes de esa fecha.
Desde el 1 de diciembre de 2021, no se puede crear nuevos recursos de Estudio de Machine Learning (clásico) (área de trabajo y plan de servicio web). Hasta el 31 de agosto de 2024, podrá seguir usando los experimentos y servicios web existentes de Estudio de Machine Learning (clásico). Para más información, vea:
- Migración a Azure Machine Learning desde Estudio de Machine Learning (clásico)
- ¿Qué es Azure Machine Learning?
La documentación de Estudio de Machine Learning (clásico) se está retirando y es posible que no se actualice en el futuro.
Azure Stream Analytics admite funciones definidas por el usuario (UDF) que llaman a puntos de conexión de Estudio de Azure Machine Learning (clásico). La biblioteca de API de REST de Stream Analytics describe la compatibilidad con la API de REST para esta característica.
Este artículo proporciona la información adicional necesaria para una implementación correcta de esta capacidad en Stream Analytics. También tiene disponible un tutorial.
Información general: terminología de Estudio de Machine Learning (clásico)
Estudio de Machine Learning (clásico) de Microsoft proporciona una herramienta colaborativa de arrastrar y colocar que le permite crear, probar e implementar soluciones de análisis predictivo en sus datos. Puede usar Estudio de Machine Learning (clásico) para interactuar con estos recursos de aprendizaje automático:
- Área de trabajo: un contenedor con todos los demás recursos de Machine Learning en un solo lugar para la administración y el control.
- Experimento: una prueba que los científicos de datos crean para usar conjuntos de datos y entrenar un modelo de aprendizaje automático.
- Punto de conexión: un objeto que se usa para tomar características como entrada, aplicar un modelo de aprendizaje automático especificado y devolver la salida puntuada.
- Servicio web de puntuación: una colección de puntos de conexión.
Cada punto de conexión tiene varias API para la ejecución de lotes y la ejecución sincrónica. Stream Analytics usa la ejecución sincrónica. El servicio específico se denomina servicio de solicitud y respuesta en Estudio de Machine Learning (clásico).
Recursos de Estudio de Machine Learning (clásico) necesarios para trabajos de Stream Analytics
Ejecutar correctamente el procesamiento de trabajos de Stream Analytics requiere un punto de conexión de solicitud/respuesta, una clave de API y una definición de Swagger. Stream Analytics tiene un punto de conexión adicional que construye la dirección URL de Swagger, busca en la interfaz y devuelve al usuario una definición de UDF predeterminada.
Configuración de una UDF de Stream Analytics y Estudio de Machine Learning (clásico) a través de la API de REST
Mediante las API de REST, puede configurar un trabajo para que llame a funciones de Estudio de Machine Learning (clásico):
- Crear un trabajo de Stream Analytics.
- Definir una entrada.
- Definir una salida.
- Crear una UDF.
- Crear una transformación de Stream Analytics que llame a la UDF.
- Inicie el trabajo.
Crear una UDF con las propiedades básicas
Por ejemplo, el siguiente código de muestra crea una UDF escalar denominada newudf que enlaza con un punto de conexión de Estudio de Machine Learning (clásico). Puede encontrar el valor de endpoint
(URI de servicio) en la página de ayuda de la API del servicio elegido. Puede encontrar el valor de apiKey
en la página principal del servicio.
PUT : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>?api-version=<apiVersion>
Ejemplo del cuerpo de solicitud:
{
"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"
}
}
}
}
}
Llamada al punto de conexión RetrieveDefaultDefinition para la UDF predeterminada
Una vez creada la estructura de la UDF, se necesita la definición completa de esta. El punto de conexión RetrieveDefaultDefinition
ayuda a obtener la definición predeterminada de una función escalar enlazada a un punto de conexión de Estudio de Machine Learning (clásico).
La siguiente carga requiere obtener la UDF predeterminada para una función escalar enlazada a un punto de conexión de Estudio (clásico). No especifica el punto de conexión real, ya que la solicitud de PUT
ya lo proporcionó.
Stream Analytics llama al punto de conexión desde la solicitud, si la solicitud proporcionó explícitamente un punto de conexión. De lo contrario, Stream Analytics usa el punto de conexión al que se hizo referencia originalmente. Aquí, la UDF toma un único parámetro de cadena (una oración) y devuelve una salida única de tipo string
que indica la etiqueta Sentiment
para esa oración.
POST : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>/RetrieveDefaultDefinition?api-version=<apiVersion>
Ejemplo del cuerpo de solicitud:
{
"bindingType": "Microsoft.MachineLearning/WebService",
"bindingRetrievalProperties": {
"executeEndpoint": null,
"udfType": "Scalar"
}
}
La salida de esta solicitud tiene un aspecto similar al del ejemplo siguiente:
{
"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
}
}
}
}
}
Revisión de la UDF con la respuesta
Ahora, debe aplicar revisiones a la UDF con la respuesta anterior.
PATCH : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>?api-version=<apiVersion>
Cuerpo de la solicitud (salida 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
}
}
}
}
}
Implementación de una transformación de Stream Analytics que llame a la UDF
Consulte la UDF (aquí llamada scoreTweet
) para cada evento de entrada y escriba una respuesta para ese evento en una salida:
{
"name": "transformation",
"properties": {
"streamingUnits": null,
"query": "select *,scoreTweet(Tweet) TweetSentiment into blobOutput from blobInput"
}
}
Obtener ayuda
Para obtener más ayuda, consulte la página de preguntas y respuestas de Microsoft sobre Azure Stream Analytics.
Pasos siguientes
- Introducción a Azure Stream Analytics
- Análisis de datos de llamadas fraudulentas mediante Stream Analytics y visualización de los resultados en un panel de Power BI
- Escalado de un trabajo de Azure Stream Analytics para incrementar el rendimiento
- Referencia del lenguaje de consulta de Azure Stream Analytics
- Referencia de API de REST de administración de Azure Stream Analytics