**🚀 TALLER NIVEL 3: DEPLOYMENT DE MODELOS DE IA EN LA NUBE (PRODUCCIÓN)**
*Certificado por PASAIA-LAB | Duración: 3 horas | Nivel: Avanzado*
**🔗 Código de Integridad:** `SHA3-512: c7f2e9...`
---
### **1. PREPARACIÓN (30 min)**
#### **A. Plataformas Cloud a Utilizar**
| **Proveedor** | **Servicio IA** | **Ventaja** |
|---------------|--------------------------|--------------------------------------|
| **AWS** | SageMaker | Integración con Kubernetes (EKS) |
| **Google Cloud** | Vertex AI | Soporte para TensorFlow/TPUs |
| **Azure** | Machine Learning Studio | Ideal para entornos empresariales |
#### **B. Requisitos Previos**
- Docker instalado ([Guía](https://docs.docker.com/get-docker/)).
- Cuenta gratuita en AWS/GCP/Azure.
- Modelo entrenado (formato `.h5` o `.pt`).
---
### **2. PRÁCTICA 1: DEPLOYMENT CON DOCKER + FASTAPI (1 hora)**
#### **A. Empaquetado del Modelo**
```dockerfile
# Dockerfile
FROM python:3.9
RUN pip install fastapi uvicorn torch
COPY model.pt /app/model.pt
COPY app.py /app/app.py
WORKDIR /app
CMD ["uvicorn", "app:app", "--host", "0.0.0.0"]
```
#### **B. API REST con FastAPI**
```python
# app.py
from fastapi import FastAPI
import torch
app = FastAPI()
model = torch.load("model.pt")
@app.post("/predict")
def predict(data: dict):
input_tensor = torch.tensor(data["input"])
return {"prediction": model(input_tensor).tolist()}
```
#### **C. Despliegue Local**
```bash
docker build -t ia-api .
docker run -p 8000:8000 ia-api
```
*Test:* `curl -X POST http://localhost:8000/predict -H "Content-Type: application/json" -d '{"input": [1.2, 3.4]}'`
---
### **3. PRÁCTICA 2: DEPLOYMENT EN AWS SAGEMAKER (1 hora)**
#### **A. Configuración del Entorno**
```python
# script de entrenamiento (entry_point.py)
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
def train():
data = pd.read_csv("/opt/ml/input/data/train.csv")
model = RandomForestClassifier().fit(data.iloc[:, :-1], data.iloc[:, -1])
return model
```
#### **B. Despliegue Directo**
```python
from sagemaker.sklearn.estimator import SKLearn
estimator = SKLearn(
entry_script="entry_point.py",
role="arn:aws:iam::123456789012:role/SageMakerRole",
instance_type="ml.m5.large"
)
estimator.fit({"train": "s3://tu-bucket/train.csv"})
predictor = estimator.deploy(initial_instance_count=1, instance_type="ml.t2.medium")
```
---
### **4. PRÁCTICA 3: MONITORIZACIÓN Y ESCALADO (30 min)**
#### **A. Herramientas Clave**
| **Tarea** | **Herramienta** | **Comando/Ejemplo** |
|---------------------|---------------------------|--------------------------------------|
| **Logs** | AWS CloudWatch | `aws logs tail /aws/sagemaker/Endpoints` |
| **Escalado** | Kubernetes (EKS/AKS/GKE) | `kubectl autoscale deployment ia-api --cpu-percent=80 --min=1 --max=10` |
| **Drift Detection** | Evidently AI | `evidently metrics --reference_data ref.csv --current_data current.csv` |
#### **B. Ejemplo de Autoescalado en GCP**
```yaml
# gcp-autoscale.yaml
autoscaling:
minReplicas: 1
maxReplicas: 5
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 70
```
---
### **5. CERTIFICACIÓN Y RECURSOS**
#### **A. Proyecto Final**
- Despliega tu modelo CNN/GPT en cualquier nube y comparte el endpoint.
- Implementa un dashboard de monitorización con Grafana.
#### **B. Recursos Adicionales**
- [Libro: "Machine Learning Engineering"](https://www.mlebook.com)
- [Curso: "MLOps Zoomcamp"](https://github.com/DataTalksClub/mlops-zoomcamp)
**📌 Anexos:**
- [Templates para Terraform/AWS](https://github.com/pasaia-lab/ia-deployment-templates)
- [Ejemplo de Drift Detection](https://github.com/pasaia-lab/evidently-demo)
**Firmado:**
*José Agustín Fontán Varela*
*Arquitecto Cloud IA, PASAIA-LAB*
```mermaid
pie
title Coste Estimado Mensual (AWS)
"SageMaker" : 300
"S3 Storage" : 50
"Monitoring" : 100
```
**💡
Tormenta Work Free Intelligence + IA Free Intelligence Laboratory by José Agustín Fontán Varela is licensed under CC BY-NC-ND 4.0
No hay comentarios:
Publicar un comentario