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

Function test_top_p

tests/test-sampling.cpp:43–62  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41}
42
43static void test_top_p(const std::vector<float> & probs, const std::vector<float> & expected_probs, float p) {
44 size_t n_vocab = probs.size();
45 std::vector<llama_token_data> candidates;
46 candidates.reserve(n_vocab);
47 for (llama_token token_id = 0; token_id < (llama_token)n_vocab; token_id++) {
48 float logit = log(probs[token_id]);
49 candidates.emplace_back(llama_token_data{token_id, logit, 0.0f});
50 }
51
52 llama_token_data_array candidates_p = { candidates.data(), candidates.size(), false };
53 llama_sample_softmax(nullptr, &candidates_p);
54 DUMP(&candidates_p);
55 llama_sample_top_p(nullptr, &candidates_p, p, 1);
56 DUMP(&candidates_p);
57
58 GGML_ASSERT(candidates_p.size == expected_probs.size());
59 for (size_t i = 0; i < candidates_p.size; i++) {
60 GGML_ASSERT(fabs(candidates_p.data[i].p - expected_probs[i]) < 1e-3);
61 }
62}
63
64static void test_tfs(const std::vector<float> & probs, const std::vector<float> & expected_probs, float z) {
65 size_t n_vocab = probs.size();

Callers 1

mainFunction · 0.70

Calls 6

logFunction · 0.85
llama_sample_softmaxFunction · 0.85
llama_sample_top_pFunction · 0.85
reserveMethod · 0.80
sizeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected