mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2025-06-27 03:55:20 +00:00
arg : add --no-mmproj-offload (#13093)
* arg : add --no-mmproj-offload * Update common/arg.cpp
This commit is contained in:
@ -2140,6 +2140,13 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
|
|||||||
params.no_mmproj = true;
|
params.no_mmproj = true;
|
||||||
}
|
}
|
||||||
).set_examples(mmproj_examples));
|
).set_examples(mmproj_examples));
|
||||||
|
add_opt(common_arg(
|
||||||
|
{"--no-mmproj-offload"},
|
||||||
|
"do not offload multimodal projector to GPU",
|
||||||
|
[](common_params & params) {
|
||||||
|
params.mmproj_use_gpu = false;
|
||||||
|
}
|
||||||
|
).set_examples(mmproj_examples));
|
||||||
add_opt(common_arg(
|
add_opt(common_arg(
|
||||||
{"--image"}, "FILE",
|
{"--image"}, "FILE",
|
||||||
"path to an image file. use with multimodal models. Specify multiple times for batching",
|
"path to an image file. use with multimodal models. Specify multiple times for batching",
|
||||||
|
@ -342,6 +342,7 @@ struct common_params {
|
|||||||
|
|
||||||
// multimodal models (see examples/llava)
|
// multimodal models (see examples/llava)
|
||||||
struct common_params_model mmproj;
|
struct common_params_model mmproj;
|
||||||
|
bool mmproj_use_gpu = true; // use GPU for multimodal model
|
||||||
bool no_mmproj = false; // explicitly disable multimodal model
|
bool no_mmproj = false; // explicitly disable multimodal model
|
||||||
std::vector<std::string> image; // path to image file(s)
|
std::vector<std::string> image; // path to image file(s)
|
||||||
|
|
||||||
|
@ -40,7 +40,8 @@ static void show_additional_info(int /*argc*/, char ** argv) {
|
|||||||
"Usage: %s [options] -m <model> --mmproj <mmproj> --image <image> -p <prompt>\n\n"
|
"Usage: %s [options] -m <model> --mmproj <mmproj> --image <image> -p <prompt>\n\n"
|
||||||
" -m and --mmproj are required\n"
|
" -m and --mmproj are required\n"
|
||||||
" -hf user/repo can replace both -m and --mmproj in most cases\n"
|
" -hf user/repo can replace both -m and --mmproj in most cases\n"
|
||||||
" --image and -p are optional, if NOT provided, the CLI will run in chat mode\n",
|
" --image and -p are optional, if NOT provided, the CLI will run in chat mode\n"
|
||||||
|
" to disable using GPU for mmproj model, add --no-mmproj-offload\n",
|
||||||
argv[0]
|
argv[0]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -112,10 +113,10 @@ struct mtmd_cli_context {
|
|||||||
void init_vision_context(common_params & params) {
|
void init_vision_context(common_params & params) {
|
||||||
const char * clip_path = params.mmproj.path.c_str();
|
const char * clip_path = params.mmproj.path.c_str();
|
||||||
ctx_vision.reset(mtmd_init_from_file(clip_path, model, mtmd_context_params{
|
ctx_vision.reset(mtmd_init_from_file(clip_path, model, mtmd_context_params{
|
||||||
/* use_gpu */ true,
|
/* use_gpu */ params.mmproj_use_gpu,
|
||||||
/* timings */ true,
|
/* timings */ true,
|
||||||
/* n_threads */ params.cpuparams.n_threads,
|
/* n_threads */ params.cpuparams.n_threads,
|
||||||
/* verbosity */ GGML_LOG_LEVEL_INFO,
|
/* verbosity */ params.verbosity > 0 ? GGML_LOG_LEVEL_DEBUG : GGML_LOG_LEVEL_INFO,
|
||||||
}));
|
}));
|
||||||
if (!ctx_vision.get()) {
|
if (!ctx_vision.get()) {
|
||||||
LOG_ERR("Failed to load vision model from %s\n", clip_path);
|
LOG_ERR("Failed to load vision model from %s\n", clip_path);
|
||||||
|
Reference in New Issue
Block a user