Skip to content

Commit 4123652

Browse files
deadprogramDannyDaemonic
authored andcommitted
examples : add llama_init_from_gpt_params() common function (ggml-org#1290)
Signed-off-by: deadprogram <[email protected]>
1 parent 924df1a commit 4123652

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
@@ -464,6 +464,37 @@ std::vector<llama_token> llama_tokenize(struct llama_context * ctx, const std::s
464464
return res;
465465
}
466466

467+
struct llama_context * llama_init_from_gpt_params(const gpt_params & params) {
468+
auto lparams = llama_context_default_params();
469+
470+
lparams.n_ctx = params.n_ctx;
471+
lparams.n_parts = params.n_parts;
472+
lparams.seed = params.seed;
473+
lparams.f16_kv = params.memory_f16;
474+
lparams.use_mmap = params.use_mmap;
475+
lparams.use_mlock = params.use_mlock;
476+
477+
llama_context * lctx = llama_init_from_file(params.model.c_str(), lparams);
478+
479+
if (lctx == NULL) {
480+
fprintf(stderr, "%s: error: failed to load model '%s'\n", __func__, params.model.c_str());
481+
return NULL;
482+
}
483+
484+
if (!params.lora_adapter.empty()) {
485+
int err = llama_apply_lora_from_file(lctx,
486+
params.lora_adapter.c_str(),
487+
params.lora_base.empty() ? NULL : params.lora_base.c_str(),
488+
params.n_threads);
489+
if (err != 0) {
490+
fprintf(stderr, "%s: error: failed to apply lora adapter\n", __func__);
491+
return NULL;
492+
}
493+
}
494+
495+
return lctx;
496+
}
497+
467498
/* Keep track of current color of output, and emit ANSI code if it changes. */
468499
void set_console_color(console_state & con_st, console_color_t color) {
469500
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)