> For the complete documentation index, see [llms.txt](https://axolotl.continuumlabs.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://axolotl.continuumlabs.pro/llama3/analysis-of-model-files/model-analysis-configuration-parameters.md).

# Model Analysis - Configuration Parameters

### <mark style="color:blue;">This is an analysis of the config.json file</mark>

These configuration parameters define the architecture and hyperparameters of the Llama3 language model.&#x20;

The model uses a decoder-only transformer architecture with <mark style="color:blue;">**32 hidden layers**</mark>, each having <mark style="color:blue;">**32 attention heads**</mark> and a <mark style="color:blue;">**hidden size of 4096**</mark>.&#x20;

The model can <mark style="color:yellow;">**process sequences up to 8192 tokens long**</mark> and uses <mark style="color:yellow;">**SiLU activation**</mark> in the hidden layers.&#x20;

The weights are initialised with a range of 0.02, and the model uses <mark style="color:yellow;">**bfloat16 precision**</mark> for its weights and activations.&#x20;

The <mark style="color:yellow;">**vocabulary size is set to 128,256 tokens**</mark>, with specific IDs assigned for the beginning-of-sequence and end-of-sequence tokens.

<table><thead><tr><th width="194" align="center">Parameter</th><th width="139" align="center">Value</th><th align="center">Explanation</th></tr></thead><tbody><tr><td align="center">architectures</td><td align="center"><p> Llama</p><p>ForCausalLM</p></td><td align="center">Specifies the architecture class used for the language model. This class is designed for causal language modeling tasks, where the model predicts the next token based on the previous tokens.</td></tr><tr><td align="center">attention_bias</td><td align="center"><em>false</em></td><td align="center">Indicates that attention bias, which can be used to mask out certain positions or modify attention weights, is not used in the model.</td></tr><tr><td align="center">attention_dropout</td><td align="center">0.0</td><td align="center">The dropout probability for the attention layers. Dropout is a regularization technique that randomly sets some input units to 0 during training. In this case, dropout is not applied to the attention layers.</td></tr><tr><td align="center">bos_token_id</td><td align="center">128,000</td><td align="center">The ID of the special token used to indicate the beginning of a sequence. This token is added to the start of the input sequence.</td></tr><tr><td align="center">eos_token_id</td><td align="center">128,001</td><td align="center">The ID of the special token used to indicate the end of a sequence. This token is added to the end of the input sequence.</td></tr><tr><td align="center">hidden_act</td><td align="center">"silu"</td><td align="center">The activation function used in the hidden layers of the model. In this case, the Sigmoid Linear Unit (SiLU) function is used, which is defined as x * sigmoid(x).</td></tr><tr><td align="center">hidden_size</td><td align="center">4,096</td><td align="center">The dimensionality of the hidden states in the model. This determines the size of the vectors that the model uses to represent the input and output at each layer.</td></tr><tr><td align="center">initializer_range</td><td align="center">0.02</td><td align="center">The range used for initialising the model's weights. The weights are initialised randomly within this range to break symmetry and encourage diverse representations.</td></tr><tr><td align="center">intermediate_size</td><td align="center">14,336</td><td align="center">The dimensionality of the intermediate (feed-forward) layer in the model. This layer is applied after the attention layer and expands the hidden state size before projecting it back to the original hidden_size.</td></tr><tr><td align="center"><p>max_position</p><p>embeddings</p></td><td align="center">8,192</td><td align="center">The maximum sequence length that the model can process, in tokens. This limits the context size that the model can attend to.</td></tr><tr><td align="center">model_type</td><td align="center">"llama"</td><td align="center">Specifies the type of the language model. In this case, it is the "llama" model, which is a large language model developed by Meta.</td></tr><tr><td align="center">num_attention_heads</td><td align="center">32</td><td align="center">The number of attention heads in each attention layer. Attention heads allow the model to attend to different parts of the input sequence simultaneously, capturing different relationships and patterns.</td></tr><tr><td align="center">num_hidden_layers</td><td align="center">32</td><td align="center">The number of hidden layers (transformer blocks) in the model. Each layer consists of an attention mechanism followed by a feed-forward network.</td></tr><tr><td align="center"><p>num_key_value</p><p>heads</p></td><td align="center">8</td><td align="center">The number of key-value heads in each attention layer. This is used in the query-key-value attention mechanism, where the key-value heads are used to compute the attention weights.</td></tr><tr><td align="center">pretraining_tp</td><td align="center">1</td><td align="center">The tensor parallelism used during pretraining. Tensor parallelism allows for parallel computation across multiple devices or nodes.</td></tr><tr><td align="center">rms_norm_eps</td><td align="center">1e-05</td><td align="center">The epsilon value used for RMSNorm (Root Mean Square Normalization) layers. RMSNorm is a normalization technique that normalizes the activations based on their root mean square values. The epsilon is added for numerical stability.</td></tr><tr><td align="center">rope_scaling</td><td align="center"><em>null</em></td><td align="center">Indicates that RoPE (Rotary Position Embedding) scaling is not used. RoPE is a technique for encoding positional information in the attention mechanism.</td></tr><tr><td align="center">rope_theta</td><td align="center">500,000</td><td align="center">The scaling factor for RoPE. This value determines the frequency of the rotary position embeddings.</td></tr><tr><td align="center">tie_word_embeddings</td><td align="center"><em>false</em></td><td align="center">Indicates that word embeddings are not tied with the output layer. Tying word embeddings means sharing the weights between the input embedding layer and the output softmax layer.</td></tr><tr><td align="center">torch_dtype</td><td align="center">"bfloat16"</td><td align="center">The data type used for the model's weights and activations. In this case, Brain Floating Point 16-bit (bfloat16) is used, which is a 16-bit floating-point format that offers better performance and memory usage compared to the standard 32-bit float.</td></tr><tr><td align="center">transformers_version</td><td align="center">4.40.0.dev0</td><td align="center">The version of the Transformers library used. This specifies the version of the library that the model configuration is compatible with.</td></tr><tr><td align="center">use_cache</td><td align="center"><em>true</em></td><td align="center">Enables caching of key-value pairs during inference for faster generation. Caching stores the computed key-value pairs for each layer, avoiding redundant computations when generating sequences.</td></tr><tr><td align="center">vocab_size</td><td align="center">128,256</td><td align="center">The size of the model's vocabulary, in tokens. This represents the number of unique tokens that the model can recognize and generate, including regular words, subwords, and special tokens.</td></tr></tbody></table>

<details>

<summary><mark style="color:green;"><strong>config.json</strong></mark></summary>

The provided code snippet is a JSON configuration file for the Llama3 language model.&#x20;

1. "architectures": This parameter specifies the architecture class used for the language model, which is "LlamaForCausalLM". This indicates that the model is designed for causal language modeling tasks.
2. "attention\_bias": Set to `false`, indicating that attention bias is not used in the model.
3. "attention\_dropout": The dropout probability for the attention layers, set to 0.0, meaning no dropout is applied.
4. "bos\_token\_id": The ID of the beginning-of-sequence token, set to 128000.
5. "eos\_token\_id": The ID of the end-of-sequence token, set to 128001.
6. "hidden\_act": The activation function used in the hidden layers, set to "silu" (Sigmoid Linear Unit).
7. "hidden\_size": The dimensionality of the hidden states in the model, set to 4096.
8. "initializer\_range": The range used for initializing the model's weights, set to 0.02.
9. "intermediate\_size": The dimensionality of the intermediate (feed-forward) layer in the model, set to 14336.
10. "max\_position\_embeddings": The maximum sequence length that the model can process, set to 8192 tokens.
11. "model\_type": Specifies the type of the language model, set to "llama".
12. "num\_attention\_heads": The number of attention heads in each attention layer, set to 32.
13. "num\_hidden\_layers": The number of hidden layers (transformer blocks) in the model, set to 32.
14. "num\_key\_value\_heads": The number of key-value heads in each attention layer, set to 8.
15. "pretraining\_tp": The tensor parallelism used during pretraining, set to 1.
16. "rms\_norm\_eps": The epsilon value used for RMSNorm (Root Mean Square Normalization) layers, set to 1e-05.
17. "rope\_scaling": Set to `null`, indicating that RoPE (Rotary Position Embedding) scaling is not used.
18. "rope\_theta": The scaling factor for RoPE, set to 500000.0.
19. "tie\_word\_embeddings": Set to `false`, indicating that word embeddings are not tied with the output layer.
20. "torch\_dtype": The data type used for the model's weights and activations, set to "bfloat16" (Brain Floating Point 16-bit).
21. "transformers\_version": The version of the Transformers library used, set to "4.40.0.dev0".
22. "use\_cache": Set to `true`, enabling caching of key-value pairs during inference for faster generation.
23. "vocab\_size": The size of the model's vocabulary, set to 128256 tokens.

These configuration parameters define the architecture and hyperparameters of the Llama3 language model.&#x20;

The model uses a decoder-only transformer architecture with 32 hidden layers, each having 32 attention heads and a hidden size of 4096.&#x20;

The model can process sequences up to 8192 tokens long and uses SiLU activation in the hidden layers.&#x20;

The weights are initialised with a range of 0.02, and the model uses bfloat16 precision for its weights and activations. The vocabulary size is set to 128256 tokens, with specific IDs assigned for the beginning-of-sequence and end-of-sequence tokens.

</details>
