|
|
@@ -1109,6 +1109,25 @@ common_init_result::common_init_result(common_params & params) :
|
|
|
|
|
|
const llama_vocab * vocab = llama_model_get_vocab(model);
|
|
|
|
|
|
+ // load and optionally apply lora adapters (must be loaded before context creation)
|
|
|
+ for (auto & la : params.lora_adapters) {
|
|
|
+ llama_adapter_lora_ptr lora;
|
|
|
+ lora.reset(llama_adapter_lora_init(model, la.path.c_str()));
|
|
|
+ if (lora == nullptr) {
|
|
|
+ LOG_ERR("%s: failed to load lora adapter '%s'\n", __func__, la.path.c_str());
|
|
|
+ pimpl->model.reset(model);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ char buf[1024];
|
|
|
+ la.ptr = lora.get();
|
|
|
+ llama_adapter_meta_val_str(la.ptr, "adapter.lora.task_name", buf, sizeof(buf));
|
|
|
+ la.task_name = buf;
|
|
|
+ llama_adapter_meta_val_str(la.ptr, "adapter.lora.prompt_prefix", buf, sizeof(buf));
|
|
|
+ la.prompt_prefix = buf;
|
|
|
+ pimpl->lora.emplace_back(std::move(lora)); // copy to list of loaded adapters
|
|
|
+ }
|
|
|
+
|
|
|
// updates params.sampling
|
|
|
// TODO: fix naming
|
|
|
common_init_sampler_from_model(model, params.sampling);
|
|
|
@@ -1245,24 +1264,6 @@ common_init_result_ptr common_init_from_params(common_params & params) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // load and optionally apply lora adapters
|
|
|
- for (auto & la : params.lora_adapters) {
|
|
|
- llama_adapter_lora_ptr lora;
|
|
|
- lora.reset(llama_adapter_lora_init(model, la.path.c_str()));
|
|
|
- if (lora == nullptr) {
|
|
|
- LOG_ERR("%s: failed to apply lora adapter '%s'\n", __func__, la.path.c_str());
|
|
|
- return res;
|
|
|
- }
|
|
|
-
|
|
|
- char buf[1024];
|
|
|
- la.ptr = lora.get();
|
|
|
- llama_adapter_meta_val_str(la.ptr, "adapter.lora.task_name", buf, sizeof(buf));
|
|
|
- la.task_name = buf;
|
|
|
- llama_adapter_meta_val_str(la.ptr, "adapter.lora.prompt_prefix", buf, sizeof(buf));
|
|
|
- la.prompt_prefix = buf;
|
|
|
- res->lora().emplace_back(std::move(lora)); // copy to list of loaded adapters
|
|
|
- }
|
|
|
-
|
|
|
if (!params.lora_init_without_apply) {
|
|
|
common_set_adapter_lora(lctx, params.lora_adapters);
|
|
|
}
|