Ricerca nel sito web

Generazione da testo a visione a immagine - Esecuzione di DeepSeek Janus Pro sulle goccioline della GPU


DeepSeek AI, l'astro nascente del mondo dell'intelligenza artificiale di Hangzhou in Cina, è stato uno degli argomenti più caldi delle ultime settimane. Ciò è in gran parte dovuto alle incredibili prestazioni della serie di modelli R1, che offrono capacità di ragionamento paragonabili a OpenAI O1 a una frazione del costo di addestramento. La popolarità di DeepSeek R1 ha riportato i modelli open source alla ribalta della coscienza generale.

Più recentemente, DeepSeek ha anche rilasciato la sua ultima versione del framework autoregressivo Janus, Janus Pro. Janus-Pro è un modello linguistico multimodale di grandi dimensioni unificato per la comprensione e la generazione in grado di interpretare e generare dati di immagini e testo. In esso lo fa "disaccoppiando la codifica visiva in percorsi separati, pur utilizzando un'unica architettura di trasformatore unificata per l'elaborazione. Il disaccoppiamento non solo allevia il conflitto tra i ruoli del codificatore visivo nella comprensione e nella generazione, ma migliora anche la flessibilità del framework. ”

Segui questo articolo per scoprire come funziona Janus Pro, come si confronta con altri LLM multimodali e come eseguire Janus Pro su un DigitalOcean GPU Droplet.

Prerequisiti

Python: è necessaria esperienza con il codice Python per seguire\nDeep Learning: questo articolo esplorerà i concetti avanzati del deep learning

Il framework Janus Pro

La famiglia di modelli Janus si basa sul trasformatore autoregressivo, che determina la correlazione probabilistica tra gli elementi in una sequenza per dedurre l'elemento successivo. L'approccio unico di Janus è il disaccoppiamento dei metodi di codifica per convertire gli input grezzi in funzionalità. Questi vengono poi elaborati da un trasformatore autoregressivo unificato. In pratica, ciò consente la creazione di un modello combinato sia per la comprensione visiva che per la sintesi delle immagini.

In questa sezione, esploreremo cosa ha permesso all'architettura e al framework Janus di ottenere risultati così grandi.

Architettura Janus Pro

L'architettura di base di Janus Pro è la stessa del suo predecessore, Janus. Nei modelli Janus, la caratteristica distintiva della loro elaborazione è la codifica visiva disaccoppiata per la visione e la generazione multimodale. Gli encoder indipendenti vengono quindi utilizzati per interpretare le caratteristiche dagli ingressi. Vengono quindi elaborati da un trasformatore autoregressivo unificato.

Per la comprensione multimodale, utilizzano il SigLIP (Sigmoid Loss for Language Image Pre-Training) per estrarre le caratteristiche grossolane dall'immagine. Queste caratteristiche vengono quindi appiattite in una rappresentazione unidimensionale in cui un adattatore mappa le caratteristiche nello spazio di input dell'LLM.

Per le attività di generazione, il tokenizer VQ converte le caratteristiche dell'immagine in ID discreti e appiattisce la sequenza in una singola dimensione. "Utilizzano quindi un adattatore di generazione per mappare gli incorporamenti del codebook per ciascun ID nello spazio di input dell'LLM. Quindi concatenano queste sequenze di funzionalità per formare una sequenza di funzionalità multimodale, che viene successivamente inserita nell'LLM per l'elaborazione. La testa di previsione integrata dell'LLM viene utilizzata per le previsioni del testo sia nelle attività di comprensione del testo puro che in quelle di comprensione multimodale, mentre una testa di previsione inizializzata in modo casuale viene utilizzata per le previsioni delle immagini nell'attività di generazione visiva. L'intero modello aderisce a un quadro autoregressivo senza la necessità di maschere di attenzione appositamente progettate" (Fonte).

Strategia di allenamento Janus Pro

Per ottenere questi risultati, Janus Pro ha utilizzato una versione ottimizzata del processo di formazione in tre fasi di Janus. La fase 1 addestra gli adattatori e la testina dell'immagine, la fase 2 è il pre-addestramento unificato di tutto tranne l'encoder di generazione e comprensione e la fase 3 la messa a punto supervisionata dell'encoder di comprensione. Diamo un'occhiata a questi in modo più dettagliato.

