Data-Centric AI
L'IA incentrata sui dati migliora i modelli correggendo sistematicamente le etichette, la copertura e la qualità dei dati di addestramento, mantenendo invariata l'architettura del modello.
L'AI incentrata sui dati consiste nel migliorare un sistema di AI attraverso l'ingegnerizzazione sistematica dei dati, includendo coerenza delle etichette, copertura delle condizioni reali, equilibrio tra classi e pulizia, mentre il modello e il codice di addestramento restano in gran parte invariati. Andrew Ng ha reso popolare il termine nel 2021, sostenendo che architetture come le reti neurali convoluzionali e i Transformer sono ormai abbastanza mature e che, per la maggior parte delle applicazioni, dati migliori portano più vantaggi di un modello migliore. Il suo opposto, l'AI incentrata sul modello, mantiene fisso un dataset di benchmark e procede per iterazioni su architetture, funzioni di perdita e ottimizzazione degli iperparametri, come avviene nella maggior parte delle classifiche accademiche.
L'esempio più noto di Ng riguarda l'ispezione di lamiere d'acciaio: un detector di difetti fermo al 76,2% di accuratezza non migliorava con interventi incentrati sul modello, mentre la correzione di etichette incoerenti ha portato l'accuratezza al 93,1%. Più tardi, nello stesso anno, DeepLearning.AI e Landing AI hanno organizzato una competizione di AI incentrata sui dati, in cui il modello era fisso e i partecipanti potevano migliorare soltanto un dataset rumoroso di classificazione di immagini di numeri romani scritti a mano, limitato a 10.000 immagini.
Pratiche fondamentali#
- Etichettatura coerente dei dati: chi annota segue regole scritte per i casi ambigui, come stabilire se un riquadro debba includere lo specchietto laterale di un'auto o come etichettare una persona parzialmente nascosta. Due annotatori che risolvono questi casi in modo diverso introducono rumore nelle etichette, che nessun modello può compensare.
- Individuazione degli errori nelle etichette: i disaccordi tra le predizioni di un modello e le etichette fornite indicano probabili errori. Uno studio del 2021 di Northcutt, Athalye e Mueller ha rilevato errori nelle etichette in media in almeno il 3,3% degli esempi di test di 10 dataset diffusi e in almeno il 6% del set di validazione di ImageNet.
- Raccolta mirata e dati sintetici: l'analisi degli errori per classe, scena, illuminazione o dimensione degli oggetti mostra dove fallisce un modello; aggiungere esempi nuovi proprio per quei casi è più utile che aggiungerne di casuali.
- Pulizia dei dati: rimuovere file danneggiati, immagini irrilevanti e duplicati, soprattutto i quasi duplicati presenti sia nella suddivisione di addestramento sia in quella di test.
- Aumento dei dati: ampliare la gamma di illuminazione, scala e punto di vista osservata dal modello senza raccogliere nuove immagini.
I duplicati tra le suddivisioni causano data leakage, che gonfia i punteggi di test, mentre lo squilibrio tra classi permette al modello di raggiungere un'elevata accuratezza senza rilevare la classe rara più importante, come nel rilevamento di difetti di produzione, dove i componenti difettosi sono pochi. Nell'analisi delle immagini mediche, i dataset sono piccoli e le etichette degli esperti costose, quindi etichette coerenti e verificate contano più del volume.
Il ciclo di lavoro dell'AI incentrata sui dati#
Un team che mette i dati al centro mantiene fisso il modello, analizza i suoi errori con strumenti come una matrice di confusione e modifica i dati di conseguenza, come nella lezione Primo fine-tuning e ciclo di iterazione, che trasforma la classe più debole di un modello YOLO26 nella correzione successiva del dataset:
Questo esempio corrompe il 20% delle etichette nel dataset di cifre scritte a mano di scikit-learn, segnala gli esempi in cui la predizione out-of-fold non concorda con l'etichetta e riaddestra lo stesso modello senza quegli esempi:
import numpy as np
from sklearn.datasets import load_digits
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_predict, train_test_split
X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
# Replace 20% of the training labels with random digits to mimic annotation errors
rng = np.random.default_rng(0)
noisy = y_train.copy()
flip = rng.random(len(noisy)) < 0.2
noisy[flip] = rng.integers(0, 10, flip.sum())
wrong = noisy != y_train # some random digits match the true label
# The model stays fixed; only the training data changes
model = LogisticRegression(max_iter=5000)
print(f"noisy labels: {model.fit(X_train, noisy).score(X_test, y_test):.1%} test accuracy")
# Flag examples whose out-of-fold prediction disagrees with their label, then drop them
keep = cross_val_predict(model, X_train, noisy, cv=5) == noisy
print(f"flagged {(~keep).sum()} examples, {(~keep & wrong).sum()} of {wrong.sum()} wrong labels")
print(f"cleaned labels: {model.fit(X_train[keep], noisy[keep]).score(X_test, y_test):.1%} test accuracy")L'accuratezza di test sale dall'87,0% al 94,1% senza modificare il modello. Il filtro segnala 354 esempi: 211 dei 213 con etichette errate e 143 corretti ma insoliti; pertanto, il dataset ripulito perde alcuni esempi validi insieme a quasi tutti gli errori.
Per confrontare le modifiche ai dati, devi sapere esattamente quali dati sono stati usati per addestrare ciascun modello. Ultralytics Platform archivia versioni dei dataset immutabili: l'opzione Save Dataset Version nell'addestramento cloud collega ogni modello allo snapshot usato per addestrarlo, Compare Versions elenca immagini, annotazioni e classi modificate tra due snapshot e la scheda Models del dataset mostra la versione dei dati accanto alle metriche principali, come mAP50-95.
AI incentrata sui dati e termini correlati#
- Apprendimento attivo: sceglie quali esempi non etichettati etichettare per primi, di solito quelli su cui il modello è meno sicuro. È una delle tecniche dell'AI incentrata sui dati.
- Volano dei dati: il ciclo di produzione in cui gli input e gli errori di un modello distribuito diventano nuovi dati di addestramento, così il lavoro incentrato sui dati si ripete a ogni rilascio.
- Operazioni di machine learning (MLOps): le pratiche ingegneristiche che gestiscono versionamento, addestramento, distribuzione e monitoraggio dei modelli, rendendo le modifiche ai dati riproducibili e confrontabili.










