Salta al contingut
Entendre els LLMs
Bloc 4nucli3 h
IntuïtiuMatemàtic

Abans d'això: L'arquitectura Transformer

12 · Anatomia d'un LLM modern

Idea central: l'esquelet de 2017 continua intacte. El que ha canviat són una dotzena de detalls, cadascun motivat per estabilitat a escala o per eficiència de memòria en inferència. Aquest fitxer és el "diff" entre el paper original i un model de 2026.


1. El diff, en una taula# sense fórmules

ComponentTransformer 2017LLM 2026Motiu
Estructuraencoder-decoderdecoder-onlysimplicitat, escalabilitat
Posició de la normpost-normpre-norm (+ sandwich en alguns)estabilitat d'entrenament
NormalitzacióLayerNormRMSNormmés ràpida, igual de bona
Activació FFNReLUSwiGLUmillor pèrdua a igualtat de paràmetres
Posiciósinusoïdal absolutaRoPE (+ scaling)relativa, extrapolable
AtencióMHAGQA o MLAKV-cache molt més petit
Biaixossíno (excepte alguns)inútils, resten estabilitat
Capes FFNdensesdenses o MoEcapacitat sense cost d'inferència
Estabilitat extra—QK-norm, z-loss, logit soft-cappingevitar explosions a escala
Precisiófp32bf16 / fp8velocitat i memòria
Context512128k – 1M+utilitat pràctica

El diff, executat

Cada fila de la taula és un interruptor sobre un model que entrena de debò. Quines milloren la pèrdua, i quines no milloren la pèrdua sinó una altra cosa?

bigrama
  • el de 2017
  • el teu
  • el de 2026
La taula del §1, amb el que cada fila et costa i et dona ara mateix
Component20172026MotiuΔ paràmetresΔ cache
Posició de la normpost-normpre-normestabilitat——
NormalitzacióLayerNormRMSNormvelocitat+160—
Activació FFNReLUSwiGLUqualitat——
PosiciósinusoïdalRoPEqualitat——
AtencióMHAGQA 4:1memòria+3.072+96
Biaixossínoestabilitat+576—

Les dues últimes columnes diuen què et costaria girar aquella fila ara, amb la resta com les tens. Fixa't que quatre de les sis no mouen ni els paràmetres ni el cache: el seu efecte no es pot llegir en cap d'aquestes dues columnes, i tampoc gaire a la pèrdua. Clica una fila per girar-la.

S'entrenen tres models alhora —el de 2017, el teu i el de 2026— sobre el mateix text i amb la mateixa llavor, un pas de cadascun per iteració, de manera que les tres corbes creixen juntes. Amb d=32d = 32, 2 capes i context 32 cada pas de les tres costa uns 84 ms (estimats). Pots aturar-ho quan vulguis sense perdre res.

Configuracions senceres

Canviar un interruptor torna a muntar els tres models des de zero: la comparació ha de ser a igualtat de passos.

Marcat és el de 2026 (pre-norm); desmarcat, el de 2017 (post-norm). Motiu: estabilitat.

Marcat és el de 2026 (RMSNorm); desmarcat, el de 2017 (LayerNorm). Motiu: velocitat.

Marcat és el de 2026 (SwiGLU); desmarcat, el de 2017 (ReLU). Motiu: qualitat.

Marcat és el de 2026 (RoPE); desmarcat, el de 2017 (sinusoïdal). Motiu: qualitat.

Marcat és el de 2026 (GQA 4:1); desmarcat, el de 2017 (MHA). Motiu: memòria.

Marcat és el de 2026 (no); desmarcat, el de 2017 (sí). Motiu: estabilitat.

passos
0
pèrdua · 2017
—
pèrdua · el teu
—
pèrdua · 2026
—
paràmetres · el teu
25.760
KV-cache / token
32 esc.
Encara no s’ha entrenat res: prem un dels botons de dalt

Els dos extrems s'entrenen sobre el mateix text, amb la mateixa llavor i el mateix nombre de passos. Si tot el que hi ha a la taula del §1 fos «millora la pèrdua», la distància entre les dues corbes hauria de ser gran. Mira-la.

Les dues files que sí que solen moure la pèrdua són SwiGLU i RoPE. Apaga'n una de sola, entrena i mira la diferència; després apaga GQA i mira que la pèrdua no es mogui mentre la columna del cache es quadruplica.

Per què l'estabilitat no es veu aquí, i on es veuria

Un model de 25.760 paràmetres entrenat tres-cents passos amb un learning rate raonable no explota mai, sigui quina sigui la posició de la norma. El que fa perillós el post-norm és que la variància del flux creix amb la profunditat i el gradient ha de travessar una norma a cada bloc: amb dues capes això no és res, i amb vuitanta és la diferència entre poder entrenar sense warmup i no poder. Al widget de l'estabilitat d'aquí sota el problema sí que es pot provocar, pujant l'escala de la inicialització fins que la pèrdua se'n va a NaN.

