File size: 722 Bytes
461f64f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
"""
Lightweight Metrics container.
Benefits:
- Facilitates addition/removal of fields without breaking callers.
- Better isolation of responsibilities around code exporting metrics for experiment tracking.
"""
from dataclasses import dataclass, asdict
from typing import Any, Dict
@dataclass(frozen=True)
class Metrics:
# Minimal required fields (aligns with official script's main ones)
exact_score: float
f1_score: float
total_num_instances: int
def export_for_exp_tracking(self) -> Dict[str, Any]:
"""
Export a dict for experiment artifacts. Skips keys that are None.
"""
raw = asdict(self)
return {k: v for k, v in raw.items() if v is not None}
|