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:
- Cuenta de Azure: Necesitas una cuenta de Azure. Si no tienes una, puedes crear una cuenta gratuita aquí.
- Conocimientos básicos de Python: Azure Machine Learning se integra fácilmente con Python, por lo que es útil tener conocimientos de este lenguaje.
- 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
- Ve a Azure Portal y, una vez que hayas iniciado sesión, busca Azure Machine Learning en la barra de búsqueda.
- Haz clic en Machine Learning y selecciona + Crear nuevo workspace.
- 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.
- 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.
-
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
-
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.
-
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
-
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>")
-
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
- Ve al portal de Azure y selecciona tu espacio de trabajo de Machine Learning.
- En el menú lateral, selecciona Datasets.
- 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.
-
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")
-
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.
- Después de entrenar el modelo, ve al portal de Azure y selecciona Modelos en el menú lateral para ver los modelos entrenados.
- 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!