La taula del text té onze files i aquí n'hi ha sis: les que es poden posar i treure sobre el mateix model. Decoder-only contra encoder-decoder ja el cobreix el widget de variants del fitxer 11; MoE té el fitxer 13 sencer; la precisió, el widget de formats de coma flotant del 07; i el context, el fitxer 14.

2. Grouped-Query Attention (GQA) i Multi-head Latent Attention (MLA)# sense fórmules

El problema: durant la generació, el KV-cache guarda les keys i values de tots els tokens anteriors. La seva mida és

mida=2⋅ncapes⋅nkv_heads⋅dh⋅L⋅bytes\text{mida} = 2 \cdot n_{capes} \cdot n_{kv\_heads} \cdot d_h \cdot L \cdot \text{bytes}

Amb MHA en un model de 70B (80 capes, 64 caps de 128) i 128k tokens de context, això són uns 340 GB per seqüència en fp16 — més del doble que els pesos, que en fan 140. Amb GQA i 8 caps de KV es queda en 43 GB. El KV-cache, no els pesos, és el que limita quantes converses concurrents pots servir.

Les solucions:

  • MQA (multi-query): un únic cap de K i V compartit per tots els caps de Q. Reducció màxima però pèrdua de qualitat.
  • GQA (grouped-query): GG grups de caps de Q comparteixen un cap de K/V. Amb 32 caps de Q i 8 de KV, redueixes el cache 4× amb pèrdua de qualitat negligible. És l'estàndard.
  • MLA (multi-head latent attention, DeepSeek): projecta K i V a un espai latent comprimit de baixa dimensió i el guarda al cache; es descomprimeix al vol. Redueix el cache encara més que GQA i, segons els resultats publicats, millora la qualitat del modelatge respecte a GQA.
MHA:  Q[32 caps]  K[32]  V[32]     cache = 100%
GQA:  Q[32 caps]  K[ 8]  V[ 8]     cache =  25%
MQA:  Q[32 caps]  K[ 1]  V[ 1]     cache =   3%
MLA:  Q[32 caps]  latent comprimit  cache ≈  5-10%, qualitat ≥ MHA

El KV-cache, explorable

Els pesos són una constant i el cache creix amb el context i amb les converses alhora. A partir de quin punt el cache mana, i quantes converses hi caben?

pesos
  • pesos del model
  • cache d’una seqüència
  • cache de vint converses

Les dues escales són logarítmiques. La línia dels pesos és plana perquè no depèn del context; les altres dues són rectes de pendent 1 perquè el cache és lineal. El cercle buit marca el creuament, i el punt ple, on ets ara.

Els quatre models, al context nominal de cadascun i amb el format que tens triat
Modelatenciócaps Q/KVesc./token·capapesoscache al seu contextràtio
GPT-2 XLmha25/253.2003 GB0,31 GB0,096
Llama 3 70Bgqa64/82.048141 GB42,95 GB0,304
Mixtral 8×7Bgqa32/82.04893 GB4,29 GB0,046
DeepSeek-V3mla128/latent5121.333 GB8,19 GB0,006

L'última columna és el cache d'una sola seqüència dividit pels pesos. A GPT-2, amb un context de 1024, és una engruna i ningú no en parlava; a Llama 3 70B a 128k ja és un terç dels pesos, i amb MHA hauria estat el triple dels pesos. La fila de DeepSeek-V3 és la que ensenya per què MLA existeix: amb 14.336 escalars per token i capa —que és el que li tocaria amb MHA— el cache seria impossible; amb 512, no ho és.

Dens amb GQA 8:1. És el model on es veu millor per què GQA s’ha imposat: amb MHA, el cache a 128k seria vuit vegades el que és, i el que ja és no és poc.

131 k

El nominal d'aquest model és 131 k.

Format del cache i dels pesos

El cache sol anar en el mateix format que els pesos o més baix; el bit compta igual a les dues bandes.

8 × H100 80 GB

En total, 640 GB.

pesos
141,1 GB
cache / seqüència
42,95 GB
cache / token
320,0 kB
creuament
430,6 k tok
a 640 GB
11 converses
GPUs per als pesos
1
Els escalars comptats sobre els arrays contra la fórmula: 0 de diferència

La fórmula 2 ncapes nkv dh L2\,n_{capes}\,n_{kv}\,d_h\,L és fàcil d'escriure i fàcil d'escriure malament: el 2 de K i V es perd, o s'hi posen els caps de Q. Aquí es contrasta amb el que ocupa de debò el cache d'una generació: es genera amb un mini-GPT de 3 capes i 4 caps, es recorren els arrays del cache i es compten els escalars que hi ha.

Varianttokenscomptats als arraysla fórmuladiferènciacontra MHA
MHA (4 caps de KV)101.9201.92001,00×
GQA 2:11096096002,00×
MQA (1 cap)1048048004,00×
MLA (latent de 8)1024024008,00×

Zero de diferència a les quatre files, i l'última columna diu el que el §2 promet: amb 2 caps de KV en comptes de 4 el cache és exactament 2× més petit, i amb un de sol, 4×. La fila de MLA no segueix la mateixa fórmula: guarda un vector de 8 per token i capa en comptes de dos de 8, i per això li surt el mateix que un MQA amb dh=8d_h = 8 tot i tenir quatre caps de Q sencers.

