Благодаря Milvus любой желающий может создать базу данных векторов для 1+ миллиарда изображений
Рост вычислительных мощностей и снижение стоимости вычислений сделали машинную аналитику и искусственный интеллект (ИИ) более доступными, чем когда-либо прежде. На практике это означает, что с помощью одного сервера и 10 строк кода можно создать систему обратного поиска изображений, способную запрашивать более 1 миллиарда изображений в режиме реального времени. В этой статье рассказывается о том, как Milvus, платформа управления векторными данными с открытым исходным кодом, может использоваться для создания мощных систем обработки и анализа неструктурированных данных, а также о базовой технологии, которая делает все это возможным.
Перейти к:
- Благодаря Milvus любой может создать векторную базу данных для 1+ миллиарда изображений
- Как ИИ позволяет анализировать неструктурированные данные?
- Нейронные сети преобразуют неструктурированные данные в удобные для компьютера векторы признаков - Алгоритмы ИИ преобразуют неструктурированные данные в векторы
- Что такое платформы управления векторными данными?
- Каковы ограничения существующих подходов к управлению векторными данными? - Обзор архитектуры Milvus.
- Каковы области применения платформ управления векторными данными и поиска сходства векторов?
- Обратный поиск изображений - функция Google "поиск по картинке".
- Узнайте больше о Milvus
Как ИИ позволяет анализировать неструктурированные данные?
Часто приводимая статистика гласит, что 80 % всех данных в мире являются неструктурированными, но лишь 1 % из них когда-либо анализируется. Неструктурированные данные, включая изображения, видео, аудио и естественный язык, не имеют заранее определенной модели или способа организации. Это затрудняет обработку и анализ больших массивов неструктурированных данных. По мере распространения смартфонов и других подключенных устройств производство неструктурированных данных достигает новых высот, и компании все больше понимают, насколько важными могут быть выводы, сделанные на основе этой туманной информации.
На протяжении десятилетий ученые-компьютерщики разрабатывали алгоритмы индексирования, предназначенные для организации, поиска и анализа конкретных типов данных. Для структурированных данных существуют растровые карты, хэш-таблицы и B-деревья, которые обычно используются в реляционных базах данных, разработанных такими технологическими гигантами, как Oracle и IBM. Для полуструктурированных данных стандартными являются алгоритмы инвертированного индексирования, которые можно найти в таких популярных поисковых системах, как Solr и ElasticSearch. Однако алгоритмы индексирования неструктурированных данных основаны на вычислительных ресурсах искусственного интеллекта, который стал широко доступен только в последнее десятилетие.
Нейронные сети преобразуют неструктурированные данные в удобные для компьютера векторы признаков
С помощью нейронных сетей (например, CNN, RNN и BERT) неструктурированные данные можно преобразовать в векторы признаков (они же эмбеддинги), которые представляют собой строки целых или плавающих чисел. Такой формат числовых данных гораздо легче обрабатывается и анализируется машинами. Приложения, охватывающие обратный поиск изображений, поиск видео, обработку естественного языка (NLP) и многое другое, могут быть созданы на основе встраивания неструктурированных данных в векторы признаков, а затем вычисления сходства между векторами с помощью таких мер, как евклидово расстояние или косинусное сходство.
Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_2.jpeg
Вычисление сходства векторов - относительно простой процесс, который опирается на устоявшиеся алгоритмы. Однако неструктурированные наборы данных, даже после преобразования в векторы признаков, обычно на несколько порядков больше традиционных структурированных и полуструктурированных наборов данных. Векторный поиск по сходству затруднен из-за огромного объема памяти и вычислительных мощностей, необходимых для эффективного и точного запроса массивных неструктурированных данных. Однако, если можно пожертвовать некоторой степенью точности, существуют различные алгоритмы поиска приближенных ближайших соседей (ANN), которые могут значительно повысить эффективность запросов для массивных наборов данных с высокой размерностью. Эти ANN-алгоритмы снижают требования к хранению и вычислительную нагрузку за счет кластеризации похожих векторов, что приводит к ускорению поиска векторов. Обычно используются алгоритмы на основе деревьев, графов и комбинированные ANN.
Что такое платформы управления векторными данными?
Платформы управления векторными данными - это специально разработанные приложения для хранения, обработки и анализа массивных векторных наборов данных. Эти инструменты предназначены для удобного взаимодействия с большими объемами данных и включают в себя функциональность, которая упрощает управление векторными данными. К сожалению, существует мало систем, которые были бы одновременно гибкими и достаточно мощными для решения современных задач, связанных с большими данными. Milvus, платформа управления векторными данными, созданная компанией Zilliz и выпущенная под лицензией с открытым исходным кодом в 2019 году, пытается заполнить этот пробел.
Каковы ограничения существующих подходов к управлению векторными данными?
Распространенный способ построения системы анализа неструктурированных данных заключается в использовании алгоритмов типа ANN в паре с библиотеками реализации с открытым исходным кодом, такими как Facebook AI Similarity Search (Faiss). В силу ряда ограничений эти комбинации алгоритмов и библиотек не являются эквивалентом полноценной системы управления векторными данными, такой как Milvus. Существующие технологии, используемые для управления векторными данными, сталкиваются со следующими проблемами:
- Гибкость: По умолчанию существующие системы обычно хранят все данные в оперативной памяти, что означает, что они не могут работать на нескольких машинах и плохо подходят для работы с массивными наборами данных.
- Динамическая обработка данных: Данные часто считаются статичными после их ввода в существующие системы, что усложняет обработку динамических данных и делает невозможным поиск в режиме, близком к реальному времени.
- Расширенная обработка запросов: Большинство инструментов не поддерживают расширенную обработку запросов (например, фильтрацию атрибутов и многовекторные запросы), которая необходима для создания полезных поисковых систем по сходству.
- Оптимизация гетерогенных вычислений: Немногие платформы предлагают оптимизацию для гетерогенных системных архитектур как на CPU, так и на GPU (за исключением Faiss), что приводит к снижению эффективности.
Milvus пытается преодолеть все эти ограничения. Система повышает гибкость, предлагая поддержку различных интерфейсов приложений (включая SDK на Python, Java, Go, C++ и RESTful API), несколько типов векторных индексов (например, индексы на основе квантования и индексы на основе графов), а также расширенную обработку запросов. Milvus обрабатывает динамические векторные данные с помощью лог-структурированного дерева слияния (LSM-дерево), обеспечивая эффективную вставку и удаление данных, а также поиск в режиме реального времени. Milvus также обеспечивает оптимизацию для гетерогенных вычислительных архитектур на современных CPU и GPU, позволяя разработчикам настраивать системы под конкретные сценарии, наборы данных и среды приложений.
Блог_Благодаря искусственному интеллекту любой может создать поисковую систему для 1+ миллиарда изображений_3.png
Используя различные методы индексирования ANN, Milvus смог достичь 99 % показателя запоминания в топ-5. Система также способна загружать более 1 миллиона записей данных в минуту. В результате время выполнения запроса составляет менее одной секунды при обратном поиске по 1 миллиарду изображений. Будучи облачным приложением, которое может работать как распределенная система, развернутая на нескольких узлах, Milvus может легко и надежно достичь аналогичной производительности на наборах данных, содержащих 10 или даже 100 миллиардов изображений. Кроме того, система не ограничивается данными об изображениях, ее применение распространяется на компьютерное зрение, разговорный ИИ, рекомендательные системы, открытие новых лекарств и многое другое.
Каковы области применения платформ управления векторными данными и поиска векторного сходства?
Как уже говорилось выше, такая платформа управления векторными данными, как Milvus, в сочетании с алгоритмами приближенного поиска ближайших соседей позволяет осуществлять поиск сходства в гигантских объемах неструктурированных данных. Эта технология может быть использована для разработки приложений, охватывающих самые разные области. Ниже мы кратко расскажем о нескольких распространенных случаях использования инструментов управления векторными данными и поиска векторного сходства.
Обратный поиск изображений
Крупнейшие поисковые системы, такие как Google, уже предоставляют пользователям возможность поиска по изображениям. Кроме того, платформы электронной коммерции осознали преимущества этой функции для онлайн-покупателей, а компания Amazon включила поиск по изображениям в свои приложения для смартфонов.
Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_4.png
Программное обеспечение с открытым исходным кодом, такое как Milvus, позволяет любому предприятию создать свою собственную систему обратного поиска изображений, что снижает барьеры для входа в эту все более востребованную функцию. Разработчики могут использовать предварительно обученные модели искусственного интеллекта для преобразования собственных наборов данных изображений в векторы, а затем использовать Milvus для поиска похожих товаров по изображениям.
Системы рекомендаций по видео
Крупнейшие онлайн-видеоплатформы, такие как YouTube, ежеминутно получающие 500 часов пользовательского контента, предъявляют уникальные требования к рекомендациям контента. Чтобы давать релевантные рекомендации в режиме реального времени с учетом новых загрузок, системы видеорекомендаций должны обеспечивать молниеносное время запроса и эффективную динамическую обработку данных. Преобразование ключевых кадров в векторы и последующая передача результатов в Milvus позволяют осуществлять поиск и давать рекомендации по миллиардам видео практически в режиме реального времени.
Обработка естественного языка (NLP)
Обработка естественного языка - это направление искусственного интеллекта, целью которого является создание систем, способных интерпретировать человеческий язык. После преобразования текстовых данных в векторы Milvus можно использовать для быстрого выявления и удаления дубликатов текста, семантического поиска или даже создания интеллектуального помощника при написании текстов. Эффективная платформа управления векторными данными помогает максимально повысить эффективность любой системы NLP.
Узнайте больше о Milvus
Если вы хотите узнать больше о Milvus, посетите наш сайт. Кроме того, наш буткемп предлагает несколько учебных пособий с инструкциями по настройке Milvus, эталонному тестированию и созданию различных приложений. Если вы интересуетесь управлением векторными данными, искусственным интеллектом и проблемами больших данных, присоединяйтесь к нашему сообществу с открытым исходным кодом на GitHub и общайтесь с нами в Slack.
Хотите узнать больше о создании системы поиска изображений? Ознакомьтесь с этим тематическим исследованием:
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word