Salta el contingut

Eines d'AWS per a validació de dades i mitigació de biaix

Validar dades amb AWS

A les pàgines anteriors d'aquest bloc s'ha treballat el qué i el per qué de la integritat de les dades i del biaix: quines dimensions cal vigilar, quines mètriques permeten detectar el desequilibri de classes, i quines tècniques (remostreig, SMOTE, augmentació) permeten corregir-lo. Aplicar manualment aquestes tècniques —escriure codi Python a mida per a cada validació, cada mètrica i cada conjunt de dades— pot ser un procés complex i costós en temps, especialment a escala de producció.

AWS ofereix diversos serveis gestionats que permeten automatitzar i escalar la validació de dades i la identificació i mitigació del biaix: AWS Glue Data Quality, AWS Glue DataBrew, Amazon Comprehend i Amazon SageMaker Clarify. Aquesta pàgina en fa un repàs orientat a quan i per què faries servir cadascun.

Relació amb el Bloc 4

Al Bloc 4 ja es va presentar AWS Glue com a servei d'ETL gestionat (Data Catalog i Glue Jobs amb Spark). Aquesta pàgina cobreix dues capacitats addicionals de la família Glue —Data Quality i DataBrew— centrades específicament en la qualitat i la preparació de les dades, no en la seva transformació a gran escala.

AWS Glue Data Quality

AWS Glue Data Quality és un servei gestionat que ajuda a monitorar i millorar contínuament la qualitat de les dades. Proporciona una visió centralitzada de la qualitat de dades de tota l'organització, fent més senzill identificar i resoldre problemes abans que afectin un pipeline o un model.

Casos d'ús per a la validació de dades

