TECHNOLOGY EXPLAINER
Transformers and Large Language Models
— how "predict the next token" works, and what to watch when reading model size
A large language model (LLM) is trained on large amounts of text to output a probability for the next token given the tokens so far, and it generates text one token at a time. Its core, the Transformer, stacks layers built from attention, a feed-forward network (FFN), residual connections and normalisation. This article covers tokenisation, the attention computation (with a small numerical example), the block structure and recent variants, pre-training, autoregressive generation and the KV cache, and how to read "model size" (total versus active parameters, and the declared context length), all within what official papers and technical reports state. It also traces the lineage of the major models, but it does not rank them against one another.
- What a large language model is (the short version)
- Language-model basics — next-token probability and autoregression
- Tokenisation — what the model reads is not "characters"
- Attention — following a small numerical example
- The Transformer block, recent variants, and a parameter-count check
- Pre-training — learning to predict the next token
- Autoregressive generation, sampling and the KV cache
- Reading scale — dense models, mixture of experts, and undisclosed sizes
- A lineage of major models (within official sources)
- Limits, and what could not be confirmed / Summary
- How to read evaluations and standards
- Glossary
- References
- Claim-to-source audit
Sourced = stated in published material (link given)
Our calculation = a figure this article derived, with the assumptions spelled out
Not yet confirmed = a plan, a revision in progress, or anything else not yet settled
Readings for materials research are marked separately as Commentary. Inference is shown in bold. Model names, sizes and dates are as stated in official material on 15 October 2026; this field moves fast, so please do not read old information as "current".
Model sizes, context lengths and training amounts are values each developer published in a paper or technical report. They are stated values, not indicators of real performance or practical efficiency. Where a value is not published we write "undisclosed" and do not estimate it. Benchmark figures are given with name, source and settings, but figures obtained under different settings or by different evaluators are not ranked against each other. The numerical examples in Sections 3, 4, 5 and 7 are our own calculations.
1. What a large language model is (the short version)
- It predicts the next token. An LLM takes a sequence of tokens, outputs a probability for the next token, picks one, appends it, and repeats to produce text (autoregression). In training, its parameters are adjusted so that it predicts the "next token" of a huge amount of text.
- The core is the Transformer. Attention (which tokens to look at) and a feed-forward network (FFN) are wrapped in residual connections and normalisation, and L such layers are stacked. The parameter count is set, roughly, by the number of layers and the square of the width (dimension) Sourced [Ref. 1, 11].
- "Size" is not one number. Total parameters, active parameters per token, context length (a declared value) and KV-cache size are separate quantities. For some models the scale has not been published Sourced [Ref. 17, 18, 21].
A figure like "a model of so many B parameters" does not fix either the compute or the memory. Mixtral 8x7B, a mixture-of-experts (MoE) model, lets each token access 47B parameters but uses only 13B active parameters Sourced [Ref. 17]. DeepSeek-V3 has 671B in total and 37B active per token Sourced [Ref. 18]. The total is a guide to "how much to hold in memory", and the active count to "compute per token" (this article's commentary).
2. Language-model basics — next-token probability and autoregression
Treat text as a sequence of tokens x₁, x₂, …, xT. A language model splits the probability of the whole sequence into a product of "the probability of each token given the tokens before it": p(x₁…xT) = ∏ p(xt | x1…xt−1). This is autoregression (this article's commentary). In the Transformer of Vaswani et al., the decoder masks attention so that a position cannot attend to later positions and offsets the output by one position, so the prediction for position i can depend only on the known tokens before i Sourced [Ref. 1].
View original SVG, values and source annotations
Besides the encoder-decoder form of the original paper (aimed at translation), Transformers come in encoder-only forms (such as BERT) and decoder-only forms (such as the GPT line). BERT was reported as a way of pre-training a bidirectional Transformer Sourced [Ref. 8]; GPT (2018) was a 12-layer decoder-only Transformer (768 dimensions, 12 heads, an FFN of 3,072 dimensions) Sourced [Ref. 6]. T5 was an encoder-decoder model that casts every task as "text to text" and was tried at up to 11 billion parameters Sourced [Ref. 9]. Most of today's conversational LLMs are decoder-only (this article's summary; check each model's report for its actual structure).
3. Tokenisation — what the model reads is not "characters"
What the model processes is not characters or words but the numbers of tokens, items in a vocabulary. Sennrich et al. proposed that encoding rare and unknown words as sequences of subword units lets a fixed vocabulary cover every word (open-vocabulary), and applied byte pair encoding (BPE) to this purpose Sourced [Ref. 3]. SentencePiece is a language-independent tokenizer that learns a subword vocabulary directly from raw text and handles both encoding and decoding Sourced [Ref. 4].
Vocabulary size is a design choice. Llama 3 uses a 128K vocabulary, made of 100K tokens from tiktoken plus 28K added to better support languages other than English, and reports that compression on a sample of English rose from 3.17 to 3.94 characters per token compared with the Llama 2 tokenizer Sourced [Ref. 14]. On the other hand, Petrov et al. report that the same text translated into different languages can differ greatly in token count, by up to 15 times in some cases, and that the gap persists even in tokenizers built with multilingual support in mind Sourced [Ref. 5].
How much a model can take as input, and how much it processes, is counted in tokens, not characters. The same document gives different token counts depending on the language and on how the tokenizer was built [Ref. 5, 14]. How many more tokens a Japanese paper or patent needs than its English equivalent has to be measured with the tokenizer you actually use (this article's commentary; we did not check specific ratios in primary sources).
How chemical formulae, material names and strings of numbers are split also depends on the tokenizer. We infer that they may be split finely in some cases, but we did not confirm it. Before feeding text that contains numbers and units to a model, it is safer to look at the actual split.
4. Attention — following a small numerical example
Attention is the mechanism by which each token decides which other tokens to consult, and by how much, and mixes in their information. The original paper gives Attention(Q, K, V) = softmax(QKᵀ / √dk) V: the dot products of queries Q with keys K are divided by √dk, turned into weights by softmax, and used to average the values V Sourced [Ref. 1]. The division by √dk is explained as a guard against large dot products pushing the softmax into a saturated region when the dimension is large [Ref. 1]. In the base model of the original paper, the model dimension is 512 and there are 8 heads, each computing attention through its own projections, with the results concatenated [Ref. 1].
- This is a minimal example with three tokens and Q = K. Applying the causal mask to the scores QKᵀ/√2 and taking the softmax gives the weights in the figure above.
- Token 1 can see only itself, so its weight is 1.00; token 3 puts 0.50 on itself and 0.25 on each of tokens 1 and 2. Each output is the weighted average of the V vectors in view (for token 3, (0.99, 2.51)).
- The weights shown are rounded to two decimal places. The outputs are computed from the unrounded values.
Our calculation. Python (NumPy), double precision. The vectors are a minimal illustration, not values from any real model.
(1) Position information
Attention by itself does not distinguish the order of tokens, so position information has to be added. The original paper uses sinusoidal positional encoding and says learned positional embeddings gave nearly identical results Sourced [Ref. 1]. Su et al. later proposed RoPE (rotary position embedding), which encodes absolute position with a rotation matrix while building a dependence on relative position into the self-attention formula Sourced [Ref. 27]. Llama 3 uses RoPE (θ = 500,000) [Ref. 14].
(2) Compute and memory: the square of the context length
Attention handles scores for every pair of tokens in the context (n × n), so its cost grows with the square of the context length n. Kaplan et al. estimate the compute of one forward pass as Cforward ≈ 2N + 2·nlayer·nctx·dattn (N is the number of non-embedding parameters) and say the context-dependent term is small when dmodel is well above nctx/12 Sourced [Ref. 11]. Putting Llama 3 405B's values into this formula (126 layers, d = 16,384, N ≈ 4.05×1011), the context-dependent term is about 4% of 2N at n = 8,192 and about 67% at n = 131,072 (Our calculation: Kaplan's formula applied with the full nctx, ignoring savings from GQA and masking and any implementation details). At long contexts, attention can no longer be ignored.
Moreover, writing the n × n score matrix out to memory in the naive way gives 1.7×1010 elements at n = 131,072, which at half precision (2 bytes) is about 34 GB per head per layer (Our calculation). FlashAttention, by Dao et al., is an exact attention algorithm that avoids writing out this matrix: it works on tiles and reduces reads and writes between the GPU's high bandwidth memory (HBM) and on-chip SRAM Sourced [Ref. 30]. In short, the cost of attention is set not only by arithmetic but by data movement between memories.
5. The Transformer block, recent variants, and a parameter-count check
One block of a decoder-only Transformer consists of "normalise → attention → add the residual" and "normalise → FFN → add the residual". L such blocks are stacked, and a final stage outputs scores over the whole vocabulary.
Since the original paper, several components have been replaced. The table below sets out the differences from the original paper, including components the LLaMA report lists as improvements taken from earlier models Sourced [Ref. 12].
| Component | Original paper (2017) | Common later variants | Reported aim |
|---|---|---|---|
| Where normalisation goes | After each sub-layer's output (Post-LN) [1] | Before each sub-layer's input (Pre-LN). Used by GPT-2, GPT-3, LLaMA and gpt-oss [12, 20] | More stable training. Xiong et al. analyse that learning-rate warm-up is important for the original Post-LN and that the position of layer normalisation matters [24] |
| Normalisation function | LayerNorm [1] | RMSNorm (normalising by the root mean square alone) [25]. Used by LLaMA [12] | Assumes re-centring is dispensable and lightens the computation [25] |
| FFN activation | ReLU [1] | SwiGLU (a gated linear unit) [26]. Used by LLaMA and Llama 3 [12, 14] | Better performance [12] |
| Position information | Sinusoidal positional encoding [1] | RoPE [27]. Used by LLaMA, Llama 3 and gpt-oss [12, 14, 20] | Builds in dependence on relative position and is flexible in sequence length [27] |
| Attention heads | Multi-head (MHA) [1] | Multi-query (MQA) [28], grouped-query (GQA) [29]. Llama 3 uses GQA with 8 KV heads [14] | Shrink the KV cache and ease the memory-bandwidth burden at inference [14, 28]. GQA is reported to give quality close to MHA at a speed comparable to MQA [29] |
| Making the FFN sparse | Dense (all parameters used) | Mixture of experts (MoE): several FFNs (experts), a few chosen per token [15, 17] | Raises total parameters while holding down per-token compute [17] |
All Sourced (the original papers and technical reports). We do not judge which combination of components is best.
Checking the parameter count
Kaplan et al. estimate the number of non-embedding parameters in the standard setting (dattn = dff/4 = dmodel) as N ≈ 12·nlayer·dmodel² Sourced [Ref. 11]. We checked this formula, and a component-by-component count, against published configurations.
| Model | Layers L | Dimension d | 12·L·d² | Counted by component (body) | Stated |
|---|---|---|---|---|---|
| GPT-3 175B | 96 | 12,288 | 173.9 B | — (standard configuration, so estimated with 12Ld²) | 175.0 B |
| Llama 3 8B | 32 | 4,096 | 6.44 B | 6.98 B (+ embeddings 0.52 B × 2 = 8.03 B) | 8 B |
| Llama 3 70B | 80 | 8,192 | 64.4 B | 68.45 B (+ 1.05 B × 2 = 70.55 B) | 70 B |
| Llama 3 405B | 126 | 16,384 | 405.9 B | 401.65 B (+ 2.10 B × 2 = 405.84 B) | 405 B |
Our calculation. "Counted by component" uses Llama 3's published values (layers, dimension, FFN dimension 14,336 / 28,672 / 53,248, attention heads 32 / 64 / 128, 8 KV heads, vocabulary 128,000, SwiGLU) [Ref. 14] and counts attention (the Q, K, V and output projections) and the FFN (three matrices). It assumes separate input and output embeddings, so vocabulary × dimension is added twice. Small terms such as layer normalisation are left out. The stated 8B / 70B / 405B are rounded names. GPT-3 uses the published values (96 layers, d = 12,288) [Ref. 10].
The check shows the following. For GPT-3, with its standard configuration, Kaplan's shortcut formula comes close (173.9 B against a stated 175.0 B). For Llama 3, which uses SwiGLU and GQA, the shortcut is off by a few per cent, and the component-by-component count is closer to the stated size (this article's commentary). Most of the parameters sit in the attention projection matrices and the FFN weight matrices, both large matrices that scale with the square of the dimension. The deeper and wider the model, the faster the amount of weights grows.
6. Pre-training — learning to predict the next token
In pre-training, the parameters are updated in the direction that minimises the cross-entropy loss (a loss based on the logarithm of the predicted probability) of the "next token" at every position in a large body of text (this article's commentary; Kaplan et al. also measure language-model performance by cross-entropy loss [Ref. 11]). The causal mask lets the predictions at all positions of one passage be computed in parallel (Section 2). Among published figures, the scale of training is as follows.
- GPT-3 (175B): all models were trained on a total of 300 billion tokens; the 175B model used a batch of 3.2 million tokens and a context length of 2,048 Sourced [Ref. 10].
- Llama 3: pre-trained on a corpus of about 15T multilingual tokens (15.6T for the flagship model), against 1.8T tokens for Llama 2. Pre-training compute for the flagship was 3.8×1025 FLOPs, almost 50 times that of the largest Llama 2. It was first trained with a context of 8K tokens and then extended to 128K tokens Sourced [Ref. 14].
- DeepSeek-V3: the developer reports that full training took 2.788M H800 GPU hours Sourced (developer's stated value) [Ref. 18].
Training compute can be estimated roughly as "6 × parameters × training tokens". Kaplan et al. take the forward pass at about 2N per token and the backward pass at about twice that, so training costs about 6N FLOPs per token, and write total compute as C ≈ 6N·B·S (B the batch, S the number of updates) Sourced [Ref. 11]. We check this against published values.
| Model | Parameters N | Training tokens D | 6·N·D | Value in the report |
|---|---|---|---|---|
| GPT-3 175B | 1.75×1011 | 3.0×1011 | 3.15×1023 FLOPs | 3.14×1023 FLOPs (3,640 PF-days) [10] |
| Llama 3 405B | 4.05×1011 | 1.56×1013 | 3.79×1025 FLOPs | 3.8×1025 FLOPs [14] |
Our calculation. 6ND is an approximation and excludes the context-length-dependent term of attention and any extra computation from the implementation. The report values are those stated in each paper. The relation between training data and compute is treated at length in our explainer on training data and scaling laws.
A pre-trained model writes continuations of text, but it is not yet well adjusted to follow instructions or behave safely. That adjustment (post-training) is covered in our explainer on post-training and fine-tuning. The Llama 3 report likewise describes several rounds of alignment with human feedback after pre-training [Ref. 14].
7. Autoregressive generation, sampling and the KV cache
(1) Picking one from the probabilities: sampling
In generation, the next token is chosen from the model's probabilities over the whole vocabulary. Decoding methods that maximise probability, such as picking the single most probable token (greedy) or searching over several candidates (beam search), can cause "degeneration": bland, incoherent output, or loops of repeated text. Holtzman et al. proposed nucleus sampling (top-p), which cuts off the unreliable tail of the distribution and samples from the set of tokens (the nucleus) that holds most of the probability Sourced [Ref. 32]. With settings such as temperature (a value that sharpens or flattens the distribution) and top-p, the same input can give different outputs (this article's commentary).
(2) The KV cache: remembering past K and V
When generating one token at a time, the K and V of past tokens do not change, so they are stored and reused instead of being recomputed each time. This is the KV cache. Pope et al. call the attention key and value tensors of each layer the KV cache and explain that it must be kept in memory for the duration of decoding Sourced [Ref. 31]. Shazeer observed that incremental inference is slow because of the memory-bandwidth cost of repeatedly loading the large key and value tensors, and proposed multi-query attention, in which keys and values are shared across heads Sourced [Ref. 28].
The size of the KV cache (per sequence) is 2 (K and V) × layers × KV heads × head dimension × bytes per element × number of tokens. Running Llama 3 405B (126 layers, 8 KV heads, head dimension 16,384 / 128 = 128) in bf16 (2 bytes) gives 516,096 bytes per token (about 0.52 MB), and about 67.6 GB (63 GiB) for one sequence of 128K (131,072) tokens. If the number of KV heads were the same as the number of attention heads, 128 (multi-head attention), the same length would need about 1.08 TB (Our calculation).
The weights are also large: 405B in bf16 is about 810 GB, 70B about 140 GB and 8B about 16 GB (Our calculation: parameters × 2 bytes, ignoring quantisation and compression). Pope et al. cite the fact that model parameters generally do not fit in the memory of a single accelerator chip as one reason inference is hard [Ref. 31].
Each time a token is generated, the model reads the K and V of past tokens (the KV cache) [Ref. 28]. Reading the weights is also likely to be the limit when the batch is small (this article's commentary). As a result, in many situations inference speed is set by memory bandwidth and capacity more than by the number of arithmetic units.
Designs that shrink the KV cache, such as GQA (in the estimate above, 1.08 TB becomes 67.6 GB at 128K tokens, about one sixteenth), and computing methods that reduce data movement between memories, such as FlashAttention [Ref. 30], attack the same problem from the software side. The hardware answer is HBM stacking, 2.5D packaging and thermal interface materials to carry heat away. We cover these in our explainers on HBM, CoWoS, thermal interface materials (TIM) and AI accelerators (this article's commentary).
Generation is probabilistic, and plausible but wrong content can appear. NIST's generative AI profile defines this "confabulation" as confidently stated but erroneous or false content (colloquially "hallucinations") and lists it among the risks unique to or exacerbated by generative AI Sourced [Ref. 49]. A survey of "hallucination" in natural language generation likewise organises the metrics, mitigation methods and open challenges [Ref. 34]. Property values, paper citations, standard numbers and patent numbers should always be checked against the original document (this article's commentary).
It has also been reported that even models built for long contexts perform markedly worse when the information they need sits in the middle of the input: performance is highest when the relevant information is at the beginning or the end, and degrades significantly when it is placed in the middle, a U-shaped pattern Sourced [Ref. 33]. A declared context length (for example 128K) is a different matter from how well information can be used at that length (this article's commentary). When feeding in a long document, putting the key conditions at the start or end, or asking about the points separately, may help, but the effect has to be confirmed on your own task.
8. Reading scale — dense models, mixture of experts, and undisclosed sizes
The table below sets out, as stated, the scale recorded in official papers and technical reports. The table does not let you read off which model is better, because the training data, the amount of training, the post-training and the evaluation settings all differ.
| Model | Year published | Structure | Total parameters | Active parameters per token | Context length (declared) | Source |
|---|---|---|---|---|---|---|
| GPT-3 | 2020 | Dense (decoder-only) | 175 B | All (dense) | 2,048 | [10] |
| PaLM | 2022 | Dense (densely activated) | 540 B | All (dense) | Not checked here | [23] |
| Llama 3 405B | 2024 | Dense | 405 B | All (dense) | 128K (pre-trained at 8K, then extended by continued pre-training) | [14] |
| Mixtral 8x7B | 2024 | MoE (2 of 8 experts per layer) | 47 B | 13 B | 32k in training | [17] |
| DeepSeek-V3 | 2024 | MoE | 671 B | 37 B | 128K (extended in two stages, 32K then 128K) | [18] |
| Qwen3-235B-A22B | 2025 | MoE (8 of 128 experts active) | 235 B | 22 B | 128K | [19] |
| gpt-oss-120b | 2025 | MoE (top 4 of 128 experts) | 116.8 B | 5.1 B | 131,072 (dense layers extended with YaRN) | [20] |
| GPT-4 | 2023 | The technical report states that it contains no further details about the architecture (including model size), hardware, training compute, dataset construction and so on | [21] | |||
| Gemini 1.0 (Ultra, Pro) | 2023 | Built on Transformer decoders | Not given in the report's table (Nano is 1.8B and 3.25B) | 32k (supported in training) | [22] | |
All Sourced (developers' stated values). B = billion. Context lengths as written in each source. Checked 15 October 2026. The table does not cover other models released since 2025, or the new generations of 2026.
Cautions in reading
- Total versus active: an MoE model must hold weights for all of its total parameters (memory), while the compute for one token scales with the active parameters (compute). Do not describe scale by one of them alone (this article's commentary).
- Context length is a declared value: the context lengths in the table declare what the design and training support. How well information can be used at long context needs separate evaluation, and there are reports of lower performance for information in the middle [Ref. 33].
- Treat "undisclosed" as undisclosed: the GPT-4 technical report does not state its scale [Ref. 21]. We do not estimate it here.
9. A lineage of major models (within official sources)
Arranged in broad lines, the flow around the Transformer looks like the figure below. Years are those of the paper or technical report. The arrows within a line show the order in time; they do not mean that one model improved on another or is better.
- The introduction of attention (2014): Bahdanau et al. proposed, for machine translation, a mechanism that (softly) searches for the relevant parts of the input at each decoding step Sourced [Ref. 2]. In 2017 the Transformer showed a structure built on attention alone, without recurrence or convolution [Ref. 1].
- Bigger pre-trained models (2018–2020): GPT (2018) [6], BERT (2018) [8], GPT-2 (2019, up to 1.5B) [7], T5 (2019) [9] and GPT-3 (2020, 175B) [10] widened scale and range of uses. The GPT-3 report examined performance in the few-shot setting, with no task-specific fine-tuning [10].
- The line with released weights (2023 onward): LLaMA is reported at 7B to 65B, Llama 2 at 7B to 70B and Llama 3 at 8B to 405B [12, 13, 14]. The LLaMA report stresses that it showed models trained only on publicly available data [12].
- The mixture-of-experts (MoE) line: a sparsely activated MoE layer (2017, up to 137 billion parameters) [15], the Switch Transformer (up to one trillion parameters) [16], then Mixtral [17], DeepSeek-V3 [18], Qwen3 [19] and gpt-oss [20].
- Models with undisclosed scale: the GPT-4 (2023) and Gemini 1.0 (2023) reports do not give, at least in part, the details of model structure or scale [21, 22].
This field changes generation quickly. As of the checking date of 15 October 2026, this article covers the principal official sources up to 2025. Models released in 2026 are not covered and have not been checked.
10. Limits, and what could not be confirmed / Summary
(1) Newer models
The table in this article covers the principal official sources up to 2025. We did not check models released in 2026 or the latest generations from each company. Model names, sizes and context lengths may change after the checking date (15 October 2026).
(2) Models whose scale is undisclosed
For GPT-4 and for Gemini 1.0 Ultra and Pro, among others, the scale is not written in official material. We do not use values from press reports or estimates.
(3) Benchmark figures
This article sets out the design and the way to read benchmarks, and gives no scores for individual models, so as not to rank figures obtained under different settings or by different evaluators.
(4) What is not covered
We do not cover the details of optimisation, initialisation, efficiency methods such as quantisation and distillation (our explainer on model efficiency), inference optimisation and serving (our explainer on inference optimisation and serving), or families other than the Transformer such as state-space models.
(5) Measuring tokenisers
We did not check primary sources for how many times more tokens a Japanese document needs than an English one, or for how chemical formulae and numbers are split.
(6) The texts of standards
The texts of ISO/IEC 22989, 23053, 42001 and 23894 are paid and we did not check them. We limit ourselves to confirming numbers, titles and publication dates.
- An LLM repeatedly outputs next-token probabilities and picks one. Its core is the Transformer, with attention and an FFN wrapped in residual connections and normalisation Sourced
- Attention builds weights from the dot products of Q and K and averages V. Its cost grows with the square of the context length, and at long contexts it can no longer be ignored (for 405B, the context term goes from about 4% of 2N to about 67%) Sourced / Our calculation
- Most parameters sit in large matrices that scale with the square of the dimension. The shortcut 12Ld² fits standard configurations and is off by a few per cent for SwiGLU and GQA configurations Our calculation
- Generation is a job of reading memory. The KV cache of Llama 3 405B is about 67.6 GB for one 128K-token sequence (GQA with 8 KV heads), and the weights are about 810 GB in bf16 Our calculation
- Read "size" as total, active and declared context length. We do not estimate undisclosed scales, we attach checking dates, and we do not rank different models Sourced
11. How to read evaluations and standards
Evaluation of language models divides into the pre-training loss (perplexity), task benchmarks (knowledge, code, mathematics, long context and so on), comparison by human preference, and measurement of training and inference speed. In each case the number changes with the settings (number of shots, prompt, use of tools, sampling, who ran the evaluation), so read it together with the name, version and settings. Third-party leaderboards are used only as reference values, after checking their method and date. Safety and risk are not settled by numbers alone: standards and guidance (ISO/IEC, NIST) give frameworks for how organisations operate and evaluate. The table below sets out what we could confirm (checked 15 October 2026).
| What is evaluated | Representative benchmarks and methods (name, source, settings) | Standards and guidance (ISO/IEC, NIST and others) | Cautions in reading |
|---|---|---|---|
| Pre-training loss | Cross-entropy loss (perplexity). Kaplan et al. organise loss against parameters, data and compute [11]. The MLPerf Training LLM task measures the time to reach a "log perplexity target" on C4 data (for example, a target of 5.6 for the Llama 3.1 405B reference model; latest version on the page, v6.0) [43] Sourced | Could not be confirmed | Loss has different units for different tokenisers, so do not compare the loss of models with different tokenisers directly (this article's commentary) |
| Overall knowledge and reasoning | MMLU (57 tasks) [35]. BIG-bench (204 tasks, 450 authors, 132 institutions) [36]. HELM (16 core scenarios measured with 7 metrics, under standardised conditions) [37]. MMLU-Pro (four answer options raised to ten, with reasoning-focused questions added; the authors report accuracy 16–33% lower than on MMLU) [50] Sourced | Could not be confirmed | Values change with number of shots, prompt and evaluator. The saturation of MMLU-type benchmarks (differences at the top become hard to see) motivated the extended version [50] |
| Code generation | HumanEval (164 hand-written problems, with unit tests judging functional correctness; pass@k) [38] Sourced | Could not be confirmed | pass@k depends on the number of samples generated per problem |
| Maths word problems | GSM8K (about 8,500 problems) [39]. GSM1k (1,205 newly written problems, used to probe memorisation and overfitting through the gap to GSM8K; some models showed accuracy drops of up to 8%) [40] Sourced | Could not be confirmed | Public benchmarks can leak into training data (contamination) [40, 42] |
| Human preference | Chatbot Arena (users vote on anonymous pairwise comparisons; more than 240K votes at the time of the paper) [41]. Third-party leaderboards are reference values; rankings are not asserted as fact Sourced | Could not be confirmed | Depends on the population of voters and questions. Read a ranking after checking its date and method |
| Use of long context | An analysis (Liu et al.) that varies where the relevant information sits and measures performance: high at the start and end, lower in the middle, a U shape [33] Sourced | Could not be confirmed | A declared context length is separate from effective performance |
| Benchmark contamination | Proposed countermeasures such as encrypting test data and demanding exclusion from training (Jacovi et al.) [42]. Re-measuring on newly written problems (GSM1k) [40] Sourced | Could not be confirmed | Contamination is hard to confirm from outside |
| Training speed | MLPerf Training: time to reach a quality target. The page states results vary by roughly ±5% (±2.5% for imaging). There are Closed (same model) and Open divisions and availability categories (Available / Preview / RDI) [43] Sourced | Could not be confirmed | Check system configuration, software and version. Do not set results from different divisions side by side |
| Inference performance | MLPerf Inference: Datacenter (the page shows v6.1). It defines latency constraints and throughput metrics per scenario, together with quality targets. Power is the AC power of the whole system measured at the wall [44] Sourced | Could not be confirmed | Values MLCommons does not measure or validate, such as TDP or power-supply ratings, are not included (as the page states) |
| Concepts and terminology / risk management and operation | — | ISO/IEC 22989:2022 (AI concepts and terminology) [45], ISO/IEC 23053:2022 (a framework for AI systems using machine learning) [46], ISO/IEC 42001:2023 (AI management systems) [47] and ISO/IEC 23894:2023 (guidance on AI risk management) [48]. NIST AI 600-1 (Generative AI Profile, July 2024; defines 12 risks, including confabulation) [49] Sourced | Mostly voluntary. We did not check the texts and state no requirements |
The arrangement of the table is Our calculation (organisation). ISO/IEC numbers and titles were checked on the official ISO pages, and NIST AI 600-1 in the NIST document (checked 15 October 2026). The texts of standards are paid, so we limit ourselves to titles and scope. The MLPerf versions are as shown on the pages on the checking date.
Cautions in reading (for materials engineers)
- Benchmark values change with settings and with who ran the evaluation: do not rank figures that differ in number of shots, prompt, use of tools, sampling, reasoning length or evaluator (the developer or a third party). A figure in a developer's technical report is the result under the settings that developer chose.
- Beware saturation and contamination: public benchmarks can saturate (differences at the top become hard to see) and can leak into training data (contamination) [Ref. 40, 42, 50]. Re-measuring on new problems, and measuring on your own tasks, is the basic remedy.
- Standards and guidance are mostly voluntary: ISO/IEC standards and NIST guidance generally gain binding force only when cited in law or contract, and NIST's Generative AI Profile is intended for voluntary use [Ref. 49] (the general position of ISO/IEC standards is this article's commentary).
- Declared values and effective values are different: context length, parameter count and speed figures are developers' stated values or measurements on a particular configuration. It is worth checking them with your own data and hardware.
12. Glossary
- Token
- One item in the vocabulary that the model processes (a subword). The unit for counting context length and processing volume.
- Autoregression
- Repeatedly outputting next-token probabilities from the tokens so far, picking one and appending it.
- Attention
- A mechanism that decides, by weights, how much each token consults the others, and mixes their information.
- Q, K, V
- Query, key, value. The dot product of Q and K gives the weights, and V is averaged with them.
- Causal mask
- A mask that stops a token from attending to later tokens.
- FFN
- Feed-forward network. A set of two or three matrices that transform each token independently.
- Residual connection / normalisation
- A connection that adds the input to the output, and processing that evens out the scale of values. Both stabilise training.
- RoPE
- Rotary position embedding. Encodes position by rotation and builds in dependence on relative position.
- MHA / MQA / GQA
- Ways of sharing attention heads. MQA and GQA share KV to shrink the KV cache.
- KV cache
- Memory that stores the K and V of past tokens during generation so they can be reused.
- Mixture of experts (MoE)
- A structure in which a few of several FFNs (experts) are chosen per token.
- Total / active parameters
- All the parameters a model has / the parameters actually used in the computation for one token.
- Decoder-only
- A configuration that uses only the decoder part. The GPT and Llama lines, for example.
- Sampling (temperature, top-p)
- Ways of choosing the next token from probabilities, and the settings that tune them.
- Perplexity
- A measure of how uncertain a language model's predictions are. The exponential of cross-entropy.
- Confabulation
- Confidently stated, erroneous content. Colloquially "hallucination".
- Benchmark contamination
- Evaluation problems leaking into training data, inflating scores.
13. References
- Vaswani A. et al. "Attention Is All You Need", arXiv:1706.03762 (NeurIPS 2017) — arxiv.org/abs/1706.03762
- Bahdanau D., Cho K., Bengio Y. "Neural Machine Translation by Jointly Learning to Align and Translate", arXiv:1409.0473 — arxiv.org/abs/1409.0473
- Sennrich R., Haddow B., Birch A. "Neural Machine Translation of Rare Words with Subword Units", arXiv:1508.07909 — arxiv.org/abs/1508.07909
- Kudo T., Richardson J. "SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing", arXiv:1808.06226 — arxiv.org/abs/1808.06226
- Petrov A. et al. "Language Model Tokenizers Introduce Unfairness Between Languages", arXiv:2305.15425 — arxiv.org/abs/2305.15425
- Radford A. et al. (OpenAI) "Improving Language Understanding by Generative Pre-Training" (2018) — cdn.openai.com/.../language_understanding_paper.pdf
- Radford A. et al. (OpenAI) "Language Models are Unsupervised Multitask Learners" (2019) — cdn.openai.com/.../language_models_are_unsupervised_multitask_learners.pdf
- Devlin J. et al. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding", arXiv:1810.04805 — arxiv.org/abs/1810.04805
- Raffel C. et al. "Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer", arXiv:1910.10683 — arxiv.org/abs/1910.10683
- Brown T. B. et al. "Language Models are Few-Shot Learners", arXiv:2005.14165 — arxiv.org/abs/2005.14165
- Kaplan J. et al. "Scaling Laws for Neural Language Models", arXiv:2001.08361 — arxiv.org/abs/2001.08361
- Touvron H. et al. "LLaMA: Open and Efficient Foundation Language Models", arXiv:2302.13971 — arxiv.org/abs/2302.13971
- Touvron H. et al. "Llama 2: Open Foundation and Fine-Tuned Chat Models", arXiv:2307.09288 — arxiv.org/abs/2307.09288
- Grattafiori A. et al. (Llama Team, Meta) "The Llama 3 Herd of Models", arXiv:2407.21783 — arxiv.org/abs/2407.21783
- Shazeer N. et al. "Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer", arXiv:1701.06538 — arxiv.org/abs/1701.06538
- Fedus W., Zoph B., Shazeer N. "Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity", arXiv:2101.03961 — arxiv.org/abs/2101.03961
- Jiang A. Q. et al. "Mixtral of Experts", arXiv:2401.04088 — arxiv.org/abs/2401.04088
- DeepSeek-AI "DeepSeek-V3 Technical Report", arXiv:2412.19437 — arxiv.org/abs/2412.19437
- Yang A. et al. (Qwen Team) "Qwen3 Technical Report", arXiv:2505.09388 — arxiv.org/abs/2505.09388
- OpenAI "gpt-oss-120b & gpt-oss-20b Model Card", arXiv:2508.10925 — arxiv.org/abs/2508.10925
- OpenAI "GPT-4 Technical Report", arXiv:2303.08774 — arxiv.org/abs/2303.08774
- Gemini Team (Google) "Gemini: A Family of Highly Capable Multimodal Models", arXiv:2312.11805 — arxiv.org/abs/2312.11805
- Chowdhery A. et al. "PaLM: Scaling Language Modeling with Pathways", arXiv:2204.02311 — arxiv.org/abs/2204.02311
- Xiong R. et al. "On Layer Normalization in the Transformer Architecture", arXiv:2002.04745 (ICML 2020) — arxiv.org/abs/2002.04745
- Zhang B., Sennrich R. "Root Mean Square Layer Normalization", arXiv:1910.07467 — arxiv.org/abs/1910.07467
- Shazeer N. "GLU Variants Improve Transformer", arXiv:2002.05202 — arxiv.org/abs/2002.05202
- Su J. et al. "RoFormer: Enhanced Transformer with Rotary Position Embedding", arXiv:2104.09864 — arxiv.org/abs/2104.09864
- Shazeer N. "Fast Transformer Decoding: One Write-Head is All You Need", arXiv:1911.02150 — arxiv.org/abs/1911.02150
- Ainslie J. et al. "GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints", arXiv:2305.13245 — arxiv.org/abs/2305.13245
- Dao T. et al. "FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness", arXiv:2205.14135 — arxiv.org/abs/2205.14135
- Pope R. et al. "Efficiently Scaling Transformer Inference", arXiv:2211.05102 — arxiv.org/abs/2211.05102
- Holtzman A. et al. "The Curious Case of Neural Text Degeneration", arXiv:1904.09751 — arxiv.org/abs/1904.09751
- Liu N. F. et al. "Lost in the Middle: How Language Models Use Long Contexts", arXiv:2307.03172 — arxiv.org/abs/2307.03172
- Ji Z. et al. "Survey of Hallucination in Natural Language Generation", ACM Comput. Surv. 55 (2023), DOI 10.1145/3571730 — arxiv.org/abs/2202.03629
- Hendrycks D. et al. "Measuring Massive Multitask Language Understanding", arXiv:2009.03300 — arxiv.org/abs/2009.03300
- Srivastava A. et al. "Beyond the Imitation Game: Quantifying and extrapolating the capabilities of language models", arXiv:2206.04615 (TMLR) — arxiv.org/abs/2206.04615
- Liang P. et al. "Holistic Evaluation of Language Models", arXiv:2211.09110 (TMLR 2023) — arxiv.org/abs/2211.09110
- Chen M. et al. "Evaluating Large Language Models Trained on Code", arXiv:2107.03374 — arxiv.org/abs/2107.03374
- Cobbe K. et al. "Training Verifiers to Solve Math Word Problems", arXiv:2110.14168 — arxiv.org/abs/2110.14168
- Zhang H. et al. "A Careful Examination of Large Language Model Performance on Grade School Arithmetic", arXiv:2405.00332 — arxiv.org/abs/2405.00332
- Chiang W.-L. et al. "Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference", arXiv:2403.04132 — arxiv.org/abs/2403.04132
- Jacovi A. et al. "Stop Uploading Test Data in Plain Text: Practical Strategies for Mitigating Data Contamination by Evaluation Benchmarks", arXiv:2305.10160 — arxiv.org/abs/2305.10160
- MLCommons "MLPerf Training" (benchmark list and rules summary; latest version shown on the checking date: v6.0) — mlcommons.org/benchmarks/training/
- MLCommons "MLPerf Inference: Datacenter" (page shows v6.1 on the checking date) — mlcommons.org/benchmarks/inference-datacenter/
- ISO/IEC "ISO/IEC 22989:2022 Information technology — Artificial intelligence — Artificial intelligence concepts and terminology" (ISO page) — iso.org/standard/74296.html
- ISO/IEC "ISO/IEC 23053:2022 Framework for Artificial Intelligence (AI) Systems Using Machine Learning (ML)" (ISO page) — iso.org/standard/74438.html
- ISO/IEC "ISO/IEC 42001:2023 AI management systems" (ISO page) — iso.org/standard/81230.html
- ISO/IEC "ISO/IEC 23894:2023 AI — Guidance on risk management" (ISO page) — iso.org/standard/77304.html
- NIST "Artificial Intelligence Risk Management Framework: Generative Artificial Intelligence Profile", NIST AI 600-1, July 2024, DOI 10.6028/NIST.AI.600-1 — doi.org/10.6028/NIST.AI.600-1
- Wang Y. et al. "MMLU-Pro: A More Robust and Challenging Multi-Task Language Understanding Benchmark", arXiv:2406.01574 — arxiv.org/abs/2406.01574
14. Claim-to-source audit
| Claim in the text | Basis | Class |
|---|---|---|
| Attention(Q,K,V) = softmax(QKᵀ/√d_k)V, the reason for dividing by √d_k, the base model of the original paper (d_model = 512, 8 heads), the decoder mask making the prediction at position i depend only on earlier positions, sinusoidal positional encoding (learned embeddings gave nearly identical results), and the original paper's Post-LN, LayerNorm and ReLU | Vaswani et al. (2017) Reference 1 https://arxiv.org/abs/1706.03762 | Sourced |
| The introduction of attention (searching for relevant parts of the input at each decoding step) | Bahdanau et al. Reference 2 https://arxiv.org/abs/1409.0473 | Sourced |
| The proposal of open-vocabulary coding with BPE subwords; the character of SentencePiece | Sennrich et al.; Kudo and Richardson Reference 3 https://arxiv.org/abs/1508.07909 Reference 4 https://arxiv.org/abs/1808.06226 | Sourced |
| The same content differing by up to 15 times in token count between languages, with the gap persisting in multilingual tokenizers | Petrov et al. Reference 5 https://arxiv.org/abs/2305.15425 | Sourced |
| GPT (2018): 12-layer decoder-only, 768 dimensions, 12 heads, FFN 3,072. GPT-2 (2019): up to 1.5B | OpenAI papers Reference 6 https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf Reference 7 https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf | Sourced |
| BERT (bidirectional, 110M / 340M); T5 (text-to-text, up to 11B) | Devlin et al.; Raffel et al. Reference 8 https://arxiv.org/abs/1810.04805 Reference 9 https://arxiv.org/abs/1910.10683 | Sourced |
| GPT-3: 175B, 96 layers, d = 12,288, 2,048 context, a batch of 3.2 million tokens, 300 billion tokens, 3.14×10²³ FLOPs (3,640 PF-days), few-shot | Brown et al. (Table 2.1, Table D.1) Reference 10 https://arxiv.org/abs/2005.14165 | Sourced |
| Non-embedding parameters N ≈ 12·L·d², forward compute C_forward ≈ 2N + 2·L·n_ctx·d_attn, training C ≈ 6N per token, the context term being small when d_model > n_ctx/12, and measuring loss by cross-entropy | Kaplan et al. (2020) Reference 11 https://arxiv.org/abs/2001.08361 | Sourced |
| LLaMA: 7B to 65B, trained only on public data, adoption of pre-norm, RMSNorm, SwiGLU and RoPE. Llama 2: 7B to 70B | Touvron et al. Reference 12 https://arxiv.org/abs/2302.13971 Reference 13 https://arxiv.org/abs/2307.09288 | Sourced |
| Llama 3: configuration values (layers, dimension, FFN, heads, 8 KV heads, vocabulary 128,000, SwiGLU, RoPE θ = 500,000 for 8B/70B/405B), a 128K vocabulary, compression of 3.17 to 3.94 characters per token, about 15T (flagship 15.6T) tokens against 1.8T for Llama 2, 3.8×10²⁵ FLOPs, pre-training at 8K and extension to 128K, and the purpose of GQA | Llama Team (2024) Reference 14 https://arxiv.org/abs/2407.21783 | Sourced |
| The MoE layer (up to 137B); the Switch Transformer (up to one trillion) | Shazeer et al.; Fedus et al. Reference 15 https://arxiv.org/abs/1701.06538 Reference 16 https://arxiv.org/abs/2101.03961 | Sourced |
| Mixtral 8x7B: 2 of 8 experts per layer, 47B total / 13B active, 32k context in training | Jiang et al. Reference 17 https://arxiv.org/abs/2401.04088 | Sourced |
| DeepSeek-V3: 671B total / 37B active, 2.788M H800 GPU hours, context extended in two stages, 32K then 128K | DeepSeek-AI (developer's stated values) Reference 18 https://arxiv.org/abs/2412.19437 | Sourced |
| Qwen3-235B-A22B: 235B total / 22B active, 94 layers, 8 of 128 experts, 128K context | Qwen Team Reference 19 https://arxiv.org/abs/2505.09388 | Sourced |
| gpt-oss-120b: 116.8B total / 5.1B active, top 4 of 128 experts, GQA (8 KV heads), Pre-LN, RoPE, dense layers extended to 131,072 | OpenAI model card Reference 20 https://arxiv.org/abs/2508.10925 | Sourced |
| That the GPT-4 report contains no details of architecture, model size, hardware, training compute and so on | OpenAI (2023) Reference 21 https://arxiv.org/abs/2303.08774 | Sourced |
| Gemini 1.0: three sizes, Nano at 1.8B and 3.25B, sizes of Ultra and Pro not given in the table, 32k context supported, decoder-based | Gemini Team Reference 22 https://arxiv.org/abs/2312.11805 | Sourced |
| PaLM: 540B, densely activated | Chowdhery et al. Reference 23 https://arxiv.org/abs/2204.02311 | Sourced |
| That warm-up matters in training Post-LN and that the position of normalisation matters | Xiong et al. Reference 24 https://arxiv.org/abs/2002.04745 | Sourced |
| RMSNorm (normalising by root mean square, assuming re-centring is dispensable), SwiGLU (a GLU variant), RoPE (encoding absolute position by rotation, with dependence on relative position) | Zhang and Sennrich; Shazeer; Su et al. Reference 25 https://arxiv.org/abs/1910.07467 Reference 26 https://arxiv.org/abs/2002.05202 Reference 27 https://arxiv.org/abs/2104.09864 | Sourced |
| MQA (shared keys and values, easing the memory-bandwidth burden of inference); GQA (an intermediate number of KV heads, quality close to MHA at a speed comparable to MQA) | Shazeer; Ainslie et al. Reference 28 https://arxiv.org/abs/1911.02150 Reference 29 https://arxiv.org/abs/2305.13245 | Sourced |
| FlashAttention: an IO-aware exact attention that reduces reads and writes between HBM and SRAM by tiling | Dao et al. Reference 30 https://arxiv.org/abs/2205.14135 | Sourced |
| The definition of the KV cache, and that model parameters generally do not fit in the memory of one accelerator | Pope et al. Reference 31 https://arxiv.org/abs/2211.05102 | Sourced |
| That probability-maximising decoding causes degeneration, and the proposal of nucleus sampling | Holtzman et al. Reference 32 https://arxiv.org/abs/1904.09751 | Sourced |
| The U-shaped pattern in which performance falls for information in the middle of a long context | Liu et al. Reference 33 https://arxiv.org/abs/2307.03172 | Sourced |
| That "hallucination" in natural language generation means nonsensical or source-unfaithful output, and that the survey organises metrics, mitigation and challenges | Ji et al. Reference 34 https://arxiv.org/abs/2202.03629 | Sourced |
| MMLU (57 tasks), BIG-bench (204 tasks, 450 authors, 132 institutions), HELM (16 core scenarios × 7 metrics), MMLU-Pro (options 4 to 10, accuracy 16–33% lower) | The original papers Reference 35 https://arxiv.org/abs/2009.03300 Reference 36 https://arxiv.org/abs/2206.04615 Reference 37 https://arxiv.org/abs/2211.09110 Reference 50 https://arxiv.org/abs/2406.01574 | Sourced |
| HumanEval (164 problems, unit tests, pass@k), GSM8K (about 8,500 problems), GSM1k (1,205 problems, accuracy drops of up to 8%) | Chen et al.; Cobbe et al.; Zhang et al. Reference 38 https://arxiv.org/abs/2107.03374 Reference 39 https://arxiv.org/abs/2110.14168 Reference 40 https://arxiv.org/abs/2405.00332 | Sourced |
| Chatbot Arena (anonymous pairwise comparisons, more than 240K votes at the time of the paper), and three proposed countermeasures against benchmark contamination | Chiang et al.; Jacovi et al. Reference 41 https://arxiv.org/abs/2403.04132 Reference 42 https://arxiv.org/abs/2305.10160 | Sourced |
| The MLPerf Training LLM task (C4, log perplexity targets, reference models and targets, v6.0), the run-to-run variation (±5%, ±2.5% for imaging), the Closed/Open divisions and availability categories. MLPerf Inference: Datacenter (page shows v6.1; power is whole-system AC power at the wall; TDP and similar values are not validated) | MLCommons official pages (checked 15 October 2026) Reference 43 https://mlcommons.org/benchmarks/training/ Reference 44 https://mlcommons.org/benchmarks/inference-datacenter/ | Sourced |
| Numbers and titles of ISO/IEC 22989:2022, 23053:2022, 42001:2023 and 23894:2023 | ISO pages Reference 45 https://www.iso.org/standard/74296.html Reference 46 https://www.iso.org/standard/74438.html Reference 47 https://www.iso.org/standard/81230.html Reference 48 https://www.iso.org/standard/77304.html | Sourced |
| NIST AI 600-1 (July 2024): defines 12 risks, defines confabulation as confidently stated erroneous or false content, voluntary use | Text of NIST AI 600-1 Reference 49 https://doi.org/10.6028/NIST.AI.600-1 | Sourced |
| The numerical attention example (weights, outputs), the share of the context term in 2N (about 4% and about 67%), the n×n score matrix (about 34 GB), the parameter-count check table, the 6ND check (3.15×10²³, 3.79×10²⁵), the KV cache (516,096 B per token, about 67.6 GB, about 1.08 TB), and the memory of the weights (810 GB, 140 GB, 16 GB) | Our calculation (Python, NumPy; an approximation from published configuration values and Kaplan's formulae; separate input and output embeddings assumed; bf16 = 2 bytes). Not measurements of real models | Our calculation |
| Models released in 2026, the scale of undisclosed models, per-model benchmark scores, measured token counts for Japanese text and chemical formulae, and the texts of ISO/IEC standards | Could not be confirmed in the primary sources accessible within the scope of this survey, so they are not stated | Commentary |
| The readings that "token count is the unit of context, cost and processing time", "generation turns into a job of reading memory", "the cautions in checking what an LLM says for literature search" and "MoE should be read by both total and active counts", and their implications for materials and research | This article's arrangement and commentary based on published content. Not views stated by any institution | Commentary |
| That Figs. 2 to 5 and 7 are explanatory drawings, not internal outputs of any real model, and that Figs. 1 and 6 are ImageGen-generated conceptual illustrations | Note by this article | Commentary |
Last updated 15 October 2026. Sources are limited to primary material (the original arXiv papers, developers' technical reports and model cards, and the official pages of MLCommons, ISO and NIST). The texts of ISO/IEC standards are paid and could not be checked. Model names, sizes and context lengths are as stated in official material on the checking date; this field changes quickly, so please do not read old information as "current". Models released in 2026, the scale of models whose scale is undisclosed, per-model benchmark scores, measured token counts for Japanese text and chemical formulae, and the texts of ISO/IEC standards could not be confirmed and are not stated here. All figures are explanatory concept graphics or drawings that include our calculations. Figs. 1 and 6 are ImageGen-generated conceptual illustrations, and none of them shows an internal measurement of a real model or a physical product.


