From 67c77799e025a8425c23a6a0599c007f46ded590 Mon Sep 17 00:00:00 2001 From: Ron Evans Date: Tue, 2 May 2023 22:39:51 +0200 Subject: examples : add llama_init_from_gpt_params() common function (#1290) Signed-off-by: deadprogram --- examples/common.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'examples/common.cpp') diff --git a/examples/common.cpp b/examples/common.cpp index 2bf0dc5..9b23b1f 100644 --- a/examples/common.cpp +++ b/examples/common.cpp @@ -405,6 +405,37 @@ std::vector llama_tokenize(struct llama_context * ctx, const std::s return res; } +struct llama_context * llama_init_from_gpt_params(const gpt_params & params) { + auto lparams = llama_context_default_params(); + + lparams.n_ctx = params.n_ctx; + lparams.n_parts = params.n_parts; + lparams.seed = params.seed; + lparams.f16_kv = params.memory_f16; + lparams.use_mmap = params.use_mmap; + lparams.use_mlock = params.use_mlock; + + llama_context * lctx = llama_init_from_file(params.model.c_str(), lparams); + + if (lctx == NULL) { + fprintf(stderr, "%s: error: failed to load model '%s'\n", __func__, params.model.c_str()); + return NULL; + } + + if (!params.lora_adapter.empty()) { + int err = llama_apply_lora_from_file(lctx, + params.lora_adapter.c_str(), + params.lora_base.empty() ? NULL : params.lora_base.c_str(), + params.n_threads); + if (err != 0) { + fprintf(stderr, "%s: error: failed to apply lora adapter\n", __func__); + return NULL; + } + } + + return lctx; +} + /* Keep track of current color of output, and emit ANSI code if it changes. */ void set_console_color(console_state & con_st, console_color_t color) { if (con_st.use_color && con_st.color != color) { -- cgit v1.2.3