2025-01-03 10:18:53 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "llama.h"
|
|
|
|
|
|
|
|
|
|
#include <cstdint>
|
2026-06-12 09:21:06 +02:00
|
|
|
#include <vector>
|
2025-01-03 10:18:53 +02:00
|
|
|
|
2025-09-18 12:47:56 +03:00
|
|
|
#define LLAMA_MAX_SEQ 256
|
2025-05-25 16:34:36 +03:00
|
|
|
|
2025-01-03 10:18:53 +02:00
|
|
|
struct llama_cparams {
|
|
|
|
|
uint32_t n_ctx; // context size used during inference
|
2025-11-02 18:14:04 +02:00
|
|
|
uint32_t n_ctx_seq; // context for a single sequence
|
2025-01-03 10:18:53 +02:00
|
|
|
uint32_t n_batch;
|
|
|
|
|
uint32_t n_ubatch;
|
|
|
|
|
uint32_t n_seq_max;
|
2026-05-16 20:06:23 +08:00
|
|
|
uint32_t n_rs_seq; // number of recurrent-state snapshots per seq for rollback
|
2026-06-01 23:01:38 +08:00
|
|
|
uint32_t n_outputs_max; // max outputs supported by the context
|
2025-07-16 16:35:42 +03:00
|
|
|
int32_t n_threads; // number of threads to use for generation
|
|
|
|
|
int32_t n_threads_batch; // number of threads to use for batch processing
|
2025-01-03 10:18:53 +02:00
|
|
|
|
|
|
|
|
float rope_freq_base;
|
|
|
|
|
float rope_freq_scale;
|
|
|
|
|
|
|
|
|
|
uint32_t n_ctx_orig_yarn;
|
|
|
|
|
// These hyperparameters are not exposed in GGUF, because all
|
|
|
|
|
// existing YaRN models use the same values for them.
|
|
|
|
|
float yarn_ext_factor;
|
|
|
|
|
float yarn_attn_factor;
|
|
|
|
|
float yarn_beta_fast;
|
|
|
|
|
float yarn_beta_slow;
|
|
|
|
|
|
|
|
|
|
bool embeddings;
|
2026-06-04 01:29:09 +08:00
|
|
|
bool embeddings_nextn; // also extract the hidden state before the final output norm
|
|
|
|
|
bool embeddings_nextn_masked; // extract for only rows where batch.logits != 0
|
2025-01-03 10:18:53 +02:00
|
|
|
bool causal_attn;
|
|
|
|
|
bool offload_kqv;
|
|
|
|
|
bool flash_attn;
|
2026-01-15 16:39:17 +02:00
|
|
|
bool auto_fa;
|
2026-03-07 15:41:10 +08:00
|
|
|
bool fused_gdn_ar; // use fused gated delta net (autoregressive)
|
|
|
|
|
bool fused_gdn_ch; // use fused gated delta net (chunked)
|
2026-03-11 22:46:40 +02:00
|
|
|
bool auto_fgdn;
|
2025-01-03 10:18:53 +02:00
|
|
|
bool no_perf;
|
2026-06-02 10:30:38 +03:00
|
|
|
bool warmup; // TODO: remove [TAG_LLAMA_GRAPH_NO_WARMUP]
|
2025-05-11 20:18:39 +08:00
|
|
|
bool op_offload;
|
2025-07-16 16:35:42 +03:00
|
|
|
bool kv_unified;
|
2026-01-15 16:39:17 +02:00
|
|
|
bool pipeline_parallel;
|
2025-01-03 10:18:53 +02:00
|
|
|
|
2026-06-12 09:21:06 +02:00
|
|
|
std::vector<bool> embeddings_layer_inp; // [n_layer()] extract input embeddings for layer
|
|
|
|
|
|
2026-05-16 20:06:23 +08:00
|
|
|
enum llama_context_type ctx_type;
|
2025-01-03 10:18:53 +02:00
|
|
|
enum llama_pooling_type pooling_type;
|
|
|
|
|
|
|
|
|
|
ggml_backend_sched_eval_callback cb_eval;
|
|
|
|
|
void * cb_eval_user_data;
|
2026-06-07 20:50:54 +08:00
|
|
|
|
|
|
|
|
llama_context * ctx_other;
|
2025-01-03 10:18:53 +02:00
|
|
|
};
|