es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo enviar la salida de un modelo de Azure ML a Event Hub?

Hola, soy nuevo en Azure ML y tengo poco conocimiento al respecto.
He construido un modelo de Azure ML utilizando el paquete automl y he generado algunas salidas para enviar al eventhub.

Nuestro flujo de datos sería: Azure ML -> eventhub -> adls -> sql dw…
He registrado el modelo, pero no estoy seguro de cómo implementarlo.
He buscado algunos documentos y se trata de tener un servicio web como punto final.

Cualquier ayuda sería apreciada…

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    ¡Hola! ¡Enhorabuena por construir con éxito un modelo de Azure ML utilizando el paquete Automl y generar salidas para enviar al Eventhub!

    Para implementar el modelo, puedes crear un punto de conexión para el servicio de Machine Learning de Azure. Un punto de conexión para el servicio de Machine Learning de Azure es una API REST que te permite interactuar con los modelos implementados utilizando solicitudes HTTP/HTTPS. Este punto de conexión puede manejar el modelo y las inferencias para tu aplicación.

    Para crear un punto de conexión para el servicio, sigue estos pasos:

    1. Registra tu modelo en el espacio de trabajo de Azure ML.
    2. Crea un script de puntuación que cargue el modelo y lo utilice para hacer predicciones sobre los datos de entrada.

    3. Crea un archivo de configuración de entorno que liste los paquetes y dependencias necesarios para el script de puntuación.

    4. Crea la configuración de implementación para el punto de conexión del servicio, incluyendo la especificación del destino de cálculo y la autenticación del punto de conexión.

    5. Implementa el modelo en el punto de conexión del servicio.

    Aquí tienes un código de ejemplo para crear e implementar un punto de conexión para el servicio:

    from azureml.core import Workspace, Model
    from azureml.core.webservice import AciWebservice, Webservice
    from azureml.core.model import InferenceConfig
    
    # Carga tu espacio de trabajo de Azure ML
    ws = Workspace.from_config()
    
    # Carga tu modelo registrado
    aml_model = ws.models['my_model']
    
    # Crea un archivo de configuración de entorno
    myenv = CondaDependencies.create(pip_packages=['azureml-defaults'])
    with open("myenv.yml","w") as f:
        f.write(myenv.serialize_to_string())
    
    # Crea un script de puntuación
    %%writefile score.py
    import json
    import numpy as np
    import pandas as pd
    import azureml.train.automl
    from azureml.core.model import Model
    
    def init():
        global model
        # Carga el modelo que has registrado en tu espacio de trabajo
        model_path = Model.get_model_path('my_model')
        model = joblib.load(model_path)
    
    def run(raw_data):
        data = np.array(json.loads(raw_data)['data'])
        predictions = model.predict(data)
        return predictions.tolist()
    
    # Crea la configuración de inferencia
    inference_config = InferenceConfig(entry_script='score.py', environment=myenv)
    
    # Crea la configuración de implementación
    deployment_config = AciWebservice.deploy_configuration(cpu_cores=1, memory_gb=1, auth_enabled=True)
    
    # Implementa el punto de conexión del servicio
    service = Model.deploy(workspace=ws, name='my-endpoint', models=[aml_model], inference_config=inference_config, deployment_config=deployment_config)
    
    # Espera a que se complete la implementación y obtén la URI del punto de conexión del servicio
    service.wait_for_deployment(show_output=True)
    print(service.scoring_uri)
    

    Una vez que tu punto de conexión del servicio esté implementado, puedes utilizarlo para hacer predicciones y enviar los resultados al Eventhub, los cuales pueden procesarse y almacenarse en ADLS y SQL DW.

    ¡Espero que esto te sea de ayuda! Avísame si tienes alguna otra pregunta.

Comments are closed.