Skip to content

Collection

MetricCollection

Bases: Metric, Generic[T]

A metric that aggregates multiple sub-metrics.

Parameters:

Name Type Description Default
metrics T

A dictionary mapping metric names to Metric instances.

required
Source code in src/kibad_llm/metrics/collection.py
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class MetricCollection(Metric, Generic[T]):
    """A metric that aggregates multiple sub-metrics.

    Args:
        metrics: A dictionary mapping metric names to Metric instances.
    """

    def __init__(self, metrics: T) -> None:
        super().__init__()
        self.metrics = metrics

    def reset(self) -> None:
        """Resets all sub-metrics."""
        for metric in self.metrics.values():
            metric.reset()

    def _update(self, prediction: Any, reference: Any, record_id: Hashable | None = None) -> None:
        """Updates all sub-metrics with the given data."""
        for metric in self.metrics.values():
            metric.update(prediction=prediction, reference=reference, record_id=record_id)

    def _compute(self, *args, **kwargs) -> dict[str, Any]:
        """Computes and returns the results of all sub-metrics.

        Returns:
            A dictionary mapping metric names to their computed results.
        """
        results = {}
        for name, metric in self.metrics.items():
            results[name] = metric.compute(*args, reset=False, **kwargs)
        return results

reset()

Resets all sub-metrics.

Source code in src/kibad_llm/metrics/collection.py
20
21
22
23
def reset(self) -> None:
    """Resets all sub-metrics."""
    for metric in self.metrics.values():
        metric.reset()