Provide API to gtet the model arch string

This commit is contained in:
Kawrakow 2026-06-17 16:18:32 +00:00
parent 2ba9c2f404
commit dc81d79cb6
3 changed files with 14 additions and 8 deletions

View File

@ -2565,14 +2565,8 @@ static bool mtp_model_uses_recurrent_conditioning(const common_speculative_state
return false;
}
char arch[64] = {};
const int32_t arch_len = llama_model_meta_val_str(model, "general.architecture", arch, sizeof(arch));
if (arch_len <= 0) {
return false;
}
const std::string arch_str(arch, std::min<size_t>((size_t) arch_len, sizeof(arch) - 1));
return arch_str == "qwen35" || arch_str == "qwen35moe";
std::string arch{llama_model_arch_string(model)};
return arch == "qwen35" || arch == "qwen35moe";
}
static void mtp_clear_target_hidden(common_speculative_state_mtp & state, llama_seq_id seq_id) {

View File

@ -698,6 +698,8 @@ extern "C" {
LLAMA_API bool llama_model_is_split_mode_graph(const struct llama_model * model);
LLAMA_API const char * llama_model_arch_string(const struct llama_model * model);
// Returns 0 on success
LLAMA_API uint32_t llama_model_quantize(
const char * fname_inp,

View File

@ -1,5 +1,6 @@
#include "llama-arch.h"
#include "llama-impl.h"
#include "llama-model.h"
#include <map>
@ -101,6 +102,15 @@ llm_arch llm_arch_from_string(const std::string & name) {
return LLM_ARCH_UNKNOWN;
}
const char * llama_model_arch_string(const struct llama_model * model) {
static const char * unknown = "unknown";
if (!model) return unknown;
if (auto it = LLM_ARCH_NAMES.find(model->arch); it != LLM_ARCH_NAMES.end()) {
return it->second;
}
return unknown;
}
static const std::map<llm_kv, const char *> LLM_KV_NAMES = {
{ LLM_KV_GENERAL_TYPE, "general.type" },
{ LLM_KV_GENERAL_ARCHITECTURE, "general.architecture" },