Развитие контекстного и семантического поиска сделало предприятия электронной коммерции и розничной торговли более простыми в поиске своих потребителей. Поисковые системы и системы рекомендаций, основанные на генеративном искусственном интеллекте, могут значительно улучшить процесс поиска продуктов, понимая запросы на естественном языке и возвращая более точные результаты. Это улучшает общий пользовательский опыт, помогая клиентам найти именно то, что они ищут.
Amazon OpenSearch Service теперь поддерживает косинусное подобие метрика для индексов k-NN. Косинусное сходство измеряет косинус угла между двумя векторами, где меньший косинусный угол означает большее сходство между векторами. С помощью косинусного сходства вы можете измерить ориентацию между двумя векторами, что делает его хорошим выбором для некоторых конкретных приложений семантического поиска.
В этом посте мы покажем, как создать систему контекстного поиска текста и изображений для рекомендаций по продуктам с использованием модели мультимодального внедрения Amazon Titan, доступной в Amazon Bedrock, с Amazon OpenSearch Serverless.
Модель мультимодального внедрения предназначена для изучения совместных представлений различных модальностей, таких как текст, изображения и аудио. Обучаясь на крупномасштабных наборах данных, содержащих изображения и соответствующие им подписи, модель мультимодального встраивания учится встраивать изображения и тексты в общее скрытое пространство. Ниже приводится общий обзор того, как это работает концептуально:
- Отдельные кодеры – Эти модели имеют отдельные кодеры для каждой модальности — текстовый кодировщик для текста (например, BERT или RoBERTa), кодировщик изображений для изображений (например, CNN для изображений) и аудиокодеры для звука (например, такие модели, как Wav2Vec). . Каждый кодер генерирует вложения, фиксирующие семантические особенности соответствующих модальностей.
- Слияние модальностей – Вложения из унимодальных кодеров объединяются с использованием дополнительных слоев нейронной сети. Цель состоит в том, чтобы изучить взаимодействия и корреляции между модальностями. Общие подходы к слиянию включают конкатенацию, поэлементные операции, объединение и механизмы внимания.
- Общее пространство представления – Слои слияния помогают спроецировать отдельные модальности в общее пространство представления. Обучаясь на мультимодальных наборах данных, модель изучает общее пространство внедрения, в котором внедрения каждой модальности, представляющие одно и то же базовое семантическое содержание, расположены ближе друг к другу.
- Последующие задачи – Созданные совместные мультимодальные внедрения могут затем использоваться для различных последующих задач, таких как мультимодальный поиск, классификация или перевод. Модель использует корреляции между модальностями для повышения производительности этих задач по сравнению с отдельными модальными вложениями. Ключевым преимуществом является способность понимать взаимодействие и семантику между такими модальностями, как текст, изображения и аудио, посредством совместного моделирования.
Обзор решения
Решение обеспечивает реализацию создания прототипа поисковой системы на основе большой языковой модели (LLM) для поиска и рекомендации продуктов на основе текстовых или графических запросов. Мы подробно описываем шаги по использованию модели мультимодального внедрения Amazon Titan для кодирования изображений и текста во встраивания, добавления вложений в индекс службы OpenSearch и запроса индекса с использованием функции k-ближайших соседей (k-NN) службы OpenSearch.
Это решение включает в себя следующие компоненты:
- Модель мультимодальных вложений Amazon Titan. Эта базовая модель (FM) генерирует встраивания изображений продуктов, использованных в этом посте. С помощью мультимодальных встраиваний Amazon Titan вы можете создавать встраивания для своего контента и хранить их в векторной базе данных. Когда конечный пользователь отправляет любую комбинацию текста и изображения в качестве поискового запроса, модель генерирует внедрения для поискового запроса и сопоставляет их с сохраненными внедрениями, чтобы предоставить конечным пользователям релевантные результаты поиска и рекомендации. Вы можете дополнительно настроить модель, чтобы улучшить понимание вашего уникального контента и обеспечить более значимые результаты, используя пары изображение-текст для точной настройки. По умолчанию модель генерирует векторы (вложения) 1024 измерений, а доступ к ней осуществляется через Amazon Bedrock. Вы также можете создавать меньшие размеры для оптимизации скорости и производительности.
- Amazon OpenSearch Serverless — это бессерверная конфигурация для службы OpenSearch по требованию. Мы используем Amazon OpenSearch Serverless в качестве векторной базы данных для хранения внедрений, созданных с помощью модели мультимодальных внедрений Amazon Titan. Индекс, созданный в бессерверной коллекции Amazon OpenSearch, служит векторным хранилищем для нашего решения Retrival Augmented Generation (RAG).
- Amazon SageMaker Studio – это интегрированная среда разработки (IDE) для машинного обучения (ML). Специалисты по машинному обучению могут выполнять все этапы разработки машинного обучения — от подготовки данных до построения, обучения и развертывания моделей машинного обучения.
Конструкция решения состоит из двух частей: индексации данных и контекстного поиска. Во время индексации данных вы обрабатываете изображения продуктов для создания вложений для этих изображений, а затем заполняете хранилище векторных данных. Эти шаги выполняются до шагов взаимодействия с пользователем.
На этапе контекстного поиска поисковый запрос (текст или изображение) от пользователя преобразуется во встраивания, и в базе данных векторов выполняется поиск по сходству, чтобы найти похожие изображения продуктов на основе поиска по сходству. Затем вы отображаете лучшие похожие результаты. Весь код для этого поста доступен в Репозиторий GitHub.
На следующей диаграмме показана архитектура решения.
Ниже приведены этапы рабочего процесса решения:
- Загрузите текст и изображения описания продукта из общедоступной корзины Amazon Simple Storage Service (Amazon S3).
- Просмотрите и подготовьте набор данных.
- Создайте внедрения для изображений продуктов, используя модель мультимодальных внедрений Amazon Titan (amazon.titan-embed-image-v1). Если у вас огромное количество изображений и описаний, вы можете дополнительно использовать пакетный вывод для Amazon Bedrock.
- Храните встраивания в Amazon OpenSearch Serverless в качестве поисковой системы.
- Наконец, извлеките пользовательский запрос на естественном языке, преобразуйте его во внедрения с помощью модели мультимодальных внедрений Amazon Titan и выполните поиск по k-NN, чтобы получить релевантные результаты поиска.
В качестве IDE для разработки решения мы используем SageMaker Studio (не показана на схеме).
Эти шаги подробно обсуждаются в следующих разделах. Мы также прилагаем скриншоты и подробную информацию о результатах.
Предварительные условия
Чтобы реализовать решение, представленное в этом посте, у вас должно быть следующее:
- Учетная запись AWS и знание FM, Amazon Bedrock, Amazon SageMaker и OpenSearch Service.
- Модель мультимодального внедрения Amazon Titan включена в Amazon Bedrock. Вы можете подтвердить, что он включен на Доступ к модели страница консоли Amazon Bedrock. Если мультимодальные внедрения Amazon Titan включены, статус доступа будет отображаться как Доступ предоставленкак показано на следующем снимке экрана.
Если модель недоступна, включите доступ к модели, выбрав Управление доступом к моделивыбрав Мультимодальные встраивания Amazon Titan G1и выбирая Запросить доступ к модели. Модель сразу же становится доступной для использования.
Настройте решение
После выполнения необходимых шагов вы готовы к настройке решения:
- В своей учетной записи AWS откройте консоль SageMaker и выберите Студия в панели навигации.
- Выберите свой домен и профиль пользователя, затем выберите Открытая студия.
Имя вашего домена и профиля пользователя могут отличаться.
- Выбирать Системный терминал под Утилиты и файлы.
- Запустите следующую команду, чтобы клонировать Репозиторий GitHub в экземпляр SageMaker Studio:
- Перейдите к
multimodal/Titan/titan-multimodal-embeddings/amazon-bedrock-multimodal-oss-searchengine-e2e
папка. - Открой
titan_mm_embed_search_blog.ipynb
блокнот.
Запустите решение
Открыть файл titan_mm_embed_search_blog.ipynb
и используйте ядро Data Science Python 3. На Бегать меню, выбирай Запустить все ячейки чтобы запустить код в этом блокноте.
Этот блокнот выполняет следующие действия:
- Установите пакеты и библиотеки, необходимые для этого решения.
- Загрузите общедоступный Набор данных объектов Amazon Berkeley и метаданные во фрейме данных pandas.
Набор данных представляет собой коллекцию из 147 702 списков продуктов с многоязычными метаданными и 398 212 уникальных изображений каталога. В этом посте вы используете изображения и названия предметов только на английском языке (США). Вы используете около 1600 продуктов.
- Сгенерируйте внедрения для изображений элементов с помощью модели мультимодальных внедрений Amazon Titan с помощью
get_titan_multomodal_embedding()
функция. Для абстракции мы определили все важные функции, используемые в этом блокноте, вutils.py
файл.
Затем вы создаете и настраиваете бессерверное векторное хранилище Amazon OpenSearch (коллекцию и индекс).
- Прежде чем создавать новую коллекцию и индекс поиска векторов, необходимо сначала создать три связанные политики службы OpenSearch: политику безопасности шифрования, политику сетевой безопасности и политику доступа к данным.
- Наконец, вставьте изображение в векторный индекс.
Теперь вы можете выполнять мультимодальный поиск в режиме реального времени.
Запустите контекстный поиск
В этом разделе мы показываем результаты контекстного поиска по текстовому или графическому запросу.
Сначала давайте выполним поиск изображений на основе ввода текста. В следующем примере мы используем текстовый ввод «стакан для питья» и отправляем его в поисковую систему для поиска похожих предметов.
На следующем снимке экрана показаны результаты.
Теперь давайте посмотрим на результаты на основе простого изображения. Входное изображение преобразуется в векторные представления, и на основе поиска по сходству модель возвращает результат.
Вы можете использовать любое изображение, но в следующем примере мы используем случайное изображение из набора данных на основе идентификатора элемента (например, item_id
= «B07JCDQWM6»), а затем отправьте это изображение в поисковую систему для поиска похожих предметов.
На следующем снимке экрана показаны результаты.
Очистить
Чтобы избежать будущих расходов, удалите ресурсы, используемые в этом решении. Вы можете сделать это, запустив раздел очистки блокнота.
Заключение
В этом посте представлено пошаговое руководство по использованию модели мультимодального внедрения Amazon Titan в Amazon Bedrock для создания мощных приложений контекстного поиска. В частности, мы продемонстрировали пример приложения для поиска по товарному списку. Мы увидели, как модель внедрения обеспечивает эффективное и точное обнаружение информации из изображений и текстовых данных, тем самым улучшая взаимодействие с пользователем при поиске соответствующих элементов.
Amazon Titan Multimodal Embeddings помогает обеспечить более точный и контекстно-релевантный мультимодальный поиск, рекомендации и персонализацию для конечных пользователей. Например, компания, занимающаяся стоковой фотографией и имеющая сотни миллионов изображений, может использовать эту модель для расширения своих функций поиска, чтобы пользователи могли искать изображения, используя фразу, изображение или комбинацию изображения и текста.
Модель мультимодального внедрения Amazon Titan в Amazon Bedrock теперь доступна в регионах AWS Восток США (Сев. Вирджиния) и Запад США (Орегон). Чтобы узнать больше, обратитесь к генератору изображений Amazon Titan. Мультимодальные внедрения и текстовые модели теперь доступны в Amazon Bedrock, на странице продукта Amazon Titan и в Руководстве пользователя Amazon Bedrock. Чтобы начать работу с мультимодальными внедрениями Amazon Titan в Amazon Bedrock, посетите консоль Amazon Bedrock.
Начните создавать модели Amazon Titan Multimodal Embeddings в Amazon Bedrock уже сегодня.
Об авторах
Сандип Сингх — старший специалист по данным генеративного ИИ в Amazon Web Services, помогающий предприятиям внедрять инновации с помощью генеративного ИИ. Он специализируется на генеративном искусственном интеллекте, искусственном интеллекте, машинном обучении и системном проектировании. Он увлечен разработкой современных решений на базе искусственного интеллекта и машинного обучения для решения сложных бизнес-задач для различных отраслей, оптимизации эффективности и масштабируемости.
Мани Хануджа — технический руководитель, специалист по генеративному искусственному интеллекту, автор книги «Прикладное машинное обучение и высокопроизводительные вычисления на AWS», а также член совета директоров Фонда образования женщин в производстве. Она возглавляет проекты машинного обучения в различных областях, таких как компьютерное зрение, обработка естественного языка и генеративный искусственный интеллект. Она выступает на внутренних и внешних конференциях, таких как AWS re:Invent, Women in Manufacturing West, вебинарах YouTube и GHC 23. В свободное время она любит совершать длительные пробежки по пляжу.
Рупиндер Гревал — старший специалист по архитектуре решений AI/ML в AWS. В настоящее время он занимается обслуживанием моделей и MLOps в Amazon SageMaker. До этой должности он работал инженером по машинному обучению, создавая и размещая модели. Вне работы он любит играть в теннис и кататься на велосипеде по горным тропам.