in summarize_from_feedback/policy.py [0:0]
def eval(self, query_tokens, response_tokens, eval_fn=None, **kwargs):
"""
:return: A dict with structure:
value: [batch, num_responses, response_length]
eval_stats: dict of stats returned by eval_fn
"""
if self.task_hparams is not None:
assert query_tokens.size(1) == self.task_hparams.query.length, f"{query_tokens.size()}"
assert (
response_tokens.size(2) == self.task_hparams.response.length
), f"{response_tokens.size()}"
assert query_tokens.size(0) == response_tokens.size(0)
if eval_fn is not None:
eval_fn = _wrap_policy_fn(
eval_fn, list(self.heads) + (["logits"] if self.logit_head else [])
)
ret = self._eval(query_tokens, response_tokens[:, :, :-1], eval_fn=eval_fn, **kwargs)
for key in self.heads:
ret[key] = ret[key]["response"]
return ret