Passa al contenuto principale
Piattaforma

Presentazione del tipo FILE: un tipo di colonna nativo per dati multimodali

Il tipo FILE rende i tuoi documenti, immagini, video e altri dati non strutturati nativi del tuo lakehouse e pronti per l'AI.

di Michael Armbrust, Burak Yavuz, Dejan Krakovic e John Spencer

  1. FILE è un nuovo tipo di colonna, attualmente in beta, che memorizza dati non strutturati come documenti, immagini, audio e video in modo nativo nelle tue tabelle.
  2. FILE consente una governance unificata in cui puoi applicare gli stessi identici controlli di accesso granulari e policy di sicurezza ai tuoi file grezzi così come fai per le tue tabelle standard
  3. Stiamo lavorando con la community per integrare il supporto direttamente in Parquet, Delta Lake, Iceberg e Spark, in modo che l'intero ecosistema possa trarne vantaggio e i tuoi dati rimangano portabili.

Il tuo patrimonio di dati contiene molto più di tabelle strutturate, metriche e log delle transazioni: contiene contratti, immagini di prodotti, registrazioni di chiamate e video. L'AI può ora trasformare questi dati non strutturati in qualcosa che puoi interrogare e analizzare, ma solo se sono governati e gestiti insieme a tutto il resto.

Oggi annunciamo la beta del tipo FILE: un nuovo tipo di colonna che memorizza dati non strutturati come una colonna nativa e governata nelle tue tabelle. Con FILE, i tuoi dati non strutturati sono pronti per l'AI: interrogabili, protetti e gestiti direttamente insieme ai tuoi dati strutturati, invece di risiedere in un sistema separato. I vantaggi di FILE includono:

  • Governance unificata. Applica ai tuoi file grezzi esattamente gli stessi controlli di accesso granulari e le stesse policy di sicurezza che applichi alle tue tabelle standard.
  • Conformità automatizzata. Quando elimini una riga contenente un FILE, anche il file binario nell'object storage viene eliminato, rendendo semplicissimo il rispetto del "diritto all'oblio" del GDPR.
  • Supporto SQL e Python. Esegui UDF SQL e Python standard direttamente su file non strutturati proprio come su qualsiasi colonna normale, e crea viste materializzate per eseguire funzioni AI in modo incrementale.
  • Prestazioni elevate per progettazione. Le colonne FILE memorizzano solo puntatori leggeri anziché pesanti file binari, ed elaborano il contenuto effettivo del file solo quando una query lo richiede esplicitamente

FILE è un'innovazione che stiamo portando avanti in modo aperto: stiamo lavorando con la community per integrare il supporto direttamente in Parquet, Delta Lake, Apache Iceberg e Apache Spark, in modo che l'intero ecosistema possa trarne vantaggio. Questo mantiene i tuoi dati multimodali aperti e portabili, evitandoti di dipendere da un singolo fornitore o provider di modelli.

Cosa puoi fare con il tipo FILE

Oggi, i tuoi team di dati vogliono creare applicazioni su dati multimodali per generare un impatto sul business:

  • Assistenti documentali aziendali su contratti, policy e ricerche, per trasformare i documenti cartacei in una knowledge base interattiva.
  • Ispezione visiva sulle immagini dei prodotti, per individuare i difetti su larga scala invece di controllarli uno a uno a occhio nudo.
  • Analisi delle chiamate sulle registrazioni audio, per far emergere dalle conversazioni che già possiedi i motivi per cui i clienti convertono o abbandonano il servizio.
  • Comprensione video degli eventi, per rendere ore di filmati ricercabili e interrogabili.
  • Recupero multimodale per agenti che devono citare e agire su prove reali, non solo su testo.

FILE riduce gli ostacoli lungo l'intero ciclo di vita dei dati multimodali: dall'analisi esplorativa, all'addestramento dei modelli, fino alla fornitura di dati agli agenti in tempo reale. Per dimostrarlo, esamineremo un esempio, ma puoi sostituirlo con il tuo caso d'uso mentre leggi.

Iniziamo il nostro esempio con una domanda mirata del CEO di un'azienda di guida autonoma:

Possiamo ridurre il numero di fermate casuali? Quando la nostra auto a guida autonoma si ferma senza alcun motivo apparente, i passeggeri perdono fiducia nel nostro servizio

