Я использую faiss для создания индекса из векторных вложений, который затем можно использовать для поиска по сходству. Поскольку мой набор данных исчисляется миллиардами, я ищу чрезвычайно быстрые (почти оптимальные) решения. Я увидел, что faiss хорошо поддерживает случаи, когда весь набор данных не нужно загружать в память для индексации. Однако во всех демонстрациях кода и примерах (тестовых сценариях) используются файлы .fvecs, что, на мой взгляд, является отличным способом, поскольку их можно отображать (с помощью numpy). Однако я не уверен, как мне сохранить вложения, возвращаемые в виде тензоров факелов, в формат .fvecs?
У меня есть текущая реализация для сохранения vecs в виде файла .fvecs:
Код: Выделить всё
def write_fvec(filename, vecs):
with open(filename, "wb") as f:
nvecs, dim = vecs.shape
f.write(struct.pack('
Подробнее здесь: [url]https://stackoverflow.com/questions/78433857/how-to-save-a-numpy-array-in-fvecs[/url]