Scorers like avg-ttft-scorer use an EMA that freezes when a model receives no traffic, when a model has a low score (near 0) stays there indefinitely because it gets no new requests to update its average.
Add an exploration-max-score-picker that wraps max-score exploitation with controlled exploration. On each request, with probability explorationRatio, it probes a model whose score has been unchanged for longer than stalenessThreshold instead of picking the top-scored model.
Scorers like
avg-ttft-scoreruse an EMA that freezes when a model receives no traffic, when a model has a low score (near 0) stays there indefinitely because it gets no new requests to update its average.Add an
exploration-max-score-pickerthat wraps max-score exploitation with controlled exploration. On each request, with probabilityexplorationRatio, it probes a model whose score has been unchanged for longer thanstalenessThresholdinstead of picking the top-scored model.