I dati necessari per affrontare questo problema sono non strutturati: video delle dashcam acquisiti da ciascuna auto a guida autonoma. Ecco come FILE rende questi dati pronti per l'AI, consentendoci di rispondere alla richiesta del CEO

  1. Inizia creando una colonna di FILE: crea una tabella con una colonna FILE che legge dal volume di archiviazione contenente i video delle dashcam

image4.png

Figura 1: Diagramma concettuale che mostra una colonna FILE che memorizza video

  1. Aggiungi una colonna footage tipizzata come FILE, mappando ogni clip nell'object storage a una riga
  2. La tabella ora contiene quella colonna FILE accanto ai metadati strutturati
  3. Una di queste clip della dashcam mostra l'auto che si ferma senza un motivo chiaro: un esempio di ciò che dobbiamo scoprire e su cui dobbiamo indagare

Di seguito è riportato un esempio di sintassi per la creazione di una tabella con una colonna FILE. Per provare l'esecuzione completa di una pipeline di elaborazione file utilizzando FILE, consulta la documentazione di accompagnamento che include notebook di esempio.

  1. Elabora i video delle dashcam in modo efficiente. Poiché la colonna è tipizzata come FILE, puoi lavorarci come con qualsiasi altra colonna: utilizza le funzioni AI integrate o le tue UDF Python. Qui, una UDF campiona un fotogramma da ogni clip in una nuova colonna FILE di immagini, e un modello di rilevamento degli oggetti aggiunge un'ulteriore colonna ai metadati che già possiedi, indicando se l'auto ha effettivamente un pericolo davanti a sé che richiede una fermata.

image2.png

Figura 2: Diagramma che mostra i FILE video elaborati

  1. Un fotogramma campionato finisce in una nuova colonna frame, anch'essa tipizzata come FILE
  2. Eseguiamo una funzione direttamente su quella colonna FILE per ottenere il valore hazard per ogni fotogramma
  3. La clip interrotta restituisce hazard = none: questa è l'informazione utile che stiamo cercando

Il vantaggio dell'utilizzo di FILE è che puoi lavorare facilmente con gigabyte di video senza compromettere le prestazioni delle query. Poiché la colonna FILE contiene un riferimento leggero, l'engine recupera i byte effettivi solo nella fase in cui sono necessari. Al contrario, codificando il binario grezzo nella tabella, ogni operazione trascinerebbe il pesante binario nella memoria dell'engine, ostacolando le prestazioni.

  1. Rispondi alla domanda del CEO. Ora un agente può ragionare sull'intero patrimonio di dati multimodali, unendo le informazioni estratte ai dati strutturati del viaggio per far emergere tutti i video in cui l'auto si è fermata improvvisamente senza alcun pericolo davanti a sé.

image3.png

Figura 3: Diagramma che mostra l'interrogazione di una tabella multimodale

  1. Una query unisce la colonna estratta hazard ai dati strutturati del viaggio, filtrando i video in cui l'auto si è fermata completamente con la strada libera davanti a sé
  2. Da qui, il tuo team di machine learning può facilmente curare i set di addestramento per migliorare il sistema di guida autonoma

L'agente può ora rispondere in modo rapido e accurato alla domanda perché tutto risiede in un'unica riga: il fotogramma video originale come ground truth, l'embedding, le informazioni estratte come i pericoli presenti e i metadati del viaggio (velocità, timestamp, ecc.) si trovano tutti uno accanto all'altro.

Spesso vediamo clienti che cercano di risolvere casi d'uso come questo memorizzando nella tabella una stringa URL contenente un percorso verso il file. Tuttavia, queste stringhe sono governate da un sistema completamente diverso di autorizzazioni ampie a livello di cartella. Ti trovi quindi costretto a gestire due modelli di autorizzazione per un unico dataset, e un filtro di riga che protegge un percorso non fa nulla per proteggere il video alla fine di esso.

Abbiamo risolto questa sfida di governance integrando FILE in Unity Catalog, dove i FILE sono protetti anche da controlli di accesso a livello di riga e di colonna, nonché dal controllo dell'accesso basato sugli attributi (ABAC), garantendo che le persone giuste abbiano accesso ai tuoi dati.

Un altro problema che i team affrontano oggi è il coordinamento del ciclo di vita dei loro dati non strutturati. Se qualcuno elimina un video nell'object storage, la tabella non ha idea della policy sul ciclo di vita dell'archiviazione e i due sistemi non sanno nulla l'uno dell'altro, lasciandoti con un riferimento che non punta a nulla.

