LLAMA-SPECULATIVE(1)

๐Ÿ“ฆ
version 10438 ยท 2 versions
, in ubuntu stonking

๐Ÿ‘‘ NAME ๐Ÿ‘‘

okay so bestie, the name is llama-speculative, and the one-line summary is... also llama-speculative. That's it. That's the whole thing. No notes, no extra lore, just the name twice. iconic behavior honestly ๐Ÿ’…โœจ

๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

This is your girl llama-speculative, and here's every single parameter she takes. Buckle up buttercup, there are so many ๐ŸŽ€

๐ŸŒธ ----- common params ----- ๐ŸŒธ

  • -h, --help, --usage โ€” prints the usage and then peaces out ๐Ÿ‘‹
  • --version โ€” shows you the version and the build info, no cap
  • -cl, --cache-list โ€” shows the list of models chilling in the cache
  • --completion-bash โ€” prints a source-able bash completion script for llama.cpp โ€” you're welcome ๐Ÿซถ
  • -t, --threads N โ€” how many CPU threads to use during generation (default: <num_cpus>)
    • (env: LLAMA_ARG_THREADS)
  • -tb, --threads-batch N โ€” how many threads to use during batch and prompt processing (default: same as --threads)
  • -C, --cpu-mask M โ€” CPU affinity mask, and yes it's an arbitrarily long hex. Complements cpu-range (default: "")
  • -Cr, --cpu-range lo-hi โ€” the range of CPUs for affinity. Complements --cpu-mask
  • --cpu-strict <0|1> โ€” use strict CPU placement (default: 0)
  • --prio N โ€” set process/thread priority: low(-1), normal(0), medium(1), high(2), realtime(3) (default: 0)
  • --poll <0...100> โ€” use this polling level to wait for work (0 = no polling, default: 50)
  • -Cb, --cpu-mask-batch M โ€” CPU affinity mask, arbitrarily long hex. Complements cpu-range-batch (default: same as --cpu-mask)
  • -Crb, --cpu-range-batch lo-hi โ€” ranges of CPUs for affinity. Complements --cpu-mask-batch
  • --cpu-strict-batch <0|1> โ€” use strict CPU placement (default: same as --cpu-strict)
  • --prio-batch N โ€” set process/thread priority: 0-normal, 1-medium, 2-high, 3-realtime (default: 0)
  • --poll-batch <0|1> โ€” use polling to wait for work (default: same as --poll)
  • -c, --ctx-size N โ€” the size of the prompt context (default: 0, and 0 = loaded from the model)
    • (env: LLAMA_ARG_CTX_SIZE)
  • -n, --predict, --n-predict N โ€” how many tokens to predict (default: -1, and -1 = infinity, aka the limit does not exist ๐Ÿ˜ญ)
    • (env: LLAMA_ARG_N_PREDICT)
  • -b, --batch-size N โ€” logical maximum batch size (default: 2048)
    • (env: LLAMA_ARG_BATCH)
  • -ub, --ubatch-size N โ€” physical maximum batch size (default: 512)
    • (env: LLAMA_ARG_UBATCH)
  • --keep N โ€” how many tokens to keep from the initial prompt (default: 0, and -1 = all of them)
  • --swa-full โ€” use the full-size SWA cache (default: false) โ€” more info right here: https://github.com/ggml-org/llama.cpp/pull/13194#issuecomment-2868343055
    • (env: LLAMA_ARG_SWA_FULL)
  • -fa, --flash-attn [on|off|auto] โ€” sets the Flash Attention use โ€” 'on', 'off', or 'auto', default: 'auto'
    • (env: LLAMA_ARG_FLASH_ATTN)
  • -p, --prompt PROMPT โ€” the prompt to start generation with; and bestie, if you want a system message, use -sys ๐ŸŒŸ
  • --perf, --no-perf โ€” whether to enable the internal libllama performance timings (default: false) (env: LLAMA_ARG_PERF)
  • -f, --file FNAME โ€” a file containing the prompt (default: none)
  • -bf, --binary-file FNAME โ€” a binary file containing the prompt (default: none)
  • -e, --escape, --no-escape โ€” whether to process escape sequences (\n, \r, \t, \', \", \\) (default: true)
  • --rope-scaling {none,linear,yarn} โ€” RoPE frequency scaling method. Defaults to linear unless the model says otherwise (env: LLAMA_ARG_ROPE_SCALING_TYPE)
  • --rope-scale N โ€” RoPE context scaling factor, it expands the context by a factor of N (env: LLAMA_ARG_ROPE_SCALE)
  • --rope-freq-base N โ€” RoPE base frequency, the one NTK-aware scaling uses (default: loaded from the model) (env: LLAMA_ARG_ROPE_FREQ_BASE)
  • --rope-freq-scale N โ€” RoPE frequency scaling factor, expands the context by a factor of 1/N (env: LLAMA_ARG_ROPE_FREQ_SCALE)
  • --yarn-orig-ctx N โ€” YaRN: the original context size of the model (default: 0 = the model's training context size) (env: LLAMA_ARG_YARN_ORIG_CTX)
  • --yarn-ext-factor N โ€” YaRN: extrapolation mix factor (default: -1.00, and 0.0 = full interpolation) (env: LLAMA_ARG_YARN_EXT_FACTOR)
  • --yarn-attn-factor N โ€” YaRN: scale sqrt(t) or attention magnitude (default: -1.00) (env: LLAMA_ARG_YARN_ATTN_FACTOR)
  • --yarn-beta-slow N โ€” YaRN: high correction dim or alpha (default: -1.00) (env: LLAMA_ARG_YARN_BETA_SLOW)
  • --yarn-beta-fast N โ€” YaRN: low correction dim or beta (default: -1.00) (env: LLAMA_ARG_YARN_BETA_FAST)
  • -kvo, --kv-offload, -nkvo, --no-kv-offload โ€” whether to enable KV cache offloading (default: enabled) (env: LLAMA_ARG_KV_OFFLOAD)
  • --repack, -nr, --no-repack โ€” whether to enable weight repacking (default: enabled) (env: LLAMA_ARG_REPACK)
  • --no-host โ€” bypasses the host buffer so extra buffers can be used (env: LLAMA_ARG_NO_HOST)
  • -ctk, --cache-type-k TYPE โ€” KV cache data type for K
    • allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1 (default: f16) (env: LLAMA_ARG_CACHE_TYPE_K)
  • -ctv, --cache-type-v TYPE โ€” KV cache data type for V
    • allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1 (default: f16) (env: LLAMA_ARG_CACHE_TYPE_V)
  • -dt, --defrag-thold N โ€” KV cache defragmentation threshold (DEPRECATED, we don't do that anymore ๐Ÿ’€)
    • (env: LLAMA_ARG_DEFRAG_THOLD)
  • -np, --parallel N โ€” how many parallel sequences to decode (default: 1)
    • (env: LLAMA_ARG_N_PARALLEL)
  • --mlock โ€” DEPRECATED in favor of --load-mode: forces the system to keep the model in RAM instead of swapping or compressing it (env: LLAMA_ARG_MLOCK)
  • --mmap, --no-mmap โ€” DEPRECATED in favor of --load-mode: whether to memory-map the model. (heads up: if mmap is disabled, the load is slower but it may reduce pageouts if you're not using mlock) (env: LLAMA_ARG_MMAP)
  • -dio, --direct-io, -ndio, --no-direct-io โ€” DEPRECATED in favor of --load-mode: use DirectIO if it's available (env: LLAMA_ARG_DIO)
  • -lm, --load-mode MODE โ€” model loading mode (default: auto), and your options are:
    • auto: mmap, unless a device does not support it
    • none: no special loading mode
    • mmap: memory-map the model (if mmap is disabled, slower load but may reduce pageouts if not using mlock)
    • mlock: force the system to keep the model in RAM rather than swapping or compressing
    • mmap+mlock: mmap + force the system to keep the model in RAM rather than swapping or compressing
    • dio: use DirectIO if available
    • (env: LLAMA_ARG_LOAD_MODE)
  • --numa TYPE โ€” attempts optimizations that help on some NUMA systems
    • distribute: spread execution evenly over all nodes
    • isolate: only spawn threads on CPUs on the node that execution started on
    • numactl: use the CPU map provided by numactl
    • if run without this previously, it is recommended to drop the system page cache before using this; see https://github.com/ggml-org/llama.cpp/issues/1437 (env: LLAMA_ARG_NUMA)
  • -dev, --device <dev1,dev2,..> โ€” comma-separated list of devices to use for offloading (none = don't offload). Use --list-devices to see a list of the available devices (env: LLAMA_ARG_DEVICE)
  • --list-devices โ€” prints the list of available devices and exits
  • -ot, --override-tensor <tensor name pattern>=<buffer type>,... โ€” override the tensor buffer type (env: LLAMA_ARG_OVERRIDE_TENSOR)
  • -cmoe, --cpu-moe โ€” keep all the Mixture of Experts (MoE) weights on the CPU
    • (env: LLAMA_ARG_CPU_MOE)
  • -ncmoe, --n-cpu-moe N โ€” keep the Mixture of Experts (MoE) weights of the first N layers on the CPU (env: LLAMA_ARG_N_CPU_MOE)
  • -ngl, --gpu-layers, --n-gpu-layers N โ€” max number of layers to store in VRAM, either an exact number, 'auto', or 'all' (default: auto)
    • (env: LLAMA_ARG_N_GPU_LAYERS)
  • -sm, --split-mode {none,layer,row,tensor} โ€” how to split the model across multiple GPUs, one of:
    • none: use one GPU only
    • layer (default): split layers and KV across GPUs (pipelined)
    • row: split weight across GPUs by rows (parallelized)
    • tensor: split weights and KV across GPUs (parallelized, EXPERIMENTAL) โ€” โš ๏ธ that EXPERIMENTAL is doing a lot of heavy lifting, bestie
    • (env: LLAMA_ARG_SPLIT_MODE)
  • -ts, --tensor-split N0,N1,N2,... โ€” fraction of the model to offload to each GPU, a comma-separated list of proportions, e.g. 3,1
    • (env: LLAMA_ARG_TENSOR_SPLIT)
  • -mg, --main-gpu INDEX โ€” the GPU to use for the model (with split-mode = none), or for intermediate results and KV (with split-mode = row) (default: 0)
    • (env: LLAMA_ARG_MAIN_GPU)
  • -fit, --fit [on|off] โ€” whether to adjust unset arguments so they fit in device memory ('on' or 'off', default: 'on')
    • (env: LLAMA_ARG_FIT)
  • -fitt, --fit-target MiB0,MiB1,MiB2,... โ€” target margin per device for --fit, a comma-separated list of values; a single value gets broadcast across all devices, default: 1024 (env: LLAMA_ARG_FIT_TARGET)
  • -fitc, --fit-ctx N โ€” minimum ctx size that can be set by the --fit option, default: 4096
    • (env: LLAMA_ARG_FIT_CTX)
  • --check-tensors โ€” check the model tensor data for invalid values (default: false)
  • --override-kv KEY=TYPE:VALUE,... โ€” advanced option to override model metadata by key. To specify multiple overrides, either use comma-separated values. Types: int, float, bool, str. Example: --override-kv tokenizer.ggml.add_bos_token=bool:false,tokenizer.ggml.add_eos_token=bool:false
  • --op-offload, --no-op-offload โ€” whether to offload host tensor operations to the device (default: true)
  • --lora FNAME โ€” path to the LoRA adapter (use comma-separated values to load multiple adapters)
  • --lora-scaled FNAME:SCALE,... โ€” path to the LoRA adapter with user defined scaling (format: FNAME:SCALE,...) note: use comma-separated values
  • --control-vector FNAME โ€” add a control vector; note: use comma-separated values to add multiple control vectors
  • --control-vector-scaled FNAME:SCALE,... โ€” add a control vector with user defined scaling SCALE; note: use comma-separated values (format: FNAME:SCALE,...)
  • --control-vector-layer-range START END โ€” layer range to apply the control vector(s) to, start and end inclusive
  • -m, --model FNAME โ€” model path to load
    • (env: LLAMA_ARG_MODEL)
  • -mu, --model-url MODEL_URL โ€” model download url (default: unused)
    • (env: LLAMA_ARG_MODEL_URL)
  • -dr, --docker-repo [<repo>/]<model>[:quant] โ€”

okay so picking up right where we left off โ€” the Docker Hub model repository one ๐Ÿ’… repo is optional and defaults to ai/. quant is optional and defaults to :latest. example: gemma3 (default: unused) (env: LLAMA_ARG_DOCKER_REPO). anyway bestie, moving on ๐Ÿ‘‘

  • -hf, -hfr, --hf-repo <user>/<model>[:quant] โ€” the Hugging Face model repository moment ๐Ÿฆ‹. quant is optional, case-insensitive, and defaults to Q4_K_M โ€” or, if Q4_K_M doesn't exist in that repo, it just falls back to the first file in the repo, no cap. mmproj also gets downloaded automatically if it's available โœจ. to disable that, add --no-mmproj. example: ggml-org/GLM-4.7-Flash-GGUF:Q4_K_M (default: unused) (env: LLAMA_ARG_HF_REPO)
  • -hff, --hf-file FILE โ€” Hugging Face model file. if you specify this, it will override the quant in --hf-repo ๐Ÿ’€ (default: unused) (env: LLAMA_ARG_HF_FILE)
  • -hft, --hf-token TOKEN โ€” Hugging Face access token (default: value from the HF_TOKEN environment variable) (env: HF_TOKEN) ๐Ÿ”
  • --log-disable โ€” Log disable ๐Ÿ™ˆ
  • --log-file FNAME โ€” Log to file (env: LLAMA_ARG_LOG_FILE)
  • --log-colors [on|off|auto] โ€” Set colored logging ('on', 'off', or 'auto', default: 'auto'). 'auto' enables colors when output is to a terminal, which is honestly the only correct choice ๐ŸŽ€ (env: LLAMA_ARG_LOG_COLORS)
  • -v, --verbose, --log-verbose โ€” Set verbosity level to infinity (i.e. log all messages, useful for debugging) โ€” it's giving main character energy, everything gets logged, nothing is hidden ๐ŸŒˆ
  • --offline โ€” Offline mode: forces use of cache, prevents network access (env: LLAMA_ARG_OFFLINE) โœˆ๏ธ
  • -lv, --verbosity, --log-verbosity N โ€” Set the verbosity threshold. Messages with a higher verbosity will be ignored. the values, periodt:
    • 0: generic output
    • 1: error
    • 2: warning
    • 3: info
    • 4: trace (more info)
    • 5: debug

(default: 3) (env: LLAMA_ARG_LOG_VERBOSITY)

  • --log-prefix, --no-log-prefix โ€” Enable prefix in log messages (env: LLAMA_ARG_LOG_PREFIX)
  • --log-timestamps, --no-log-timestamps โ€” Enable timestamps in log messages (env: LLAMA_ARG_LOG_TIMESTAMPS) โฐ
  • --spec-draft-type-k, -ctkd, --cache-type-k-draft TYPE โ€” KV cache data type for K for the draft model ๐Ÿง . allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1 (default: f16) (env: LLAMA_ARG_SPEC_DRAFT_CACHE_TYPE_K)
  • --spec-draft-type-v, -ctvd, --cache-type-v-draft TYPE โ€” KV cache data type for V for the draft model ๐Ÿ’œ. allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1 (default: f16) (env: LLAMA_ARG_SPEC_DRAFT_CACHE_TYPE_V)

โœจ sampling params โœจ

like, this is where the personality of your model gets decided ๐ŸŽ€

  • --samplers SAMPLERS โ€” samplers that will be used for generation, in the order, separated by ; (default: penalties;dry;top_n_sigma;top_k;typ_p;top_p;min_p;xtc;temperature) ๐Ÿ”ฅ
  • -s, --seed SEED โ€” RNG seed (default: -1, use random seed for -1) ๐ŸŽฒ
  • --sampler-seq, --sampling-seq SEQUENCE โ€” simplified sequence for samplers that will be used (default: edskypmxt) โœ๏ธ
  • --ignore-eos โ€” ignore end of stream token and continue generating (implies --logit-bias EOS-inf) ๐Ÿ™ˆ
  • --temp, --temperature N โ€” temperature (default: 0.80) ๐ŸŒก๏ธ
  • --top-k N โ€” top-k sampling (default: 40, 0 = disabled) (env: LLAMA_ARG_TOP_K)
  • --top-p N โ€” top-p sampling (default: 0.95, 1.0 = disabled)
  • --min-p N โ€” min-p sampling (default: 0.05, 0.0 = disabled)
  • --top-nsigma, --top-n-sigma N โ€” top-n-sigma sampling (default: -1.00, -1.0 = disabled)
  • --xtc-probability N โ€” xtc probability (default: 0.00, 0.0 = disabled)
  • --xtc-threshold N โ€” xtc threshold (default: 0.10, 1.0 = disabled)
  • --typical, --typical-p N โ€” locally typical sampling, parameter p (default: 1.00, 1.0 = disabled)
  • --repeat-last-n N โ€” last n tokens to consider for penalize (default: 64, 0 = disabled)
  • --repeat-penalty N โ€” penalize repeat sequence of tokens (default: 1.00, 1.0 = disabled)
  • --presence-penalty N โ€” repeat alpha presence penalty (default: 0.00, 0.0 = disabled)
  • --frequency-penalty N โ€” repeat alpha frequency penalty (default: 0.00, 0.0 = disabled)
  • --dry-multiplier N โ€” set DRY sampling multiplier (default: 0.00, 0.0 = disabled)
  • --dry-base N โ€” set DRY sampling base value (default: 1.75)
  • --dry-allowed-length N โ€” set allowed length for DRY sampling (default: 2)
  • --dry-penalty-last-n N โ€” set DRY penalty for the last n tokens (default: 64, 0 = disable)
  • --dry-sequence-breaker STRING โ€” add sequence breaker for DRY sampling, clearing out default breakers ('\n', ':', '"', '*') in the process ๐Ÿ’€; use "none" to not use any sequence breakers at all
  • --adaptive-target N โ€” adaptive-p: select tokens near this probability (valid range 0.0 to 1.0; negative = disabled) (default: -1.00) (more info: https://github.com/ggml-org/llama.cpp/pull/17927) ๐Ÿ“–
  • --adaptive-decay N โ€” adaptive-p: decay rate for target adaptation over time. lower values are more reactive, higher values are more stable ๐ŸŒŠ (valid range 0.0 to 0.99) (default: 0.90)
  • --dynatemp-range N โ€” dynamic temperature range (default: 0.00, 0.0 = disabled)
  • --dynatemp-exp N โ€” dynamic temperature exponent (default: 1.00)
  • --mirostat N โ€” use Mirostat sampling. Top K, Nucleus and Locally Typical samplers are ignored if used ๐Ÿ‘€ (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0)
  • --mirostat-lr N โ€” Mirostat learning rate, parameter eta (default: 0.10)
  • --mirostat-ent N โ€” Mirostat target entropy, parameter tau (default: 5.00)
  • -l, --logit-bias TOKEN_ID(+/-)BIAS โ€” modifies the likelihood of token appearing in the completion, i.e. --logit-bias 15043+1 to increase likelihood of token ' Hello', or --logit-bias 15043-1 to decrease likelihood of token ' Hello' ๐Ÿ˜Œ
  • --grammar GRAMMAR โ€” BNF-like grammar to constrain generations (see samples in grammars/ dir)
  • --grammar-file FNAME โ€” file to read grammar from
  • -j, --json-schema SCHEMA โ€” JSON schema to constrain generations (https://json-schema.org/), e.g. {} for any JSON object. For schemas w/ external $refs, use --grammar + example/json_schema_to_grammar.py instead ๐Ÿ
  • -jf, --json-schema-file FILE โ€” File containing a JSON schema to constrain generations (https://json-schema.org/), e.g. {} for any JSON object. For schemas w/ external $refs, use --grammar + example/json_schema_to_grammar.py instead ๐Ÿ
  • -bs, --backend-sampling โ€” enable backend sampling (experimental) (default: disabled) (env: LLAMA_ARG_BACKEND_SAMPLING) ๐Ÿงช
k just so we're clear: that backend sampling one says experimental, so if it acts up it's not being shady, it's just built different. proceed with care ๐Ÿซถ

๐Ÿ”ฎ speculative params ๐Ÿ”ฎ

the draft-model section, aka the understudy of your main model ๐ŸŽญ it drafts, the big model checks, everybody wins โœจ

  • --spec-draft-hf, -hfd, -hfrd, --hf-repo-draft <user>/<model>[:quant] โ€” Same as --hf-repo, but for the draft model (default: unused) (env: LLAMA_ARG_SPEC_DRAFT_HF_REPO) ๐Ÿฆ‹
  • --spec-draft-threads, -td, --threads-draft N โ€” number of threads to use during generation (default: same as --threads)
  • --spec-draft-threads-batch, -tbd, --threads-batch-draft N โ€” number of threads to use during batch and prompt processing (default: same as --threads-draft)
  • --spec-draft-cpu-mask, -Cd, --cpu-mask-draft M โ€” Draft model CPU affinity mask. Complements cpu-range-draft (default: same as --cpu-mask)
  • --spec-draft-cpu-range, -Crd, --cpu-range-draft lo-hi โ€” Ranges of CPUs for affinity. Complements --cpu-mask-draft
  • --spec-draft-cpu-strict, --cpu-strict-draft <0|1> โ€” Use strict CPU placement for draft model (default: same as --cpu-strict)
  • --spec-draft-prio, --prio-draft N โ€” set draft process/thread priority : 0-normal, 1-medium, 2-high, 3-realtime (default: 0) โšก
  • --spec-draft-poll, --poll-draft <0|1> โ€” Use polling to wait for draft model work (default: same as --poll)
  • --spec-draft-cpu-mask-batch, -Cbd, --cpu-mask-batch-draft M โ€” Draft model CPU affinity mask. Complements cpu-range-draft (default: same as --cpu-mask)
  • --spec-draft-cpu-range-batch, -Crbd, --cpu-range-batch-draft lo-hi โ€” Ranges of CPUs for affinity. Complements --cpu-mask-draft-batch)
  • --spec-draft-cpu-strict-batch, --cpu-strict-batch-draft <0|1> โ€” Use strict CPU placement for draft model (default: --cpu-strict-draft)
  • --spec-draft-prio-batch, --prio-batch-draft N โ€” set draft process/thread priority : 0-normal, 1-medium, 2-high, 3-realtime (default: 0) โšก
  • --spec-draft-poll-batch, --poll-batch-draft <0|1> โ€” Use polling to wait for draft model work (default: --poll-draft)
  • --spec-draft-override-tensor, -otd, --override-tensor-draft <tensor name pattern>=<buffer type>,... โ€” override tensor buffer type for draft model ๐Ÿงฉ
  • --spec-draft-cpu-moe, -cmoed, --cpu-moe-draft โ€” keep all Mixture of Experts (MoE) weights in the CPU for the draft model (env: LLAMA_ARG_SPEC_DRAFT_CPU_MOE) ๐Ÿง 
  • --spec-draft-n-cpu-moe, --spec-draft-ncmoe, -ncmoed, --n-cpu-moe-draft N โ€” keep the Mixture of Experts (MoE) weights of the first N layers in the CPU for the draft model (env: LLAMA_ARG_SPEC_DRAFT_N_CPU_MOE)
  • --spec-draft-n-max N โ€” number of tokens to draft for speculative decoding (default: 3) (env: LLAMA_ARG_SPEC_DRAFT_N_MAX)
  • --spec-draft-n-min N โ€” minimum number of draft tokens to use for speculative decoding (default: 0) (env: LLAMA_ARG_SPEC_DRAFT_N_MIN)
  • --spec-draft-p-split, --draft-p-split P โ€” speculative decoding split probability (default: 0.10) (env: LLAMA_ARG_SPEC_DRAFT_P_SPLIT)
  • --spec-draft-p-min, --draft-p-min P โ€” minimum speculative decoding probability (greedy) (default: 0.00) (env: LLAMA_ARG_SPEC_DRAFT_P_MIN)
  • --spec-draft-backend-sampling, --no-spec-draft-backend-sampling โ€” offload draft sampling to the backend (default: enabled) (env: LLAMA_ARG_SPEC_DRAFT_BACKEND_SAMPLING) ๐Ÿงช
  • --spec-draft-device, -devd, --device-draft <dev1,dev2,..> โ€” comma-separated list of devices to use for offloading the draft model (none = don't offload) ๐Ÿ’ป. use --list-devices to see a list of available devices
  • --spec-draft-ngl, -ngld, --gpu-layers-draft, --n-gpu-layers-draft N โ€” max. number of draft model layers to store in VRAM, either an exact number, 'auto', or 'all' (default: auto) (env: LLAMA_ARG_N_GPU_LAYERS_DRAFT) ๐Ÿ”ฅ
  • --spec-draft-model, -md, --model-draft FNAME โ€” draft model for speculative decoding (default: unused) (env: LLAMA_ARG_SPEC_DRAFT_MODEL) ๐Ÿซถ
  • --spec-type โ€” comma-separated list of types of speculative decoding to use (default: none)
    • the whole menu, in this order: none, draft-simple, draft-eagle3, draft-mtp, draft-dflash, draft-dspark, ngram-simple, ngram-map-k, ngram-map-k4v, ngram-mod, ngram-cache
    • (env: LLAMA_ARG_SPEC_TYPE)
  • --spec-ngram-mod-n-min N โ€” the floor, bestie: minimum number of ngram tokens to use for ngram-based speculative decoding (default: 48)
  • --spec-ngram-mod-n-max N โ€” the ceiling this time: maximum number of ngram tokens to use for ngram-based speculative decoding (default: 64)
  • --spec-ngram-mod-n-match N โ€” how long the ngram-mod lookup gets to be, that's it, that's the whole vibe (default: 24)
  • --spec-ngram-simple-size-n N โ€” ngram size N for ngram-simple speculative decoding, which is literally the length of the lookup n-gram (default: 12)
  • --spec-ngram-simple-size-m N โ€” ngram size M for ngram-simple speculative decoding, aka the length of the draft m-gram (default: 48)
  • --spec-ngram-simple-min-hits N โ€” minimum hits for ngram-simple speculative decoding (default: 1)
  • --spec-ngram-map-k-size-n N โ€” ngram size N for ngram-map-k speculative decoding, i.e. the length of the lookup n-gram (default: 12)
  • --spec-ngram-map-k-size-m N โ€” ngram size M for ngram-map-k speculative decoding, i.e. the length of the draft m-gram (default: 48)
  • --spec-ngram-map-k-min-hits N โ€” minimum hits for ngram-map-k speculative decoding (default: 1)
  • --spec-ngram-map-k4v-size-n N โ€” ngram size N for ngram-map-k4v speculative decoding, i.e. the length of the lookup n-gram (default: 12)
  • --spec-ngram-map-k4v-size-m N โ€” ngram size M for ngram-map-k4v speculative decoding, i.e. the length of the draft m-gram (default: 48)
  • --spec-ngram-map-k4v-min-hits N โ€” minimum hits for ngram-map-k4v speculative decoding (default: 1)
  • --draft, --draft-n, --draft-max N โ€” okay so this one is gone ๐Ÿšจ the argument has been removed. use --spec-draft-n-max or --spec-ngram-mod-n-max
    • (env: LLAMA_ARG_DRAFT_MAX)
  • --draft-min, --draft-n-min N โ€” same story, this one got removed too ๐Ÿšจ use --spec-draft-n-min or --spec-ngram-mod-n-min
    • (env: LLAMA_ARG_DRAFT_MIN)

๐ŸŒธ ----- example-specific params ----- ๐ŸŒธ

  • -co, --color [on|off|auto] โ€” Colorize output to distinguish prompt and user input from generations
    • your choices are 'on', 'off', or 'auto', default: 'auto'
    • 'auto' enables colors when output is to a terminal

and that's the whole page, bestie, you made it ๐Ÿ’– this one ships from debian, dated September 2026, and it's filed under LLAMA-SPECULATIVE(1) โ€” go speculate responsibly, ily โœจ๐Ÿ‘‘๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from