Amb 640 GB i un context de 131 k: 11 converses concurrents

El repartiment: 141,1 GB de pesos, que es paguen una vegada i es comparteixen entre totes les peticions, i 42,95 GB de cache per cada conversa oberta, que no es comparteixen amb ningú. Dels 640 GB en queden 499 lliures, i hi caben 11 converses.

Per a una sola seqüència, el cache iguala els pesos als 430,6 k tokens. Aquest número enganya si es llegeix sol: el que passa en un servidor de debò no és una seqüència llarga sinó moltes de mitjanes, i llavors el creuament arriba molt abans. Amb vint converses obertes alhora, el cache iguala els pesos ja als 21,5 k tokens de mitjana cadascuna, que és el règim on es treballa. Això és el que el text vol dir amb «el KV-cache, no els pesos, és el que limita quantes converses concurrents pots servir», i és per això que GQA i MLA valen tant.

El cache creix linealment amb el context i linealment amb les converses; els pesos no creixen gens. Això vol dir que qualsevol tècnica que faci més petit el cache —GQA, MLA, quantitzar-lo, o desar-ne només una finestra, que és el fitxer 14— es tradueix directament en més peticions per màquina. És la raó per la qual una idea que no millora cap benchmark pot ser la decisió d'enginyeria més rendible d'un model.

GQA, MQA i MLA: el bescanvi, mesurat pels dos costats

Els mateixos caps de Q amb 8, 2 i 1 caps de KV, i la variant latent. Quant cache estalvia cadascuna, i quanta qualitat costa?

  • MHA
  • GQA
  • MQA
  • MLA

Entrena per veure on cau cada variant.

Qui llegeix la K i la V de qui, amb 8 caps de Q

MHA
12345678
8 grups · 1× menys cache
GQA
11112222
2 grups · 4× menys cache
MQA
11111111
1 grup · 8× menys cache
MLA
cccccccc
un latent de 8 · 8,0× menys cache

El número de dins de cada quadre és el cap de K/V que aquell cap de Q llegeix. A MHA cadascú té el seu; a GQA quatre en comparteixen un; a MQA tots comparteixen l'únic que hi ha. A MLA no hi ha caps de K/V: hi ha un vector comprimit del qual tots descomprimeixen la seva K i la seva V, de manera que els caps continuen sent diferents però el que es guarda no.

Les quatre variants s'entrenen alhora, un pas de cadascuna per iteració, sobre el mateix text i amb la mateixa llavor: el vector de paràmetres inicial és el mateix fins allà on la forma ho permet, de manera que l'única diferència és l'atenció. Cada pas de les quatre costa uns 112 ms (estimats). Amb 100 passos les corbes ja se separen; amb 300 el veredicte és més fiable.

24 tokens

Es genera de debò i es compten els escalars que acaben als arrays del cache. La reducció no depèn de quants en generis: és la ràtio de caps.

5,00 ‰

El mateix per a les quatre variants, evidentment.

passos
0
MHA · pèrdua
—
GQA · pèrdua
—
MQA · pèrdua
—
MLA · pèrdua
—
cache GQA contra MHA
4×
(a) La reducció del cache és exactament la ràtio de caps, comptada sobre els arrays

No és la fórmula dividida per ella mateixa. Es genera amb cada variant fins a 24 tokens, es recorren els arrays del cache i es compten els escalars que hi ha. La ràtio ha de sortir un enter exacte, i surt.

Variantcaps KVesc./token·capaescalars al cachereduccióparàmetres
MHA8643.072—28.832
GQA2167684,00×25.760
MQA183848,00×25.248
MLA—83848,00×26.272

GQA amb 8 caps de Q i 2 de KV dona 4×, que és 8/28/2 i no una altra cosa. MQA dona 8×. I MLA en dona 8,0× sense tocar cap cap de Q: guarda un sol vector de 8 per token i capa en comptes de dos de 32, de manera que la seva reducció és 2d/dlatent2d/d_{latent} i no cap ràtio de caps. Aquesta és la diferència de fons entre les dues idees: GQA comparteix caps i MLA comprimeix.

L'última columna diu que la reducció de cache ve amb una reducció de paràmetres de regal —W_K i W_V es fan més petites— i això vol dir que a igualtat de paràmetres totals un model amb GQA pot ser una mica més ample o més profund. Als models reals s'aprofita així.

(b) La qualitat: encara no s’ha entrenat res

Prem un dels botons de dalt. La comprovació (a) ja està feta i no depèn d'entrenar; aquesta sí.

Les dues comprovacions responen preguntes diferents i totes dues fan falta. La primera és exacta i no depèn de res: la reducció del cache és una propietat de la forma. La segona és empírica, depèn de l'escala i del nombre de passos, i és per això que els papers de GQA la mesuren amb models de debò i no amb un argument. El que es pot afirmar sense matisos és el bescanvi: cache dividit per la ràtio de caps, qualitat que baixa una mica; on és «una mica» depèn de quants caps tinguis per repartir.

