MCPcopy Create free account
hub / github.com/Tiiny-AI/PowerInfer / common_sampler_init

Function common_sampler_init

smallthinker/common/sampling.cpp:149–288  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

147}
148
149struct common_sampler * common_sampler_init(const struct llama_model * model, const struct common_params_sampling & params) {
150 const llama_vocab * vocab = llama_model_get_vocab(model);
151
152 llama_sampler_chain_params lparams = llama_sampler_chain_default_params();
153
154 lparams.no_perf = params.no_perf;
155
156 struct llama_sampler * grmr;
157 if (params.grammar.compare(0, 11, "%llguidance") == 0) {
158#ifdef LLAMA_USE_LLGUIDANCE
159 grmr = llama_sampler_init_llg(vocab, "lark", params.grammar.c_str());
160#else
161 GGML_ABORT("llguidance (cmake -DLLAMA_LLGUIDANCE=ON) is not enabled");
162#endif // LLAMA_USE_LLGUIDANCE
163 } else {
164 std::vector<std::string> trigger_patterns;
165 std::vector<std::string> patterns_anywhere;
166 std::vector<llama_token> trigger_tokens;
167 for (const auto & trigger : params.grammar_triggers) {
168 switch (trigger.type) {
169 case COMMON_GRAMMAR_TRIGGER_TYPE_WORD:
170 {
171 const auto & word = trigger.value;
172 patterns_anywhere.push_back(regex_escape(word));
173 break;
174 }
175 case COMMON_GRAMMAR_TRIGGER_TYPE_PATTERN:
176 {
177 patterns_anywhere.push_back(trigger.value);
178 break;
179 }
180 case COMMON_GRAMMAR_TRIGGER_TYPE_PATTERN_FULL:
181 {
182 trigger_patterns.push_back(trigger.value);
183 break;
184 }
185 case COMMON_GRAMMAR_TRIGGER_TYPE_TOKEN:
186 {
187 const auto token = trigger.token;
188 trigger_tokens.push_back(token);
189 break;
190 }
191 default:
192 GGML_ASSERT(false && "unknown trigger type");
193 }
194 }
195
196 if (!patterns_anywhere.empty()) {
197 trigger_patterns.push_back("^[\\s\\S]*?(" + string_join(patterns_anywhere, "|") + ")[\\s\\S]*");
198 }
199
200 std::vector<const char *> trigger_patterns_c;
201 trigger_patterns_c.reserve(trigger_patterns.size());
202 for (const auto & regex : trigger_patterns) {
203 trigger_patterns_c.push_back(regex.c_str());
204 }
205
206 grmr = params.grammar_lazy

Callers 10

mtmd_cli_contextMethod · 0.85
mainFunction · 0.85
mainFunction · 0.85
launch_slot_with_taskMethod · 0.85
common_speculative_initFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85

Calls 15

llama_model_get_vocabFunction · 0.85
llama_sampler_init_llgFunction · 0.85
regex_escapeFunction · 0.85
string_joinFunction · 0.85
llama_sampler_chain_initFunction · 0.85
maxFunction · 0.85
llama_sampler_chain_addFunction · 0.85
llama_vocab_n_tokensFunction · 0.85

Tested by 3

common_speculative_initFunction · 0.68
mainFunction · 0.68
mainFunction · 0.68