Regles de qualitat de dades. Es defineixen regles personalitzades amb un llenguatge declaratiu propi (DQDL, Data Quality Definition Language, similar en esperit a l'SQL) per comprovar problemes de qualitat segons els requisits de negoci concrets:

-- Exemples de regles DQDL per a una taula de vendes
Rules = [
    -- Completesa: el camp id_venda no pot ser nul en més del 0% dels casos
    IsComplete "id_venda",

    -- Unicitat: id_venda ha de ser únic
    IsUnique "id_venda",

    -- Rang de valors: l'import ha d'estar entre 0 i 100.000
    ColumnValues "import" between 0 and 100000,

    -- Format: el camp pais ha de pertànyer a una llista de valors acceptats
    ColumnValues "pais" in ["ES", "FR", "DE", "IT", "PT"],

    -- Frescor: data_venda no pot ser anterior a fa 2 anys
    ColumnValues "data_venda" > (now() - 730 days)
]

Planificació automàtica. Les comprovacions de qualitat es poden programar perquè s'executin automàticament de forma recurrent (per exemple, cada vegada que arriba un nou fitxer al Data Lake), garantint un monitoratge continu sense intervenció manual.

Quadres de comandament de qualitat de dades. Els resultats es visualitzen mitjançant quadres de comandament interactius que mostren mètriques i tendències de qualitat al llarg del temps, facilitant detectar si la qualitat d'una font de dades es degrada progressivament.

DQDL i les dimensions de qualitat del Bloc 5

Les regles DQDL mapegen directament amb les dimensions de qualitat ja vistes al Bloc 5 (completesa, exactitud, unicitat, validesa, temporalitat). Glue Data Quality és, en certa manera, la versió gestionada i escalable del que Pandera o Great Expectations fan en un script Python.

AWS Glue DataBrew

AWS Glue DataBrew és una eina visual de preparació de dades que facilita netejar i normalitzar dades per a l'anàlisi i l'aprenentatge automàtic. Amb DataBrew es pot explorar, netejar i transformar dades sense escriure codi, mitjançant una interfície visual.

Casos d'ús per a la validació de dades

Perfilat de dades (data profiling). Genera automàticament estadístiques i visualitzacions per entendre problemes de qualitat com valors absents, valors atípics (outliers) o desequilibri en la distribució de les dades —el mateix tipus d'anàlisi que es fa amb ydata-profiling al Bloc 5, però sense necessitat d'entorn Python.

Transformacions predefinides. Dona accés a més de 350 transformacions predefinides per a tasques habituals de qualitat de dades: omplir valors absents, eliminar duplicats, formatar dates, normalitzar text, etc., aplicables des de la interfície visual amb pocs clics.

Transformacions personalitzades. Per a requisits de qualitat de dades més complexos que no cobreixen les transformacions predefinides, es poden crear transformacions personalitzades en Python.

Quan triar DataBrew vs un script Python

DataBrew és especialment útil quan qui ha de preparar les dades no és un perfil de programació (un analista de negoci, per exemple) o quan es vol explorar ràpidament un dataset nou abans d'escriure cap codi de validació definitiu. Per a pipelines de producció versionats i testejables, un script Python amb Pandera/Great Expectations o un job de Glue Data Quality solen ser més mantenibles a llarg termini.

Amazon Comprehend

Amazon Comprehend és un servei de processament del llenguatge natural (NLP) que permet extreure informació i coneixement de dades de text no estructurat. Encara que no està directament centrat en la qualitat de dades, Comprehend pot ser una eina valuosa per validar la qualitat de les dades textuals usades en models d'aprenentatge automàtic.

Casos d'ús per a la validació de dades

Reconeixement d'entitats. Identifica i extreu entitats amb nom de les dades de text, com persones, organitzacions, ubicacions i esdeveniments —útil, per exemple, per detectar si un dataset de ressenyes de productes conté inadvertidament dades personals que caldria anonimitzar.

Detecció d'idioma. Detecta automàticament l'idioma del text, cosa que pot ser útil per validar la qualitat de les dades en datasets multilingües (per exemple, per assegurar-se que un dataset etiquetat com "ressenyes en català" no conté en realitat un percentatge significatiu de text en un altre idioma).

Modelatge de temes (topic modeling). Identifica els temes i conceptes clau presents a les dades de text, cosa que pot ajudar a validar la rellevància i la qualitat de les dades per a casos d'ús específics (per exemple, comprovar que un dataset de "consultes d'atenció al client sobre facturació" realment tracta majoritàriament de facturació).

Serveis i eines d'AWS per detectar i mitigar el biaix

A banda de la qualitat general de les dades, AWS ofereix capacitats específiques per detectar i mitigar el biaix. Amazon SageMaker Clarify proporciona capacitats de detecció i mitigació de biaix que permeten analitzar tant els datasets com els models de Machine Learning.

SageMaker Clarify funciona avaluant els models i les dades segons diferents dimensions de biaix:

  • Biaix previ a l'entrenament (pre-training): calcula automàticament les mètriques de la pàgina Biaix en les dades (CI, DPL, KL, JS, Lp-norm, TVD, KS, CDD) sobre el dataset en brut, abans que existeixi cap model.
  • Biaix posterior a l'entrenament (post-training): un cop el model ja està entrenat, calcula mètriques addicionals sobre les seves prediccions (per exemple, la diferència en la taxa de falsos positius entre grups), per detectar si el model ha après o amplificat algun biaix de les dades.
  • Explicabilitat del model: genera valors SHAP (SHapley Additive exPlanations) que indiquen quines variables han influït més en cada predicció, ajudant a identificar si el model es recolza excessivament en una variable correlacionada amb un atribut protegit (per exemple, el codi postal com a aproximació indirecta de l'origen ètnic).
# Esquema simplificat d'una anàlisi de biaix previ a l'entrenament amb el SDK de SageMaker
from sagemaker import clarify

clarify_processor = clarify.SageMakerClarifyProcessor(
    role=rol_iam,
    instance_count=1,
    instance_type="ml.m5.xlarge",
)

# Configuració de les dades i el "facet" (grup) a analitzar
bias_config = clarify.BiasConfig(
    label_values_or_threshold=[1],       # 1 = resultat positiu (p. ex. "concedit")
    facet_name="franja_edat",
    facet_values_or_threshold=["jove"],  # grup potencialment desafavorit
)

data_config = clarify.DataConfig(
    s3_data_input_path="s3://bucket/sol_licituds_prestec.csv",
    s3_output_path="s3://bucket/informes-biaix/",
    label="resultat",
    headers=["edat", "franja_edat", "ingressos_anuals", "import_sollicitat",
             "historial_creditici", "resultat"],
    dataset_type="text/csv",
)

# Executar l'anàlisi de biaix previ a l'entrenament
clarify_processor.run_pre_training_bias(
    data_config=data_config,
    bias_config=bias_config,
    methods="all",  # calcula totes les mètriques: CI, DPL, KL, JS, LP, TVD, KS, CDD
)

L'execució genera un informe (en format HTML i JSON) amb el valor de cadascuna de les mètriques per al grup indicat, exactament les mètriques explicades a la pàgina Biaix en les dades d'aquest bloc, però calculades de forma gestionada i reproduïble sobre datasets de qualsevol mida.

SageMaker Clarify com a alternativa gestionada al càlcul manual

Els càlculs manuals de CI i DPL fets a la pràctica d'aquest bloc (amb pandas, sobre un dataset de mostra) són conceptualment idèntics als que calcula SageMaker Clarify de forma automàtica i escalable sobre datasets de producció. Entendre el càlcul manual és el que permet interpretar correctament l'informe que genera l'eina gestionada.

Consulta la pàgina Demostració: SageMaker Clarify per veure un exemple complet, pas a pas, de configuració i interpretació d'un informe de biaix previ i posterior a l'entrenament sobre un cas real.

Quina eina triar?

Necessitat Eina recomanada
Definir regles de qualitat reutilitzables i monitorar-les de forma contínua i automàtica AWS Glue Data Quality
Explorar i netejar un dataset nou sense escriure codi AWS Glue DataBrew
Validar la qualitat o la rellevància de dades de text no estructurat Amazon Comprehend
Mesurar biaix previ o posterior a l'entrenament, o explicar les prediccions d'un model Amazon SageMaker Clarify

Posa't a prova

Cas: el teu equip implementa un nou model d'aprenentatge automàtic que requereix dades d'alta qualitat. Decidiu fer servir AWS Glue Data Quality per avaluar les dades abans d'entrenar el model.

Quina capacitat d'AWS Glue Data Quality seria més útil en aquest escenari?

A. Regles de validació de dades (data validation rules) B. Monitoratge de la qualitat de dades (data quality monitoring) C. Alertes de qualitat de dades (data quality alerting) D. Informes de qualitat de dades (data quality reporting)

Mostra la resposta raonada

La resposta correcta és A. Abans d'entrenar el model, l'objectiu és definir explícitament què significa "bona qualitat" per a aquest dataset concret (completesa, rangs vàlids, unicitat, etc.), i això es fa amb regles de validació declarades en DQDL. El monitoratge (B) i les alertes (C) són capacitats útils per a la fase posterior, un cop el pipeline ja està en producció i cal vigilar que la qualitat no es degradi amb el temps. Els informes (D) són la sortida que es genera després d'aplicar les regles, no el punt de partida. En resum: primer cal definir les regles (A); el monitoratge, les alertes i els informes en són conseqüència.


Bloc 8 | Mòdul M5074 Sistemes de Big Data | Institut Sa Palomera (Blanes) | Curs CEIABD 2026-2027