Подготовьтесь к GPT-4 с GPTCache и Milvus, значительно сэкономьте на мультимодальном ИИ
Введение
По мере того как мир становится всё более цифровым, растёт спрос на решения в области искусственного интеллекта (ИИ), способные понимать и анализировать огромные объёмы данных. OpenAI's ChatGPT, работающий на базе GPT-3.5, уже произвёл революцию в области обработки естественного языка (NLP) и вызвал значительный интерес к большим языковым моделям (LLMs). По мере того как внедрение LLMs продолжает привлекать внимание и расширяться в различных отраслях, растёт и потребность в более продвинутых больших моделях ИИ, способных обрабатывать мультимодальные данные. Технологический мир уже полон ожиданий в отношении GPT-4, который обещает быть ещё более мощным и универсальным благодаря поддержке визуальных входных данных. Совместное использование GPT-4 с моделями генерации изображений также обладает огромным потенциалом. Чтобы подготовиться к этой грядущей революции, Zilliz представила GPTCache, интегрированный с Milvus, — революционное решение, которое может помочь компаниям сэкономить целое состояние на мультимодальном ИИ.
Мультимодальный ИИ означает интеграцию нескольких режимов восприятия и коммуникации, таких как речь, зрение, язык и жесты, для создания более интеллектуальных и эффективных систем ИИ. Такой подход позволяет моделям ИИ лучше понимать и интерпретировать человеческие взаимодействия и окружающую среду, а также генерировать более точные и нюансированные ответы. Мультимодальный ИИ применяется в различных областях, включая здравоохранение, образование, развлечения и транспорт. Некоторые примеры мультимодальных систем ИИ включают виртуальных помощников, таких как Siri и Alexa, автономные транспортные средства и инструменты медицинской диагностики, которые совместно анализируют изображения и данные пациентов.
В этой статье мы подробно рассмотрим GPTCache и изучим, как он работает совместно с Milvus, чтобы обеспечить более цельный и мощный пользовательский опыт в мультимодальных сценариях.
Семантический кеш для мультимодального ИИ
В большинстве случаев достижение желаемых результатов в мультимодальных приложениях ИИ требует использования больших моделей. Однако обработка таких моделей или вызовов может занимать много времени и быть дорогостоящей. Именно здесь GPTCache оказывается полезным: он позволяет системе сначала искать потенциальные ответы в кеше, прежде чем отправлять запрос в большую модель. GPTCache ускоряет весь процесс и помогает снизить затраты на работу больших моделей.
Изучение семантического кеша с GPTCache
Семантический кеш хранит и извлекает представления знаний о концепциях. Он предназначен для хранения и извлечения семантической информации или знаний структурированным способом. Таким образом, система ИИ может лучше понимать запросы или обращения и отвечать на них. Идея семантического кеша заключается в том, чтобы предоставить более быстрый доступ к релевантной информации за счёт предварительно вычисленных ответов на часто задаваемые вопросы или запросы, что может помочь повысить производительность и эффективность приложений ИИ.
GPTCache — это проект, разработанный для оптимизации времени отклика и снижения расходов на API-вызовы, связанные с большими моделями. Мы разработали GPTcache для создания семантического кеша, который хранит ответы модели и использует возможности Milvus. Технология построена на Milvus и включает несколько важных компонентов, таких как адаптер большой модели, менеджер контекста, генератор эмбеддингов, менеджер кеша, оценщик сходства и пре-/постпроцессоры.
Архитектура GPTCache
Адаптер обеспечивает бесперебойную работу GPTCache с любой большой моделью. Менеджер контекста обеспечивает большую гибкость, позволяя системе обрабатывать различные данные на разных этапах. Генератор эмбеддингов преобразует данные в эмбеддинги для векторного хранения и семантического поиска. Все векторы и другие ценные данные хранятся в кэше. Milvus не только поддерживает хранение данных большого масштаба, но и помогает ускорить и повысить производительность поиска по сходству. Наконец, оценщик отвечает за оценку того, достаточно ли хороши потенциальные ответы, извлеченные из кэша, для потребностей пользователя. Следующий фрагмент кода показывает, как инициализировать кэш с различными модулями в GPTCache.
from gptcache import cache
from gptcache.manager import get_data_manager, CacheBase, VectorBase, ObjectBase
from gptcache.processor.pre import get_prompt
from gptcache.processor.post import temperature_softmax
from gptcache.embedding import Onnx
from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation
onnx = Onnx()
cache_base = CacheBase('sqlite')
vector_base = VectorBase(
'milvus',
host='localhost',
port='19530',
dimension=onnx.dimension
)
object_base = ObjectBase('local', path='./objects')
data_manager = get_data_manager(cache_base, vector_base, object_base)
cache.init(
pre_embedding_func=get_prompt, # Pre-process
embedding_func=onnx.to_embeddings, # Embedding generator
data_manager=data_manager, # Cache manager
similarity_evaluation=SearchDistanceEvaluation() # Evaluator
post_process_messages_func=temperature_softmax # Post-process
)
Кэширование семантических данных в векторной базе данных
Одним из краеугольных камней семантического кэша, такого как GPTCache, является векторная база данных. В частности, генератор эмбеддингов GPTCache преобразует данные в эмбеддинги для векторного хранения и семантического поиска. Хранение векторов в векторной базе данных, такой как Milvus, не только поддерживает хранение данных большого масштаба, но и помогает ускорить и повысить производительность поиска по сходству. Это обеспечивает более эффективное извлечение потенциальных ответов из кэша.
Предобученная мультимодальная модель изучает векторное пространство для представления различных типов входных данных. В результате она может захватывать дополнительную информацию, предоставляемую другими модальностями. Эта парадигма позволяет системе интерпретировать данные с различными модальностями единым образом, обеспечивая более точную и эффективную обработку посредством семантического поиска. Векторные базы данных обеспечивают семантический поиск мультимодальных входных данных с помощью алгоритмов векторного сходства. В отличие от традиционных баз данных, которые хранят данные в строках и столбцах, векторные базы данных хранят и извлекают неструктурированные данные в виде векторов. Векторные базы данных управляют высокоразмерными данными, распространенными в мультимодальных AI-приложениях, которые обрабатывают различные типы данных как векторы.
Преимущества использования Milvus
Экосистема Milvus предоставляет полезные инструменты для мониторинга баз данных, миграции данных и оценки размера данных. Для более простой реализации и обслуживания Milvus существует облачный сервис Zilliz Cloud. Сочетание Milvus с GPTCache предлагает мощное решение для расширения функциональности и повышения производительности мультимодальных AI-приложений. Независимо от того, работаете ли вы с большими объемами данных, сложными моделями или разнообразными типами данных, этот подход может помочь оптимизировать обработку данных и повысить точность и скорость результатов. Интеграция Milvus с GPTCache в мультимодальном AI может дать несколько значительных преимуществ. Вот некоторые из наиболее заметных:
- Эффективное хранение и извлечение данных
Milvus специально создан для хранения и извлечения крупномасштабных векторных данных. Кроме того, вектор — это «универсальный язык», на котором говорят модели глубокого обучения. Milvus может легко обрабатывать векторы, обеспечивая быстрый и эффективный доступ к мультимодальным данным. Использование Milvus может привести к более быстрому времени отклика и лучшему пользовательскому опыту.
- Повышенная гибкость и масштабируемость
По мере роста объема данных, обрабатываемых AI-приложениями, возрастает и потребность в масштабируемом решении. Благодаря внедрению Milvus система может беспрепятственно масштабироваться для удовлетворения растущих требований. Кроме того, Milvus предоставляет широкий набор функций, которые могут улучшить общую гибкость и функциональность мультимодального AI.
- Повышенная точность и производительность
Благодаря унифицированному хранению и извлечению данных, предоставляемым Milvus, мультимодальные AI-приложения могут быстрее и точнее обрабатывать входные данные различных типов. Это может привести к более точным результатам и повышению общей производительности системы.
- Простота использования
Milvus предлагает различные варианты локального развертывания, включая быстрый старт с pip. Он также предоставляет облачный сервис через Zilliz Cloud, который позволяет пользователям быстро запускать и масштабировать свои экземпляры Milvus. Milvus также поддерживает SDK для нескольких языков, включая Python, Java и Go (еще больше находятся в разработке), что упрощает интеграцию в существующие приложения. Кроме того, Milvus предоставляет Restful API для удобного взаимодействия с сервером.
- Популярность и надежность
Milvus приобрел огромную популярность благодаря высокой масштабируемости и производительности. Имея более 1 000 корпоративных пользователей и активное open-source-сообщество, Milvus зарекомендовал себя как надежное решение для управления огромными объемами структурированных и неструктурированных данных. Будучи проектом-выпускником LF AI & Data Foundation, Milvus также получает институциональную поддержку, что еще больше укрепляет его позиции как основной базы данных для организаций, ищущих эффективные и надежные решения для управления данными.
Преодоление ограничений кэша для повышения разнообразия выходных данных
Мультимодальный AI, способный создавать разнообразные выходные данные, необходим для предоставления комплексного и эффективного решения, которое может удовлетворять потребности широкого круга пользователей. Разнообразие выходных данных помогает улучшить пользовательский опыт и повышает общую функциональность AI-системы. Кроме того, разнообразие выходных данных критически важно для приложений, требующих широкого диапазона типов вывода, таких как виртуальные ассистенты, чатботы и системы распознавания речи.
Хотя семантический кэш является эффективным способом извлечения данных, он может ограничивать разнообразие ответов пользователям. Он отдает приоритет кэшированным ответам вместо генерации новых с помощью большой модели. Это означает, что система может продолжать выдавать одинаковые или похожие результаты, в значительной степени полагаясь на ранее кэшированную информацию. В результате вывод может стать повторяющимся и лишенным новизны, что может быть проблематично в контекстах, где нужны разнообразные и творческие ответы.
Чтобы решить эту проблему, температура в машинном обучении стала ценным инструментом. Температура определяет случайность или разнообразие содержания ответа: более высокое значение температуры позволяет шире исследовать возможности за пределами наиболее вероятного вывода. Это может приводить к творческим и неожиданным результатам, учитывающим более широкий спектр предпочтений и стилей. С другой стороны, более низкое значение температуры генерирует более сфокусированные и детерминированные ответы, выдавая точные и согласованные результаты. Преодолевая ограничения кэша путем настройки температуры, мультимодальные AI-приложения могут создавать более комплексные и эффективные решения, отвечающие потребностям более широкого круга пользователей.
Температура в GPTCache
Выбор подходящего значения температуры крайне важен в мультимодальном ИИ, чтобы сбалансировать случайность и согласованность, а также соответствовать конкретным потребностям и предпочтениям пользователя или приложения. Температура в GPTCache в основном сохраняет общее понятие температуры в машинном обучении. Она реализуется с помощью 3 вариантов в рабочем процессе:
- Выбор после оценки
Softmax-активация на логитах модели — распространенный прием, связанный с температурой в глубоком обучении. GPTCache аналогично использует функцию softmax для преобразования оценок сходства ответов-кандидатов в список вероятностей. Чем выше оценка, тем больше вероятность, что он будет выбран в качестве итогового ответа. Температура управляет резкостью распределения вероятностей. Это означает, что ответ с более высокой оценкой с большей вероятностью будет выбран. Постпроцессор temperature_softmax в GPTCache следует этому алгоритму, чтобы выбрать элемент из списка кандидатов с учетом их оценок или уровней уверенности.
from gptcache.processor.post import temperature_softmax
messages = ["message 1", "message 2", "message 3"]
scores = [0.9, 0.5, 0.1]
answer = temperature_softmax(messages, scores, temperature=0.5)
- Вызов модели без кэша
Мы применяем возможность напрямую вызывать большие модели без поиска в кэше. На эту возможность влияет температура. Более высокая температура означает большую вероятность пропустить поиск в кэше, тогда как более низкая температура снижает вероятность пропуска поиска в кэше. Вот пример использования temperatuer_softmax для управления решением о пропуске или проверке кэша с помощью температуры.
from gptcache.processor.post import temperature_softmax
def skip_cache(temperature):
if 0 < temperature < 2:
cache_skip_options = [True, False]
prob_cache_skip = [0, 1]
cache_skip = temperature_softmax(
messages=cache_skip_options,
scores=prob_cache_skip,
temperature=temperature)
)
elif temperature >= 2:
cache_skip = True
else: # temperature <= 0
cache_skip = False
return cache_skip
- Редактирование результата из кэша
Использование небольшой модели или некоторых инструментов для редактирования ответа; этот вариант требует редактора с возможностью преобразовывать тип данных вывода.
Мультимодальные приложения
Все больше людей обращаются за помощью к GPT-4 вместо того, чтобы довольствоваться ChatGPT и полагаться исключительно на GPT-3.5. Кроме того, текущий тренд смещается от чистых LLM к мультимодальным приложениям. Мультимодальный ИИ в первую очередь взаимодействует с несколькими модальностями данных, включая текст, визуальные материалы и аудио. По мере развития технологий ИИ GPTCache и Milvus представляют собой увлекательный и инновационный подход к созданию интеллектуальных мультимодальных систем. Следующие примеры демонстрируют, как GPTCache и Milvus были реализованы в мультимодальных сценариях.
1. Текст в изображение: генерация изображений
Генерация изображений с помощью ИИ в последние годы была горячей темой. Она означает создание изображений на основе текстовых описаний или инструкций с использованием предварительно обученной мультимодальной текстово-изобразительной модели. За последние годы эта технология прошла большой путь. Мы видели невероятные достижения в моделях и приложениях для генерации изображений, которые могут создавать убедительные изображения, которые часто трудно отличить от фотографий, сделанных людьми.
Подсказка | белая сиамская кошка
Процесс генерации изображений включает использование текстовых подсказок в качестве входных данных. С GPTCache генерация изображений упрощается благодаря его функции семантического поиска по подсказкам. Система использует Milvus для сравнения текстовых эмбеддингов и обнаружения похожих подсказок, сохраненных в кэше. Затем она извлекает соответствующие изображения из кэша. Если в кэше нет удовлетворительных результатов, GPTCache вызовет модель генерации изображений. Изображение и текстовые выходные данные модели сохраняются GPTCache, что обогащает его базу данных. Генератор эмбеддингов преобразует каждую текстовую подсказку в вектор, затем сохраняет его в Milvus для упрощения хранения и извлечения.
Пример кода ниже вызывает сервис OpenAI, адаптированный с помощью GPTCache, чтобы сгенерировать изображение по тексту "a whilte siamese cat." Запрос регулирует разнообразие генерируемых изображений в каждом случае с помощью значения temperature и top_k. При изменении температуры с ее значения по умолчанию 0.0 на более высокое значение 0.8 запрос с большей вероятностью будет каждый раз получать другое изображение при том же тексте.
from gptcache.adapter import openai
cache.set_openai_key()
response = openai.Image.create(
prompt="a white siamese cat",
temperature=0.8, # optional, defaults to 0.0.
top_k=10 # optional, defaults to 5 if temperature>0.0 else 1.
)
В настоящее время GPTCache имеет встроенные адаптеры для большинства популярных моделей или сервисов генерации изображений, включая OpenAI Image Creation, Stability.AI API, Stable Diffusions at HuggingFace. Bootcamp предоставляет руководство по генерации изображений с использованием OpenAI.
2. Из изображения в текст: создание подписей к изображениям
Создание подписей к изображениям генерирует текстовое описание изображения, обычно с использованием предварительно обученной мультимодальной модели «изображение-текст». Эта технология позволяет компьютерам понимать содержимое изображений и описывать его на естественном языке для интерпретации людьми. Создание подписей к изображениям также может предоставить гораздо более надежное решение при интеграции в чат-бота. Оно обеспечивает плавный переход между визуальными и разговорными аспектами продукта, улучшая общий пользовательский опыт.
Большая коричневая собака лежит на кровати
Что касается создания подписей к изображениям, GPTCache начинает со сканирования своего кэша на предмет изображений, похожих на входное изображение, что измеряется эмбеддингами изображений. Затем, чтобы обеспечить качество возвращаемых подписей, оценщик выполняет дополнительную оценку релевантности или сходства между входным изображением и изображениями или подписями, извлеченными из кэша. Например, предварительно обученные визуальные модели, такие как ResNets или ViTs, могут оценивать сходство изображений. Кроме того, модель «текст-изображение», такая как CLIP, может применяться для измерения сходства между изображением и текстом. Если совпадений в кэше нет, система использует мультимодальную модель для генерации подписей для данного изображения. Впоследствии GPTCache сохраняет как изображение, так и соответствующие ему подписи, при этом изображения и подписи сохраняются как векторы в Milvus.
GPTCache уже адаптировал популярные сервисы создания подписей к изображениям, такие как Replicate BLIP и miniGPT-4. Он планирует поддерживать больше сервисов преобразования изображений в текст и мультимодальных моделей, размещенных локально.
3. Из аудио в текст: транскрипция речи
Преобразование аудио в текст, также известное как транскрибация речи, преобразует аудиоконтент, такой как записанные разговоры, встречи или лекции, в письменный текст. Эта технология позволяет людям, которым может быть трудно слышать или которые предпочитают читать, а не слушать контент, легче получать доступ к информации и понимать её. Помимо передачи транскрипций чат-боту вроде ChatGPT, пользователи могут использовать транскрипции для дальнейшего изучения.
Аудиофайл | Один бурбон, один скотч, один счёт
Аудиофайл обычно служит исходными входными данными для транскрибации речи. При включении GPTCache первый шаг включает создание аудиоэмбеддинга для каждого входного элемента. Затем система использует Milvus для поиска по сходству, извлекая потенциальные транскрипции из кэша. Наконец, модель или сервис автоматического распознавания речи (ASR) вызывается, когда после оценки не найдено соответствующих ответов. Все пары аудио и транскрипций, сгенерированные моделью ASR, сохраняются в кэше. Использование Milvus для хранения аудиоданных в виде векторов обеспечивает возможность сопоставления похожего аудио из кэша. Это также обеспечивает масштабируемость по мере увеличения объёма аудиоданных.
GPTCache и Milvus значительно снижают необходимость в многократных вызовах ASR, повышая скорость и эффективность. GPTCache bootcamp по Speech to Text предоставляет пример учебного руководства по включению GPTCache и применению Milvus для OpenAI Transcriptions.
Заключение
Использование мультимодальных моделей ИИ набирает популярность, позволяя проводить более всесторонний анализ и лучше понимать сложные данные. Благодаря поддержке неструктурированных данных Milvus является идеальным решением для создания и масштабирования мультимодальных приложений. Кроме того, добавление дополнительных функций в GPTCache, таких как управление сессиями, осведомлённость о контексте и поддержка сервера, ещё больше расширяет возможности мультимодального ИИ. Благодаря этим достижениям мультимодальные модели ИИ получают больше потенциальных вариантов использования и сценариев. Следите за GPTCache Bootcamp, чтобы получать больше сведений о мультимодальных приложениях ИИ.
Читать далее

Introducing Business Critical Plan: Enterprise-Grade Security and Compliance for Mission-Critical AI Applications
Discover Zilliz Cloud’s Business Critical Plan—offering advanced security, compliance, and uptime for mission-critical AI and vector database workloads.

Vector Databases vs. Document Databases
Use a vector database for similarity search and AI-powered applications; use a document database for flexible schema and JSON-like data storage.

Optimizing Embedding Model Selection with TDA Clustering: A Strategic Guide for Vector Databases
Discover how Topological Data Analysis (TDA) reveals hidden embedding model weaknesses and helps optimize vector database performance.



