inference/research
verifiedhigh · 0.90updated 2026-10-05

Whisper small

dense 0.244B

Fields

id
models/whisper-small
Family
whisper
Vendor
OpenAI
Release year
2022
Architecture
dense
Params (B)
0.244
Active params (B)
0.244
Hidden size
768
Layers
12
KV heads
12
Head dim
64
GQA ratio
1
Max context
1,500
Context scaling method
native
Activation
gelu
Attention variant
MHA, encoder-decoder (cross-attention)
KV cache (bytes/token)
36,864
FLOPs per active token
488,000,000
Open weights
yes
License
apache-2.0
notes
ENCODER-DECODER. ENCODER: 12 layers, d_model 768, 12 heads, encoder_ffn_dim 3072, gelu, num_mel_bins 80, max_source_positions 1500. DECODER: 12 layers, 12 heads, decoder_ffn_dim 3072, max_target_positions 448. KV CACHE: decoder self-attention 12 * 12 * 64 * 2 * 2 = 36,864 B/token = 36.0 KiB/token. Cross-attention over 1500 encoder frames: 12 * 12 * 64 * 1500 * 2 * 2 = 55,296,000 B = 52.7 MiB per in-flight request. STREAMING: not natively supported (offline/batch model). KV CACHE CORRECTED (2026-10-05): kv_cache_bytes_per_token was 81,920 B/token and overstated the decoder self-attention cache by 2.22x. Correct value 36,864 B/token = 36.0 KiB/token, from 2 (K and V) x 12 decoder_layers x 12 decoder_attention_heads x 64 head_dim x 2 bytes (fp16). head_dim 64 is CORRECT here and was not changed: d_model 768 / decoder_attention_heads 12 = 64 for every Whisper variant, so 64 holds across the whole family and is not the source of the error. What was wrong was the multiplication itself - this record's own derivation line read '12 * 12 * 64 * 2 * 2 = 81,920', and that expression evaluates to 36,864, not 81,920. The formula was right and the result beside it was not, which is why the error survived: nothing in validate.py evaluates a notes expression against the field it claims to derive. Cross-attention over the fixed 1500-frame encoder span was already correct and is unchanged. See gotcha mdl-gotcha-derived-figures-field-disagrees-with-its-own-note.
task
speech-to-text

Notes

ENCODER-DECODER. ENCODER: 12 layers, d_model 768, 12 heads, encoder_ffn_dim 3072, gelu, num_mel_bins 80, max_source_positions 1500. DECODER: 12 layers, 12 heads, decoder_ffn_dim 3072, max_target_positions 448. KV CACHE: decoder self-attention 12 * 12 * 64 * 2 * 2 = 36,864 B/token = 36.0 KiB/token. Cross-attention over 1500 encoder frames: 12 * 12 * 64 * 1500 * 2 * 2 = 55,296,000 B = 52.7 MiB per in-flight request. STREAMING: not natively supported (offline/batch model). KV CACHE CORRECTED (2026-10-05): kv_cache_bytes_per_token was 81,920 B/token and overstated the decoder self-attention cache by 2.22x. Correct value 36,864 B/token = 36.0 KiB/token, from 2 (K and V) x 12 decoder_layers x 12 decoder_attention_heads x 64 head_dim x 2 bytes (fp16). head_dim 64 is CORRECT here and was not changed: d_model 768 / decoder_attention_heads 12 = 64 for every Whisper variant, so 64 holds across the whole family and is not the source of the error. What was wrong was the multiplication itself - this record's own derivation line read '12 * 12 * 64 * 2 * 2 = 81,920', and that expression evaluates to 36,864, not 81,920. The formula was right and the result beside it was not, which is why the error survived: nothing in validate.py evaluates a notes expression against the field it claims to derive. Cross-attention over the fixed 1500-frame encoder span was already correct and is unchanged. See gotcha mdl-gotcha-derived-figures-field-disagrees-with-its-own-note.

Cross-references

This record references no other records — it is a leaf. It is cited by 0.