handle freq_base_train

This commit is contained in:
Concedo 2023-10-24 23:44:22 +08:00
parent 6a4d9c26e1
commit 839fc6dac8
3 changed files with 13 additions and 0 deletions

View file

@ -606,6 +606,10 @@ ModelLoadResult gpttype_load_model(const load_model_inputs inputs, FileFormat in
rope_freq_base = (effectivenctx <= 2048 ? 10000.0f : (effectivenctx <= 3072 ? 26000.0f : (effectivenctx <= 4096 ? 32000.0f : (effectivenctx <= 6144 ? 54000.0f :
(effectivenctx <= 8192 ? 82684.0f : (effectivenctx <= 12288 ? 140000.0f : (effectivenctx <= 16384 ? 200000.0f : (effectivenctx <= 24576 ? 320000.0f : 440000.0f))))))));
if(file_format_meta.freq_base_train > rope_freq_base)
{
rope_freq_base = file_format_meta.freq_base_train;
}
}
printf("Using automatic RoPE scaling (scale:%.3f, base:%.1f)\n",rope_freq_scale,rope_freq_base);

View file

@ -290,6 +290,14 @@ void print_tok_vec(std::vector<float> &embd)
}
int filever = gguf_get_version(ctx);
fileformatmeta->fileversion = filever;
//try to adapt if the rope_freq_base_train exceeds the auto one
fkey = modelarch+".rope.freq_base";
auto keyidx = gguf_find_key(ctx, fkey.c_str());
if (keyidx != -1) {
float fbt = gguf_get_val_f32(ctx, keyidx);
fileformatmeta->freq_base_train = (fbt > 1.0f ? fbt : 0.0f);
}
}
gguf_free(ctx);
}

View file

@ -55,6 +55,7 @@ struct FileFormatExtraMeta
{
int n_ctx_train = 2048;
int fileversion = 0;
float freq_base_train = 0;
};
enum ModelLoadResult