Чем больше эмбеддер, тем лучше он обычно ищет. Но с моделью растет и размер вектора, а с ним индекс: миллион документов при 1536 измерениях в float32 занимает ~6 ГБ, при 256 — ~1 ГБ.
Самый простой способ сжать индекс — обрезка: берем первые N компонент и нормируем заново. Под это даже есть метод MRL: модель специально учат, чтобы короткие префиксы вектора работали сами по себе.
Но модель может хорошо переносить обрезку и без MRL. Проверил на RuBQ Retrieval, nDCG@10 ×100:
FRIDA, без MRL: 72.5 → 70.0 (1536 → 256)
Qwen3-Embedding-0.6B, с MRL: 66.6 → 64.9 (1024 → 256)
Индекс FRIDA меньше в 6 раз, а качество ниже всего на 2.5 пункта. Причем на 256 она выше, чем Qwen3 в полных 1024. MRL выигрывает только на 64 и меньше.
Так что если в карточке модели нет MRL, все равно пробуйте сжимать. В SentenceTransformers это один параметр:
model = SentenceTransformer("ai-forever/FRIDA", truncate_dim=256)А какие методы сжатия индекса используете вы?
