Tutorial para Comenzar en Azure Machine Learning

Azure Machine Learning (Azure ML) es una plataforma de servicios en la nube que permite a los usuarios desarrollar, entrenar y desplegar modelos de machine learning a escala. A continuación, te mostraré cómo empezar desde cero y los pasos clave para usar Azure Machine Learning.

Requisitos previos

Antes de comenzar con Azure ML, asegúrate de tener lo siguiente:

  1. Cuenta de Azure: Necesitas una cuenta de Azure. Si no tienes una, puedes crear una cuenta gratuita aquí.
  2. Conocimientos básicos de Python: Azure Machine Learning se integra fácilmente con Python, por lo que es útil tener conocimientos de este lenguaje.
  3. Azure CLI o Azure Portal: Puedes interactuar con Azure ML desde el portal web o mediante la línea de comandos con Azure CLI.

Paso 1: Configura el entorno de Azure Machine Learning

Opción A: Usar el Azure Portal

  1. Ve a Azure Portal y, una vez que hayas iniciado sesión, busca Azure Machine Learning en la barra de búsqueda.
  2. Haz clic en Machine Learning y selecciona + Crear nuevo workspace.
  3. Rellena la información solicitada:
    • Nombre del workspace: Dale un nombre a tu espacio de trabajo.
    • Suscripción: Selecciona tu suscripción de Azure.
    • Grupo de recursos: Puedes crear uno nuevo o usar uno existente.
    • Región: Elige la ubicación más cercana a ti para minimizar latencias.
  4. Haz clic en Revisar y crear, luego en Crear.

Opción B: Usar Azure CLI

Si prefieres hacerlo desde la línea de comandos, puedes usar Azure CLI para crear tu espacio de trabajo de machine learning.

# Iniciar sesión en Azure
az login

# Crear un grupo de recursos
az group create --name mi-grupo-recursos --location eastus

# Crear un espacio de trabajo de Azure Machine Learning
az ml workspace create --name mi-workspace --resource-group mi-grupo-recursos --location eastus

Paso 2: Instalar el SDK de Azure Machine Learning

Para interactuar con Azure Machine Learning desde Python, necesitas instalar el SDK correspondiente.

  1. Crea un entorno virtual en Python y activa el entorno:

    python -m venv azureml-env
    source azureml-env/bin/activate  # En Windows usa: azureml-env\Scripts\activate
    
  2. Instala el SDK de Azure ML usando pip:

    pip install azure-ai-ml
    

Paso 3: Configurar tu Jupyter Notebook

Azure ML se integra fácilmente con Jupyter Notebook para crear y entrenar modelos.

  1. Abre un nuevo notebook en Jupyter y comienza importando los paquetes necesarios del SDK de Azure ML:

    from azure.ai.ml import MLClient
    from azure.identity import DefaultAzureCredential
    
  2. Configura el cliente para acceder a tu espacio de trabajo de Azure ML:

    # Configurar el cliente ML
    credential = DefaultAzureCredential()
    ml_client = MLClient(credential, "<ID_DE_SUSCRIPCIÓN>", "<GRUPO_RECURSOS>", "<NOMBRE_WORKSPACE>")
    
  3. Puedes probar si la conexión ha sido exitosa listando los experimentos en tu workspace:

    for experiment in ml_client.experiments.list():
        print(experiment.name)
    

Paso 4: Subir Datos a tu Workspace

Azure Machine Learning te permite cargar datos que se usarán para el entrenamiento. Puedes subir tus datasets de forma manual o mediante Python.

Opción A: Usar el Azure Portal

  1. Ve al portal de Azure y selecciona tu espacio de trabajo de Machine Learning.
  2. En el menú lateral, selecciona Datasets.
  3. Haz clic en + Crear dataset, selecciona el tipo de dataset (tabular, archivos, etc.) y sigue los pasos para subir tu archivo.

Opción B: Subir datos desde Python

from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes

# Definir el dataset
my_dataset = Data(
    path="./data/my_dataset.csv",  # Ruta a tu archivo local
    type=AssetTypes.URI_FILE,  # Tipo de dataset
    description="Mi dataset de entrenamiento"
)

# Subir dataset a Azure ML
ml_client.data.create_or_update(my_dataset)

Paso 5: Entrenamiento del Modelo

Con tus datos cargados, puedes entrenar un modelo. Azure ML soporta el entrenamiento en notebooks, scripts locales, y clusters remotos. A continuación, te muestro cómo ejecutar un script de entrenamiento en un entorno gestionado de Azure.

  1. Crea un archivo Python llamado train.py que contenga el código para entrenar tu modelo (por ejemplo, una regresión lineal con Scikit-learn).

    # train.py
    from sklearn.linear_model import LinearRegression
    from sklearn.datasets import load_diabetes
    from sklearn.model_selection import train_test_split
    
    # Cargar datos
    X, y = load_diabetes(return_X_y=True)
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
    
    # Entrenar modelo
    model = LinearRegression()
    model.fit(X_train, y_train)
    
    # Guardar modelo
    import joblib
    joblib.dump(model, "outputs/model.joblib")
    
  2. Define tu entorno de entrenamiento en Azure:

    from azure.ai.ml.entities import Environment, Command
    from azure.ai.ml import Input
    
    # Definir el entorno Python
    sklearn_env = Environment(
        name="sklearn-env",
        python={
            "interpreter_path": "/usr/bin/python3",
            "user_managed_dependencies": False,
            "conda_file": "./conda_dependencies.yml"  # archivo con dependencias
        }
    )
    
    # Definir comando de entrenamiento
    job = Command(
        code="./",  # Directorio donde está train.py
        command="python train.py",
        inputs={"data": Input(type="uri_folder", path="./data")},
        environment=sklearn_env,
        compute="cpu-cluster"
    )
    
    # Enviar trabajo a Azure ML
    ml_client.jobs.create_or_update(job)
    

Paso 6: Monitorear y Desplegar el Modelo

Una vez completado el entrenamiento, puedes monitorear los resultados en el portal de Azure. Además, Azure ML permite desplegar el modelo en contenedores o como API para que pueda ser usado en producción.

  1. Después de entrenar el modelo, ve al portal de Azure y selecciona Modelos en el menú lateral para ver los modelos entrenados.
  2. Desde ahí, puedes elegir desplegar el modelo como una API o en un contenedor de Kubernetes.

Conclusión

Este tutorial te guía a través de los pasos iniciales para empezar a usar Azure Machine Learning. Desde la configuración del entorno hasta el entrenamiento y despliegue de un modelo, Azure ML proporciona una solución robusta para todo el ciclo de vida de machine learning. Como siguiente paso, puedes profundizar en temas como la optimización automática de hiperparámetros, pipelines de ML y modelos en producción.

¡Buena suerte con tu proyecto en Azure ML!