3. Detalls d'estabilitat que només importen a escala# sense fórmules

Quan entrenes models de centenars de milers de milions de paràmetres durant mesos, apareixen patologies que no veus en petit:

  • QK-norm: normalitzar Q i K abans del producte escalar evita que els logits d'atenció explotin. Adoptat per molts models recents.
  • z-loss: afegir λ(log⁡Z)2\lambda(\log Z)^2 a la pèrdua, on ZZ és el denominador de la softmax, evita que els logits derivin cap a magnituds enormes.
  • Logit soft-capping: logits=c⋅tanh⁡(logits/c)\text{logits} = c\cdot\tanh(\text{logits}/c) (Gemma 2) — limita els logits de manera suau.
  • Escalat de la inicialització residual per 1/2N1/\sqrt{2N}.
  • Sense biaixos: treure els biaixos de les capes lineals estalvia paràmetres i millora l'estabilitat; els models moderns no en tenen (excepte, en algunes famílies, al projector de Q/K/V).
  • Attention sinks: molts models dediquen un token inicial que rep una atenció enorme i actua com a "vàlvula d'escapament" de la softmax (que està obligada a sumar 1 encara que no hi hagi res rellevant a mirar). Alguns models moderns hi posen un paràmetre explícit per a això.

Fer explotar els logits, i les tres maneres d'acotar-los

QK-norm, z-loss i soft-capping només importen a escala. Provoca la patologia pujant la inicialització i mira quina magnitud acota cadascuna — i on se n'aniria en bf16.

La pèrdua

El màxim ∣logit∣|logit| d'atenció, pas a pas

√dₕ
  • sense res
  • QK-norm
  • z-loss
  • soft-cap

c⋅tanh⁡(x/c)c\cdot\tanh(x/c) amb cc = 5

A prop de l'origen la corba i la diagonal són indistingibles —derivada 1— i lluny, la corba s'aplana contra ±5 sense arribar-hi mai. Mou el sostre i mira com es mou la zona on no toca res.

sense res

La referència: el model tal qual, amb la inicialització inflada. És el que ha d’explotar.

QK-norm

Normalitza Q i K de cada cap abans del producte escalar. Ataca els logits d’atenció, que és on comença l’explosió.

z-loss

Suma λ(log Z)² a la pèrdua. Ataca la deriva dels logits de sortida, que l’entropia creuada tota sola no veu.

soft-capping

c·tanh(logits/c). Acota els logits de sortida per construcció, sense tocar res mentre són petits.

Les quatre variants s'entrenen alhora amb la mateixa inicialització inflada: sense protecció, amb QK-norm, amb z-loss i amb soft-capping. Cada pas de les quatre costa uns 112 ms (estimats). Amb l'escala d'inicialització per defecte la de «sense res» sol petar abans del pas 100.

5,0×

Multiplica la desviació de tots els pesos. A 1 és la normal i no passa res; a partir de 4 o 5 els logits ja se’n van.

0,02

L’altra palanca per fer-ho explotar: amb la inicialització a 1 i el lr molt amunt, també peta.

5

Els logits no poden passar d’aquest valor, per construcció. Gemma 2 hi posa 30 als de sortida i 50 als d’atenció; aquí el model és tan petit que amb 30 no tocaria mai res.

0,02

Els models reals hi posen 10⁻⁴. Aquí cal més perquè l’explosió és molt més violenta.

passos
0
sense res · màx |logit|
—
QK-norm · màx |logit|
—
z-loss · màx |logit|
—
soft-cap · màx |logit|
—
files d’atenció saturades
—
El soft-capping és exactament c·tanh(x/c): acotat per 5 i amb derivada 1,00000000 a l'origen

Aquesta comprovació no demana entrenar res: és una propietat de la funció. Les dues coses que la fan útil i que es poden llegir al gràfic de la dreta:

logit d'entradac·tanh(x/c)diferència amb x
0,1000,09999-1,33·10⁻⁵
1,0000,98688-0,013
2,5002,31059-0,189
5,0003,80797-1,192
15,0004,97527-10,025
1,00·10⁶5,00000-999.995,000

Acotat per construcció: amb un logit d'un milió la sortida continua sent 5,000000, que és 5 i no pot ser cap altra cosa, perquè ∣tanh⁡∣<1|\tanh| < 1 sempre. I no toca res mentre són petits: la derivada a l'origen és 1,00000000 i la diferència amb la identitat a x=0,1x = 0{,}1 és -1,33·10⁻⁵. Les dues propietats juntes són el que el fa diferent d'un retall dur: un min⁡(x,c)\min(x, c) també acotaria, però tindria derivada zero a partir de cc i mataria el gradient de les classes més probables, que són precisament les que importen.

Encara no s’ha provocat res: prem un dels botons de dalt

Prem un dels botons. El que fa que aquesta secció existeixi és que a escala petita aquestes tres tècniques no serveixen de res, i l'única manera honesta d'ensenyar-les és fabricar la patologia que a escala gran apareix sola.

