Created by: Dmitryv-2024
Реализовал RerankScorer. В реализации я попробовал немного порефакторить код поэтому класс наследуется от KNNScorer. После того как сделал рефакторинг, я понял что не знаю как проверить методы load/dump. Если вам не понравится мой подход, я могу легко за_copy-paste этот класс как сделано во всех других.
Еще я сначала решил реализовать возможность выбрасывать соседей для которых CrossEncoder дает уверенность меньше заданного порога (rank_threshold_cutoff) но потом осознал:
- количество кандидатов для разных utterance может быть разным, поэтому _count_scores из KNNScorer не будет работать и нужна другая реализация
- может получится, что для какого-то utterance вообще нет вариантов. По идее, такой вариант подходит под класс OOS, но количество классов нужно расширять, а это должно быть согласовано во всей pipeline.
Тест получился, практически полной копией теста для KNNScorer, тоже кандидат для рефакторинга.