summaryrefslogtreecommitdiff
path: root/examples/perplexity
diff options
context:
space:
mode:
authorGeorgi Gerganov <ggerganov@gmail.com>2024-04-16 09:28:33 +0300
committerGitHub <noreply@github.com>2024-04-16 09:28:33 +0300
commit58227ffdeb4fb89cacb0cffaadf76b1914324ad3 (patch)
tree69e28ba22baa2c5e85b6b654f918f6b1a2b75786 /examples/perplexity
parent4fbd8098e63670c6ae11a8adc350f5ba191cfda3 (diff)
perplexity : require positive --ctx-size arg (#6695)
Diffstat (limited to 'examples/perplexity')
-rw-r--r--examples/perplexity/perplexity.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/examples/perplexity/perplexity.cpp b/examples/perplexity/perplexity.cpp
index bab79aae..9a3374fd 100644
--- a/examples/perplexity/perplexity.cpp
+++ b/examples/perplexity/perplexity.cpp
@@ -1852,12 +1852,20 @@ int main(int argc, char ** argv) {
const int32_t n_ctx = params.n_ctx;
+ if (n_ctx <= 0) {
+ fprintf(stderr, "%s: perplexity tool requires '--ctx-size' > 0\n", __func__);
+ return 1;
+ }
+
const bool ppl = !params.hellaswag && !params.winogrande && !params.multiple_choice && !params.kl_divergence;
+
if (ppl) {
- int n_seq = std::max(1, params.n_batch / n_ctx);
- int32_t n_kv = n_seq * n_ctx;
+ const int32_t n_seq = std::max(1, params.n_batch / n_ctx);
+ const int32_t n_kv = n_seq * n_ctx;
+
params.n_parallel = n_seq;
- params.n_ctx = n_kv;
+ params.n_ctx = n_kv;
+
params.n_batch = std::min(params.n_batch, n_kv);
} else {
params.n_batch = std::min(params.n_batch, params.n_ctx);