DINOv2 Modelli di computer visione auto-supervisionati di Meta AI

DINOv2 Self-supervised Computer Vision Models by Meta AI.

Sfruttare il potenziale della visione artificiale con DINOv2 un innovativo modello auto-supervisionato di Meta AI.

Meta AI ha appena rilasciato i modelli open-source DINOv2, il primo metodo che utilizza l’apprendimento auto-supervisionato per addestrare i modelli di computer vision. I modelli DINOv2 raggiungono risultati che corrispondono o sono addirittura migliori dell’approccio standard e dei modelli nel campo.

I modelli hanno raggiunto una forte performance senza la necessità di un’ulteriore messa a punto, il che li rende una scelta perfetta per molti diversi compiti e applicazioni di computer vision. DINOv2 può imparare da varie raccolte di immagini e funzionalità come la stima della profondità senza la necessità di un addestramento esplicito grazie al metodo di apprendimento auto-supervisionato.

1. La necessità dell’apprendimento auto-supervisionato

1.1. Non è richiesta alcuna ulteriore messa a punto

L’apprendimento auto-supervisionato è un potente metodo utilizzato per addestrare modelli di apprendimento automatico senza la necessità di grandi quantità di dati etichettati. I modelli DINOv2 possono essere addestrati su corpus di immagini senza la necessità di metadati correlati, hashtag specifici o didascalie delle immagini. I modelli DINOv2, a differenza di diversi recenti approcci di apprendimento auto-supervisionato, non necessitano di ulteriori messa a punto, producendo così funzionalità ad alte prestazioni per diverse applicazioni di computer vision.

1.2. Superare le limitazioni dell’annotazione umana

Negli ultimi anni, la pre-elaborazione immagine-testo è diventata il metodo predominante per varie applicazioni di computer vision. Tuttavia, a causa della sua dipendenza dalle didascalie etichettate dall’uomo per apprendere il significato semantico delle immagini, questo approccio spesso trascura informazioni cruciali che non sono esplicitamente incluse in quelle didascalie. Ad esempio, una didascalia con etichetta umana di una foto di un tavolo rosso in una stanza gialla potrebbe essere “Un tavolo rosso di legno”. Questa didascalia trascurerà alcune informazioni importanti sullo sfondo, la posizione e le dimensioni del tavolo. Ciò causerà una mancanza di comprensione delle informazioni locali e si tradurrà in una scarsa performance su compiti che richiedono informazioni di localizzazione dettagliate.

Inoltre, la necessità di etichette e annotazioni umane limiterà la quantità di dati che possiamo raccogliere per addestrare i modelli. Ciò diventa molto più difficile per alcune applicazioni, ad esempio l’annotazione di una cellula richiede un certo livello di competenze umane che non saranno disponibili nella scala richiesta. L’utilizzo di un approccio di addestramento auto-supervisionato sull’immagine cellulare apre la strada a un modello più fondamentale e, di conseguenza, migliorerà la scoperta biologica. Lo stesso vale per campi avanzati simili come la stima della densità animale.

Passare da DINO a DINOv2 ha richiesto di superare diversi ostacoli come

  • Creazione di un grande e curato dataset di addestramento
  • Miglioramento dell’algoritmo e dell’implementazione di addestramento
  • Progettazione di una pipeline funzionale di distillazione.

2. Da DINO a DINOv2

2.1. Creazione di un grande, curato e diversificato dataset di immagini

Uno dei principali passi per la creazione di DINOv2 è addestrare architetture e modelli più grandi per migliorare le prestazioni del modello. Tuttavia, i modelli più grandi richiedono grandi dataset per essere addestrati efficientemente. Poiché non erano disponibili grandi dataset che soddisfacessero i requisiti, i ricercatori hanno sfruttato i dati web pubblicamente raccolti e costruito una pipeline per selezionare solo i dati utili come in LASER.

Tuttavia, due compiti principali dovrebbero essere eseguiti per poter utilizzare questi dataset:

  • Bilanciare i dati tra diversi concetti e compiti
  • Rimuovere le immagini non pertinenti

Poiché questo compito può essere svolto manualmente, hanno curato un insieme di immagini di partenza da circa 25 dataset di terze parti ed espanso il dataset recuperando immagini strettamente correlate a quelle immagini di partenza. Questo approccio ha permesso loro di produrre un dataset pertinente di un totale di 142 milioni di immagini su 1,2 miliardi di immagini.

2.2. Miglioramenti algoritmici e tecnici

Anche se l’utilizzo di modelli e dataset più grandi porterà a risultati migliori, ci sono importanti sfide. Due delle principali sfide sono la potenziale instabilità e la permanenza tracciabile durante l’addestramento. Per rendere l’addestramento più stabile, DINOv2 include metodi aggiuntivi di regolarizzazione che sono stati ispirati dalla ricerca di similarità e dalla letteratura sulla classificazione.

Il processo di formazione di DINOv2 integra le ultime implementazioni di formazione mista e distribuita fornite dalla innovativa PyTorch 2. Ciò ha permesso un’implementazione più rapida dei codici e l’utilizzo dello stesso hardware per la formazione dei modelli DINO ha comportato il raddoppio della velocità e un terzo dell’utilizzo della memoria, consentendo la scalabilità nella dimensione dei dati e del modello.

2.3. Riduzione del tempo di inferenza mediante distillazione dei modelli

Eseguire modelli di grandi dimensioni in inferenza richiede hardware potente che limiterà l’uso pratico dei metodi per diversi casi d’uso. Per risolvere questo problema, i ricercatori hanno utilizzato la distillazione del modello per comprimere la conoscenza dei grandi modelli in quelli più piccoli. Utilizzando questo approccio, i ricercatori hanno potuto condensare architetture ad alte prestazioni in modelli più piccoli con costi di prestazione trascurabili. Ciò ha portato a modelli forti ViT-Small, ViT-Base e ViT-Large.

3. Iniziare con DINOv2

Il codice di formazione e valutazione richiede PyTorch 2.0 e xFormers 0.0.18, nonché molti altri pacchetti di terze parti e il codice si aspetta anche un ambiente Linux. Le seguenti istruzioni descrivono come configurare tutte le dipendenze necessarie per scopi di formazione e valutazione:

  • Installare PyTorch utilizzando l’istruzione qui. Si consiglia di installare PyTorch con il supporto CUDA.
  • Scaricare conda
  • Clonare il repository DINOv2 utilizzando il seguente comando:

Codice dell’autore

  • Procedere alla creazione e attivazione di un ambiente Conda denominato “dinov2” utilizzando la definizione dell’ambiente fornita:

Codice dell’autore

  • Per installare le dipendenze necessarie per questo progetto, utilizzare il file requirements.txt fornito.

Codice dell’autore

  • Infine, è possibile caricare i modelli utilizzando il codice di seguito:

Codice dell’autore

In conclusione, il rilascio dei modelli DINOv2 da parte di Meta AI segna una pietra miliare significativa. L’approccio di apprendimento auto-supervisionato utilizzato dai modelli DINOv2 fornisce un modo potente per formare modelli di apprendimento automatico senza la necessità di grandi quantità di dati contrassegnati. Con la capacità di ottenere un’alta precisione senza la richiesta di un tuning fine, questi modelli sono adatti per vari compiti e applicazioni di visione artificiale. Inoltre, DINOv2 può apprendere da diverse raccolte di immagini e può apprendere da funzionalità come la stima della profondità senza un addestramento esplicito. La disponibilità di DINOv2 come modello open-source apre le porte ai ricercatori e agli sviluppatori per esplorare nuove possibilità nei compiti e nelle applicazioni di visione artificiale.

Riferimenti

  • DINOv2: modelli di visione artificiale all’avanguardia con apprendimento auto-supervisionato
  • DINOv2: apprendimento di funzionalità visive robuste senza supervisione

Youssef Rafaat è un ricercatore di visione artificiale e scienziato dei dati. La sua ricerca si concentra sulla sviluppo di algoritmi di visione artificiale in tempo reale per le applicazioni sanitarie. Ha inoltre lavorato come scienziato dei dati per più di 3 anni nei settori del marketing, delle finanze e della sanità.