Hi ha una quarta tècnica al text que aquí no és un interruptor perquè ja hi és sempre: l'escalat de la inicialització residual per 1/√(2N). Les projeccions que escriuen al flux residual —W_O i W_down— es divideixen per l'arrel de dues vegades el nombre de capes, i sense això la variància del flux creixeria amb la profunditat. Puja les capes al mini-GPT del fitxer 11 i mira que la norma del flux residual no exploti: és aquell divisor.

4. Paràmetres i formes típiques# sense fórmules

Una família contemporània "densa" sol seguir aquest patró:

Midaddcapescaps Q / KVdffd_{ff}Context
~1-3B204816-2816 / 4~8192128k
~8B40963232 / 814336128k+
~70B81928064 / 828672128k+
MoE gran716860+— / MLAexperts128k–1M

Hi circula una regla mnemotècnica, amplada ≈\approx 100× arrel de la profunditat, però amb els models de la taula la constant que hi quadra va de ~440 a ~920: la regla literal s'equivoca en un factor de 4 a 9. El que sí que es manté és la tendència: els models s'escalen més en amplada que en profunditat, perquè l'amplada paral·lelitza millor.

Formes: per què s'escala més en amplada

La regla diu «amplada ≈ 100 × arrel de la profunditat». Quant s'hi acosta de debò, i què li passa al cost quan mous la forma a igualtat de paràmetres?

La regla, sobre les quatre famílies

~1-3B~8B~70BMoE gran

Les dues escales són logarítmiques, de manera que una llei de potència és una recta. La de l'exponent ½ té pendent 0,5; si les quatre famílies hi caiguessin exactament, la regla seria una llei i no una regla.

Repartiment del cost a igualtat de 70,0 G paràmetres

  • fracció d'atenció a L = 8 k

A paràmetres constants, pujar l'amplada baixa les capes i baixa la fracció d'atenció. La corba només té sentit on hi caben entre 1 i 400 capes; per això no arriba a les dues vores.

La taula del §4, amb el que se'n deriva
Midadcapescaps Q/KVd_ffd_ff/dparàmetrescreuament L=2d
~1-3B2.04816–2816 / 48.1924,001,9 G4 k
~8B4.0963232 / 814.3363,508,0 G8 k
~70B8.1928064 / 828.6723,5070,5 G16 k
MoE gran7.16860–61128 / MLA18.4322,5738,5 G14 k

La columna dff/dd_{ff}/d val la pena mirar-la: el text diu dff≈4dd_{ff} \approx 4d per a l'FFN clàssica i 8d/3≈2,67d8d/3 \approx 2{,}67d per a SwiGLU, i les quatre files reals es mouen entre 2,57 i 4,00. No hi ha una constant sagrada: hi ha una franja, i dins de la franja cada família tria el número que li fa quadrar les matrius amb el seu repartiment entre GPUs. Clica una fila per posar aquella amplada als controls. Els paràmetres calculats de la fila del MoE són només els de la part densa: els experts els compta el fitxer 13.

Com s'ajusta la regla

Ajust per mínims quadrats sobre log d contra log n. Ara: d ≈ 718,0 · n^0,500.

70,0 G

Tot el que hi ha sota es fa a igualtat d’aquest número: si puges l’amplada, baixen les capes.

8.192

Amb aquest pressupost i aquesta amplada surten 98,7 capes.

8 k

El repartiment del cost depèn d’això: amb L petit manen les projeccions, i a partir de L ≈ 2d, l’atenció.

Proporció de GQA

Canvia quants paràmetres se’n porta l’atenció, i per tant quantes capes caben al mateix pressupost.

amplada
8.192
capes
98,7
paràmetres
70,00 G
cost d’atenció
14,3 %
creuament L = 2d
16 k
passos seqüencials
99
La regla contra les quatre files: el pitjor error és 64 %

La regla del text és «amplada ≈\approx 100 × arrel de la profunditat». Val la pena ajustar-la de debò en comptes de creure-la: aquí s'ajusta log⁡d=log⁡a+blog⁡n\log d = \log a + b\log n per mínims quadrats sobre les quatre files de la taula, i s'ensenya l'error de cada fila.

Famíliacapesamplada reall'ajusterror100·√nerror
~1-3B222.0483.36864,4 %469-77,1 %
~8B324.0964.062-0,8 %566-86,2 %
~70B808.1926.422-21,6 %894-89,1 %
MoE gran617.1685.608-21,8 %781-89,1 %

Amb l'exponent fixat a ½ i la constant ajustada surt d≈718 nd \approx 718\,\sqrt{n}, i el pitjor error de les quatre files és el 64 %. La constant literal de 100 dona un error de fins al 89 %: amb aquesta constant, la regla no encerta ni l'ordre de magnitud. El que sí que s'aguanta és la forma, l'arrel, amb una constant que s'ha de triar a partir de les dades. Prova de deixar que les dades triïn l'exponent i mira que en surt 1,04 en comptes de 0,5 — a prop, però amb quatre punts no es pot afirmar gran cosa, i menys quan tres dels quatre són de la mateixa família.

Per què s'escala més en amplada: les dues meitats de la resposta

La primera és el maquinari. Les 99 capes s'han de fer l'una darrere l'altra: el bloc l+1l+1 necessita la sortida del bloc ll, i cap GPU no pot canviar això. L'amplada, en canvi, és un producte de matrius: es parteix entre targetes —tensor parallelism— i es fa alhora. Doblar l'amplada i dividir les capes per quatre deixa el mateix nombre de paràmetres i quatre vegades menys passos seqüencials, que és temps de rellotge tant a l'entrenament com a la inferència. El fitxer 17 en diu el preu: l'amplada es reparteix a canvi de comunicació a cada capa.

La segona és el cost d'atenció. Per token, les projeccions costen O(d2)O(d^2) per capa i l'atenció, O(Ld)O(Ld). A igualtat de paràmetres, pujar l'amplada fa baixar les capes com 1/d21/d^2, de manera que el cost de les projeccions es queda igual —és el que el pressupost fixa— però el de l'atenció baixa, perquè hi ha menys capes i cadascuna fa la seva matriu L×LL\times L. Amb L=8192L = 8192 i la forma que tens ara, l'atenció se'n porta el 14,3 % dels FLOPs; mou l'amplada i mira com es mou aquesta corba. A la pràctica les dues raons apunten al mateix costat, i per això els models s'han anat fent amples i no profunds.

El límit hi és igualment: amb el pressupost repartit en amplada i poques capes, el model perd profunditat de càlcul —passos de raonament encadenats— i això no es compra amb amplada. Per això les formes reals es queden en una franja estreta i no a cap dels dos extrems, i per això la regla existeix.

El punt de creuament L = 2d del fitxer 11 continua valent aquí, i és el que separa els dos règims: per sota, el que domina són les projeccions i el model es comporta com un MLP gegant; per sobre, domina l'atenció i el context es paga car. Amb d = 8192 el creuament és als 16.384 tokens, que és per sota del context nominal de qualsevol model modern: a 128k, l'atenció ja mana. És el que fa que el fitxer 14 existeixi.

5. Estat de l'art (setembre 2026) — llegir amb data de caducitat# sense fórmules

Aquesta secció envelleix ràpid; els conceptes de dalt no.

  • El panorama de frontera està repartit entre famílies propietàries (Claude Opus, GPT-5.x, Gemini 3.x, Grok 4.x) i models de pesos oberts molt competitius (DeepSeek, Qwen, Kimi, Llama, Mistral, GLM), amb la distància entre tancats i oberts oscil·lant entre 6 i 12 mesos segons la capacitat mesurada.
  • MoE s'ha imposat a l'escala alta: els models de frontera tenen centenars de milers de milions —o bilions— de paràmetres totals amb només desenes de milers de milions actius per token.
  • Multimodalitat nativa: els models nous ja no són "un LLM amb un adaptador de visió", sinó un tronc únic entrenat des del principi amb text, imatge, àudio i vídeo.
  • Raonament com a mode: gairebé totes les famílies ofereixen un mode de "pensament" amb pressupost de càlcul configurable en temps d'inferència.
  • Context: 128k és la base; 1M+ és habitual als models de context llarg, amb la reserva que la qualitat efectiva és molt inferior a la nominal.
  • Híbrids atenció+SSM (estil Mamba) ja són en producció en alguns models (Jamba, Granite 4, alguns models xinesos de gran escala), sobretot per a context llarg barat.

Llegir una comparativa de models

La taula diu que A guanya B per dos punts. Posa-hi les barres d'error i mira si l'ordre sobreviu — i després mira la data i el pressupost de raonament.

Com t'ho ensenyen
Model A73,6 %Model B71,2 %

Així és com t'ho ensenyen. Dos punts, un ordre i un guanyador. No hi ha cap manera de saber, mirant això, si la diferència és real: falta la mida del benchmark, falta la barra, falta saber si tots dos han pensat el mateix i falta saber si el benchmark encara discrimina. Marca l'interruptor de dalt.

Intervals de Wilson al 95 %, calculats amb la funció del fitxer 03. Sense això, la taula només té punts centrals.

250 preguntes

La barra encongeix com 1/√n. La majoria de benchmarks públics tenen entre 200 i 1.000 preguntes.

+2,4 punts

Mou-lo fins que les barres deixin de solapar-se i mira quants punts calen.

El segon punt de l'avís: una puntuació amb 8k tokens de pensament i una amb 1k no són la mateixa mesura.

100 %

Cap benchmark no arriba al 100 %: hi ha preguntes mal etiquetades o ambigües. El quart punt de l'avís.

A
73,6 %
B
71,2 %
diferència
+2,4 punts
interval de A
67,8 % – 78,7 %
se solapen?
sí
marge fins al sostre
26,4
Amb 250 preguntes, els intervals se solapen: l'ordre de la taula no està establert

Els punts centrals diuen que A treu 2,4 punts a B. Els intervals de Wilson al 95 % diuen que A és entre 67,8 % i 78,7 % i B, entre 65,3 % i 76,5 %. Amb aquesta mida de benchmark, qualsevol dels dos podria ser el millor.

Modelencertspuntuacióinterval 95 %ampladadataraonament
Model A184/25073,6 %67,8 % – 78,7 %±5,4agost 20261.024 tok
Model B178/25071,2 %65,3 % – 76,5 %±5,6febrer 20261.024 tok

L'amplada de l'interval va com 1/n1/\sqrt{n}: per partir-la per dos calen quatre vegades més preguntes. Amb 250 preguntes la barra és de ±5,4 punts, de manera que qualsevol diferència més petita que això no vol dir res. Puja la mida del benchmark i mira quantes preguntes calen perquè 2,4 punts deixin de ser soroll.

Però el test aparellat sí que hi veu diferència: p = 0,3105

Comparar dos intervals de confiança és el criteri conservador, i no és el que caldria fer. Els dos models responen les mateixes preguntes, i les preguntes on tots dos encerten o tots dos fallen no diuen res sobre quin és millor. El que compta són les discordants: aquí n'hi ha 21 on només encerta A i 14 on només encerta B, i el test de McNemar del fitxer 03 en treu pp = 0,3105.

És la mateixa funció, mcnemar, i el mateix argument: amb dades aparellades el senyal viu a les discordants i no a la diferència de totals. Per això la lectura correcta d'una comparativa no és «les barres se solapen, doncs empat» sinó «no publiquen ni barres ni test aparellat, doncs no sé què em diuen».

Els altres tres punts de l'avís
  • La data. A és d'agost de 2026 i B, de febrer. Sis mesos de distància en aquest camp són una generació: una comparativa on el teu model és el nou i el rival és el de fa mig any no mesura arquitectures, mesura calendaris. La primera cosa a mirar de qualsevol taula és si totes les files són contemporànies.
  • El pressupost de raonament. Ara tots dos fan servir 1.024 tokens de pensament, que és com ha de ser. Marca l'interruptor i mira què passa a la columna quan un dels dos en té vuit vegades més.
  • La saturació. Amb el sostre real a 100 %, al millor model li queden 26,4 punts de marge. Encara hi ha marge, de manera que les diferències poden voler dir alguna cosa. Baixa el sostre i mira què passa quan el millor model és a tocar del sostre. I a la saturació s'hi afegeix la contaminació, que no es pot mesurar des de fora: si les preguntes han acabat al corpus d'entrenament, la puntuació mesura memòria i no capacitat. El fitxer 25 hi torna amb el detall.
El §5 del text és la secció amb data de caducitat del fitxer i ell mateix ho diu. Aquest widget és la vacuna: el que envelleix són els noms i les xifres, i el que no envelleix és que dos punts de diferència sobre 250 preguntes no són dos punts de diferència. La regla pràctica: si una taula no porta ni barres d'error ni el nombre de preguntes, no és una mesura, és un anunci.

6. Com llegir un model card o un technical report# sense fórmules

Ordre recomanat de lectura, i què buscar-hi:

  1. Arquitectura: dense o MoE? paràmetres totals i actius? tipus d'atenció? context?
  2. Dades: volum de tokens, mescla (web/codi/matemàtiques/multilingüe/sintètiques), filtratge, deduplicació, punt de tall.
  3. Entrenament: hardware, precisió, optimitzador, schedule, nombre d'èpoques, mid-training (fases de dades de més qualitat al final).
  4. Postentrenament: SFT, tipus de RL, models de recompensa, dades de preferència.
  5. Avaluacions: quines, amb quin prompt, quantes mostres, contra quins competidors (i quins han omès).
  6. Seguretat: red teaming, avaluacions de capacitats perilloses, política d'escalat.

Llegir un model card

Un model card diu la forma i no diu la factura. Extreu-ne paràmetres actius, KV-cache per seqüència i memòria mínima, i contrasta-ho amb el que anuncia.

DeepSeek-V3 · publicat el 2024

MoE · MLA
amplada d
7.168
capes
61
caps Q / KV
128 / latent 512
d_h
56
d_ff
18.432
vocabulari
129 k
context
131 k
experts
256 · top-8 · 1 compartit

Els «37B actius de 671B totals» del text, i les dues coses alhora: MoE de granularitat fina amb un expert compartit, i MLA en comptes de GQA. El cache per token és el latent de 512, que amb 128 caps de 128 dimensions seria impensable amb MHA.

On van els 666,6 B de DeepSeek-V3

Embeddings (entrada + sortida)
1,9 G0 %
Atenció, 61 capes
6,9 G1 %
FFN de les capes denses
1,2 G0 %
Experts de les capes MoE
656,6 G99 %
…dels quals s'activen
23,1 G3 %

L'ordre de lectura del §6

  1. 1Arquitectura. dens o MoE? paràmetres totals i actius? tipus d’atenció? context?
  2. 2Dades. volum de tokens, mescla, filtratge, deduplicació, punt de tall.
  3. 3Entrenament. hardware, precisió, optimitzador, schedule, èpoques, mid-training.
  4. 4Postentrenament. SFT, tipus de RL, models de recompensa, dades de preferència.
  5. 5Avaluacions. quines, amb quin prompt, quantes mostres, contra qui — i qui han omès.
  6. 6Seguretat. red teaming, capacitats perilloses, política d’escalat.

