char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
8e7f22b67
char/aliceai-t5-moe
llama.cpp INI Presets
Introduction
The INI preset feature, introduced in PR#17859, allows users to create reusable and shareable parameter configurations for llama.cpp.
Using Presets with the Server
When running multiple models on the server (router mode), INI preset files can be used to configure model-specific parameters. Please refer to the server documentation for more details.
Using a Hugging Face Preset
[!IMPORTANT]
Please only use presets that you can trust! Unknown presets may be unsafe
You can push your preset to Hugging Face Hub and share with other users by:
- Creating an empty model repository on Hugging Face
- Creating a
preset.inifile in the root directory of the repository
Example of a preset.ini:
[ * ] ctx-size = 0mmap = 1kv-unified = 1parallel = 4spec-default = 1[ Qwen3.5-4B ] hf = unsloth/Qwen3.5-4B-GGUF:Q4_K_Mctx-size = 262144batch-size = 2048ubatch-size = 2048top-p = 1.0top-k = 0min-p = 0.01temp = 1.0[ gpt-oss-120b-hf ] hf = ggml-org/gpt-oss-120b-GGUFctx-size = 262144batch-size = 2048ubatch-size = 2048top-p = 1.0top-k = 0min-p = 0.01temp = 1.0chat-template-kwargs = {"reasoning_effort": "high"}
The preset will be loaded similarly to the --models-preset option. Therefore, you can also override certain params via CLI arguments:
# Force temp = 0.1, overriding the preset value llama-cli -hf username/my-preset--temp 0.1
Named presets
If you want to define multiple preset configurations for one or more GGUF models, you can create a blank HF repo containing a single preset.ini file that references the actual model(s):
[ * ] mmap = 1[ gpt-oss-20b-hf ] hf = ggml-org/gpt-oss-20b-GGUFbatch-size = 2048ubatch-size = 2048top-p = 1.0top-k = 0min-p = 0.01temp = 1.0chat-template-kwargs = {"reasoning_effort": "high"}[ gpt-oss-120b-hf ] hf = ggml-org/gpt-oss-120b-GGUFbatch-size = 2048ubatch-size = 2048top-p = 1.0top-k = 0min-p = 0.01temp = 1.0chat-template-kwargs = {"reasoning_effort": "high"}
You can then use it via llama-cli or llama-server, example:
llama-server -hf user/repo:gpt-oss-120b-hf
Please make sure to provide the correct hf-repo for each child preset. Otherwise, you may get error: The specified tag is not a valid quantization scheme.
System-level config
The system-level config, added in PR #26118, allows sharing the same set of options among multiple tools and examples. Unlike the sections above, it is not limited to the server.
These files are loaded on startup if present. A later file overrides an earlier one:
- System-wide:
/etc/llama.cpp/config.ini(or%PROGRAMDATA%\llama.cpp\config.inion Windows) - User-level:
$XDG_CONFIG_HOME/llama.cpp/config.ini,~/.config/llama.cpp/config.iniby default (or%APPDATA%\llama.cpp\config.inion Windows)
The config file is applied first, then its options are overridden by ENV variables, CLI arguments and model presets (in router mode).
Note:
- Only the
[*]and default sections are used; options written before any section header belong to "default. Named sections are ignored - Tool-specific options can be specified, but will be ignored (with a warning) if the example doesn't support it<br/>Example: if you specify
port = 1234, onlyllama-serverwill use it, other examples will ignore it modelorhf-repoare not recommended to be configured system-level, because it may introduce conflicts<br/>Example: ahf-repoin the config file still takes effect when you pass-mon the command line, so you may load a different model than expected
1# llama.cpp INI Presets 2 3## Introduction 4 5The INI preset feature, introduced in [PR#17859](https://github.com/ggml-org/llama.cpp/pull/17859), allows users to create reusable and shareable parameter configurations for llama.cpp. 6 7## Using Presets with the Server 8 9When running multiple models on the server (router mode), INI preset files can be used to configure model-specific parameters. Please refer to the [server documentation](../tools/server/README.md) for more details. 10 11### Using a Hugging Face Preset 12 13> [!IMPORTANT] 14> 15> Please only use presets that you can trust! Unknown presets may be unsafe 16 17You can push your preset to Hugging Face Hub and share with other users by: 181. Creating an empty model repository on Hugging Face 192. Creating a `preset.ini` file in the root directory of the repository 20 21Example of a `preset.ini`: 22 23``` ini 24[ * ] 25ctx-size = 0 26mmap = 1 27kv-unified = 1 28parallel = 4 29spec-default = 1 30 31[ Qwen3.5-4B ] 32hf = unsloth/Qwen3.5-4B-GGUF:Q4_K_M 33ctx-size = 262144 34batch-size = 2048 35ubatch-size = 2048 36top-p = 1.0 37top-k = 0 38min-p = 0.01 39temp = 1.0 40 41[ gpt-oss-120b-hf ] 42hf = ggml-org/gpt-oss-120b-GGUF 43ctx-size = 262144 44batch-size = 2048 45ubatch-size = 2048 46top-p = 1.0 47top-k = 0 48min-p = 0.01 49temp = 1.0 50chat-template-kwargs = {"reasoning_effort": "high"} 51``` 52 53The preset will be loaded similarly to the `--models-preset` option. Therefore, you can also override certain params via CLI arguments: 54 55``` sh 56# Force temp = 0.1, overriding the preset value 57llama-cli -hf username/my-preset --temp 0.1 58``` 59 60### Named presets 61 62If you want to define multiple preset configurations for one or more GGUF models, you can create a blank HF repo containing a single `preset.ini` file that references the actual model(s): 63 64``` ini 65[ * ] 66mmap = 1 67 68[ gpt-oss-20b-hf ] 69hf = ggml-org/gpt-oss-20b-GGUF 70batch-size = 2048 71ubatch-size = 2048 72top-p = 1.0 73top-k = 0 74min-p = 0.01 75temp = 1.0 76chat-template-kwargs = {"reasoning_effort": "high"} 77 78[ gpt-oss-120b-hf ] 79hf = ggml-org/gpt-oss-120b-GGUF 80batch-size = 2048 81ubatch-size = 2048 82top-p = 1.0 83top-k = 0 84min-p = 0.01 85temp = 1.0 86chat-template-kwargs = {"reasoning_effort": "high"} 87``` 88 89You can then use it via `llama-cli` or `llama-server`, example: 90 91``` sh 92llama-server -hf user/repo:gpt-oss-120b-hf 93``` 94 95Please make sure to provide the correct `hf-repo` for each child preset. Otherwise, you may get error: `The specified tag is not a valid quantization scheme.` 96 97## System-level config 98 99The system-level config, added in PR [#26118](https://github.com/ggml-org/llama.cpp/pull/26118), allows sharing the same set of options among multiple tools and examples. Unlike the sections above, it is not limited to the server. 100 101These files are loaded on startup if present. A later file overrides an earlier one: 1021. System-wide: `/etc/llama.cpp/config.ini` (or `%PROGRAMDATA%\llama.cpp\config.ini` on Windows) 1032. User-level: `$XDG_CONFIG_HOME/llama.cpp/config.ini`, `~/.config/llama.cpp/config.ini` by default (or `%APPDATA%\llama.cpp\config.ini` on Windows) 104 105The config file is applied first, then its options are overridden by ENV variables, CLI arguments and model presets (in router mode). 106 107Note: 108- Only the `[*]` and default sections are used; options written before any section header belong to "default. Named sections are ignored 109- Tool-specific options can be specified, but will be ignored (with a warning) if the example doesn't support it<br/>Example: if you specify `port = 1234`, only `llama-server` will use it, other examples will ignore it 110- `model` or `hf-repo` are not recommended to be configured system-level, because it may introduce conflicts<br/>Example: a `hf-repo` in the config file still takes effect when you pass `-m` on the command line, so you may load a different model than expected