Статья опубликована в рамках: CXLVIII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 07 апреля 2025 г.)
Наука: Технические науки
Секция: Технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
СРАВНЕНИЕ СКОРОСТИ ЗАПИСИ, ЧТЕНИЯ SQL И ВЕКТОРНОЙ БД
COMPARING THE SPEED OF WRITING, READING SQL AND VECTOR DATABASES
Kirill Nochevny
student, Department of Function Theory and Stochastic Analysis, Saratov National Research State University named after N.G. Chernyshevsky,
Russia, Saratov
Dmitry Melnichuk
scientific supervisor, Ph.D., Associate Professor, Saratov National Research State University named after N.G. Chernyshevsky,
Russia, Saratov
АННОТАЦИЯ
В статье рассматривается сравнение векторных и традиционных баз данных для работы с текстом. Проведённый анализ показал, что векторные базы обеспечивают более релевантный поиск за счёт семантического анализа. Выявлено, что их выбор оправдан для сложных текстовых запросов, тогда как традиционные системы лучше подходят для структурированных данных.
ABSTRACT
The article discusses the comparison of vector and traditional databases for working with text. The analysis showed that vector databases provide a more relevant search through semantic analysis. It is revealed that their choice is justified for complex text queries, whereas traditional systems are better suited for structured data.
Ключевые слова: база данных, векторная база данных, табличная база данных, SQL, СУБД, анализ, традиционная база данных.
Keywords: database, vector database, tabular database, SQL, DBMS, analysis, traditional database.
Векторные базы данных (ВБД) хранят объекты в виде таблиц, где строки — это объекты, а столбцы — их характеристики. Векторы представляют собой наборы значений, описывающих объекты по признакам, например, по возрасту или местоположению.
Основные операции ВБД — поиск, индексирование и фильтрация. Поиск находит объекты по характеристикам, индексирование ускоряет доступ, а фильтрация отбирает элементы по заданным критериям. Архитектура ВБД включает хранилище данных, модуль управления, язык запросов, интерфейс, индексирование и оптимизацию. Хранилище сохраняет векторы, модуль управления обрабатывает операции, а оптимизатор запросов снижает затраты ресурсов. Последовательность использования векторной СУБД в ИИ-приложениях представлена на рисунке 1.
Рисунок 1. Процессы СУБД в векторной базе данных
Для индексации используется встраиваемая модель, которая создаёт векторы контента и сохраняет их в базе данных. При запросе генерируются векторы для сравнения с сохранёнными. Векторные данные хранятся в массивах, деревьях и хэш-таблицах для быстрого доступа. Методы сжатия уменьшают объём данных, снижая нагрузку на систему. Векторные базы данных поддерживают числовые, текстовые и географические данные.
Рисунок 2. Форматы векторной графики
Индексирование в векторных базах данных ускоряет поиск с помощью таких структур, как B-деревья и хэш-таблицы. Для поиска ближайших соседей используются алгоритмы, например, K-d деревья и методы приближённого поиска (ANN, LSH). Эти методы обеспечивают высокую скорость и точность при работе с большими данными, что важно для машинного обучения и анализа данных.
Рисунок 3. Оптимизация кода с помощью использования векторной БД
В традиционной базе данных для поиска информации о животных требуется точный запрос, в то время как векторная база позволяет использовать более общие запросы, такие как «животные», благодаря учёту семантической близости объектов. Это делает поиск более эффективным и интуитивным.
В коде анализируются все этапы работы: загружаются библиотеки для нейросетей, трансформеров и векторных баз, с акцентом на bitsandbytes для сжатия модели. Набор данных Habr Q&A очищается и делится на обучающую и тестовую выборки с помощью train_test_split.
Тестовая выборка сохраняется на Google Диске*(По требованию Роскомнадзора информируем, что иностранное лицо, владеющее информационными ресурсами Google является нарушителем законодательства Российской Федерации – прим. ред.) для удобного доступа. Загружается предварительно обученная модель Cerebras BTLM с 4-битным квантованием, что снижает требования к ресурсам без потери точности. Оценка производительности осуществляется с помощью функции test_model, которая генерирует текст и измеряет время отклика. Векторная база данных создается на основе научных публикаций, где тексты из CSV преобразуются в векторы для быстрого поиска.
Реализован поиск с указанием источников, а функция test_model_vectordb интегрирует векторную базу с моделью, повышая точность ответов. Взаимодействие с базой данных позволяет извлекать релевантную информацию, что делает ответы более точными и содержательными. Сравнение подходов показало, что использование векторной базы значительно расширяет возможности модели по сравнению с работой только с её внутренними знаниями.
Рисунок 4. Результат выполнения кода
Рисунок 5. Результат выполнения кода
Существует множество инструментов для работы с векторными базами данных, среди которых наиболее популярны Faiss, Milvus и Pinecone.
- Faiss — быстрая библиотека для поиска и сравнения векторов, оптимизированная для работы с большими данными.
- Milvus — платформа с удобным API для хранения и поиска векторов, поддерживающая различные алгоритмы индексации.
- Pinecone — облачное решение для масштабируемого поиска векторов без управления инфраструктурой.
Выбор инструмента зависит от требований проекта: Faiss — быстрый, но требует интеграции; Milvus — удобный, но требует развёртывания; Pinecone — простой, но облачный. Тестирование Weaviate, Milvus, Pinecone, Qdrant и FAISS показало, что FAISS лидирует по скорости, а остальные библиотеки имеют схожую эффективность. Оптимальный выбор зависит от скорости, масштабируемости и специфики проекта, дополнительные тесты помогут уточнить решение.
Рисунок 6. Сравнение алгоритмов
Рисунок 6 иллюстрирует зависимость точности поиска от количества образцов данных для алгоритмов Faiss и Annoy. По мере увеличения объёма данных Faiss демонстрирует немного более высокую точность поиска по сравнению с Annoy, что делает его предпочтительным выбором для задач, требующих максимальной точности.
Список источников:
- «Introduction to Information Retrieval» by Christopher D. Manning, Prabhakar Raghavan, and Hinrich Schu¨tze. - [Электронный ресурс] - https://nlp.stanford.edu/IR-book/ - Загл. с экрана. (дата обращения: 02.03.2025). - Яз. рус.
- «Mining Massive Datasets» by Jure Leskovec, Anand Rajaraman, and Jeff Ullman. - [Электронный ресурс] - http://www.mmds.org/ - Загл. с экрана. (дата обращения: 07.03.2025). - Яз. рус.
- «Теория и практика построения интеллектуальных систем» под редакцией Л. Хованского. Логрус. Ру, [2000]. - 521 с. (дата обращения: 09.03.2025).
- «Информационный поиск и обработка текста» от Факультета Компьютерных Наук ВШЭ - [Электронный ресурс] - URL: https://cs.hse.ru/informationretrieval - Загл. с экрана. (дата обращения: 08.03.2025). - Яз. рус.
- «Vector Space Models for the Digital Humanities» edited by Simon Clematide and Simon Hengchen. - [Электронный ресурс] - https://www.springer.com/gp/book/9783030499148 (дата обращения: 06.04.2025).- Загл. с экрана. - Яз. рус.
- «Основы машинного обучения» от Coursera [Электронный ресурс] - URL: https://www.coursera.org/learn/machine-learning - Загл. с экрана.(дата об- ращения: 18.03.2025). - Яз. рус.
- «Habr» [Электронный ресурс]- URL: https://habr.com/ru/ - Загл. с экрана. (дата обращения: 15.03.2025). - Яз. рус.
- «Курс по анализу данных» от Школы анализа данных Яндекса - [Электронный ресурс]- URL: https://yandexdataschool.ru/eduprocess/courses/data-analysis - Загл. с экрана. (дата обращения: 03.04.2025). - Яз. рус.
дипломов
Оставить комментарий