backwards compat handle older HimarIO quants

This commit is contained in:
Concedo 2025-04-27 17:38:22 +08:00
parent f8b7ddeac0
commit 37060f54da

View file

@ -1663,8 +1663,24 @@ struct clip_model_loader {
} }
} }
bool handle_older_qwen25vl(projector_type & proj_type)
{
bool check1 = false;
bool check2 = false;
get_bool(KEY_USE_GLU_MLP, check1, false);
get_bool(KEY_USE_RMS_NORM, check2, false);
if(proj_type==PROJECTOR_TYPE_QWEN2VL && check1 && check2)
{
printf("\nWARNING: OLD QWEN2.5VL PROJECTOR DETECTED! Trying to patch in support, but please obtain a new Qwen2.5VL Projector!\n\n");
proj_type = PROJECTOR_TYPE_QWEN25VL;
return true;
}
return false;
}
void load_hparams() { void load_hparams() {
auto & hparams = ctx_clip.vision_model.hparams; auto & hparams = ctx_clip.vision_model.hparams;
bool q25vl_migrated = false; //we try to port old q25vl files if we can
// projector type // projector type
std::string proj_type; std::string proj_type;
@ -1701,6 +1717,8 @@ struct clip_model_loader {
|| ctx_clip.proj_type == PROJECTOR_TYPE_LDP || ctx_clip.proj_type == PROJECTOR_TYPE_LDP
|| ctx_clip.proj_type == PROJECTOR_TYPE_LDPV2; || ctx_clip.proj_type == PROJECTOR_TYPE_LDPV2;
q25vl_migrated = handle_older_qwen25vl(ctx_clip.proj_type);
{ {
std::string mm_patch_merge_type; std::string mm_patch_merge_type;
get_string(KEY_MM_PATCH_MERGE_TYPE, mm_patch_merge_type, false); get_string(KEY_MM_PATCH_MERGE_TYPE, mm_patch_merge_type, false);
@ -1776,7 +1794,11 @@ struct clip_model_loader {
} break; } break;
case PROJECTOR_TYPE_QWEN25VL: case PROJECTOR_TYPE_QWEN25VL:
{ {
get_u32(KEY_WIN_ATTN_PATTERN, hparams.n_wa_pattern); if (q25vl_migrated) {
hparams.n_wa_pattern = 8;
} else {
get_u32(KEY_WIN_ATTN_PATTERN, hparams.n_wa_pattern);
}
} break; } break;
default: default:
break; break;