Skip to content

Commit 67c7779

Browse files
authored
examples : add llama_init_from_gpt_params() common function (#1290)
Signed-off-by: deadprogram <[email protected]>
1 parent 0e6cbff commit 67c7779

File tree

5 files changed

+51
-76
lines changed

5 files changed

+51
-76
lines changed

examples/common.cpp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,37 @@ std::vector<llama_token> llama_tokenize(struct llama_context * ctx, const std::s
405405
return res;
406406
}
407407

408+
struct llama_context * llama_init_from_gpt_params(const gpt_params & params) {
409+
auto lparams = llama_context_default_params();
410+
411+
lparams.n_ctx = params.n_ctx;
412+
lparams.n_parts = params.n_parts;
413+
lparams.seed = params.seed;
414+
lparams.f16_kv = params.memory_f16;
415+
lparams.use_mmap = params.use_mmap;
416+
lparams.use_mlock = params.use_mlock;
417+
418+
llama_context * lctx = llama_init_from_file(params.model.c_str(), lparams);
419+
420+
if (lctx == NULL) {
421+
fprintf(stderr, "%s: error: failed to load model '%s'\n", __func__, params.model.c_str());
422+
return NULL;
423+
}
424+
425+
if (!params.lora_adapter.empty()) {
426+
int err = llama_apply_lora_from_file(lctx,
427+
params.lora_adapter.c_str(),
428+
params.lora_base.empty() ? NULL : params.lora_base.c_str(),
429+
params.n_threads);
430+
if (err != 0) {
431+
fprintf(stderr, "%s: error: failed to apply lora adapter\n", __func__);
432+
return NULL;
433+
}
434+
}
435+
436+
return lctx;
437+
}
438+
408439
/* Keep track of current color of output, and emit ANSI code if it changes. */
409440
void set_console_color(console_state & con_st, console_color_t color) {
410441
if (con_st.use_color && con_st.color != color) {

examples/common.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,12 @@ std::string gpt_random_prompt(std::mt19937 & rng);
7777

7878
std::vector<llama_token> llama_tokenize(struct llama_context * ctx, const std::string & text, bool add_bos);
7979

80+
//
81+
// Model utils
82+
//
83+
84+
struct llama_context * llama_init_from_gpt_params(const gpt_params & params);
85+
8086
//
8187
// Console utils
8288
//

examples/embedding/embedding.cpp

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -35,24 +35,10 @@ int main(int argc, char ** argv) {
3535
llama_context * ctx;
3636

3737
// load the model
38-
{
39-
auto lparams = llama_context_default_params();
40-
41-
lparams.n_ctx = params.n_ctx;
42-
lparams.n_parts = params.n_parts;
43-
lparams.seed = params.seed;
44-
lparams.f16_kv = params.memory_f16;
45-
lparams.logits_all = params.perplexity;
46-
lparams.use_mmap = params.use_mmap;
47-
lparams.use_mlock = params.use_mlock;
48-
lparams.embedding = params.embedding;
49-
50-
ctx = llama_init_from_file(params.model.c_str(), lparams);
51-
52-
if (ctx == NULL) {
53-
fprintf(stderr, "%s: error: failed to load model '%s'\n", __func__, params.model.c_str());
54-
return 1;
55-
}
38+
ctx = llama_init_from_gpt_params(params);
39+
if (ctx == NULL) {
40+
fprintf(stderr, "%s: error: unable to load model\n", __func__);
41+
return 1;
5642
}
5743

5844
// print system information

examples/main/main.cpp

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -101,34 +101,11 @@ int main(int argc, char ** argv) {
101101
llama_context * ctx;
102102
g_ctx = &ctx;
103103

104-
// load the model
105-
{
106-
auto lparams = llama_context_default_params();
107-
108-
lparams.n_ctx = params.n_ctx;
109-
lparams.n_parts = params.n_parts;
110-
lparams.seed = params.seed;
111-
lparams.f16_kv = params.memory_f16;
112-
lparams.use_mmap = params.use_mmap;
113-
lparams.use_mlock = params.use_mlock;
114-
115-
ctx = llama_init_from_file(params.model.c_str(), lparams);
116-
117-
if (ctx == NULL) {
118-
fprintf(stderr, "%s: error: failed to load model '%s'\n", __func__, params.model.c_str());
119-
return 1;
120-
}
121-
}
122-
123-
if (!params.lora_adapter.empty()) {
124-
int err = llama_apply_lora_from_file(ctx,
125-
params.lora_adapter.c_str(),
126-
params.lora_base.empty() ? NULL : params.lora_base.c_str(),
127-
params.n_threads);
128-
if (err != 0) {
129-
fprintf(stderr, "%s: error: failed to apply lora adapter\n", __func__);
130-
return 1;
131-
}
104+
// load the model and apply lora adapter, if any
105+
ctx = llama_init_from_gpt_params(params);
106+
if (ctx == NULL) {
107+
fprintf(stderr, "%s: error: unable to load model\n", __func__);
108+
return 1;
132109
}
133110

134111
// print system information

examples/perplexity/perplexity.cpp

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -122,36 +122,11 @@ int main(int argc, char ** argv) {
122122

123123
llama_context * ctx;
124124

125-
// load the model
126-
{
127-
auto lparams = llama_context_default_params();
128-
129-
lparams.n_ctx = params.n_ctx;
130-
lparams.n_parts = params.n_parts;
131-
lparams.seed = params.seed;
132-
lparams.f16_kv = params.memory_f16;
133-
lparams.logits_all = params.perplexity;
134-
lparams.use_mmap = params.use_mmap;
135-
lparams.use_mlock = params.use_mlock;
136-
lparams.embedding = params.embedding;
137-
138-
ctx = llama_init_from_file(params.model.c_str(), lparams);
139-
140-
if (ctx == NULL) {
141-
fprintf(stderr, "%s: error: failed to load model '%s'\n", __func__, params.model.c_str());
142-
return 1;
143-
}
144-
}
145-
146-
if (!params.lora_adapter.empty()) {
147-
int err = llama_apply_lora_from_file(ctx,
148-
params.lora_adapter.c_str(),
149-
params.lora_base.empty() ? NULL : params.lora_base.c_str(),
150-
params.n_threads);
151-
if (err != 0) {
152-
fprintf(stderr, "%s: error: failed to apply lora adapter\n", __func__);
153-
return 1;
154-
}
125+
// load the model and apply lora adapter, if any
126+
ctx = llama_init_from_gpt_params(params);
127+
if (ctx == NULL) {
128+
fprintf(stderr, "%s: error: unable to load model\n", __func__);
129+
return 1;
155130
}
156131

157132
// print system information

0 commit comments

Comments
 (0)