# Precision i transformermodell: FP32 FP16 BF16 och INT8 förklarade

*12 november 2026*

> Vad betyder precision FP32, FP16, BF16 och INT8 för en transformermodell? Lär dig hur precisionen påverkar minne, lagring och prestanda — och hur du räknar det själv.

# Precision i transformermodell: FP32 FP16 BF16 och INT8 förklarade

När du räknar ut hur stor en transformermodell är, handlar det inte bara om hur många parametrar den har. Det handlar också om precisionen — hur många bitar som används för att lagra varje parameter. Precisionen avgör direkt hur mycket minne modellen kräver, både när den tränas och när den används. Den här artikeln går igenom vad FP32, FP16, BF16 och INT8 betyder, hur du räknar ut minnesbehovet för varje precision, och när vilket val passar.

## Vad precision betyder för en parameter

Varje parameter i en transformermodell — en vikt i ett lager, en bias eller en inbäddning — är ett tal. Precisionen bestämmer hur exakt det talet kan vara, och hur mycket plats det tar i minnet.

- **FP32** (32-bit floating point): 4 byte per parameter. Full precision, standard vid träning.
- **FP16** (16-bit floating point): 2 byte per parameter. Halv precision, vanligt vid inferens.
- **BF16** (bfloat 16): 2 byte per parameter. Samma exponent som FP32, bättre för träning med lägre precision.
- **INT8** (8-bit integer): 1 byte per parameter. Kvantiserad, minst minne, störst förlust av precision.

Ju lägre precision, desto mindre minne tar varje parameter — och desto mer exakthet förloras.

## Så räknar du minnesbehovet

Formeln är enkel:

minne = antal parametrar × byte per parameter

En modell med 100 miljoner parametrar tar ungefär:

- FP32: 100 000 000 × 4 = 400 MB för vikterna
- FP16 eller BF16: 100 000 000 × 2 = 200 MB för vikterna
- INT8: 100 000 000 × 1 = 100 MB för vikterna

Denna beräkning räknar bara med modellens vikter. Under träning behövs också minne för gradienter och optimeringstillstånd, vilket ofta dubblar eller tredubblar det totala behovet. Vid ren inferens räcker det oftast att ha vikterna i minnet.

Om du vill börja från grunden och räkna ut hur många parametrar modellen har totalt, finns det i vår guide om [parametrar i en transformermodell](/artiklar/parametrar-transformermodell). För att gå från parametrar till faktiskt VRAM-behov på ett grafikkort, se vår artikel om [minnesbehov för transformermodell](/artiklar/minnesbehov-transformermodell).

## Skillnaden mellan FP16 och BF16

Både FP16 och BF16 använder 16 bitar, alltså 2 byte per parameter, men de är inte helt utbytbara.

FP16 har ett mindre omfång än FP32 och kan ge över- eller underflöde vid träning om talen blir för stora eller för små. Därför behöver FP16 ofta särskilda tekniker, som förlustskalning, för att träningen ska bli stabil.

BF16 behåller FP32:s exponent, vilket ger ett lika stort omfång, men med färre decimaler i bråkdelen. Det gör BF16 mer stabilt att träna med än FP16, samtidigt som det tar halva platsen jämfört med FP32. För ren inferens, där modellen redan är tränad, fungerar både FP16 och BF16 bra.

## INT8 och kvantisering

INT8 lagrar varje parameter som ett heltal med 8 bitar, alltså 1 byte. Det halverar minnesbehovet igen jämfört med FP16 och BF16, och modellen blir vanligtvis snabbare att köra på hårdvara som har stöd för kvantiserad beräkning.

Priset är att exaktheten försämras. Varje parameter avrundas till närmsta heltalsvärde, vilket kan påverka modellens resultat, särskilt om modellen är känslig för små förändringar i vikterna. Kvantisering till INT8 fungerar bäst efter att modellen är färdtränad, inte under träningen.

## Exempel: samma modell vid olika precision

För att göra skillnaden konkret, här är hur minnesbehovet ser ut för tre olika modellstorlekar:

| Modell | Parametrar | FP32 (4 byte) | FP16/BF16 (2 byte) | INT8 (1 byte) |
|--------|------------|---------------|--------------------|---------------|
| Liten | 10 miljoner | 40 MB | 20 MB | 10 MB |
| Medel | 100 miljoner | 400 MB | 200 MB | 100 MB |
| Stor | 1 miljard | 4 GB | 2 GB | 1 GB |

Tabellen visar bara vikterna. Lägg till gradienter och optimeringstillstånd vid träning, så växer siffrorna.

## Välj precision efter användningsområde

Vilken precision du ska välja beror på vad modellen ska användas till:

- **Träning**: Använd FP32 eller BF16. De ger den stabilitet som behövs för att vikterna ska konvergera korrekt.
- **Inferens**: Använd FP16, BF16 eller INT8. Mindre minne och snabbare körning, utan att träningen behöver göras om.
- **Lagring och distribution**: Använd INT8 om varje megabyte räknas, till exempel när modellen ska köras på en enhet med begränsat minne.

## Vanliga frågor

**Påverkar precisionen modellens kvalitet?**

Ja. Lägre precision innebär att varje parameter lagras med färre bitar, vilket ger mindre exakta tal. I många fall är skillnaden liten vid inferens, men vid träning kan för låg precision göra att modellen inte lär sig ordentligt.

**Kan jag byta precision efter att modellen är tränad?**

Ja, det kallas kvantisering. En FP32-modell kan omvandlas till FP16 eller INT8 efter träningen. Omvändningen, från INT8 till FP32, ger ingen tillbaka förlorad precision.

**Behöver alla parametrar samma precision?**

I avancerade fall kan olika delar av modellen använda olika precision, så kallad blandad precision. Det är vanligast under träning, där till exempel vissa lager körs i FP16 och andra i FP32 för att få både hastighet och stabilitet.

**Var hittar jag information om min modell?**

Modellens arkitekturavgör hur många parametrar den har, och lagringsformatet avgör precisionen. Tillsammans ger de dig minnesbehovet.

## Sammanfattning

Precisionen anger hur många bitar varje parameter i en transformermodell lagras med. FP32 använder 4 byte, FP16 och BF16 använder 2 byte, och INT8 använder 1 byte per parameter. Lägre precision ger mindre minnesbehov och snabbare körning, men också mindre exakthet. Räkna alltid med antalet parametrar först, sedan multiplicerar du med byte per precision för att få vikternas storlek. För det totala minnesbehovet vid träning lägger du till gradienter och optimeringstillstånd.
