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
| Component | Transformer 2017 | LLM 2026 | Motiu |
|---|---|---|---|
| Estructura | encoder-decoder | decoder-only | simplicitat, escalabilitat |
| Posició de la norm | post-norm | pre-norm (+ sandwich en alguns) | estabilitat d'entrenament |
| Normalització | LayerNorm | RMSNorm | més ràpida, igual de bona |
| Activació FFN | ReLU | SwiGLU | millor pèrdua a igualtat de paràmetres |
| Posició | sinusoïdal absoluta | RoPE (+ scaling) | relativa, extrapolable |
| Atenció | MHA | GQA o MLA | KV-cache molt més petit |
| Biaixos | sí | no (excepte alguns) | inútils, resten estabilitat |
| Capes FFN | denses | denses o MoE | capacitat sense cost d'inferència |
| Estabilitat extra | — | QK-norm, z-loss, logit soft-capping | evitar explosions a escala |
| Precisió | fp32 | bf16 / fp8 | velocitat i memòria |
| Context | 512 | 128k – 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?
- el de 2017
- el teu
- el de 2026
| Component | 2017 | 2026 | Motiu | Δ paràmetres | Δ cache |
|---|---|---|---|---|---|
| Posició de la norm | post-norm | pre-norm | estabilitat | — | — |
| Normalització | LayerNorm | RMSNorm | velocitat | +160 | — |
| Activació FFN | ReLU | SwiGLU | qualitat | — | — |
| Posició | sinusoïdal | RoPE | qualitat | — | — |
| Atenció | MHA | GQA 4:1 | memòria | +3.072 | +96 |
| Biaixos | sí | no | estabilitat | +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 , 2 capes i context 32 cada pas de les tres costa uns 84 ms (estimats). Pots aturar-ho quan vulguis sense perdre res.
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.
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.
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.
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
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): 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 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.
| Model | atenció | caps Q/KV | esc./token·capa | pesos | cache al seu context | ràtio |
|---|---|---|---|---|---|---|
| GPT-2 XL | mha | 25/25 | 3.200 | 3 GB | 0,31 GB | 0,096 |
| Llama 3 70B | gqa | 64/8 | 2.048 | 141 GB | 42,95 GB | 0,304 |
| Mixtral 8×7B | gqa | 32/8 | 2.048 | 93 GB | 4,29 GB | 0,046 |
| DeepSeek-V3 | mla | 128/latent | 512 | 1.333 GB | 8,19 GB | 0,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.
El nominal d'aquest model és 131 k.
El cache sol anar en el mateix format que els pesos o més baix; el bit compta igual a les dues bandes.
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
La fórmula é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.
| Variant | tokens | comptats als arrays | la fórmula | diferència | contra MHA |
|---|---|---|---|---|---|
| MHA (4 caps de KV) | 10 | 1.920 | 1.920 | 0 | 1,00× |
| GQA 2:1 | 10 | 960 | 960 | 0 | 2,00× |
| MQA (1 cap) | 10 | 480 | 480 | 0 | 4,00× |
| MLA (latent de 8) | 10 | 240 | 240 | 0 | 8,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 tot i tenir quatre caps de Q sencers.
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.
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
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.
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.
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×
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.
| Variant | caps KV | esc./token·capa | escalars al cache | reducció | paràmetres |
|---|---|---|---|---|---|
| MHA | 8 | 64 | 3.072 | — | 28.832 |
| GQA | 2 | 16 | 768 | 4,00× | 25.760 |
| MQA | 1 | 8 | 384 | 8,00× | 25.248 |
| MLA | — | 8 | 384 | 8,00× | 26.272 |
GQA amb 8 caps de Q i 2 de KV dona 4×, que és 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 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í.
Prem un dels botons de dalt. La comprovació (a) ja està feta i no depèn d'entrenar; aquesta sí.
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 a la pèrdua, on és el denominador de la softmax, evita que els logits derivin cap a magnituds enormes.
- Logit soft-capping: (Gemma 2) — limita els logits de manera suau.
- Escalat de la inicialització residual per .
- 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 d'atenció, pas a pas
- sense res
- QK-norm
- z-loss
- soft-cap
amb = 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.
La referència: el model tal qual, amb la inicialització inflada. És el que ha d’explotar.
Normalitza Q i K de cada cap abans del producte escalar. Ataca els logits d’atenció, que és on comença l’explosió.
Suma λ(log Z)² a la pèrdua. Ataca la deriva dels logits de sortida, que l’entropia creuada tota sola no veu.
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.
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.
L’altra palanca per fer-ho explotar: amb la inicialització a 1 i el lr molt amunt, també peta.
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.
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
- —
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'entrada | c·tanh(x/c) | diferència amb x |
|---|---|---|
| 0,100 | 0,09999 | -1,33·10⁻⁵ |
| 1,000 | 0,98688 | -0,013 |
| 2,500 | 2,31059 | -0,189 |
| 5,000 | 3,80797 | -1,192 |
| 15,000 | 4,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è 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 és -1,33·10⁻⁵. Les dues propietats juntes són el que el fa diferent d'un retall dur: un també acotaria, però tindria derivada zero a partir de i mataria el gradient de les classes més probables, que són precisament les que importen.
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.
4. Paràmetres i formes típiques# sense fórmules
Una família contemporània "densa" sol seguir aquest patró:
| Mida | capes | caps Q / KV | Context | ||
|---|---|---|---|---|---|
| ~1-3B | 2048 | 16-28 | 16 / 4 | ~8192 | 128k |
| ~8B | 4096 | 32 | 32 / 8 | 14336 | 128k+ |
| ~70B | 8192 | 80 | 64 / 8 | 28672 | 128k+ |
| MoE gran | 7168 | 60+ | — / MLA | experts | 128k–1M |
Hi circula una regla mnemotècnica, amplada 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
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.
| Mida | d | capes | caps Q/KV | d_ff | d_ff/d | paràmetres | creuament L=2d |
|---|---|---|---|---|---|---|---|
| ~1-3B | 2.048 | 16–28 | 16 / 4 | 8.192 | 4,00 | 1,9 G | 4 k |
| ~8B | 4.096 | 32 | 32 / 8 | 14.336 | 3,50 | 8,0 G | 8 k |
| ~70B | 8.192 | 80 | 64 / 8 | 28.672 | 3,50 | 70,5 G | 16 k |
| MoE gran | 7.168 | 60–61 | 128 / MLA | 18.432 | 2,57 | 38,5 G | 14 k |
La columna val la pena mirar-la: el text diu per a l'FFN clàssica i 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.
Ajust per mínims quadrats sobre log d contra log n. Ara: d ≈ 718,0 · n^0,500.
Tot el que hi ha sota es fa a igualtat d’aquest número: si puges l’amplada, baixen les capes.
Amb aquest pressupost i aquesta amplada surten 98,7 capes.
El repartiment del cost depèn d’això: amb L petit manen les projeccions, i a partir de L ≈ 2d, l’atenció.
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 del text és «amplada 100 × arrel de la profunditat». Val la pena ajustar-la de debò en comptes de creure-la: aquí s'ajusta per mínims quadrats sobre les quatre files de la taula, i s'ensenya l'error de cada fila.
| Família | capes | amplada real | l'ajust | error | 100·√n | error |
|---|---|---|---|---|---|---|
| ~1-3B | 22 | 2.048 | 3.368 | 64,4 % | 469 | -77,1 % |
| ~8B | 32 | 4.096 | 4.062 | -0,8 % | 566 | -86,2 % |
| ~70B | 80 | 8.192 | 6.422 | -21,6 % | 894 | -89,1 % |
| MoE gran | 61 | 7.168 | 5.608 | -21,8 % | 781 | -89,1 % |
Amb l'exponent fixat a ½ i la constant ajustada surt , 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.
La primera és el maquinari. Les 99 capes s'han de fer l'una darrere l'altra: el bloc necessita la sortida del bloc , 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 per capa i l'atenció, . A igualtat de paràmetres, pujar l'amplada fa baixar les capes com , 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 . Amb 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.
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.
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.
La barra encongeix com 1/√n. La majoria de benchmarks públics tenen entre 200 i 1.000 preguntes.
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.
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
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.
| Model | encerts | puntuació | interval 95 % | amplada | data | raonament |
|---|---|---|---|---|---|---|
| Model A | 184/250 | 73,6 % | 67,8 % – 78,7 % | ±5,4 | agost 2026 | 1.024 tok |
| Model B | 178/250 | 71,2 % | 65,3 % – 76,5 % | ±5,6 | febrer 2026 | 1.024 tok |
L'amplada de l'interval va com : 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.
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 = 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».
- 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.
6. Com llegir un model card o un technical report# sense fórmules
Ordre recomanat de lectura, i què buscar-hi:
- Arquitectura: dense o MoE? paràmetres totals i actius? tipus d'atenció? context?
- Dades: volum de tokens, mescla (web/codi/matemàtiques/multilingüe/sintètiques), filtratge, deduplicació, punt de tall.
- Entrenament: hardware, precisió, optimitzador, schedule, nombre d'èpoques, mid-training (fases de dades de més qualitat al final).
- Postentrenament: SFT, tipus de RL, models de recompensa, dades de preferència.
- Avaluacions: quines, amb quin prompt, quantes mostres, contra quins competidors (i quins han omès).
- 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
L'ordre de lectura del §6
- 1Arquitectura. dens o MoE? paràmetres totals i actius? tipus d’atenció? context?
- 2Dades. volum de tokens, mescla, filtratge, deduplicació, punt de tall.
- 3Entrenament. hardware, precisió, optimitzador, schedule, èpoques, mid-training.
- 4Postentrenament. SFT, tipus de RL, models de recompensa, dades de preferència.
- 5Avaluacions. quines, amb quin prompt, quantes mostres, contra qui — i qui han omès.
- 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.
El nominal d'aquesta fitxa és 131 k.
É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
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.
| Model | totals (forma) | anunciats | error | actius (forma) | anunciats | error |
|---|---|---|---|---|---|---|
| GPT-2 XL | 1,6 | 1,6 | 4,8 % | 1,6 | 1,6 | 4,8 % |
| Llama 3 70B | 70,6 | 70,6 | -0,1 % | 70,6 | 70,6 | -0,1 % |
| Mixtral 8×7B | 46,7 | 46,7 | 0,0 % | 12,9 | 12,9 | -0,2 % |
| DeepSeek-V3 | 666,6 | 671,0 | -0,7 % | 33,1 | 37,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 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.
| 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.
7. Comprova que ho has entès#
0 de 5 resoltes
- Per què el KV-cache, i no els pesos, sol ser el coll d'ampolla de serving?
- 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 %
- Quin problema resol QK-norm, i per què no el resol una z-loss?
- 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 - Què vol dir «37B actius de 671B totals» i què implica per a memòria i per a FLOPs?
8. Recursos#
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.