Commit b57d059a authored by Leo Gao's avatar Leo Gao
Browse files

Fix lambada

parent 8eada53b
...@@ -2,6 +2,7 @@ import abc ...@@ -2,6 +2,7 @@ import abc
import random import random
import numpy as np import numpy as np
import sklearn import sklearn
import math
class LM(abc.ABC): class LM(abc.ABC):
...@@ -229,6 +230,9 @@ def metric_max_over_ground_truths(metric_fn, prediction, ground_truths): ...@@ -229,6 +230,9 @@ def metric_max_over_ground_truths(metric_fn, prediction, ground_truths):
return max(scores_for_ground_truths) return max(scores_for_ground_truths)
def perplexity(items):
return math.exp(-mean(items))
req_ret_lens = { req_ret_lens = {
'loglikelihood': 2 'loglikelihood': 2
} }
......
from lm_eval.base import Task, rf, mean from lm_eval.base import Task, rf, mean, perplexity
from lm_eval.utils import sh from lm_eval.utils import sh
import json import json
import math import math
...@@ -45,21 +45,23 @@ class LAMBADA(Task): ...@@ -45,21 +45,23 @@ class LAMBADA(Task):
return "" return ""
def construct_requests(self, doc, ctx): def construct_requests(self, doc, ctx):
ll, is_greedy = rf.loglikelihood(doc, self.doc_to_target(doc)) ll, is_greedy = rf.loglikelihood(ctx, self.doc_to_target(doc))
return ll, is_greedy return ll, is_greedy
def process_results(self, doc, results): def process_results(self, doc, results):
ll, is_greedy = results ll, is_greedy = results
print(ll)
return { return {
'perplexity': math.exp(-ll), 'perplexity': ll,
'accuracy': int(is_greedy) 'accuracy': int(is_greedy)
} }
def aggregation(self): def aggregation(self):
return { return {
'perplexity': mean, 'perplexity': perplexity,
'accuracy': mean 'accuracy': mean
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment