Освоение данных стало проще: исследуем магию векторных баз данных в Jupyter Notebooks
Anthropic недавно выпустила версию Claude на 100k токенов. Google недавно выпустила PaLM 2. И, конечно, к этому моменту мы все хорошо знаем GPT и ChatGPT от OpenAI. Большие языковые модели (LLM) ускорили внедрение ИИ, вместе с этим повышая спрос на векторные базы данных.
Почему? Потому что векторные базы данных могут помочь решить одну из самых больших проблем, с которыми сталкиваются LLM, — недостаток доменных знаний и актуальных данных. Помимо LLM, векторные базы данных также демонстрируют свою полезность в обеспечении работы приложений поиска по сходству. Кроме того, они необходимы для работы над рекомендациями продуктов, обратным поиском изображений и семантическим поиском текста.
Как начать работу с векторной базой данных в вашем Jupyter Notebook? В этом руководстве рассматривается:
- Что такое векторная база данных?
- Как использовать векторную базу данных в вашем Jupyter Notebook
- Что такое Milvus (Lite)?
- Краткое описание векторной базы данных в вашем Jupyter Notebook
Это в равной степени применимо к ноутбукам CoLab. Вот два для вас: ноутбук CoLab для обратного поиска изображений и ноутбук CoLab для семантического поиска текста.
Что такое векторная база данных?
Прежде чем перейти к руководству, давайте получим базовое представление о векторных базах данных. Векторная база данных предназначена для хранения, индексирования и выполнения запросов к векторным данным. Они в основном используются для работы с неструктурированными данными, такими как изображения, текст или видео. Сначала вы пропускаете свои данные через существующую нейронную сеть, чтобы получить векторные эмбеддинги, обычно извлекаемые из предпоследнего слоя.
Затем эти векторные эмбеддинги сохраняются в векторной базе данных. После того как ваши векторные эмбеддинги сохранены, вы можете запрашивать векторную базу данных для получения top k наиболее похожих записей данных через векторные эмбеддинги, как показано в приведенных выше ноутбуках CoLab. Некоторые из инструментов, которые векторные базы данных абстрагируют для вас, включают:
- Векторные индексы, которые в противном случае вам пришлось бы добавлять.
- Алгоритмы векторного поиска, такие как HNSW.
- Способ взаимодействия с уровнем постоянного хранения.
Что такое Milvus (Lite)?
Milvus — это векторная база данных с нативным бэкендом распределенной системы. Она специально разработана для обработки индексирования, хранения и выполнения запросов к векторным данным в миллиардных масштабах. Milvus использует несколько слоев и типов рабочих узлов для легко масштабируемой архитектуры. Помимо использования нескольких узлов с одной целью, Milvus также использует сегментированные данные для более эффективного индексирования. Milvus использует сегменты данных по 512MB, которые не изменяются после заполнения, и запрашивает их параллельно, чтобы обеспечить самую низкую задержку в отрасли.
Высокоуровневая архитектура векторной базы данных Milvus
Обычно вы использовали бы Docker Compose, Helm или Milvus Operator, чтобы запустить экземпляр Milvus. Однако Milvus Lite позволяет запускать экземпляр Milvus непосредственно из вашего Jupyter Notebook или Python-скрипта. Он работает так же, как Milvus, и сохраняет все ваши данные локально.
Как использовать векторную базу данных в вашем Jupyter Notebook
Вы можете начать работу с векторной базой данных, такой как Milvus Lite, непосредственно в вашем ноутбуке через установку pip. В первой строке вашего Jupyter Notebook выполните ! pip install pymilvus milvus. После установки pymilvus и milvus вы можете запустить векторную базу данных и подключиться к ней внутри ноутбука iPython.
Модуль milvus предоставляет Milvus Lite, а модуль pymilvus предоставляет Python-интерфейс для подключения к Milvus. Для начала мы импортируем три модуля. Во-первых, default_server из milvus. Во-вторых, connections из pymilvus, и в-третьих, utility из pymilvus. Мы используем функцию start() из default_server, чтобы запустить сервер. После запуска сервера мы подключаемся с помощью connect из connections, передавая хост, localhost или 127.0.0.1, и порт, полученный из сервера по умолчанию.
from milvus import default_server
from pymilvus import connections, utility
default_server.start()
connections.connect(host="127.0.0.1", port=default_server.listen_port)
После подключения к Milvus вы можете использовать utility, чтобы проверить вашу базу данных. Например, вызовите get_server_version(), чтобы убедиться, что у вас последняя версия, наличие которой можно проверить в блоге Milvus. Вы также можете использовать utility, чтобы проверить наличие collections, отдельных таблиц в Milvus. Если вы хотите начать заново, можно проверить, используется ли уже коллекция с именем, которое вы хотите использовать, и либо удалить ее с помощью drop_collection, либо выбрать новое имя.
utility.get_server_version()
if utility.has_collection(COLLECTION_NAME):
utility.drop_collection(COLLECTION_NAME)
Хотите пойти еще дальше и использовать векторную базу данных в продакшене или для более крупного проекта? Рассмотрите Zilliz Cloud или Milvus Standalone.
Краткое описание того, как использовать векторную базу данных в вашем Jupyter Notebook
В этом посте мы узнали, что векторные базы данных полезны всякий раз, когда вам нужно выполнить что-либо, связанное с поиском по сходству. Они помогают индексировать, хранить и запрашивать векторные эмбеддинговые представления неструктурированных данных, таких как изображения, видео или текст. Затем мы рассматриваем пример использования векторной базы данных в вашем Jupyter Notebook через Milvus Lite.
Наконец, мы заглядываем под капот Milvus, чтобы увидеть бэкенд распределенной системы. Мы также предоставляем ресурсы, чтобы понять, как начать использовать векторную базу данных с помощью примеров в ноутбуках CoLab. Для тех, кто хочет использовать отдельный экземпляр векторной базы данных, мы также предоставляем примеры настройки Milvus Standalone.
Читать далее

Zilliz Cloud On-Demand Compute: Pay Only for What You Use
The customer case behind Zilliz Cloud On-Demand: how a $10K vector search bill came down to under $500, and the engineering changes that made it possible.

Zilliz Cloud Just Landed in Claude Code
The Zilliz Cloud Plugin brings the full power of Zilliz Cloud directly into your Claude Code terminal as natural-language conversations.

Building RAG Pipelines for Real-Time Data with Cloudera and Milvus
explore how Cloudera can be integrated with Milvus to effectively implement some of the key functionalities of RAG pipelines.



