aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMack Straight <eiz@users.noreply.github.com>2023-03-20 12:26:01 -0700
committerGitHub <noreply@github.com>2023-03-20 19:26:01 +0000
commita791a68b613b162c88a83f5f0225223bc167c762 (patch)
treec0bf6e5bd93bb1974e24a9df8f672212858709c0
parent0f1b21cb90ac6b84a9af70cafb8e13b5389e3b32 (diff)
move file magic/version to header, print expected version (#319)
-rw-r--r--main.cpp10
-rw-r--r--quantize.cpp10
-rw-r--r--utils.h8
3 files changed, 18 insertions, 10 deletions
diff --git a/main.cpp b/main.cpp
index 1590333..3321818 100644
--- a/main.cpp
+++ b/main.cpp
@@ -106,12 +106,12 @@ bool llama_model_load(const std::string & fname, llama_model & model, gpt_vocab
{
uint32_t magic;
fin.read((char *) &magic, sizeof(magic));
- if (magic == 0x67676d6c) {
+ if (magic == FILE_MAGIC_UNVERSIONED) {
fprintf(stderr, "%s: invalid model file '%s' (too old, regenerate your model files!)\n",
__func__, fname.c_str());
return false;
}
- if (magic != 0x67676d66) {
+ if (magic != FILE_MAGIC) {
fprintf(stderr, "%s: invalid model file '%s' (bad magic)\n", __func__, fname.c_str());
return false;
}
@@ -119,9 +119,9 @@ bool llama_model_load(const std::string & fname, llama_model & model, gpt_vocab
uint32_t format_version;
fin.read((char *) &format_version, sizeof(format_version));
- if (format_version != 1) {
- fprintf(stderr, "%s: invalid model file '%s' (unsupported format version %" PRIu32 ")\n",
- __func__, fname.c_str(), format_version);
+ if (format_version != FILE_VERSION) {
+ fprintf(stderr, "%s: invalid model file '%s' (unsupported format version %" PRIu32 ", expected %d)\n",
+ __func__, fname.c_str(), format_version, FILE_VERSION);
return false;
}
}
diff --git a/quantize.cpp b/quantize.cpp
index 166e916..07db33a 100644
--- a/quantize.cpp
+++ b/quantize.cpp
@@ -64,12 +64,12 @@ bool llama_model_quantize(const std::string & fname_inp, const std::string & fna
{
uint32_t magic;
finp.read((char *) &magic, sizeof(magic));
- if (magic == 0x67676d6c) {
+ if (magic == FILE_MAGIC_UNVERSIONED) {
fprintf(stderr, "%s: invalid model file '%s' (too old, regenerate your model files!)\n",
__func__, fname_inp.c_str());
return false;
}
- if (magic != 0x67676d66) {
+ if (magic != FILE_MAGIC) {
fprintf(stderr, "%s: invalid model file '%s' (bad magic)\n", __func__, fname_inp.c_str());
return false;
}
@@ -79,9 +79,9 @@ bool llama_model_quantize(const std::string & fname_inp, const std::string & fna
uint32_t format_version;
finp.read((char *) &format_version, sizeof(format_version));
- if (format_version != 1) {
- fprintf(stderr, "%s: invalid model file '%s' (unsupported format version %" PRIu32 ")\n",
- __func__, fname_inp.c_str(), format_version);
+ if (format_version != FILE_VERSION) {
+ fprintf(stderr, "%s: invalid model file '%s' (unsupported format version %" PRIu32 ", expected %d)\n",
+ __func__, fname_inp.c_str(), format_version, FILE_VERSION);
return false;
}
diff --git a/utils.h b/utils.h
index b3a0f47..65fe02b 100644
--- a/utils.h
+++ b/utils.h
@@ -49,6 +49,14 @@ void gpt_print_usage(int argc, char ** argv, const gpt_params & params);
std::string gpt_random_prompt(std::mt19937 & rng);
//
+// Model file parsing
+//
+
+#define FILE_MAGIC_UNVERSIONED 0x67676d6c // pre-versioned files
+#define FILE_MAGIC 0x67676d66 // 'ggmf' in hex
+#define FILE_VERSION 1
+
+//
// Vocab utils
//