AI-pipelines y automatización del aprendizaje
1) Nombramiento y principios
Objetivo: Convertir los datos → los fichas → modelos → soluciones → retroalimentación de forma fiable y reproducible, con un mínimo de tiempo a valor y control de riesgo/coste.
Principios:- Pipeline-as-Code: todo (DAG, confecciones, pruebas, políticas) - en Git, a través de PR y rugido.
- Determinismo: versiones fijas de datos/código/contenedores/dependencias.
- Separation of Concerns: DataOps, FeatureOps, TrainOps, DeployOps, MonitorOps.
- Automatización Guardada: automatizamos, pero con «gates» de calidad, seguridad y cumplimiento.
- Privacidad por Diseño: minimización de PII, residencia, auditoría.
2) Capas y arquitectura del transportador
1. Ingest & Bronze: recepción confiable de eventos/batches (CDC, neumáticos, retraídas, DLQ).
2. Silver (normalización/enriquecimiento): SCD, moneda/tiempo, limpieza, dedoup.
3. Gold (escaparates): tablas temáticas y datasets para la formación/presentación de informes.
4. Feature Store: fórmulas uniformes fich online/offline, versiones y SLO.
5. Train & Validate: preparación de muestras, entrenamiento, calibración, evaluación/check-gates.
6. Registro & Promoción: registro de modelos, tarjetas de calidad, política de promoción.
7. Serving: NAT/gRPC/Batch, Fiech Caches, Fika Flags, Canary/Shadow.
8. Monitor & Feedback: SLI/SLO, deriva/calibración, etiquetas en línea, auto-retrain.
3) Orquestación: patrones DAG
CT diario (D + 1): ciclo nocturno de datos → fichas → formación → validación → candidato a la lista.
Retransmisión de eventos: desencadenante de la deriva PSI/ECE/expected-cost o de la liberación de circuitos.
Rolling Windows: readiestramiento semanal/monthly con una «ventana deslizante» de datos.
Artefactos azules/verdes: todos los artefactos son inmutables (hash), versiones paralelas.
Dual-write v1/v2: migraciones de circuitos/fich a través de doble registro y comparación de equivalencia.
python with DAG("ct_daily", schedule="@daily", start_date=..., catchup=False) as dag:
bronze = BashOperator(task_id="ingest_cdc", bash_command="ingest.sh")
silver = BashOperator(task_id="silver_norm", bash_command="dbt run --models silver")
gold = BashOperator(task_id="gold_marts", bash_command="dbt run --models gold")
feats = BashOperator(task_id="feature_store_publish", bash_command="features publish")
ds = BashOperator(task_id="build_dataset", bash_command="dataset build --asof {{ ds }}")
train = BashOperator(task_id="train", bash_command="trainer run --config conf.yaml")
eval = BashOperator(task_id="evaluate", bash_command="eval run --gate conf/gates.yaml")
reg = BashOperator(task_id="register", bash_command="registry add --stage Staging")
bronze >> silver >> gold >> feats >> ds >> train >> eval >> reg
4) Conjuntos de datos y muestras
Point-in-time join y «sin futuro» para fichas/sellos.
Estratificación por mercados/tenantes/tiempo, holdout y «gap» para fugas.
Versionar: 'data _ version', 'logic _ version', 'asof _ date'; Snapshots WORM.
5) Feature Store y equivalencia online/offline
Una sola especificación fich (nombre, fórmula, propietario, SLO, pruebas).
Online = offline: código de transformación común; prueba de equivalencia (MAE/MAPE).
TTL y caché: ventanas de 10m/1h/1d; taimautas/retraídas; folbacks "last_known_good".
yaml name: bets_sum_7d owner: ml-risk offline: {source: silver.fact_bets, window: "[-7d,0)"}
online: {compute: "streaming_window: 7d", ttl: "10m"}
tests:
- compare_online_offline_max_abs_diff: 0.5 slo: {latency_ms_p95: 20, availability: 0.999}
6) Automatización del aprendizaje (CT) y getas de calidad
Ciclo CT: preparación → capacitación → calibración → evaluación → registro del candidato.
Gates (ejemplo):- Off-line: PR-AUC ≥ referencia − δ; ECE ≤ 0. 05; expected-cost ≤ límite.
- Slice/Fairness: caída de métricas en cualquier diapositiva ≤ Y%; disparate impact es normal.
- Equivalencia de fich: aprox.
- Costo: tiempo/recursos ≤ presupuesto.
yaml gates:
pr_auc_min: 0.42 ece_max: 0.05 expected_cost_delta_max: 0.0 slice_drop_max_pct: 10 features_equivalence_p95_abs_diff_max: 0.5
7) Registro de modelos y promoción
Modelo de tarjeta: datos, ventanas, fichas, métricas off/online, calibración, riesgos, propietario.
Stages: `Staging → Production → Archived`; promoción sólo a través de las puertas probadas.
Política de reversión: almacenar ≥N de las últimas versiones prod; one-click rollback.
8) CI/CD/CT: cómo conectar
CI (código/pruebas): pruebas de unit/integración/contratación, linters, security-scans.
CD (serving): Docker/K8s/Helm/ficha-banderas, canary/shadow/blue-green.
CT (datos/formación): Orquestador por horario/eventos; artefactos → registro.
Promocion Gates: Auto-lanzamiento en prod con verde en línea SLO (en canary ≥ X horas).
9) Multiarrendidad y residencia
Tenantes/regiones: pipelines aislados y claves de cifrado (EEA/UK/BR); Prohibición de los join's interregionales sin fundamento.
Secretos: KMS/CMK, Administrador Secreto; ID tokenizado en los logs.
Políticas DSAR/RTBF: proyecciones calculadas y ediciones selectivas en fichas y logs; Legal Hold para casos.
10) Monitoreo → retroalimentación → retrain
SLI/SLO: latency p95/p99, 5xx, coverage, cost/request; deriva PSI/KL, ECE, expected-cost.
Etiquetas en línea: proxy (hora/día) y detenidos (D + 7/D + 30/D + 90).
Auto-acciones: recalibration/threshold update → shadow retrain → canary → promotion.
Runbooks: escenarios de degradación (deriva, calibración, caché de fichas, proveedores).
11) Seguridad, RG/AML y política de soluciones
Guardrails: pre/post-filter, caps de frecuencia, cooldown, listas de prohibiciones.
Policy Shielding: modelo → solución → filtro de directivas → acción.
Auditoría: 'model _ id/version', 'feature _ version', 'threshold', 'policy _ id', razones.
Archivo WORM: lanzamientos, informes de calidad, registros de pruebas/promociones.
12) Costo y rendimiento
Perfilando la ruta: fichas (30-60%), inferencia (20-40%), IO/red.
Costas-dashboards: costa/request, costa/feature, GPU/CPU-relojes, pequeños-files.
Optimización: materialización de fich pesado fuera de línea, caché de ventanas calientes, INT8/FP16, cuotas de replex/backfill.
Chargeback: distribuimos el presupuesto por equipos/mercados, controlamos los fichajes «caros».
13) Ejemplos (fragmentos)
Argo Workflow:yaml apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: {name: ct-daily}
spec:
entrypoint: pipeline templates:
- name: pipeline dag:
tasks:
- name: gold template: task arguments: {parameters: [{name: cmd, value: "dbt run --models gold"}]}
- name: features dependencies: [gold]
template: task arguments: {parameters: [{name: cmd, value: "features publish"}]}
- name: train dependencies: [features]
template: task arguments: {parameters: [{name: cmd, value: "trainer run --config conf.yaml"}]}
- name: eval dependencies: [train]
template: task arguments: {parameters: [{name: cmd, value: "eval run --gate conf/gates.yaml"}]}
- name: task inputs: {parameters: [{name: cmd}]}
container: {image: "ml/ct:latest", command: ["/bin/bash","-lc"], args: ["{{inputs.parameters.cmd}}"]}
Script de puerta (pseudocódigo):
python ok = (pr_auc >= gate.pr_auc_min and ece <= gate.ece_max and expected_cost_delta <= gate.expected_cost_delta_max and slice_drop_pct <= gate.slice_drop_max_pct and features_equivalence_p95_abs_diff <= gate.features_equivalence_p95_abs_diff_max)
exit(0 if ok else 1)
Política de promoción (idea):
yaml promotion:
require:
- offline_gates_passed
- canary_online_hours >= 24
- slo_green: [latency_p95, error_rate, coverage]
- drift_warn_rate <= 5%
14) Procesos y RACI
R (Responsible):- Data Eng — Ingest/Silver/Gold, Feature Store, CDC/Backfill;
- Data Science - muestreo/aprendizaje/calibración/gates;
- MLOps - orkestratsiya/reestr/serving/nablyudaemost.
- A (Accountable): Head of Data / CDO.
- C (Consultado): Cumplimiento/DPO (PII/RG/AML/DSAR), Seguridad (KMS/auditoría), SRE (SLO/costo), Finanzas (presupuestos/ROI), Proi doc.
- I (Informed): Marketing/Operaciones/Soporte.
15) Hoja de ruta para la implementación
MVP (3-6 semanas):1. DAG «daily CT»: Bronze→Silver→Gold→Feature Store→Train→Eval→Registry(Staging).
2. Feature Store v1 y prueba de equivalencia online/offline.
3. Gates de calidad (PR-AUC/ECE/expected-cost/slice).
4. Registro de modelos, tarjeta y archivo WORM de versiones.
Fase 2 (6-12 semanas):- Auto-recalibration/threshold update, canary-promotion por SLO en línea.
- Retrain Event-driven por deriva; dual-write v1/v2 para migraciones.
- Cost-dashboards y cuotas de backfill/replay; aislamiento multi-tenant.
- Políticas de fairness por diapositivas y auto-reporting.
- Residencia multirregional (EEA/UK/BR) con claves separadas.
- Auto-retiro de acuerdo con los horarios y eventos, documentación de autogen de pipelines.
16) Lista de comprobación de disponibilidad
- Pipeline-as-Code в Git; Pruebas CI (unit/integración/contratos/seguridad).
- Bronze/Silver/Gold y Feature Store son estables; la equivalencia de fich es verde.
- Se han pasado las puertas sin conexión; la tarjeta modelo está llena; Archivo WORM creado.
- Canario ≥ 24 h con SLO verdes; el botón rollback y kill-switch funcionan.
- Se habilita el monitoreo de la deriva/ECE/expected-cost y etiquetas en línea.
- Se ha respetado la IIP/Residencia/DSAR/RTBF/Legal Hold; auditoría configurada.
- Costo en el presupuesto; caché/cuotas/límites de fichas y réplicas están activos.
17) Anti-patrones y riesgos
Pasos manuales, «desechables» fuera del orquestador; No hay historia de Git.
Formación sin Gates y Tarjetas; promoción «a mano».
Los fiches online/offline no coordinados → discrepancias en la venta.
Ignorar la deriva/calibración/exportación-costo; sólo ROC-AUC «para la especie».
Ausencia de residencia/políticas PII; lógica de ID 'crudo'.
Backfill/réplicas ilimitadas → una explosión de valor y un impacto en SLA.
18) Resultado
Las pipelines AI son un transportador de valor, no un conjunto de laptops. Formaliza las capas de datos, Feature Store y CT/CI/CD, añade gates de calidad y seguridad, automatiza el retrain a la deriva, mantiene la equivalencia online/offline y una economía transparente. De esta manera obtendrá un ciclo rápido, predecible y complaciente de «datos → modelo → efecto», escalable por mercado y tiempo.