LLAMA-LOOKAHEAD(1)

πŸ“¦
version 10438 Β· 2 versions
, in ubuntu stonking

πŸ’… llama-lookahead(1) β€” the manual, but make it make sense

okay bestie, sit DOWN. this is the man page for llama-lookahead, and yes it's a whole lot, but we're gonna get through it together. think of it as a group chat where the group chat is your terminal and all your friends are flags. 🫢


✨ NAME ✨

llama-lookahead β€” literally just llama-lookahead, no notes, iconic behaviour πŸ’…


🌸 DESCRIPTION 🌸

πŸŽ€ ----- sampling params ----- πŸŽ€

this is the part where we tell the model how to pick its words. it's giving "choose your own adventure but the adventure is token probabilities". let's go one by one, no skipping, we don't do that here πŸ’–

  • --samplers SAMPLERS β€” the samplers that get used for generation, in order, separated by ;. default: penalties;dry;top_n_sigma;top_k;typ_p;top_p;min_p;xtc;temperature
  • -s, --seed SEED β€” the RNG seed. default: -1, and passing -1 means "use a random seed". chaos mode: enabled ✨
  • --sampler-seq, --sampling-seq SEQUENCE β€” a simplified sequence for the samplers that will be used. default: edskypmxt
  • --ignore-eos β€” ignore the end of stream token and just keep generating. no cap, it never wants to stop. (implies --logit-bias EOS-inf)
  • --temp, --temperature N β€” the temperature. default: 0.80
  • --top-k N β€” top-k sampling. default: 40, and 0 = disabled (env: LLAMA_ARG_TOP_K)
  • --top-p N β€” top-p sampling. default: 0.95, and 1.0 = disabled
  • --min-p N β€” min-p sampling. default: 0.05, and 0.0 = disabled
  • --top-nsigma, --top-n-sigma N β€” top-n-sigma sampling. default: -1.00, and -1.0 = disabled
  • --xtc-probability N β€” xtc probability. default: 0.00, and 0.0 = disabled
  • --xtc-threshold N β€” xtc threshold. default: 0.10, and 1.0 = disabled
  • --typical, --typical-p N β€” locally typical sampling, parameter p. default: 1.00, and 1.0 = disabled
  • --repeat-last-n N β€” the last n tokens to consider for penalize. default: 64, and 0 = disabled
  • --repeat-penalty N β€” penalize repeat sequence of tokens. default: 1.00, and 1.0 = disabled
  • --presence-penalty N β€” repeat alpha presence penalty. default: 0.00, and 0.0 = disabled
  • --frequency-penalty N β€” repeat alpha frequency penalty. default: 0.00, and 0.0 = disabled
  • --dry-multiplier N β€” sets the DRY sampling multiplier. default: 0.00, and 0.0 = disabled
  • --dry-base N β€” sets the DRY sampling base value. default: 1.75
  • --dry-allowed-length N β€” sets the allowed length for DRY sampling. default: 2
  • --dry-penalty-last-n N β€” sets the DRY penalty for the last n tokens. default: 64, and 0 = disable
  • --dry-sequence-breaker STRING β€” adds a sequence breaker for DRY sampling, which clears out the default breakers ('\n', ':', '"', '*') in the process. if you want no sequence breakers at all, pass "none" 😌
  • --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: the decay rate for target adaptation over time. lower values = more reactive, higher values = more stable. (valid range 0.0 to 0.99). default: 0.90
  • --dynatemp-range N β€” dynamic temperature range. default: 0.00, and 0.0 = disabled
  • --dynatemp-exp N β€” dynamic temperature exponent. default: 1.00
  • --mirostat N β€” use Mirostat sampling. heads up bestie: Top K, Nucleus and Locally Typical samplers are ignored if you use this. 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 a token appearing in the completion. like, for example:
--logit-bias 15043+1

bumps up the likelihood of token ' Hello', and:

--logit-bias 15043-1

brings the likelihood of token ' Hello' down. it's a little + or - bestie, that's the whole vibe πŸ”₯

  • --grammar GRAMMAR β€” BNF-like grammar to constrain generations (peep the samples in the grammars/ dir)
  • --grammar-file FNAME β€” file to read the 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 β€” a 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)

πŸ¦‹ ----- example-specific params ----- πŸ¦‹

