summaryrefslogtreecommitdiff
path: root/llama.cpp/src/llama-sampler.h
diff options
context:
space:
mode:
Diffstat (limited to 'llama.cpp/src/llama-sampler.h')
-rw-r--r--llama.cpp/src/llama-sampler.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/llama.cpp/src/llama-sampler.h b/llama.cpp/src/llama-sampler.h
new file mode 100644
index 0000000..b9bfc20
--- /dev/null
+++ b/llama.cpp/src/llama-sampler.h
@@ -0,0 +1,42 @@
+#pragma once
+
+#include "llama.h"
+
+#include <vector>
+
+struct llama_vocab;
+struct llama_grammar;
+
+// sampler chain
+
+struct llama_sampler_chain {
+ llama_sampler_chain_params params;
+
+ // has .backend_init() been called?
+ bool is_init = false;
+
+ struct info {
+ bool is_backend;
+
+ llama_sampler * ptr;
+ };
+
+ std::vector<info> samplers;
+
+ // pre-allocated buffer for llama_sampler_sample to avoid repeated allocations
+ std::vector<llama_token_data> cur;
+
+ // timing
+
+ mutable int64_t t_sample_us;
+
+ mutable int32_t n_sample;
+};
+
+struct llama_sampler * llama_sampler_init_dry_testing(
+ int32_t context_size,
+ float dry_multiplier,
+ float dry_base,
+ int32_t dry_allowed_length,
+ int32_t dry_penalty_last_n,
+ const std::vector<std::vector<llama_token>> & seq_breakers);