MCPcopy Create free account
hub / github.com/appdevforall/CodeOnTheGo / llama_context

Method llama_context

subprojects/llama.cpp/src/llama-context.cpp:21–358  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19//
20
21llama_context::llama_context(
22 const llama_model & model,
23 llama_context_params params) :
24 model(model),
25 balloc(std::make_unique<llama_batch_allocr>(model.hparams.n_pos_per_embd())) {
26 // TODO warning when creating llama_context with awkward ctx size that is not a power of 2,
27 // may need to be backend-dependent
28 LLAMA_LOG_INFO("%s: constructing llama_context\n", __func__);
29
30 t_start_us = model.t_start_us;
31 t_load_us = model.t_load_us;
32
33 const auto & hparams = model.hparams;
34
35 cparams.n_seq_max = std::max(1u, params.n_seq_max);
36 if (cparams.n_seq_max > LLAMA_MAX_SEQ) {
37 throw std::runtime_error("n_seq_max must be <= " + std::to_string(LLAMA_MAX_SEQ));
38 }
39
40 cparams.n_threads = params.n_threads;
41 cparams.n_threads_batch = params.n_threads_batch;
42 cparams.yarn_ext_factor = params.yarn_ext_factor >= 0.0f ? params.yarn_ext_factor : hparams.yarn_ext_factor;
43 cparams.yarn_attn_factor = params.yarn_attn_factor >= 0.0f ? params.yarn_attn_factor : hparams.yarn_attn_factor;
44 cparams.yarn_beta_fast = params.yarn_beta_fast >= 0.0f ? params.yarn_beta_fast : hparams.yarn_beta_fast;
45 cparams.yarn_beta_slow = params.yarn_beta_slow >= 0.0f ? params.yarn_beta_slow : hparams.yarn_beta_slow;
46 cparams.embeddings = params.embeddings;
47 cparams.offload_kqv = params.offload_kqv;
48 cparams.no_perf = params.no_perf;
49 cparams.pooling_type = params.pooling_type;
50 cparams.warmup = false;
51
52 cparams.n_ctx = params.n_ctx == 0 ? hparams.n_ctx_train : params.n_ctx;
53 cparams.rope_freq_base = params.rope_freq_base == 0.0f ? hparams.rope_freq_base_train : params.rope_freq_base;
54 cparams.rope_freq_scale = params.rope_freq_scale == 0.0f ? hparams.rope_freq_scale_train : params.rope_freq_scale;
55
56 cparams.n_ctx_orig_yarn = params.yarn_orig_ctx != 0 ? params.yarn_orig_ctx :
57 hparams.n_ctx_orig_yarn != 0 ? hparams.n_ctx_orig_yarn :
58 hparams.n_ctx_train;
59
60 cparams.cb_eval = params.cb_eval;
61 cparams.cb_eval_user_data = params.cb_eval_user_data;
62
63 // Initialize backend samplers here so they are part of the sampling graph
64 // before the reserve passes run later in this function. This avoids a later
65 // re-reserve when graph nodes change.
66 if (params.samplers != nullptr && params.n_samplers > 0) {
67 for (size_t i = 0; i < params.n_samplers; ++i) {
68 const auto & config = params.samplers[i];
69
70 if (llama_sampler_chain_get(config.sampler, -1) == nullptr) {
71 throw std::runtime_error("the backend samplers must be of type llama_sampler_chain");
72 }
73
74 if (set_sampler(config.seq_id, config.sampler)) {
75 const int n_samplers = llama_sampler_chain_n(config.sampler);
76
77 LLAMA_LOG_INFO("%s: setting backend sampler for seq_id %d (n = %d)\n", __func__, config.seq_id, n_samplers);
78 }

Callers

nothing calls this directly

Calls 15

maxFunction · 0.85
to_stringFunction · 0.85
llama_sampler_chain_getFunction · 0.85
llama_sampler_chain_nFunction · 0.85
minFunction · 0.85
ggml_backend_dev_initFunction · 0.85
formatFunction · 0.85
ggml_backend_dev_nameFunction · 0.85
ggml_backend_dev_countFunction · 0.85
ggml_backend_dev_getFunction · 0.85

Tested by

no test coverage detected