llama : produce error upon loading old model files
This commit is contained in:
parent
0e48eb6f6b
commit
4201fa5cb8
2 changed files with 14 additions and 3 deletions
15
llama.cpp
15
llama.cpp
|
@ -402,6 +402,7 @@ enum llama_file_version {
|
||||||
LLAMA_FILE_VERSION_GGML,
|
LLAMA_FILE_VERSION_GGML,
|
||||||
LLAMA_FILE_VERSION_GGMF_V1, // added version field and scores in vocab
|
LLAMA_FILE_VERSION_GGMF_V1, // added version field and scores in vocab
|
||||||
LLAMA_FILE_VERSION_GGJT_V1, // added padding
|
LLAMA_FILE_VERSION_GGJT_V1, // added padding
|
||||||
|
LLAMA_FILE_VERSION_GGJT_V2, // changed quantization format
|
||||||
};
|
};
|
||||||
|
|
||||||
struct llama_file_loader {
|
struct llama_file_loader {
|
||||||
|
@ -432,6 +433,8 @@ struct llama_file_loader {
|
||||||
file_version = LLAMA_FILE_VERSION_GGMF_V1;
|
file_version = LLAMA_FILE_VERSION_GGMF_V1;
|
||||||
} else if (magic == 'ggjt' && version == 1) {
|
} else if (magic == 'ggjt' && version == 1) {
|
||||||
file_version = LLAMA_FILE_VERSION_GGJT_V1;
|
file_version = LLAMA_FILE_VERSION_GGJT_V1;
|
||||||
|
} else if (magic == 'ggjt' && version == 2) {
|
||||||
|
file_version = LLAMA_FILE_VERSION_GGJT_V2;
|
||||||
} else {
|
} else {
|
||||||
throw format("unknown (magic, version) combination: %08x, %08x; is this really a GGML file?",
|
throw format("unknown (magic, version) combination: %08x, %08x; is this really a GGML file?",
|
||||||
magic, version);
|
magic, version);
|
||||||
|
@ -837,8 +840,8 @@ static const char *llama_file_version_name(llama_file_version version) {
|
||||||
switch (version) {
|
switch (version) {
|
||||||
case LLAMA_FILE_VERSION_GGML: return "'ggml' (old version with low tokenizer quality and no mmap support)";
|
case LLAMA_FILE_VERSION_GGML: return "'ggml' (old version with low tokenizer quality and no mmap support)";
|
||||||
case LLAMA_FILE_VERSION_GGMF_V1: return "ggmf v1 (old version with no mmap support)";
|
case LLAMA_FILE_VERSION_GGMF_V1: return "ggmf v1 (old version with no mmap support)";
|
||||||
case LLAMA_FILE_VERSION_GGJT_V1: return "ggjt v1 (latest)";
|
case LLAMA_FILE_VERSION_GGJT_V1: return "ggjt v1 (pre #1305)";
|
||||||
default: LLAMA_ASSERT(false);
|
case LLAMA_FILE_VERSION_GGJT_V2: return "ggjt v2 (latest)";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -915,6 +918,14 @@ static void llama_model_load_internal(
|
||||||
fprintf(stderr, "%s: model size = %s\n", __func__, llama_model_type_name(model.type));
|
fprintf(stderr, "%s: model size = %s\n", __func__, llama_model_type_name(model.type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (file_version != LLAMA_FILE_VERSION_GGJT_V2) {
|
||||||
|
if (hparams.ftype != LLAMA_FTYPE_ALL_F32 &&
|
||||||
|
hparams.ftype != LLAMA_FTYPE_MOSTLY_F16 &&
|
||||||
|
hparams.ftype != LLAMA_FTYPE_MOSTLY_Q8_0) {
|
||||||
|
throw format("this format is no longer supported (see https://github.com/ggerganov/llama.cpp/pull/1305)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (vocab_only) {
|
if (vocab_only) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
2
llama.h
2
llama.h
|
@ -19,7 +19,7 @@
|
||||||
# define LLAMA_API
|
# define LLAMA_API
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define LLAMA_FILE_VERSION 1
|
#define LLAMA_FILE_VERSION 2
|
||||||
#define LLAMA_FILE_MAGIC 'ggjt'
|
#define LLAMA_FILE_MAGIC 'ggjt'
|
||||||
#define LLAMA_FILE_MAGIC_UNVERSIONED 'ggml'
|
#define LLAMA_FILE_MAGIC_UNVERSIONED 'ggml'
|
||||||
#define LLAMA_SESSION_MAGIC 'ggsn'
|
#define LLAMA_SESSION_MAGIC 'ggsn'
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue