common : enable default speculative config

Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp
This commit is contained in:
Georgi Gerganov
2026-09-04 16:25:14 +03:00
parent d646c9d155
commit 7c2e0dea43
10 changed files with 196 additions and 25 deletions
+111
View File
@@ -254,6 +254,117 @@ static void test(void) {
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_SPECULATIVE));
assert(params.speculative.draft.n_max == 123);
{
const auto types_ngram_mod = std::vector<enum common_speculative_type>{ COMMON_SPECULATIVE_TYPE_NGRAM_MOD };
const auto types_draft_mtp = std::vector<enum common_speculative_type>{ COMMON_SPECULATIVE_TYPE_DRAFT_MTP };
const auto types_none = std::vector<enum common_speculative_type>{ COMMON_SPECULATIVE_TYPE_NONE };
{
common_params spec_params;
argv = {"binary_name"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == types_ngram_mod);
}
{
common_params spec_params;
argv = {"binary_name", "--no-spec-type", "ngram-mod"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == types_none);
}
{
common_params spec_params;
argv = {"binary_name", "--spec-type", "draft-mtp"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == std::vector<enum common_speculative_type>({ COMMON_SPECULATIVE_TYPE_NGRAM_MOD, COMMON_SPECULATIVE_TYPE_DRAFT_MTP }));
}
{
common_params spec_params;
argv = {"binary_name", "--spec-type", "ngram-mod"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == types_ngram_mod);
}
{
common_params spec_params;
argv = {"binary_name", "--spec-type", "ngram-mod,draft-mtp"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == std::vector<enum common_speculative_type>({ COMMON_SPECULATIVE_TYPE_NGRAM_MOD, COMMON_SPECULATIVE_TYPE_DRAFT_MTP }));
}
{
common_params spec_params;
argv = {"binary_name", "--no-spec-type", "ngram-mod", "--spec-type", "draft-mtp"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == types_draft_mtp);
}
{
common_params spec_params;
argv = {"binary_name", "--spec-type", "draft-mtp", "--no-spec-type", "ngram-mod"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == types_draft_mtp);
}
{
common_params spec_params;
argv = {"binary_name", "--no-spec-type", "draft-mtp"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == types_ngram_mod);
}
{
common_params spec_params;
argv = {"binary_name", "--no-spec-type", "ngram-mod", "--spec-type", "ngram-mod"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == types_ngram_mod);
}
{
common_params spec_params;
argv = {"binary_name", "--no-spec-type", "ngram-mod", "--spec-type", "ngram-mod,draft-mtp"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == std::vector<enum common_speculative_type>({ COMMON_SPECULATIVE_TYPE_NGRAM_MOD, COMMON_SPECULATIVE_TYPE_DRAFT_MTP }));
}
{
common_params spec_params;
argv = {"binary_name", "--spec-type", "none"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == types_none);
}
{
common_params spec_params;
argv = {"binary_name", "--no-spec-type", "none"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == types_none);
}
{
common_params spec_params;
argv = {"binary_name", "--spec-type", "none", "--spec-type", "draft-mtp"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == types_draft_mtp);
}
{
common_params spec_params;
argv = {"binary_name", "--spec-default"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == types_ngram_mod);
}
{
common_params spec_params;
argv = {"binary_name", "--spec-default", "--no-spec-type", "ngram-mod"};
assert(true == common_params_parse(argv.size(), list_str_to_char(argv).data(), spec_params, LLAMA_EXAMPLE_SERVER));
assert(spec_params.speculative.types == types_none);
}
}
{
common_params synth_params;
argv = {"binary_name", "--spec-synth-len", "3.4"};