Skip to content

Commit 37060f5

Browse files
committed
backwards compat handle older HimarIO quants
1 parent f8b7dde commit 37060f5

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

examples/llava/clip.cpp

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1663,8 +1663,24 @@ struct clip_model_loader {
16631663
}
16641664
}
16651665

1666+
bool handle_older_qwen25vl(projector_type & proj_type)
1667+
{
1668+
bool check1 = false;
1669+
bool check2 = false;
1670+
get_bool(KEY_USE_GLU_MLP, check1, false);
1671+
get_bool(KEY_USE_RMS_NORM, check2, false);
1672+
if(proj_type==PROJECTOR_TYPE_QWEN2VL && check1 && check2)
1673+
{
1674+
printf("\nWARNING: OLD QWEN2.5VL PROJECTOR DETECTED! Trying to patch in support, but please obtain a new Qwen2.5VL Projector!\n\n");
1675+
proj_type = PROJECTOR_TYPE_QWEN25VL;
1676+
return true;
1677+
}
1678+
return false;
1679+
}
1680+
16661681
void load_hparams() {
16671682
auto & hparams = ctx_clip.vision_model.hparams;
1683+
bool q25vl_migrated = false; //we try to port old q25vl files if we can
16681684

16691685
// projector type
16701686
std::string proj_type;
@@ -1701,6 +1717,8 @@ struct clip_model_loader {
17011717
|| ctx_clip.proj_type == PROJECTOR_TYPE_LDP
17021718
|| ctx_clip.proj_type == PROJECTOR_TYPE_LDPV2;
17031719

1720+
q25vl_migrated = handle_older_qwen25vl(ctx_clip.proj_type);
1721+
17041722
{
17051723
std::string mm_patch_merge_type;
17061724
get_string(KEY_MM_PATCH_MERGE_TYPE, mm_patch_merge_type, false);
@@ -1776,7 +1794,11 @@ struct clip_model_loader {
17761794
} break;
17771795
case PROJECTOR_TYPE_QWEN25VL:
17781796
{
1779-
get_u32(KEY_WIN_ATTN_PATTERN, hparams.n_wa_pattern);
1797+
if (q25vl_migrated) {
1798+
hparams.n_wa_pattern = 8;
1799+
} else {
1800+
get_u32(KEY_WIN_ATTN_PATTERN, hparams.n_wa_pattern);
1801+
}
17801802
} break;
17811803
default:
17821804
break;

0 commit comments

Comments
 (0)