Source code for lm_polygraph.estimators.perplexity
import numpy as np
from typing import Dict
from .estimator import Estimator
[docs]class Perplexity(Estimator):
def __init__(self):
super().__init__(["greedy_log_likelihoods"], "sequence")
def __str__(self):
return "Perplexity"
def __call__(self, stats: Dict[str, np.ndarray]) -> np.ndarray:
log_likelihoods = stats["greedy_log_likelihoods"]
return np.array([-np.mean(ll) for ll in log_likelihoods])