Add compatibility with #801
This commit is contained in:
parent
87c518bb3d
commit
c920f00136
2 changed files with 10 additions and 3 deletions
|
@ -145,6 +145,7 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
params.lora_adapter = argv[i];
|
params.lora_adapter = argv[i];
|
||||||
|
params.use_mmap = false;
|
||||||
} else if (arg == "-i" || arg == "--interactive") {
|
} else if (arg == "-i" || arg == "--interactive") {
|
||||||
params.interactive = true;
|
params.interactive = true;
|
||||||
} else if (arg == "--embedding") {
|
} else if (arg == "--embedding") {
|
||||||
|
@ -248,7 +249,7 @@ void gpt_print_usage(int /*argc*/, char ** argv, const gpt_params & params) {
|
||||||
}
|
}
|
||||||
fprintf(stderr, " --mtest compute maximum memory usage\n");
|
fprintf(stderr, " --mtest compute maximum memory usage\n");
|
||||||
fprintf(stderr, " --verbose-prompt print prompt before generation\n");
|
fprintf(stderr, " --verbose-prompt print prompt before generation\n");
|
||||||
fprintf(stderr, " --lora FNAME apply LoRA adapter\n");
|
fprintf(stderr, " --lora FNAME apply LoRA adapter (implies --no-mmap)\n");
|
||||||
fprintf(stderr, " -m FNAME, --model FNAME\n");
|
fprintf(stderr, " -m FNAME, --model FNAME\n");
|
||||||
fprintf(stderr, " model path (default: %s)\n", params.model.c_str());
|
fprintf(stderr, " model path (default: %s)\n", params.model.c_str());
|
||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
|
|
10
llama.cpp
10
llama.cpp
|
@ -1808,6 +1808,12 @@ int llama_apply_lora_from_file(struct llama_context * ctx, const char * path_lor
|
||||||
ggml_context* lora_ctx = ggml_init(params);
|
ggml_context* lora_ctx = ggml_init(params);
|
||||||
std::unordered_map<std::string, struct ggml_tensor *> lora_tensors;
|
std::unordered_map<std::string, struct ggml_tensor *> lora_tensors;
|
||||||
|
|
||||||
|
// create a name -> tensor map of the model to accelerate lookups
|
||||||
|
std::unordered_map<std::string, struct ggml_tensor*> model_tensors;
|
||||||
|
for (auto & kv: model.tensors_by_name) {
|
||||||
|
model_tensors.insert(kv);
|
||||||
|
}
|
||||||
|
|
||||||
fprintf(stderr, "%s: ", __func__);
|
fprintf(stderr, "%s: ", __func__);
|
||||||
|
|
||||||
// read tensors and apply
|
// read tensors and apply
|
||||||
|
@ -1847,7 +1853,7 @@ int llama_apply_lora_from_file(struct llama_context * ctx, const char * path_lor
|
||||||
base_name.erase(pos);
|
base_name.erase(pos);
|
||||||
// fprintf(stderr, "%s: %s => %s (lora type %s) ", __func__, name.c_str(),base_name.c_str(), lora_type.c_str());
|
// fprintf(stderr, "%s: %s => %s (lora type %s) ", __func__, name.c_str(),base_name.c_str(), lora_type.c_str());
|
||||||
|
|
||||||
if (model.tensors.find(base_name.data()) == model.tensors.end()) {
|
if (model_tensors.find(base_name.data()) == model_tensors.end()) {
|
||||||
fprintf(stderr, "%s: unknown tensor '%s' in lora adapter\n", __func__, name.data());
|
fprintf(stderr, "%s: unknown tensor '%s' in lora adapter\n", __func__, name.data());
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -1886,7 +1892,7 @@ int llama_apply_lora_from_file(struct llama_context * ctx, const char * path_lor
|
||||||
if (lora_tensors.find(base_name + ".loraA") != lora_tensors.end() &&
|
if (lora_tensors.find(base_name + ".loraA") != lora_tensors.end() &&
|
||||||
lora_tensors.find(base_name + ".loraB") != lora_tensors.end()) {
|
lora_tensors.find(base_name + ".loraB") != lora_tensors.end()) {
|
||||||
|
|
||||||
ggml_tensor * tensor = model.tensors[base_name];
|
ggml_tensor * tensor = model_tensors[base_name];
|
||||||
ggml_tensor * loraA = lora_tensors[base_name + ".loraA"];
|
ggml_tensor * loraA = lora_tensors[base_name + ".loraA"];
|
||||||
ggml_tensor * loraB = lora_tensors[base_name + ".loraB"];
|
ggml_tensor * loraB = lora_tensors[base_name + ".loraB"];
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue