diff options
author | Mack Straight <eiz@users.noreply.github.com> | 2023-03-20 12:26:01 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-20 19:26:01 +0000 |
commit | a791a68b613b162c88a83f5f0225223bc167c762 (patch) | |
tree | c0bf6e5bd93bb1974e24a9df8f672212858709c0 | |
parent | 0f1b21cb90ac6b84a9af70cafb8e13b5389e3b32 (diff) |
move file magic/version to header, print expected version (#319)
-rw-r--r-- | main.cpp | 10 | ||||
-rw-r--r-- | quantize.cpp | 10 | ||||
-rw-r--r-- | utils.h | 8 |
3 files changed, 18 insertions, 10 deletions
@@ -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; } @@ -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 // |