Почему моя точность вектора теряется в milvus?
Я использую Milvus версии 2.0.2. Когда я вставляю в Milvus 100 000 векторов двойной точности с плавающей запятой. Позже я использую интерфейс запроса, чтобы получить исходный вектор на основе идентификатора. Но я обнаружил, что полученный вектор стал типом с плавающей запятой одинарной точности. почему это?
1 ответ
https://milvus.io/docs/v2.0.0/create_collection.md
https://milvus.io/docs/v2.0.x/schema.md
Поле вектора поддерживает только типы BINARY_FLOAT и FLOAT_VECTOR. Они нигде не указывают это в документах, но можно с уверенностью предположить, что FLOAT_VECTOR относится к типу с плавающей запятой одинарной точности или типу np.float32. В большинстве приложений машинного обучения float32 используется для уменьшения размера памяти нейронной сети, поскольку большую часть времени float64 почти не дает преимуществ в точности.
По сути, вы, вероятно, ограничены использованием float32, поскольку milvus, похоже, в настоящее время не поддерживает float64 в векторном поле.