Con FILE, il ciclo di vita del video si sposta insieme alla sua riga nel dataset: elimina una riga e i dati e il relativo riferimento rimangono sincronizzati: nessun file orfano, nessuna lacuna di conformità. Ora i tuoi team possono muoversi rapidamente senza preoccuparsi delle richieste di diritto all'oblio (ad es. GDPR) e della ricerca manuale di ogni singola copia dei dati.

FILE è integrato con gli strumenti che già utilizzi

Ora FILE consente ai tuoi dati non strutturati di beneficiare delle stesse fondamenta aperte, dello stesso modello di governance e dello stesso stack AI che già utilizzi per i dati strutturati.

  • Importa senza sforzo o fai riferimento in loco. Connettiti direttamente a sorgenti come SharePoint e Google Drive con i connettori point-and-click di Lakeflow. Oppure, se i tuoi dati risiedono già nel cloud storage o on-prem, le colonne FILE possono farvi riferimento esattamente dove si trovano, senza bisogno di spostare i dati.
  • Crea pipeline multimodali con Spark Declarative Pipelines. L'elaborazione incrementale dei dati non strutturati è più importante che mai, perché ogni documento rielaborato può comportare una costosa chiamata API del modello. E proprio come per le tue pipeline di dati tradizionali, non dovresti avere ingegneri svegli alle 3 del mattino quando un singolo file fallisce. Con FILE e SDP dichiari le tabelle multimodali che desideri e il DAG si risolve da solo. L'ingestion è incrementale, quindi vengono elaborati solo i nuovi documenti. I meccanismi di retry e recovery sono integrati, quindi un errore temporaneo non costringe a ricominciare da capo.
  • Usa qualsiasi modello per elaborare i tuoi dati non strutturati, incluse le migliori funzioni AI della categoria. Esegui AI_PARSE_DOCUMENT, AI_QUERY e le tue UDF direttamente sulla colonna FILE per trasformare documenti grezzi, immagini e video nelle colonne strutturate su cui i tuoi agenti e analisti effettuano già query.
    E poiché Databricks è nativamente progettato per ambienti multi-cloud, FILE si integra perfettamente con i vari cloud provider, offrendo al tuo team un'unica lakehouse unificata.

Inizia con il tipo FILE

Il tipo FILE è ora disponibile in Beta e saremmo felici di ricevere il tuo feedback. Leggi la documentazione Beta per l'elenco completo di ciò che puoi provare oggi stesso e per una guida passo-passo.

Questo è solo l'inizio per il tipo FILE e abbiamo in programma una roadmap entusiasmante di funzionalità in arrivo che accelereranno i tuoi progetti di AI, tra cui:

  • Sperimenta più velocemente senza costi aggiuntivi. L'addestramento e l'iterazione su un dataset non dovrebbero comportare la duplicazione di terabyte di dati non strutturati. FILE ti consente di creare versioni e clonare dati senza copiare i file binari sottostanti, e di fare riferimento agli stessi byte da più tabelle contemporaneamente. Ad esempio, un agente di machine learning può avviare una sandbox isolata su dati reali, e la lineage tiene traccia di qualsiasi regressione risalendo all'asset esatto che l'ha causata.
  • Invia dataset in streaming direttamente a PyTorch. Esegui query SQL sui tuoi dati FILE e carica istantaneamente i risultati nei PyTorch Dataset nativi, fornendo tensor pronti per la GPU direttamente ai tuoi cicli di addestramento senza ulteriore preparazione dei dati.
  • Feature engineering senza riscrittura della tabella. Aggiungi o esegui il backfill di una colonna derivata, come testo estratto, un embedding o una classificazione, senza riscrivere l'intera tabella, compresi i file binari di grandi dimensioni dei dati non strutturati di origine.
  • Un'unica copia dei tuoi dati non strutturati sia per l'analisi che per il serving. Cerca e recupera i dati direttamente dalla tabella, con indici vettoriali, full-text e point-lookup sulla tabella stessa, in modo che il tuo livello di recupero (retrieval) e la tua fonte di verità coincidano nella stessa lakehouse.

Se desideri saperne di più su come stiamo ottimizzando i carichi di lavoro AI in Databricks, contatta il team del tuo account Databricks.

(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale

Ricevi gli ultimi articoli nella tua casella di posta

Iscriviti al nostro blog e ricevi gli ultimi articoli direttamente nella tua casella di posta.