Perché DeepSeek V3 sta conquistando il mondo dell’IA: la prospettiva di uno sviluppatore
Uno degli obiettivi finali di tutti i Large Language Models (LLM) che utilizziamo oggi è essere capaci di comprendere ed eseguire qualsiasi compito intellettuale che un essere umano possa svolgere. Questo concetto è comunemente indicato come Artificial General Intelligence (AGI). La corsa verso l’AGI ha acceso rapidi sviluppi in molti LLM da parte di sviluppatori AI leader a livello mondiale, come OpenAI, Meta, Google, Anthropic e Qwen.
Di recente, nuovi LLM sviluppati da DeepSeek hanno generato enorme entusiasmo all’interno della comunità AI grazie alla loro combinazione di prestazioni e costo operativo. Ad esempio, si sostiene che il modello DeepSeek R1 offra prestazioni simili al modello di ragionamento più avanzato di OpenAI fino a oggi, il modello o1, con solo una frazione del costo di addestramento. Nel frattempo, le prestazioni del modello DeepSeek V3 sono comparabili a GPT-4o e richiedono solo una frazione del costo di addestramento. A differenza di OpenAI, DeepSeek ha deciso di rendere i propri modelli completamente open-source, consentendo all’intera comunità AI di accedere ai pesi dei modelli DeepSeek. Questo accelererà ancora di più il processo verso l’AGI.
Questo articolo discuterà diverse caratteristiche innovative del modello DeepSeek, nello specifico DeepSeek V3, che rendono le prestazioni di questo LLM comparabili ai più recenti modelli closed-source allo stato dell’arte disponibili. Quindi, senza ulteriori indugi, esploriamo la prima caratteristica innovativa chiave.
Caratteristica Uno: Multi Head Latent Attention
Al suo nucleo, DeepSeek V3 adotta ancora la classica architettura Transformers. Consiste in un numero enorme di blocchi Transformer, dove ogni blocco contiene diversi livelli importanti: normalizzazione, attenzione e livelli feed-forward, come puoi vedere nella seguente visualizzazione:
Visualizzazione di un singolo blocco Transformer.
In questa sezione, ci concentreremo esclusivamente sul livello di attenzione, poiché è qui che risiede la Multi-head Latent Attention (MLA) del modello DeepSeek V3.
In breve, un livello di attenzione si aspetta come input la rappresentazione di embedding di un token in una particolare posizione. Il primo passaggio del livello di attenzione consiste nel proiettare questo embedding di input in vettori query, key e value utilizzando tre matrici di pesi apprese. Il livello userà poi questi valori per stimare il contesto di questo particolare token rispetto ai token precedenti, un processo comunemente chiamato meccanismo di attenzione.
Tuttavia, il modo in cui viene calcolato il meccanismo di attenzione presenta uno svantaggio significativo. Come potresti già sapere, gli LLM generano un token alla volta in una sequenza, e un nuovo token dipende sempre dai token generati in precedenza. Pertanto, per stimare il contesto di un nuovo token, l’attenzione dei token precedenti deve essere ricalcolata. Ad esempio, generare il token numero 50 richiede ogni volta il ricalcolo dell’attenzione dei token da 1 a 49. Questo si traduce in un processo di generazione dei token molto lento durante l’inferenza.
Gestione della KV Cache in vLLM. Fonte.
Per risolvere questo problema, un approccio chiamato KV cache viene normalmente implementato negli LLM per accelerare il processo di generazione dei token. Come suggerisce il nome, con la KV cache, la key e il value di un nuovo token vengono memorizzati in una cache durante ogni processo di generazione. Pertanto, durante il calcolo dell’attenzione di un nuovo token, utilizziamo la key e il value memorizzati nella cache dei token precedenti invece di ricalcolare tutto da zero. Questo accelera efficacemente il processo di generazione dei token.
DeepSeek V3 utilizza anche la cache KV nel suo strato di attenzione. In effetti, porta ulteriormente avanti l'approccio con l'introduzione di MLA. In sostanza, MLA comprime la dimensione dell'embedding di input nella sua rappresentazione a basso rango rimuovendo gli elementi ridondanti. Come risultato di questa compressione, la dimensione dei vettori chiave, valore e query diventa ancora più piccola, ottimizzando così la memoria per la cache KV e accelerando il processo di generazione dei token.
Architettura di DeepSeek V3 in un singolo blocco Transformer. Fonte.
Come puoi vedere dalla figura sopra, l'approccio comprime congiuntamente chiave e valore nella loro rappresentazione a basso rango. Questa versione compressa del vettore chiave-valore può quindi essere memorizzata nella cache in modo simile alla normale cache KV.
Nel frattempo, la query viene compressa indipendentemente. Una volta compressa, la rappresentazione a basso rango del vettore query viene quindi elaborata da due pipeline diverse: una viene proiettata direttamente con uno strato per mapparla nuovamente nella sua rappresentazione ad alta dimensionalità, e un'altra viene elaborata da un approccio chiamato Rotary Positional Embedding (RoPE). Il metodo RoPE è importante per introdurre informazioni posizionali del nuovo token in una sequenza. Gli output di queste due pipeline vengono quindi concatenati in un unico input finale per lo strato di attenzione multi-head.
Anche il vettore chiave-valore compresso congiuntamente subisce un processo simile a quello del vettore query. Tuttavia, l'input per RoPE del vettore chiave proviene dall'embedding di input originale invece che dal vettore chiave-valore compresso.
Funzionalità due: DeepSeek MoE
Un altro approccio affascinante implementato all'interno di DeepSeek V3 è l'approccio Mixture of Experts (MoE). Come puoi vedere dall'immagine sopra, questo metodo è implementato in DeepSeek V3 come sostituto della rete feed-forward originale nel blocco Transformers.
Usiamo un esempio per capire facilmente cosa fa MoE. Immagina di studiare in un'università con molti professori, ciascuno esperto in una materia diversa (matematica, fisica, letteratura). Quando vogliamo chiedere qualcosa sul calcolo infinitesimale, saremo indirizzati al professore di matematica. Allo stesso modo, se vogliamo chiedere qualcosa sulla fisica quantistica, saremo indirizzati al professore di fisica.
MoE funziona in modo simile. Consiste in molti modelli, ciascuno con la propria competenza per risolvere un problema particolare.
Durante la fase di addestramento, ogni modello riceve dati diversi da un dominio particolare, in modo tale da diventare esperto nel risolvere compiti di quel dominio. Poi, durante l'inferenza, invece di affidarsi a un singolo modello enorme per gestire ogni dominio di un problema, MoE assegnerà la query ai modelli esperti più capaci. Questo approccio rende l'inferenza più rapida ed efficiente, poiché durante la previsione verrà attivato solo un piccolo numero di modelli esperti, a seconda del compito.
MoE in DeepSeek V3. Fonte.
Un elemento importante in un approccio MoE è la rete di gating. Questa rete ha due responsabilità principali: analizzare la query di input e poi indirizzarla ai modelli esperti più appropriati. Tuttavia, un problema comune riguardante l'addestramento di MoE è la questione del bilanciamento del carico, in cui la rete di gating continua a indirizzare tutti i dati di addestramento verso un modello specifico invece di distribuirli agli altri modelli.
Implementare una perdita ausiliaria aiuta a costringere la rete di gating a imparare a distribuire i dati di addestramento a modelli diversi. Il problema è che affidarsi alla sola perdita ausiliaria ha dimostrato di degradare le prestazioni del modello dopo l'addestramento.
Per introdurre un compromesso tra bilanciamento del carico e prestazioni del modello, DeepSeek V3 ha implementato una strategia di bilanciamento del carico priva di perdita ausiliaria. Questa strategia introduce un termine di bias in ciascun modello esperto, che verrà regolato dinamicamente in base al carico di routing dell’esperto corrispondente. Questo garantisce che nessun modello esperto venga sovraccaricato o sottoutilizzato.
Inoltre, come puoi vedere nella visualizzazione sopra, DeepSeek V3 ha progettato alcuni esperti come "shared experts", e questi esperti sono sempre attivi per vari compiti. Questa implementazione contribuisce a migliorare la capacità del modello di generalizzare tra diversi domini di compiti.
Questa funzionalità MoE è la ricetta segreta dietro la versatilità di DeepSeek V3. Come vedrai nella prossima sezione, DeepSeek V3 offre prestazioni elevate in vari compiti con domini diversi come matematica, coding, linguaggio, ecc. Infatti, questo modello è attualmente il modello base open-source più potente in diversi domini.
Funzionalità tre: previsioni multi-token
Gli LLM comuni prevedono un token in ogni fase di decoding, ma DeepSeek V3 opera in modo diverso, specialmente nella sua fase di training. DeepSeek V3 implementa le cosiddette previsioni multi-token (MTP) durante il training, che consentono al modello di prevedere diversi token futuri in ogni fase di decoding.
Sebbene aggiunga livelli di complessità, l’approccio MTP è importante per migliorare le prestazioni del modello in diversi compiti. Come puoi immaginare, osservando possibili token futuri diversi passi avanti in una singola fase di decoding, il modello è in grado di apprendere la migliore soluzione possibile per qualsiasi compito dato.
Visualizzazione dell’approccio MTP in DeepSeek V3. Fonte.
Per implementare MTP, DeepSeek V3 adotta più di un modello, ciascuno composto da un insieme di layer Transformer. Un modello agisce come modello principale, mentre gli altri agiscono come moduli MTP. Sebbene non sia definito chiaramente, il modello MTP è comunemente di dimensioni inferiori rispetto al modello principale (la dimensione totale del modello DeepSeek V3 su HuggingFace è 685B, con 671B dal modello principale e 14B dal modulo MTP).
Durante la fase di training, sia il modello principale sia i moduli MTP ricevono input dallo stesso layer di embedding. Tuttavia, l’implementazione deve comunque essere eseguita in sequenza, cioè il modello principale dovrebbe andare per primo prevedendo il token un passo avanti, e dopo di ciò, il primo modulo MTP prevederà il token due passi avanti. Questo processo continua in base al numero di moduli MTP. Dopo aver previsto i token, sia il modello principale sia i moduli MTP utilizzeranno la stessa output head.
Possiamo essere totalmente flessibili con il modulo MTP durante la fase di inferenza. Ad esempio, possiamo scartare completamente il modulo MTP e utilizzare solo il modello principale durante l’inferenza, proprio come gli LLM comuni. Inoltre, possiamo usare il modulo MTP per implementare un approccio di decoding speculativo per accelerare potenzialmente ancora di più il processo di generazione.
Costo e prestazioni di DeepSeek V3 rispetto ad altri modelli
Tutte le funzionalità innovative menzionate sopra hanno permesso al modello DeepSeek V3 di essere addestrato a costi molto più bassi rispetto ai suoi concorrenti closed-source.
DeepSeek V3 è stato addestrato su un cluster con 2.048 GPU NVIDIA H800. La fase di pre-training del modello DeepSeek V3 è costata circa 0.01M, portando il totale a 100M](https://www.wired.com/story/openai-ceo-sam-altman-the-age-of-giant-ai-models-is-already-over/).
DeepSeek V3 ha anche mostrato prestazioni superiori rispetto ad altri LLM open e closed-source come Qwen2.5 72B, Llama 3.1 405B, Claude 3.5 Sonnet e ChatGPT 4o in diversi benchmark, come puoi vedere nella figura qui sotto:
Confronto tra DeepSeek-V3 e altri modelli di chat all'avanguardia. Fonte.
Le prestazioni di DeepSeek V3 si sono dimostrate superiori rispetto ad altri modelli all'avanguardia in vari compiti, come coding, matematica e cinese. Le sue prestazioni nei compiti in inglese hanno mostrato risultati comparabili con Claude 3.5 Sonnet in diversi benchmark.
Inoltre, le prestazioni di DeepSeek V3 sono state confrontate con quelle di altri LLM su compiti di generazione aperta utilizzando GPT-4-Turbo-1106 come giudice e il tasso di vittoria controllato per lunghezza come metrica. Di conseguenza, DeepSeek V3 ha dimostrato le migliori prestazioni rispetto agli altri sui benchmark Arena-Hard e AlpacaEval 2.0.
Confronto tra DeepSeek-V3 e altri modelli di chat all'avanguardia sui benchmark AlpacaEval 2.0 e Arena-Hard. Fonte.
Le prestazioni superiori di DeepSeek V3 su entrambi i benchmark Arena-Hard e AlpacaEval 2.0 mostrano la sua capacità e robustezza nel gestire prompt lunghi e complessi, nonché compiti di scrittura e scenari semplici di domanda-risposta.
Come gli sviluppatori possono sfruttare DeepSeek V3
Oltre alle sue prestazioni, un altro elemento di grande richiamo del modello DeepSeek V3 è la sua natura open-source. DeepSeek ha deciso di rendere open-source il modello V3 sotto licenza MIT, il che significa che gli sviluppatori possono avere accesso gratuito ai suoi pesi e utilizzarlo per i propri scopi, anche per uso commerciale.
Possiamo utilizzarlo per vari casi d'uso di GenAI, dalle raccomandazioni personalizzate e dalla generazione di contenuti agli assistenti virtuali, chatbot interni, riassunto di documenti e molto altro. Questi casi d'uso ci consentono anche di combinare la potenza di DeepSeek V3 con Milvus, un database vettoriale open-source, per archiviare miliardi di embedding di contesto.
Al momento della stesura di questo articolo, DeepSeek V3 non è ancora stato integrato in Hugging Face. Tuttavia, ci si aspetta che venga integrato molto presto, così da poter utilizzare ed eseguire il modello localmente in modo semplice. Mentre aspettiamo l'integrazione ufficiale con Hugging Face, puoi eseguire DeepSeek V3 in diversi modi.
Il modo più semplice per provare DeepSeek V3 è tramite la piattaforma di chat ufficiale di DeepSeek. Tutto ciò che devi fare è registrarti e iniziare a chattare con il modello.
Se desideri eseguirlo localmente sulla tua macchina, devi prima clonare il repository ufficiale di DeepSeek V3 con il seguente comando:
git clone <https://github.com/deepseek-ai/DeepSeek-V3.git>
Successivamente, vai nella cartella inference e installa tutte le dipendenze richieste eseguendo i seguenti comandi:
cd DeepSeek-V3/inference
pip install -r requirements.txt
Successivamente, devi scaricare i pesi del modello. Su HuggingFace sono disponibili due pesi del modello: la versione base (solo dopo la fase di pre-training) e la versione chat (dopo la fase di post-training). Scarica la versione del modello che preferisci e poi inserisci i pesi all'interno della cartella /path/to/DeepSeek-V3.
Ora puoi convertire i pesi del modello HuggingFace in un formato specifico con il seguente comando:
python convert.py --hf-ckpt-path /path/to/DeepSeek-V3 --save-path /path/to/DeepSeek-V3-Demo --n-experts 256 --model-parallel 16
E infine puoi eseguire questo comando per iniziare a chattare con DeepSeek V3:
torchrun --nnodes 2 --nproc-per-node 8 generate.py --node-rank $RANK --master-addr $ADDR --ckpt-path /path/to/DeepSeek-V3-Demo --config configs/config_671B.json --interactive --temperature 0.7 --max-new-tokens 200
Un modo alternativo per iniziare a usare DeepSeek V3 è tramite diversi framework di serving ottimizzati per LLM, come vLLM, SGLang, LMDeploy e TensorRT-LLM.
Prospettive future dopo DeepSeek V3
L’introduzione di DeepSeek V3 può essere vista come una svolta significativa sotto molti aspetti. Molte innovazioni implementate nella fase di addestramento di DeepSeek V3, come MLA, MoE, MTP e l’addestramento a precisione mista con quantizzazione FP8, hanno aperto una strada per sviluppare un LLM che non sia solo performante ed efficiente, ma anche significativamente più economico da addestrare.
L’implementazione di MLA, MoE e MTP contribuisce ad accelerare il processo di generazione dei token durante l’inferenza in modi diversi:
MLA ci consente di risparmiare memoria della KV cache e accelerare la generazione dei token comprimendo la dimensione delle rappresentazioni di input nella loro rappresentazione a basso rango.
MoE accelera il processo di generazione dei token e migliora la scalabilità del modello attivando solo determinati esperti durante l’inferenza, a seconda del task. Invece di attivare tutti i 671B parametri durante l’inferenza, il modello ne attiverà solo una piccola frazione (circa 37B).
MTP può essere riutilizzato durante l’inferenza per facilitare un approccio di decoding speculativo. Con questo approccio, la previsione del token successivo può partire da possibili token futuri previsti dai moduli MTP invece di prevederlo da zero.
Il fatto che DeepSeek abbia scelto di rendere DeepSeek V3 open-source sotto licenza MIT incoraggia anche noi, la comunità globale dell’AI, a contribuire, sperimentare e costruire sulla sua tecnologia. Questo, a sua volta, coinvolge tutti noi in un ciclo di innovazione più rapida verso l’obiettivo di raggiungere un’AGI che porti benefici a tutti.
Sebbene le sue prestazioni siano già superiori rispetto ad altri LLM allo stato dell’arte, la ricerca suggerisce che le prestazioni di DeepSeek V3 possano essere ulteriormente migliorate in futuro.
In precedenza, il team DeepSeek ha condotto ricerche sulla distillazione della capacità di ragionamento del suo modello più potente, DeepSeek R1, nel modello DeepSeek V2.5. Se non hai familiarità con questo concetto, la distillazione si riferisce al processo di trasferimento della conoscenza di un modello più grande e più performante in uno più piccolo.
DeepSeek V2.5 ha mostrato miglioramenti significativi sui benchmark LiveCodeBench e MATH-500 quando è stato presentato con dati di distillazione aggiuntivi dal modello R1, sebbene ciò comportasse anche un evidente svantaggio: un aumento della lunghezza media delle risposte.
Il contributo della distillazione da DeepSeek-R1 su DeepSeek V2.5. Fonte.
Ciononostante, questa ricerca dimostra che la stessa tecnica di distillazione della conoscenza può essere applicata anche a DeepSeek V3 in futuro per ottimizzare ulteriormente le sue prestazioni in vari domini di dati.
Conclusione
DeepSeek V3 rappresenta un importante passo avanti nel campo dell’AI open-source. Offre prestazioni paragonabili ai principali modelli closed-source a una frazione dei costi di addestramento. Le sue caratteristiche innovative, tra cui Multi-Head Latent Attention (MLA), Mixture of Experts (MoE) e Multi-Token Predictions (MTP), contribuiscono sia all’efficienza sia all’accuratezza durante le fasi di addestramento e inferenza. Inoltre, la sua natura open-source sotto licenza MIT consente alla comunità AI di costruire sui suoi progressi, accelerando così il progresso verso l’AGI.
Guardando al futuro, l’impatto di DeepSeek V3 può essere ancora più potente. La potenziale applicazione di tecniche di distillazione della conoscenza, come precedentemente esplorato da DeepSeek R1 e DeepSeek V2.5, suggerisce margini per un’ulteriore ottimizzazione e miglioramenti dell’efficienza. Possiamo dire che DeepSeek V3 stabilisce un nuovo punto di riferimento per la ricerca sull’IA conveniente e ad alte prestazioni.
Continua a leggere

We spent 8 years making vector databases faster. Then we stopped.
Rarely queried embeddings still need to stay searchable. See how Vector Lakebase enables on-demand vector search without always-on compute costs.

Why I’m Against Claude Code’s Grep-Only Retrieval? It Just Burns Too Many Tokens
Learn how vector-based code retrieval cuts Claude Code token consumption by 40%. Open-source solution with easy MCP integration. Try claude-context today.

Building RAG Pipelines for Real-Time Data with Cloudera and Milvus
explore how Cloudera can be integrated with Milvus to effectively implement some of the key functionalities of RAG pipelines.


