Как интегрировать OpenAI Embedding API с Zilliz Cloud
В 2018 году Zilliz разработала векторную базу данных Milvus, чтобы изменить подход к обработке поиска и хранения (ранее мы уже обсуждали влияние эмбеддингов и векторных баз данных). Изначально Milvus была сосредоточена на предоставлении ключевых функций, необходимых для векторной базы данных, с акцентом на улучшение пользовательского опыта, обеспечение надежности, а также повышение производительности и масштабируемости. Такой подход привел к значительному росту сообщества Milvus, включая пользователей, контрибьюторов и звезды — сейчас их число приближается к 30 000.
В последнее время, особенно с выпуском Milvus 2.4, сообщество выразило большой интерес к расширению экосистемы векторных баз данных за счет включения большего количества инструментов, визуализаций и коннекторов. Одним из ключевых запросов стала более тесная интеграция с моделями эмбеддингов. Эта обратная связь отражает меняющиеся потребности пользователей и растущую значимость моделей эмбеддингов в сфере векторных баз данных.
Интеграции моделей эмбеддингов
Чтобы удовлетворить этот растущий спрос, мы рады представить интеграции моделей эмбеддингов, которые позволят бесшовно связать вашу базу данных Milvus или Zilliz Cloud как с open-source, так и с коммерческими моделями. Эти интеграции разработаны с учетом разнообразия доступных сегодня моделей машинного обучения и подходят для различных типов данных и сценариев использования. Работаете ли вы с текстом, изображениями или другими типами данных, эта функция гарантирует, что вы сможете легко использовать возможности моделей эмбеддингов для улучшения своих возможностей семантического поиска по сходству.
В ответ на меняющийся ландшафт моделей эмбеддингов и потребностей пользователей мы предложим два параллельных набора интеграций. Первый набор ориентирован на популярные open-source модели эмбеддингов, обеспечивая гибкость и экономическую эффективность для пользователей, предпочитающих решения, развиваемые сообществом. Второй набор включает интеграции с премиальными коммерческими моделями эмбеддингов, предлагая расширенные функции и повышенную производительность для пользователей с более специализированными требованиями. Такой двойной подход гарантирует, что все пользователи, независимо от их потребностей в эмбеддингах или бюджета, получат доступ к мощным инструментам для оптимизации своих баз данных Milvus или Zilliz Cloud.
Почему интеграция с Zilliz Cloud является ключевой
Интеграция OpenAI Embedding API с Zilliz Cloud важна для разработчиков, стремящихся расширить свои возможности векторного поиска, например в области обработки естественного языка. Объединяя мощные предварительно обученные эмбеддинги OpenAI с высокопроизводительной векторной базой данных Zilliz Cloud, вы можете создавать более точные и эффективные системы поиска и извлечения. Эмбеддинги OpenAI улавливают сложные семантические связи в ваших данных, а Zilliz Cloud обеспечивает масштабируемость и скорость, необходимые для обработки больших объемов векторных данных. Эта интеграция позволяет разработчикам использовать передовые модели ИИ для повышения релевантности результатов поиска, упрощая создание приложений, которые понимают запросы пользователей и отвечают на них с большей точностью.
Более того, эта интеграция упрощает процесс разработки, предлагая оптимизированный способ обработки и поиска по огромным наборам данных. Благодаря тому, что Zilliz Cloud управляет серверной инфраструктурой, а OpenAI’s Embedding API предоставляет сложные представления данных, разработчики могут больше сосредоточиться на создании своих приложений и меньше — на сложностях обработки данных. Такая схема не только повышает производительность, но и сокращает время разработки, позволяя
Примеры в Zilliz Cloud
Первый набор интеграций представляет собой серию готовых к POC примеров и исполняемых скриптов, использующих Milvus и Zilliz Cloud. Эти примеры предназначены для предоставления полностью настраиваемой отправной точки для инженеров-программистов, чтобы создавать приложения для различных пользовательских сценариев. Большинство этих примеров будут довольно простыми скриптами, объединяющими вышестоящие модели эмбеддингов и Milvus SDK. Вы можете найти их в наших notebooks, где каждый пример может выглядеть примерно так (значительно упрощено для удобочитаемости):
from pymilvus import connections, Collection
import openai
...
connections.connect(uri=URI, user=USER, password=PASSWORD, secure=True)
collection = Collection(name=COLLECTION_NAME, schema=schema)
collection.create_index(field_name="embedding", index_params=index_params)
...
for text in document:
embedding = openai.Embedding.create(
input=text,
engine=OPENAI_ENGINE)["data"][0]["embedding"]
collection.insert([embedding])
...
Хотя небольшие примерные скрипты хороши для использования общего назначения, мы обнаружили, что в каждом скрипте было значительное повторное использование; например, инференс модели и запросы к базе данных — это два действия, выполняемые почти во всех примерах. Чтобы решить эту повторяющуюся проблему, мы запустили Towhee, проект Zilliz в экосистеме Milvus. Towhee интегрирует сотни open-source моделей, API эмбеддингов и собственных моделей, предоставляя ML-практикам возможность собирать сквозные поисковые пайплайны на базе Milvus или Zilliz Cloud всего в несколько строк кода. Пример пайплайна для векторизации названий книг (с использованием API эмбеддингов OpenAI) и вставки их в Milvus может выглядеть примерно так:
pipeline = (
pipe.input('id', 'text')
.map(
ops.text_embedding.openai(
engine='embedding-engine',
api_key='my-api-key'
)
)
.map(
ops.ann_insert.milvus_client(
host='my-vector-database.url',
port='19530',
collection_name='my-collection'
)
)
.output()
)
Вы можете увидеть больше примеров Towhee в Milvus bootcamp, а также полное руководство в документации Towhee.
Свяжитесь с нами
Короче говоря, за пять лет мы добились большого прогресса, но нам еще предстоит пройти долгий путь. Zilliz продолжит быть ключевым спонсором и главной движущей силой проекта Milvus, но в дальнейшем мы также будем сосредоточены на интеграциях и партнерствах с более широкой экосистемой машинного обучения.
Если вы контрибьютор open source и хотите обсудить потенциальную интеграцию, пожалуйста, свяжитесь с нами или напишите нам в Twitter. Мы будем рады видеть вас частью сообщества!
Читать далее

A Developer's Guide to Exploring Milvus 2.6 Features on Zilliz Cloud
Milvus 2.6 marks a shift from “vector search + glue code” to a more advanced retrieval engine, and it is now Generally Available (GA) on Zilliz Cloud (a managed Milvus service).

Vector Databases vs. Object-Relational Databases
Use a vector database for AI-powered similarity search; use an object-relational database for complex data modeling with both relational integrity and object-oriented features.

Similarity Metrics for Vector Search
Exploring five similarity metrics for vector search: L2 or Euclidean distance, cosine distance, inner product, and hamming distance.



