Инструменты
BM25 для автодополнения: как LLM выбирает полезные фрагменты кода из репозитория
Автодополнение кода на LLM сталкивается с проблемой: в большом репозитории потенциально полезных файлов сотни, но модель не может обработать их все. Простое косинусное сходство или поиск по ключевым словам не работают — нужен ранжировщик, который выделит действительно релевантные фрагменты.
Один из классических подходов — BM25. Он учитывает, что редкие идентификаторы (например, названия функций) важнее частотных слов вроде return или if. Также алгоритм штрафует слишком длинные файлы и не даёт десяти одинаковым совпадениям десятикратного преимущества перед одним. Это позволяет собрать компактный и осмысленный контекст для LLM.
Источник: habr.com