Revert "quantize : assume the neutral prior is equal imatrix weights"

This reverts commit 46a8601140.

Going towards 1 is more stable than towards the mean,
which can otherwise still be 0 and cause problems.
This commit is contained in:
Francis Couture-Harpin 2026-03-12 13:11:53 -04:00
parent ea5e55d03e
commit f45b59a5c3
1 changed files with 1 additions and 8 deletions

View File

@ -291,15 +291,8 @@ static int load_imatrix(const std::string & imatrix_file, std::vector<std::strin
for (int64_t j = 0; j < ne1; ++j) {
const float count = ((const float *) counts->data)[j];
if (count > 0.0f) {
float sumw = 0.0f;
for (int64_t i = 0; i < ne0; ++i) {
sumw += ((const float *) sums->data)[j*ne0 + i];
}
// the neutral prior is equal weights, and it should reduce the variance by weighted-averaging with the mean
const float prior_value = sumw / ne0;
for (int64_t i = 0; i < ne0; ++i) {
e[j*ne0 + i] = (((const float *) sums->data)[j*ne0 + i] + prior_value * prior_weight) / (count + prior_weight);
e[j*ne0 + i] = (((const float *) sums->data)[j*ne0 + i] + prior_weight) / (count + prior_weight);
}
} else {
// Partial imatrix data, this tensor never got any input during calibration