Nella Fase 1, l'obiettivo è quello di addestrare una connessione tra le caratteristiche visive e testuali nello spazio di incorporamento. Ciò facilita funzionalmente gli LLM a comprendere gli elementi dell'immagine e ad avere le capacità iniziali di generazione di immagini. Durante questa fase, il modello viene bloccato e vengono aggiornati solo l'adattatore di comprensione, l'adattatore di generazione e la testina dell'immagine. In Janus Pro, questo processo viene esteso a più fasi di formazione. Una maggiore formazione su ImageNet ha consentito la dipendenza dai pixel del modello e capacità di generazione di immagini superiori su categorie limitate di immagini. (Fonte)

Nella Fase 2, l'LLM viene sbloccato ed eseguono un pre-training unificato su un corpus multimodale per consentire a Janus di apprendere e comprendere dati di testo puro, dati di comprensione multimodale e dati di generazione visiva (origine). In Janus Pro, in questa fase ignorano completamente ImageNet e utilizzano invece i dati text-to-image per generare immagini basate su descrizioni dense. Ciò ha migliorato sia l'efficienza dell'addestramento che la robustezza complessiva delle capacità di generazione delle immagini. (Fonte)

Nella fase 3, tutti i parametri del modello pre-addestrato, ad eccezione dell'encoder di generazione, vengono ottimizzati con i dati di ottimizzazione delle istruzioni per migliorare le capacità di dialogo e di esecuzione delle istruzioni del modello. Questo affina le sue capacità per seguire meglio quelle degli LLM convenzionali di istruzione-risposta. Per garantire un miglioramento coerente in tutte le modalità, i dati di messa a punto sono costituiti da dati multimodali, dati di testo puro e dati da testo a immagine. In Janus Pro, utilizzano un rapporto aggiustato di questa suddivisione dei dati. Hanno scoperto che una leggera riduzione della proporzione dei dati da testo a immagine migliora effettivamente le prestazioni multimodali senza influire in modo significativo sulle capacità di generazione.

È grazie a questo paradigma di formazione tripartito che Janus Pro è in grado di svolgere un'ampia varietà di attività di deep learning. Nei nostri esperimenti, abbiamo scoperto che il modello è estremamente capace per qualsiasi compito che gli abbiamo assegnato, tra cui istruzione-risposta, comprensione multimodale dei dati delle immagini e generazione da testo a immagine.

Janus Pro in esecuzione su DigitalOcean GPU Droplets

Per iniziare, avrai bisogno di un DigitalOcean GPU Droplet. Se non ne hai mai creato uno prima, ti consigliamo di seguire i passaggi mostrati in questo tutorial, nella documentazione o guardando il video qui sopra.

Una volta configurato il Droplet GPU, apri la console Web o SSH utilizzando il terminale locale. Quindi, incolla il seguente codice nella finestra del terminale.

apt get install -y git-lfs pip3
git-lfs clone https://huggingface.co/spaces/deepseek-ai/Janus-Pro-7B
pip install -r requirements.txt spaces omegaconf einops timm spaces torchvision attrdict 
python app.py - -share

Questo scaricherà il modello Janus Pro nella cache di HuggingFace, quindi avvierà l'applicazione web gestita da Gradio. È possibile accedervi ovunque su qualsiasi browser utilizzando il collegamento pubblico condiviso.

Per iniziare, carica un'immagine nella GUI. Quindi fai una domanda alla GUI sull'immagine. Ad esempio, abbiamo scoperto che il modello è abbastanza capace di interpretare memi ed equazioni scientifiche. È incredibile anche per le didascalie delle immagini.

Quindi, vai al generatore di immagini e prova la generazione. Anche se non si avvicina nemmeno lontanamente alle capacità di FLUX o Stable Diffusion, siamo impressionati dalla versatilità del modello.

Nel complesso, abbiamo riscontrato che Janus Pro è un LLM di comprensione multimodale molto capace e con capacità di generazione di immagini.

Pensieri conclusivi

In conclusione, Janus Pro è un modello incredibilmente interessante. È in grado di fungere sia da LLM, modello di comprensione visiva che generatore di immagini. Non vediamo l'ora di vedere come gli sforzi futuri con i modelli autoregressivi continueranno a far progredire il campo.