LAION AI presenta Video2Dataset uno strumento open-source progettato per curare dataset video e audio in modo efficiente e su larga scala.
LAION AI presenta Video2Dataset, uno strumento open-source per curare dataset video e audio in modo efficiente e su larga scala.
I grandi modelli di base come CLIP, Stable Diffusion e Flamingo hanno migliorato radicalmente l’apprendimento profondo multimodale negli ultimi anni. La modellazione congiunta testo-immagine è passata dal essere un’applicazione di nicchia a uno dei problemi più rilevanti nell’attuale panorama dell’intelligenza artificiale grazie alle straordinarie capacità di questi modelli di generare immagini spettacolari ad alta risoluzione o di affrontare problemi difficili. Sorprendentemente, nonostante affrontino compiti molto diversi e abbiano design molto diversi, tutti questi modelli hanno tre proprietà fondamentali in comune che contribuiscono alle loro ottime prestazioni: una funzione obiettivo semplice e stabile durante (pre-)formazione, un’architettura di modello scalabile ben studiata e – forse più importante – un dataset grande e diversificato.
L’apprendimento profondo multimodale, nel 2023, si occupa ancora principalmente della modellazione testo-immagine, con attenzione limitata a modalità aggiuntive come il video (e l’audio). Considerando che le tecniche utilizzate per addestrare i modelli sono tipicamente agnostiche alla modalità, si potrebbe chiedere perché non esistono modelli solidi per queste altre modalità. La spiegazione semplice è la scarsità di dataset annotati di alta qualità e di grandi dimensioni. Questa mancanza di dati puliti ostacola la ricerca e lo sviluppo di modelli multimodali ampi, soprattutto nel dominio dei video, a differenza della modellazione delle immagini, dove esistono dataset consolidati per la scalabilità come LAION-5B, DataComp e COYO-700M e strumenti scalabili come img2dataset.
Poiché può aprire la strada a iniziative innovative come la creazione di video e audio di alta qualità, modelli preaddestrati migliorati per la robotica, AD cinematografica per la comunità dei non vedenti e altro ancora, i ricercatori suggeriscono che la risoluzione di questo problema dei dati sia un obiettivo centrale della ricerca multimodale (open source).
- Jasper AI Review (luglio 2023) Il miglior generatore di scrittura AI?
- Apprendimento dei trasformatori Codice Prima Parte 2 – GPT da vicino e personalmente
- Come risolvere i problemi di dipendenza di Python con Anaconda su Windows
I ricercatori presentano video2dataset, un programma open source per la creazione rapida ed estensiva di dataset video e audio. È stato testato con successo su diversi dataset video di grandi dimensioni ed è adattabile, estensibile e offre un gran numero di trasformazioni. È possibile trovare questi casi di studio e istruzioni dettagliate per replicare il nostro metodo nel repository.
Scaricando singoli dataset video, unendoli e ridimensionandoli in forme più gestibili con nuove caratteristiche e un numero significativamente maggiore di campioni, i ricercatori hanno utilizzato video2dataset per ampliare i dataset video esistenti. Si prega di consultare la sezione degli esempi per una descrizione più approfondita di questa elaborazione in catena. I risultati ottenuti addestrando diversi modelli sui dataset forniti da video2dataset dimostrano l’efficacia dello strumento. Il nostro prossimo studio discuterà in modo approfondito il nuovo dataset e le relative scoperte.
Per iniziare, definiamo video2dataset.
Dato che webdataset è un formato di input accettabile, video2dataset può essere utilizzato in una catena per riprocessare dati precedentemente scaricati. È possibile utilizzare i dati WebVid scaricati nell’esempio precedente per eseguire questo script, che calcolerà il flusso ottico per ogni film e lo memorizzerà in frammenti di metadati (frammenti che contengono solo i metadati relativi al flusso ottico).
Architettura
Basato su img2dataset, video2dataset prende una lista di URL e relativi metadati e li converte in un WebDataset che può essere caricato con un singolo comando. Inoltre, il WebDataset può essere riprocessato per ulteriori modifiche mantenendo gli stessi contenuti dei frammenti. Come funziona video2dataset? Spiegherò.
Scambio di idee
Il primo passo è suddividere i dati di input in modo che possano essere distribuiti in modo uniforme tra i lavoratori. Questi frammenti di input vengono memorizzati temporaneamente e la corrispondenza uno a uno con i loro frammenti di output corrispondenti garantisce il ripristino senza errori. Se un’esecuzione di elaborazione del dataset termina in modo imprevisto, è possibile risparmiare tempo saltando i frammenti di input per i quali i ricercatori hanno già il frammento di output corrispondente.
Comunicazione e studio
I lavoratori si alternano quindi nella lettura e nell’elaborazione dei campioni contenuti nei frammenti. I ricercatori offrono tre diverse modalità di distribuzione: multiprocessing, pyspark e slurm. Il primo è ideale per applicazioni su singola macchina, mentre l’ultimo è utile per la scalabilità su più macchine. Il formato del dataset in ingresso determina la strategia di lettura. Se i dati sono una tabella di URL, video2dataset recupererà il video da Internet e lo aggiungerà al dataset. video2dataset funziona con molte piattaforme video diverse perché utilizza yt-dlp per richiedere video che non riesce a trovare. Tuttavia, se i campioni video provengono da un dataset Web esistente, il caricatore di dati per quel dataset può leggere il formato tensore dei byte o dei frame.
Sottocampionamento
Dopo che il video è stato letto e il lavoratore ha i byte del video, i byte vengono inviati attraverso una pipeline di sottocampionatori in base alla configurazione del lavoro. In questa fase, il video può essere opzionalmente sottocampionato sia in termini di frame rate che di risoluzione; ritagliato; possono essere identificate le scene; e così via. D’altra parte, ci sono sottocampionatori il cui unico scopo è estrarre e aggiungere metadati, come informazioni sulla risoluzione/compressione, didascalie sintetiche, flusso ottico, e così via, dalle modalità di input. Definire un nuovo sottocampionatore o modificare uno esistente è tutto ciò che serve per aggiungere una nuova trasformazione a video2dataset se non è già presente. Questo è un grande aiuto e può essere implementato con poche modifiche altrove nel repository.
Registrazione
Video2dataset tiene registri meticolosi in più punti del processo. Il completamento di ogni shard porta alla creazione del file “_stats.json” associato a quel shard. Qui vengono registrate informazioni come il numero totale di campioni gestiti, la percentuale di quelli gestiti con successo e l’occorrenza e la natura di eventuali errori. Weights & Biases (wand) è uno strumento aggiuntivo che può essere utilizzato con video2dataset. Con un solo argomento, è possibile attivare questa integrazione e accedere a rapporti dettagliati sulle prestazioni e metriche per successi e fallimenti. Tali capacità sono utili per attività di benchmarking e stima dei costi connesse a interi lavori.
Scrittura
Infine, video2dataset archivia le informazioni modificate in shard di output in posizioni specificate dall’utente per l’utilizzo in operazioni di addestramento o riprocessamento successivo. Il dataset può essere scaricato in diversi formati, tutti composti da shard con N campioni ciascuno. Questi formati includono cartelle, file tar, record e file parquet. I più importanti sono il formato delle directory per dataset più piccoli per il debug e i file tar utilizzati dal formato WebDataset per il caricamento.
Riprocessamento
video2dataset può riprocessare dataset di output precedenti leggendo gli shard di output e passando i campioni attraverso nuove trasformazioni. Questa funzionalità è particolarmente vantaggiosa per i dataset video, considerando la loro spesso ingente dimensione e la loro natura scomoda. Ci consente di sottocampionare attentamente i dati per evitare numerosi download di dataset di grandi dimensioni. I ricercatori approfondiscono un esempio pratico di questo nella sezione successiva.
Il codice e i dettagli possono essere trovati su GitHub https://github.com/iejMac/video2dataset
Piani futuri
- Studio di un enorme dataset costruito con il software descritto in questo articolo del blog, seguito dalla diffusione pubblica dei risultati di tale studio.
- Un miglioramento della generazione di didascalie sintetiche. C’è molto spazio per l’innovazione nella generazione di didascalie sintetiche per i video. Presto in video2dataset, i ricercatori avranno metodi più interessanti per produrre didascalie per i video che utilizzano modelli di generazione di didascalie per immagini e LLM (Language Models).
- La capacità di Whisper di estrarre numerosi token di testo dal video è stata oggetto di molte discussioni fin dal suo rilascio. Utilizzando video2dataset, attualmente stanno trascrivendo una considerevole collezione di podcast per rendere pubblicamente disponibile il dataset di testo risultante (con un obiettivo di 50 miliardi di token).
- Molte idee di modellazione entusiasmanti. Speriamo che, con strumenti migliorati per la curatela dei dataset, sempre più persone cerchino di spingere gli Stati dell’Arte (SOTA) nella modalità video e audio.
video2dataset è un progetto completamente open-source e i ricercatori si impegnano a svilupparlo in modo aperto. Ciò significa che tutti i TODO e le direzioni future pertinenti possono essere trovati nella sezione degli “issues” del repository. Le contribuzioni sono benvenute; il modo migliore per farlo è individuare un problema, affrontarlo e inviare una pull request.