@@ -27,52 +27,54 @@ const char * llama_file_version_name(llama_fver version) {
2727 return " unknown" ;
2828}
2929
30- static std::string llama_model_ftype_name (llama_ftype ftype) {
31- if (ftype & LLAMA_FTYPE_GUESSED ) {
32- return llama_model_ftype_name ((enum llama_ftype) (ftype & ~LLAMA_FTYPE_GUESSED )) + " (guessed)" ;
33- }
34-
35- switch (ftype) {
36- case LLAMA_FTYPE_ALL_F32 : return " all F32" ;
37- case LLAMA_FTYPE_MOSTLY_F16 : return " F16" ;
38- case LLAMA_FTYPE_MOSTLY_BF16 : return " BF16" ;
39- case LLAMA_FTYPE_MOSTLY_Q1_0 : return " Q1_0" ;
40- case LLAMA_FTYPE_MOSTLY_Q4_0 : return " Q4_0" ;
41- case LLAMA_FTYPE_MOSTLY_Q4_1 : return " Q4_1" ;
42- case LLAMA_FTYPE_MOSTLY_Q5_0 : return " Q5_0" ;
43- case LLAMA_FTYPE_MOSTLY_Q5_1 : return " Q5_1" ;
44- case LLAMA_FTYPE_MOSTLY_Q8_0 : return " Q8_0" ;
45- case LLAMA_FTYPE_MOSTLY_MXFP4_MOE : return " MXFP4 MoE" ;
46- case LLAMA_FTYPE_MOSTLY_NVFP4 : return " NVFP4" ;
47- case LLAMA_FTYPE_MOSTLY_Q2_K : return " Q2_K - Medium" ;
48- case LLAMA_FTYPE_MOSTLY_Q2_K_S : return " Q2_K - Small" ;
49- case LLAMA_FTYPE_MOSTLY_Q3_K_S : return " Q3_K - Small" ;
50- case LLAMA_FTYPE_MOSTLY_Q3_K_M : return " Q3_K - Medium" ;
51- case LLAMA_FTYPE_MOSTLY_Q3_K_L : return " Q3_K - Large" ;
52- case LLAMA_FTYPE_MOSTLY_Q4_K_S : return " Q4_K - Small" ;
53- case LLAMA_FTYPE_MOSTLY_Q4_K_M : return " Q4_K - Medium" ;
54- case LLAMA_FTYPE_MOSTLY_Q5_K_S : return " Q5_K - Small" ;
55- case LLAMA_FTYPE_MOSTLY_Q5_K_M : return " Q5_K - Medium" ;
56- case LLAMA_FTYPE_MOSTLY_Q6_K : return " Q6_K" ;
57- case LLAMA_FTYPE_MOSTLY_TQ1_0 : return " TQ1_0 - 1.69 bpw ternary" ;
58- case LLAMA_FTYPE_MOSTLY_TQ2_0 : return " TQ2_0 - 2.06 bpw ternary" ;
59- case LLAMA_FTYPE_MOSTLY_IQ2_XXS : return " IQ2_XXS - 2.0625 bpw" ;
60- case LLAMA_FTYPE_MOSTLY_IQ2_XS : return " IQ2_XS - 2.3125 bpw" ;
61- case LLAMA_FTYPE_MOSTLY_IQ2_S : return " IQ2_S - 2.5 bpw" ;
62- case LLAMA_FTYPE_MOSTLY_IQ2_M : return " IQ2_M - 2.7 bpw" ;
63- case LLAMA_FTYPE_MOSTLY_IQ3_XS : return " IQ3_XS - 3.3 bpw" ;
64- case LLAMA_FTYPE_MOSTLY_IQ3_XXS : return " IQ3_XXS - 3.0625 bpw" ;
65- case LLAMA_FTYPE_MOSTLY_IQ1_S : return " IQ1_S - 1.5625 bpw" ;
66- case LLAMA_FTYPE_MOSTLY_IQ1_M : return " IQ1_M - 1.75 bpw" ;
67- case LLAMA_FTYPE_MOSTLY_IQ4_NL : return " IQ4_NL - 4.5 bpw" ;
68- case LLAMA_FTYPE_MOSTLY_IQ4_XS : return " IQ4_XS - 4.25 bpw" ;
69- case LLAMA_FTYPE_MOSTLY_IQ3_S : return " IQ3_S - 3.4375 bpw" ;
70- case LLAMA_FTYPE_MOSTLY_IQ3_M : return " IQ3_S mix - 3.66 bpw" ;
71-
72- default : return " unknown, may not work" ;
30+ #define LLAMA_FTYPE_PREFIX " (guessed) "
31+
32+ const char * llama_ftype_name (llama_ftype ftype) {
33+ static constexpr size_t guessed_prefix_len = sizeof (LLAMA_FTYPE_PREFIX ) - 1 ;
34+ const char * name;
35+ switch ((enum llama_ftype) (ftype & ~LLAMA_FTYPE_GUESSED )) {
36+ case LLAMA_FTYPE_ALL_F32 : name = LLAMA_FTYPE_PREFIX " all F32" ; break ;
37+ case LLAMA_FTYPE_MOSTLY_F16 : name = LLAMA_FTYPE_PREFIX " F16" ; break ;
38+ case LLAMA_FTYPE_MOSTLY_BF16 : name = LLAMA_FTYPE_PREFIX " BF16" ; break ;
39+ case LLAMA_FTYPE_MOSTLY_Q1_0 : name = LLAMA_FTYPE_PREFIX " Q1_0" ; break ;
40+ case LLAMA_FTYPE_MOSTLY_Q4_0 : name = LLAMA_FTYPE_PREFIX " Q4_0" ; break ;
41+ case LLAMA_FTYPE_MOSTLY_Q4_1 : name = LLAMA_FTYPE_PREFIX " Q4_1" ; break ;
42+ case LLAMA_FTYPE_MOSTLY_Q5_0 : name = LLAMA_FTYPE_PREFIX " Q5_0" ; break ;
43+ case LLAMA_FTYPE_MOSTLY_Q5_1 : name = LLAMA_FTYPE_PREFIX " Q5_1" ; break ;
44+ case LLAMA_FTYPE_MOSTLY_Q8_0 : name = LLAMA_FTYPE_PREFIX " Q8_0" ; break ;
45+ case LLAMA_FTYPE_MOSTLY_MXFP4_MOE : name = LLAMA_FTYPE_PREFIX " MXFP4 MoE" ; break ;
46+ case LLAMA_FTYPE_MOSTLY_NVFP4 : name = LLAMA_FTYPE_PREFIX " NVFP4" ; break ;
47+ case LLAMA_FTYPE_MOSTLY_Q2_K : name = LLAMA_FTYPE_PREFIX " Q2_K - Medium" ; break ;
48+ case LLAMA_FTYPE_MOSTLY_Q2_K_S : name = LLAMA_FTYPE_PREFIX " Q2_K - Small" ; break ;
49+ case LLAMA_FTYPE_MOSTLY_Q3_K_S : name = LLAMA_FTYPE_PREFIX " Q3_K - Small" ; break ;
50+ case LLAMA_FTYPE_MOSTLY_Q3_K_M : name = LLAMA_FTYPE_PREFIX " Q3_K - Medium" ; break ;
51+ case LLAMA_FTYPE_MOSTLY_Q3_K_L : name = LLAMA_FTYPE_PREFIX " Q3_K - Large" ; break ;
52+ case LLAMA_FTYPE_MOSTLY_Q4_K_S : name = LLAMA_FTYPE_PREFIX " Q4_K - Small" ; break ;
53+ case LLAMA_FTYPE_MOSTLY_Q4_K_M : name = LLAMA_FTYPE_PREFIX " Q4_K - Medium" ; break ;
54+ case LLAMA_FTYPE_MOSTLY_Q5_K_S : name = LLAMA_FTYPE_PREFIX " Q5_K - Small" ; break ;
55+ case LLAMA_FTYPE_MOSTLY_Q5_K_M : name = LLAMA_FTYPE_PREFIX " Q5_K - Medium" ; break ;
56+ case LLAMA_FTYPE_MOSTLY_Q6_K : name = LLAMA_FTYPE_PREFIX " Q6_K" ; break ;
57+ case LLAMA_FTYPE_MOSTLY_TQ1_0 : name = LLAMA_FTYPE_PREFIX " TQ1_0 - 1.69 bpw ternary" ; break ;
58+ case LLAMA_FTYPE_MOSTLY_TQ2_0 : name = LLAMA_FTYPE_PREFIX " TQ2_0 - 2.06 bpw ternary" ; break ;
59+ case LLAMA_FTYPE_MOSTLY_IQ2_XXS : name = LLAMA_FTYPE_PREFIX " IQ2_XXS - 2.0625 bpw" ; break ;
60+ case LLAMA_FTYPE_MOSTLY_IQ2_XS : name = LLAMA_FTYPE_PREFIX " IQ2_XS - 2.3125 bpw" ; break ;
61+ case LLAMA_FTYPE_MOSTLY_IQ2_S : name = LLAMA_FTYPE_PREFIX " IQ2_S - 2.5 bpw" ; break ;
62+ case LLAMA_FTYPE_MOSTLY_IQ2_M : name = LLAMA_FTYPE_PREFIX " IQ2_M - 2.7 bpw" ; break ;
63+ case LLAMA_FTYPE_MOSTLY_IQ3_XS : name = LLAMA_FTYPE_PREFIX " IQ3_XS - 3.3 bpw" ; break ;
64+ case LLAMA_FTYPE_MOSTLY_IQ3_XXS : name = LLAMA_FTYPE_PREFIX " IQ3_XXS - 3.0625 bpw" ; break ;
65+ case LLAMA_FTYPE_MOSTLY_IQ1_S : name = LLAMA_FTYPE_PREFIX " IQ1_S - 1.5625 bpw" ; break ;
66+ case LLAMA_FTYPE_MOSTLY_IQ1_M : name = LLAMA_FTYPE_PREFIX " IQ1_M - 1.75 bpw" ; break ;
67+ case LLAMA_FTYPE_MOSTLY_IQ4_NL : name = LLAMA_FTYPE_PREFIX " IQ4_NL - 4.5 bpw" ; break ;
68+ case LLAMA_FTYPE_MOSTLY_IQ4_XS : name = LLAMA_FTYPE_PREFIX " IQ4_XS - 4.25 bpw" ; break ;
69+ case LLAMA_FTYPE_MOSTLY_IQ3_S : name = LLAMA_FTYPE_PREFIX " IQ3_S - 3.4375 bpw" ; break ;
70+ case LLAMA_FTYPE_MOSTLY_IQ3_M : name = LLAMA_FTYPE_PREFIX " IQ3_S mix - 3.66 bpw" ; break ;
71+ default : name = LLAMA_FTYPE_PREFIX " unknown, may not work" ; break ;
7372 }
73+ return (ftype & LLAMA_FTYPE_GUESSED ) ? name : name + guessed_prefix_len;
7474}
7575
76+ #undef LLAMA_FTYPE_PREFIX
77+
7678// return a list of splits for a given path
7779// for example, given "<name>-00002-of-00004.gguf", returns list of all 4 splits
7880static std::vector<std::string> llama_get_list_splits (const std::string & path, const int idx, const int n_split) {
@@ -1693,12 +1695,12 @@ bool llama_model_loader::load_all_data(
16931695}
16941696
16951697std::string llama_model_loader::ftype_name () const {
1696- return llama_model_ftype_name (ftype);
1698+ return llama_ftype_name (ftype);
16971699}
16981700
16991701void llama_model_loader::print_info () const {
17001702 LLAMA_LOG_INFO (" %s: file format = %s\n " , __func__, llama_file_version_name (fver));
1701- LLAMA_LOG_INFO (" %s: file type = %s\n " , __func__, llama_model_ftype_name (ftype). c_str ( ));
1703+ LLAMA_LOG_INFO (" %s: file type = %s\n " , __func__, llama_ftype_name (ftype));
17021704 if (n_bytes < GiB) {
17031705 LLAMA_LOG_INFO (" %s: file size = %.2f MiB (%.2f BPW) \n " , __func__, n_bytes/1024.0 /1024.0 , n_bytes*8.0 /n_elements);
17041706 } else {
0 commit comments