Ouzhang's picture
Add files using upload-large-folder tool
13c5606 verified
Raw
History Blame Contribute Delete
633 Bytes
"""Metrics shared by source reproductions and basecode runs."""
from __future__ import annotations
from dataclasses import asdict
from typing import Any
from .core import DecodeResult
def exact_match(prediction: str, reference: str) -> float:
return float(prediction.strip() == reference.strip())
def summarize_result(result: DecodeResult, reference: str | None = None) -> dict[str, Any]:
payload = asdict(result)
payload["tokens_per_second"] = len(result.tokens) / max(result.elapsed_s, 1e-12)
if reference is not None:
payload["exact_match"] = exact_match(result.text, reference)
return payload