Scopri come i data lake costituiscono la base dell'intelligenza artificiale e dell'apprendimento automatico. Impara a sfruttare i dati grezzi per addestrare Ultralytics e ottimizzare i flussi di lavoro della visione artificiale.
Un data lake è un archivio centralizzato che conserva una grande quantità di dati grezzi nel loro formato nativo fino al momento in cui servono. A differenza dei sistemi di archiviazione tradizionali che richiedono che i dati siano strutturati prima dell'inserimento, un data lake accetta i dati "così come sono", inclusi dati strutturati (righe e colonne), dati semi-strutturati (CSV, log, XML, JSON) e dati non strutturati (e-mail, documenti, PDF) e dati binari (immagini, audio, video). Questa flessibilità architettonica rende i data lake una pietra miliare delle moderne strategie Big Data, in particolare per le organizzazioni che sfruttano l' intelligenza artificiale (AI) e l' apprendimento automatico (ML). Separando l'acquisizione dei dati dal loro utilizzo, le organizzazioni possono archiviare enormi quantità di informazioni a costi relativamente contenuti e definire in un secondo momento le specifiche domande di analisi.
Nel contesto dello sviluppo dell'IA, il valore principale di un data lake risiede nella sua capacità di supportare i flussi di lavoro di Deep Learning (DL). Le reti neurali avanzate richiedono dati di addestramento diversificati e voluminosi per raggiungere un'elevata precisione. Un data lake funge da base di appoggio dove risiedono le risorse grezze, come milioni di immagini ad alta risoluzione per la visione artificiale (CV) o migliaia di ore di audio per il riconoscimento vocale, prima di essere elaborate.
I data scientist utilizzano metodologie "schema-on-read" all'interno dei data lake. Ciò significa che la struttura viene applicata ai dati solo quando vengono letti per l'elaborazione, piuttosto che quando vengono scritti nell'archivio. Ciò consente un'immensa agilità; lo stesso set di dati grezzi può essere elaborato in diversi modi per diverse attività di modellazione predittiva senza alterare la fonte originale. Inoltre, i data lake robusti spesso si integrano con servizi di cloud computing come Amazon S3 o Azure Blob Storage, consentendo l'elaborazione scalabile e parallela necessaria per l'addestramento di modelli pesanti come YOLO26.
Sebbene spesso confuso, un data lake è distinto da un data warehouse. Un data warehouse memorizza i dati in tabelle strutturate ed è ottimizzato per query SQL veloci e report di business intelligence. Utilizza lo "schema-on-write", il che significa che i dati devono essere puliti e trasformati tramite un processo ETL (Extract, Transform, Load) prima di entrare nel sistema.
Al contrario, un data lake è ottimizzato per il volume e la varietà di archiviazione. Supporta l' apprendimento non supervisionato e l'analisi esplorativa in cui l'obiettivo potrebbe non essere ancora definito. Ad esempio, un data warehouse potrebbe indicare quanti prodotti sono stati venduti il mese scorso, mentre un data lake contiene i log grezzi relativi al sentimento dei clienti e i dati delle immagini che aiutano un modello di intelligenza artificiale a capire perché sono stati venduti.
I data lake sono fondamentali in vari settori industriali che stanno ampliando i confini dell'automazione:
Quando lavorano con la Ultralytics , gli utenti spesso estraggono sottoinsiemi di dati grezzi dal data lake della loro organizzazione per creare set di dati annotati per l'addestramento. Una volta che le immagini grezze sono state recuperate ed etichettate, possono essere utilizzate per addestrare modelli all'avanguardia.
L'esempio seguente mostra come uno sviluppatore potrebbe caricare un set di dati locale (simulando un recupero da un data lake) per addestrare il modello YOLO26 per un'attività di rilevamento.
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train the model using a dataset configuration file
# In a production pipeline, this data might be streamed or downloaded
# from a cloud-based data lake prior to this step.
results = model.train(data="coco8.yaml", epochs=5, imgsz=640)
# Run inference on a new image to verify performance
predictions = model("https://ultralytics.com/images/bus.jpg")