Вы встроили миллион документов в векторы. Теперь поступает запрос, и вам нужно ближайшее количество — в миллисекундах. Проверка всех миллионов по одному — слишком медленный процесс. Это проблема, для решения которой существуют базы данных векторов. База данных векторов...
Вы встроили миллион документов в векторы. Теперь поступает запрос, и вам нужно ближайшее количество — в миллисекундах. Проверка всех миллионов по одному — слишком медленный процесс. Это проблема, для решения которой существуют базы данных векторов.
В результате бума RAG векторные базы данных разошлись по всем направлениям, и к ним часто относятся как к волшебству. Это не так. Вот что они на самом деле делают и когда они вам действительно нужны.
Проблема: поиск ближайшего соседа в большом масштабе
Как только ваш контент становится встраиванием — векторами, фиксирующими смысл, — «найти наиболее релевантные документы» становится «найти векторы, наиболее близкие к этому вектору запроса». Принцип прост: вычислите расстояние до каждого сохраненного вектора и выберите наименьшее из них.
Загвоздка в масштабе. Сравнение вашего запроса с миллионом (или миллиардом) векторов при каждом запросе называется прямым перебором или точным поиском ближайшего соседа, и это слишком медленно для чего-либо интерактивного. Вам нужны ближайшие векторы сейчас, а не после сканирования всей базы данных.
Хитрость: приблизительный ближайший сосед
Векторные базы данных — это умная сделка. Вместо поиска точных ближайших векторов они почти наверняка находят ближайших — приблизительного ближайшего соседа.