El punt 1 és l'únic que aquest widget pot calcular, perquè és l'únic que es dedueix de la forma. Els altres cinc s'han de llegir, i la raó per la qual l'ordre importa és que el punt 1 decideix si els altres cinc et serveixen d'alguna cosa: un model que necessita 17 targetes només per als pesos no entrarà mai al teu portàtil, per bo que sigui a les avaluacions del punt 5.

Els «37B actius de 671B totals» del text, i les dues coses alhora: MoE de granularitat fina amb un expert compartit, i MLA en comptes de GQA. El cache per token és el latent de 512, que amb 128 caps de 128 dimensions seria impensable amb MHA.

33 k

El nominal d'aquesta fitxa és 131 k.

Precisió dels pesos

És la primera cosa que canvia la factura, i la que els model cards sovint donen per sabuda.

totals (calculats)
666,6 B
actius (calculats)
33,1 B
cache / seqüència
2,05 GB
memòria mínima
1.335,2 GB
GPUs de 80 GB
17
sostre de decode
51 tok/s
El recompte fet de les formes contra el que la fitxa anuncia: el pitjor error de les quatre és 10,6 %

Aquí no hi ha cap recompte de paràmetres escrit a mà. El que es veu al readout surt de la forma —amplada, capes, caps, amplada de l'FFN, vocabulari, experts— i la xifra anunciada hi és al costat per contrastar-la. Que les dues s'acostin és el que dona dret a fer el càlcul al revés quan una fitxa no publica el recompte, que és el cas habitual.

Modeltotals (forma)anunciatserroractius (forma)anunciatserror
GPT-2 XL1,61,64,8 %1,61,64,8 %
Llama 3 70B70,670,6-0,1 %70,670,6-0,1 %
Mixtral 8×7B46,746,70,0 %12,912,9-0,2 %
DeepSeek-V3666,6671,0-0,7 %33,137,0-10,6 %

A DeepSeek-V3 el càlcul dona 666,6 B totals contra els 671,0 anunciats (-0,7 %) i 33,1 B actius contra 37,0 (-10,6 %). El que queda de diferència són les peces que la forma no diu: les γ\gamma de les normes, si els embeddings estan lligats, i als models de frontera les capçaleres de predicció múltiple i les capes denses de més que alguns posen al principi.

Les tres xifres que el model card no et diu i que has de treure tu
Paràmetres actius
router + (8 triats + 1 compartits) × 3·d·d_expert, per les 58 capes MoE, més tota la part densa
33,1 B
KV-cache per seqüència
61 capes × 512 (el latent) × 33 k tokens × 2 bytes
2,05 GB
Memòria mínima per servir-lo
666,6 B × 2 bytes de pesos —tots, també els experts que no s'activin— més un cache
1.335,2 GB
I la conseqüència
amb H100 80 GB de 80 GB
17 targetes

Aquesta fitxa és la que fa visible la trampa: 33 B actius volen dir que el cost de còmput és el d'un model de 33 B, però la factura de memòria és la de 667 B, perquè cada expert ha de ser llegible encara que aquest token no hi passi. Són 17 targetes només per als pesos, i el sostre de decodificació el marquen els actius: 51 tokens per segon, que és el que una sola H100 80 GB pot llegir dels 66,2 GB de pesos actius cada segon.

L'ordre de lectura del §6 no és arbitrari: comença per l'arquitectura perquè és el que decideix si el model et serveix per al que vols —si no et cap, la resta no importa— i acaba per la seguretat perquè és el que no es pot deduir de cap altra secció. El punt cinc és el que més enganya: mira contra qui l'han comparat, i sobretot contra qui no.

7. Comprova que ho has entès#

0 de 5 resoltes

  1. Per què el KV-cache, i no els pesos, sol ser el coll d'ampolla de serving?
  2. Explica GQA i calcula la reducció del KV-cache d'un model amb 64 caps de Q i 8 de KV.
    vegades més petitMarge acceptat: 2 %
  3. Quin problema resol QK-norm, i per què no el resol una z-loss?
  4. Per què els LLMs moderns no tenen biaixos a les capes lineals? Apaga'ls al diff executat i mira què passa a les tres columnes.

    Objectiu:Al diff executat, posa el teu model amb biaixos —desmarca l'interruptor «Biaixos»— i entrena'l.

    Vés al widget ↑sensebiaix = per defecte · rmsnorm = per defecte
  5. Què vol dir «37B actius de 671B totals» i què implica per a memòria i per a FLOPs?

8. Recursos#

Marca els que hagis llegit
  • Sebastian Raschka, The Big LLM Architecture Comparison — comparativa visual actualitzada dels models recents.

  • DeepSeek-V3 i DeepSeek-V2 Technical Reports (MLA, MoE, FP8).

  • Llama 3 Herd of Models (Meta) — el report més detallat sobre dades i infraestructura.

  • Ainslie et al. (2023), GQA: Training Generalized Multi-Query Transformer Models.

  • Xiao et al. (2023), Efficient Streaming Language Models with Attention Sinks.