now we move into the general "how do I even run this" territory. main character energy honestly ✨

  • -h, --help, --usage β€” print usage and exit
  • --version β€” show version and build info
  • -cl, --cache-list β€” show list of models in cache
  • --completion-bash β€” print a source-able bash completion script for llama.cpp
  • -t, --threads N β€” number of CPU threads to use during generation. default: <num_cpus> (env: LLAMA_ARG_THREADS)
  • -tb, --threads-batch N β€” number of threads to use during batch and prompt processing. default: same as --threads
  • -C, --cpu-mask M β€” CPU affinity mask: arbitrarily long hex. Complements cpu-range. default: ""
  • -Cr, --cpu-range lo-hi β€” 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 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 β€” size of the prompt context. default: 0, 0 = loaded from model (env: LLAMA_ARG_CTX_SIZE)
  • -n, --predict, --n-predict N β€” number of tokens to predict. default: -1, -1 = infinity (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 β€” number of tokens to keep from the initial prompt. default: 0, -1 = all
  • --swa-full β€” use full-size SWA cache. default: false [(more info)](https://github.com/ggml-org/llama.cpp/pull/13194#issuecomment-2868343055) (env: LLAMA_ARG_SWA_FULL)
  • -fa, --flash-attn [on|off|auto] β€” set Flash Attention use ('on', 'off', or 'auto'). default: 'auto' (env: LLAMA_ARG_FLASH_ATTN)
  • -p, --prompt PROMPT β€” prompt to start generation with; for a system message, use -sys
  • --perf, --no-perf β€” whether to enable internal libllama performance timings. default: false (env: LLAMA_ARG_PERF)
  • -f, --file FNAME β€” a file containing the prompt. default: none
  • -bf, --binary-file FNAME β€” binary file containing the prompt. default: none
  • -e, --escape, --no-escape β€” whether to process escapes sequences (\n, \r, \t, \', \", \\). default: true
  • --rope-scaling {none,linear,yarn} β€” RoPE frequency scaling method. defaults to linear unless specified by the model (env: LLAMA_ARG_ROPE_SCALING_TYPE)
  • --rope-scale N β€” RoPE context scaling factor, expands context by a factor of N (env: LLAMA_ARG_ROPE_SCALE)
  • --rope-freq-base N β€” RoPE base frequency, used by NTK-aware scaling. default: loaded from model (env: LLAMA_ARG_ROPE_FREQ_BASE)
  • --rope-freq-scale N β€” RoPE frequency scaling factor, expands context by a factor of 1/N (env: LLAMA_ARG_ROPE_FREQ_SCALE)
  • --yarn-orig-ctx N β€” YaRN: original context size of model. default: 0 = model training context size (env: LLAMA_ARG_YARN_ORIG_CTX)
  • --yarn-ext-factor N β€” YaRN: extrapolation mix factor. default: -1.00, 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 β€” bypass host buffer allowing extra buffers to 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 πŸ‘Ž (env: LLAMA_ARG_DEFRAG_THOLD)
  • -np, --parallel N β€” number of parallel sequences to decode. default: 1 (env: LLAMA_ARG_N_PARALLEL)
  • --mlock β€” DEPRECATED in favor of --load-mode: force system to keep model in RAM rather than swapping or compressing (env: LLAMA_ARG_MLOCK)
  • --mmap, --no-mmap β€” DEPRECATED in favor of --load-mode: whether to memory-map model. (if mmap disabled, slower load but may reduce pageouts if not using mlock) (env: LLAMA_ARG_MMAP)
  • -dio, --direct-io, -ndio, --no-direct-io β€” DEPRECATED in favor of --load-mode: use DirectIO if available (env: LLAMA_ARG_DIO)
  • -lm, --load-mode MODE β€” model loading mode. default: auto

🫢 okay bestie we're only partway through, hold on, more is coming in the next part β€” don't go anywhere!!

okay so the load-mode list wraps up like this, and then we keep scrolling:

  • auto β€” mmap, unless a device does not support it
  • none β€” no special loading mode
  • mmap β€” memory-map model (if mmap disabled, slower load but may reduce pageouts if not using mlock)
  • mlock β€” force system to keep model in RAM rather than swapping or compressing
  • mmap+mlock β€” mmap + force system to keep model in RAM rather than swapping or compressing
  • dio β€” use DirectIO if available

(env: LLAMA_ARG_LOAD_MODE)


  • --numa TYPE β€” tries to do optimizations that help on some NUMA systems. options are, and hear me out:
    • 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 available devices (env: LLAMA_ARG_DEVICE)
  • --list-devices β€” print list of available devices and exit ✨
  • -ot, --override-tensor <tensor name pattern>=<buffer type>,... β€” override tensor buffer type (env: LLAMA_ARG_OVERRIDE_TENSOR)
  • -cmoe, --cpu-moe β€” keep all Mixture of Experts (MoE) weights in the CPU (env: LLAMA_ARG_CPU_MOE)
  • -ncmoe, --n-cpu-moe N β€” keep the Mixture of Experts (MoE) weights of the first N layers in 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)

(env: LLAMA_ARG_SPLIT_MODE)

  • -ts, --tensor-split N0,N1,N2,... β€” fraction of the model to offload to each GPU, 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 to 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, comma-separated list of values, single value is broadcast across all devices, default: 1024 (env: LLAMA_ARG_FIT_TARGET)
  • -fitc, --fit-ctx N β€” minimum ctx size that can be set by --fit option, default: 4096 (env: LLAMA_ARG_FIT_CTX)
  • --check-tensors β€” check 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 device (default: true)
  • --lora FNAME β€” path to LoRA adapter (use comma-separated values to load multiple adapters)
  • --lora-scaled FNAME:SCALE,... β€” path to 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] β€” Docker Hub model repository. repo is optional, default to ai/. quant is optional, default to :latest. example: gemma3 (default: unused) (env: LLAMA_ARG_DOCKER_REPO)
  • -hf, -hfr, --hf-repo <user>/<model>[:quant] β€” Hugging Face model repository; quant is optional, case-insensitive, default to Q4_K_M, or falls back to the first file in the repo if Q4_K_M doesn't exist. mmproj is also downloaded automatically if available. to disable, 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 specified, 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 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 (env: LLAMA_ARG_LOG_COLORS)
  • -v, --verbose, --log-verbose β€” Set verbosity level to infinity (i.e. log all messages, useful for debugging) πŸ—£οΈ
  • --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. Values:
    • 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)

and that's a wrap on the flags bestie πŸ’… this page comes courtesy of debian, dated September 2026, and it's page one of LLAMA-LOOKAHEAD(1) β€” go forth and offload responsibly 🫢✨

πŸ“¦ where this page comes from