Skip to content

Commit 8513bb8

Browse files
committed
common : Changed tuple to struct (TODO fix)
Use struct `llama_init_result` to replace the previous std::tuple<struct llama_model *, struct llama_context *>
1 parent 0fbbd88 commit 8513bb8

File tree

18 files changed

+90
-58
lines changed

18 files changed

+90
-58
lines changed

common/common.cpp

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2039,8 +2039,16 @@ std::string fs_get_cache_file(const std::string & filename) {
20392039
//
20402040
// Model utils
20412041
//
2042+
struct llama_init_result llama_init_default_params() {
2043+
struct llama_init_result result = {
2044+
/*.llama_model =*/ nullptr,
2045+
/*.llama_context =*/ nullptr,
2046+
};
2047+
return result;
2048+
}
20422049

2043-
std::tuple<struct llama_model *, struct llama_context *> llama_init_from_gpt_params(gpt_params & params) {
2050+
struct llama_init_result llama_init_from_gpt_params(gpt_params & params) {
2051+
auto iparams = llama_init_default_params();
20442052
auto mparams = llama_model_params_from_gpt_params(params);
20452053

20462054
llama_model * model = nullptr;
@@ -2055,7 +2063,7 @@ std::tuple<struct llama_model *, struct llama_context *> llama_init_from_gpt_par
20552063

20562064
if (model == NULL) {
20572065
fprintf(stderr, "%s: error: failed to load model '%s'\n", __func__, params.model.c_str());
2058-
return std::make_tuple(nullptr, nullptr);
2066+
return iparams;
20592067
}
20602068

20612069
auto cparams = llama_context_params_from_gpt_params(params);
@@ -2064,7 +2072,7 @@ std::tuple<struct llama_model *, struct llama_context *> llama_init_from_gpt_par
20642072
if (lctx == NULL) {
20652073
fprintf(stderr, "%s: error: failed to create context with model '%s'\n", __func__, params.model.c_str());
20662074
llama_free_model(model);
2067-
return std::make_tuple(nullptr, nullptr);
2075+
return iparams;
20682076
}
20692077

20702078
if (!params.control_vectors.empty()) {
@@ -2075,7 +2083,7 @@ std::tuple<struct llama_model *, struct llama_context *> llama_init_from_gpt_par
20752083
if (cvec.n_embd == -1) {
20762084
llama_free(lctx);
20772085
llama_free_model(model);
2078-
return std::make_tuple(nullptr, nullptr);
2086+
return iparams;
20792087
}
20802088

20812089
int err = llama_control_vector_apply(lctx,
@@ -2087,7 +2095,7 @@ std::tuple<struct llama_model *, struct llama_context *> llama_init_from_gpt_par
20872095
if (err) {
20882096
llama_free(lctx);
20892097
llama_free_model(model);
2090-
return std::make_tuple(nullptr, nullptr);
2098+
return iparams;
20912099
}
20922100
}
20932101

@@ -2099,7 +2107,7 @@ std::tuple<struct llama_model *, struct llama_context *> llama_init_from_gpt_par
20992107
fprintf(stderr, "%s: error: failed to apply lora adapter\n", __func__);
21002108
llama_free(lctx);
21012109
llama_free_model(model);
2102-
return std::make_tuple(nullptr, nullptr);
2110+
return iparams;
21032111
}
21042112
llama_lora_adapter_set(lctx, adapter, lora_scale);
21052113
}
@@ -2135,7 +2143,9 @@ std::tuple<struct llama_model *, struct llama_context *> llama_init_from_gpt_par
21352143
llama_reset_timings(lctx);
21362144
}
21372145

2138-
return std::make_tuple(model, lctx);
2146+
iparams.model = model;
2147+
iparams.context = lctx;
2148+
return iparams;
21392149
}
21402150

21412151
struct llama_model_params llama_model_params_from_gpt_params(const gpt_params & params) {

common/common.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -308,8 +308,13 @@ std::string fs_get_cache_file(const std::string & filename);
308308
// Model utils
309309
//
310310

311-
// TODO: avoid tuplue, use struct
312-
std::tuple<struct llama_model *, struct llama_context *> llama_init_from_gpt_params(gpt_params & params);
311+
struct llama_init_result {
312+
struct llama_model * model;
313+
struct llama_context * context;
314+
};
315+
316+
struct llama_init_result llama_init_default_params();
317+
struct llama_init_result llama_init_from_gpt_params(gpt_params & params);
313318

314319
struct llama_model_params llama_model_params_from_gpt_params (const gpt_params & params);
315320
struct llama_context_params llama_context_params_from_gpt_params(const gpt_params & params);

examples/cvector-generator/cvector-generator.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -414,9 +414,10 @@ int main(int argc, char ** argv) {
414414
llama_numa_init(params.numa);
415415

416416
// load the model to get hparams
417-
llama_model * model;
418-
llama_context * ctx;
419-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
417+
llama_init_result llama_init = llama_init_from_gpt_params(params);
418+
419+
llama_model * model = llama_init.model;
420+
llama_context * ctx = llama_init.context;
420421

421422
// int n_ctx = llama_n_ctx(ctx);
422423
int n_layers = llama_n_layer(model);

examples/embedding/embedding.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,11 @@ int main(int argc, char ** argv) {
7979
llama_backend_init();
8080
llama_numa_init(params.numa);
8181

82-
llama_model * model;
83-
llama_context * ctx;
84-
8582
// load the model
86-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
83+
llama_init_result llama_init = llama_init_from_gpt_params(params);
84+
85+
llama_model * model = llama_init.model;
86+
llama_context * ctx = llama_init.context;
8787
if (model == NULL) {
8888
fprintf(stderr, "%s: error: unable to load model\n", __func__);
8989
return 1;

examples/eval-callback/eval-callback.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,10 @@ int main(int argc, char ** argv) {
163163
params.warmup = false;
164164

165165
// init
166-
llama_model * model;
167-
llama_context * ctx;
168-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
166+
llama_init_result llama_init = llama_init_from_gpt_params(params);
167+
168+
llama_model * model = llama_init.model;
169+
llama_context * ctx = llama_init.context;
169170
if (model == nullptr || ctx == nullptr) {
170171
fprintf(stderr, "%s : failed to init\n", __func__);
171172
return 1;

examples/imatrix/imatrix.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -611,10 +611,10 @@ int main(int argc, char ** argv) {
611611
params.warmup = false;
612612

613613
// init
614-
llama_model * model;
615-
llama_context * ctx;
614+
llama_init_result llama_init = llama_init_from_gpt_params(params);
616615

617-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
616+
llama_model * model = llama_init.model;
617+
llama_context * ctx = llama_init.context;
618618
if (model == nullptr || ctx == nullptr) {
619619
fprintf(stderr, "%s : failed to init\n", __func__);
620620
return 1;

examples/infill/infill.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,10 @@ int main(int argc, char ** argv) {
179179

180180
// load the model and apply lora adapter, if any
181181
LOG("%s: load the model and apply lora adapter, if any\n", __func__);
182-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
182+
llama_init_result llama_init = llama_init_from_gpt_params(params);
183+
184+
model = llama_init.model;
185+
ctx = llama_init.context;
183186

184187
if (model == NULL) {
185188
LOG_TEE("%s: error: unable to load model\n", __func__);

examples/lookahead/lookahead.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,11 @@ int main(int argc, char ** argv) {
5858
llama_backend_init();
5959
llama_numa_init(params.numa);
6060

61-
llama_model * model = NULL;
62-
llama_context * ctx = NULL;
63-
6461
// load the target model
65-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
62+
llama_init_result llama_init = llama_init_from_gpt_params(params);
63+
64+
llama_model * model = llama_init.model;
65+
llama_context * ctx = llama_init.context;
6666

6767
// Tokenize the prompt
6868
std::vector<llama_token> inp;

examples/lookup/lookup-create.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ int main(int argc, char ** argv){
2222
llama_backend_init();
2323
llama_numa_init(params.numa);
2424

25-
llama_model * model = NULL;
26-
llama_context * ctx = NULL;
27-
2825
// load the model
29-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
26+
llama_init_result llama_init = llama_init_from_gpt_params(params);
27+
28+
llama_model * model = llama_init.model;
29+
llama_context * ctx = llama_init.context;
3030
GGML_ASSERT(model != nullptr);
3131

3232
// tokenize the prompt

examples/lookup/lookup-stats.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ int main(int argc, char ** argv){
2626
llama_backend_init();
2727
llama_numa_init(params.numa);
2828

29-
llama_model * model = NULL;
30-
llama_context * ctx = NULL;
31-
3229
// load the model
33-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
30+
llama_init_result llama_init = llama_init_from_gpt_params(params);
31+
32+
llama_model * model = llama_init.model;
33+
llama_context * ctx = llama_init.context;
3434

3535
// tokenize the prompt
3636
std::vector<llama_token> inp;

examples/lookup/lookup.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@ int main(int argc, char ** argv){
3434
llama_backend_init();
3535
llama_numa_init(params.numa);
3636

37-
llama_model * model = NULL;
38-
llama_context * ctx = NULL;
39-
4037
// load the model
41-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
38+
llama_init_result llama_init = llama_init_from_gpt_params(params);
39+
40+
llama_model * model = llama_init.model;
41+
llama_context * ctx = llama_init.context;
4242

4343
// tokenize the prompt
4444
std::vector<llama_token> inp;

examples/main/main.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,10 @@ int main(int argc, char ** argv) {
207207

208208
// load the model and apply lora adapter, if any
209209
LOG("%s: load the model and apply lora adapter, if any\n", __func__);
210-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
210+
llama_init_result llama_init = llama_init_from_gpt_params(params);
211+
212+
model = llama_init.model;
213+
ctx = llama_init.context;
211214
if (sparams.cfg_scale > 1.f) {
212215
struct llama_context_params lparams = llama_context_params_from_gpt_params(params);
213216
ctx_guidance = llama_new_context_with_model(model, lparams);

examples/parallel/parallel.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,11 @@ int main(int argc, char ** argv) {
129129
llama_backend_init();
130130
llama_numa_init(params.numa);
131131

132-
llama_model * model = NULL;
133-
llama_context * ctx = NULL;
134-
135132
// load the target model
136-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
133+
llama_init_result llama_init = llama_init_from_gpt_params(params);
134+
135+
llama_model * model = llama_init.model;
136+
llama_context * ctx = llama_init.context;
137137

138138
// load the prompts from an external file if there are any
139139
if (params.prompt.empty()) {

examples/perplexity/perplexity.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2018,11 +2018,11 @@ int main(int argc, char ** argv) {
20182018
llama_backend_init();
20192019
llama_numa_init(params.numa);
20202020

2021-
llama_model * model;
2022-
llama_context * ctx;
2023-
20242021
// load the model and apply lora adapter, if any
2025-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
2022+
llama_init_result llama_init = llama_init_from_gpt_params(params);
2023+
2024+
llama_model * model = llama_init.model;
2025+
llama_context * ctx = llama_init.context;
20262026
if (model == NULL) {
20272027
fprintf(stderr, "%s: error: unable to load model\n", __func__);
20282028
return 1;

examples/retrieval/retrieval.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,11 +148,12 @@ int main(int argc, char ** argv) {
148148
llama_backend_init();
149149
llama_numa_init(params.numa);
150150

151-
llama_model * model;
152-
llama_context * ctx;
153-
154151
// load the model
155-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
152+
llama_init_result llama_init = llama_init_from_gpt_params(params);
153+
154+
llama_model * model = llama_init.model;
155+
llama_context * ctx = llama_init.context;
156+
156157
if (model == NULL) {
157158
fprintf(stderr, "%s: error: unable to load model\n", __func__);
158159
return 1;

examples/save-load-state/save-load-state.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,11 @@ int main(int argc, char ** argv) {
2828
std::string result2;
2929

3030
// init
31-
llama_model * model;
32-
llama_context * ctx;
31+
llama_init_result llama_init = llama_init_from_gpt_params(params);
32+
33+
llama_model * model = llama_init.model;
34+
llama_context * ctx = llama_init.context;
3335

34-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
3536
if (model == nullptr || ctx == nullptr) {
3637
fprintf(stderr, "%s : failed to init\n", __func__);
3738
return 1;

examples/server/server.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,10 @@ struct server_context {
677677
// dedicate one sequence to the system prompt
678678
params.n_parallel += 1;
679679

680-
std::tie(model, ctx) = llama_init_from_gpt_params(params);
680+
llama_init_result llama_init = llama_init_from_gpt_params(params);
681+
682+
model = llama_init.model;
683+
ctx = llama_init.context;
681684
params.n_parallel -= 1; // but be sneaky about it
682685
if (model == nullptr) {
683686
LOG_ERROR("unable to load model", {{"model", params.model}});

examples/speculative/speculative.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ int main(int argc, char ** argv) {
6666
llama_context * ctx_dft = NULL;
6767

6868
// load the target model
69-
std::tie(model_tgt, ctx_tgt) = llama_init_from_gpt_params(params);
69+
llama_init_result llama_init_tgt = llama_init_from_gpt_params(params);
70+
model_tgt = llama_init_tgt.model;
71+
ctx_tgt = llama_init_tgt.context;
7072

7173
// load the draft model
7274
params.model = params.model_draft;
@@ -75,7 +77,9 @@ int main(int argc, char ** argv) {
7577
params.n_threads = params.n_threads_draft;
7678
}
7779
params.n_threads_batch = params.n_threads_batch_draft;
78-
std::tie(model_dft, ctx_dft) = llama_init_from_gpt_params(params);
80+
llama_init_result llama_init_dft = llama_init_from_gpt_params(params);
81+
model_dft = llama_init_dft.model;
82+
ctx_dft = llama_init_dft.context;
7983

8084
const bool vocab_type_tgt = llama_vocab_type(model_tgt);
8185
LOG("vocab_type tgt: %d\n", vocab_type_tgt);

0 commit comments

Comments
 (0)