2 часа назад
Amazon DynamoDB получил поддержку векторного поиска в реальном времени

Amazon объявила о доступности векторного поиска в Amazon DynamoDB. Теперь в DynamoDB можно хранить векторные представления данных (эмбеддинги) наряду с операционными данными и выполнять поиск по схожести напрямую в этой базе, без переноса информации в отдельное хранилище векторов.
Векторный поиск в DynamoDB работает с задержкой в единицы миллисекунд при показателе полноты поиска более 99% и рассчитан на масштабирование до триллионов векторов. Пользователям не нужно подготавливать серверы, устанавливать дополнительное ПО или заниматься его обслуживанием. Сервис работает без версий, окон технического обслуживания и простоев.
Векторные индексы не имеют ограничений по объёму хранения и масштабируются горизонтально по ходу роста данных. Это позволяет разрабатывать приложения с семантическим поиском для памяти ИИ-агентов, систем генерации с дополнением контекстом (RAG), рекомендательных систем, персонализированных сценариев и обнаружения аномалий.
Поиск без отдельной векторной базы
Ранее приложения на DynamoDB, которым требовался векторный поиск, обычно использовали отдельное специализированное память векторов. Для этого данные приходилось копировать между сервисами и поддерживать отдельный конвейер синхронизации.
Такой подход увеличивал сложность эксплуатации: появлялись дополнительные затраты на передачу данных, лицензирование и необходимость поддерживать стабильную задержку при росте нагрузки.
Теперь векторные данные и операционные информация могут храниться в одной бессерверной инфраструктуре DynamoDB с той же моделью оплаты за запросы.
Как работает векторный поиск в DynamoDB
В DynamoDB появился свежий тип индекса, который создаётся для атрибута с векторными представлениями данных.
Эмбеддинги можно получить с помощью выбранной модели, в частности Amazon Bedrock Titan Text Embeddings, Cohere Embed или моделей создания текстовых эмбеддингов от OpenAI. После этого они сохраняются в таблице как список чисел с плавающей точкой с помощью стандартного вызова PutItem.
После создания векторного индекса необходимо указать количество измерений, функцию расстояния и дополнительные атрибуты, которые будут использоваться для фильтрации результатов поиска.
программный интерфейс SearchVectors принимает поисковый вектор, количество возвращаемых результатов (до 100) и дополнительные условия фильтрации. В ответ он возвращает результаты, отсортированные по степени сходства.
Ограничения и сценарии использования
Векторный поиск в DynamoDB подходит для случаев, когда рабочие информация уже находятся в DynamoDB и требуется добавить поиск по схожести без развёртывания отдельной базы данных и поддержки синхронизации между системами.
Функция работает в полностью бессерверном режиме и автоматически масштабируется наряду с нагрузкой. Поддерживаются векторы размерностью до 4096 измерений, функции расстояния Euclidean, Cosine и Dot product, а также встроенная фильтрация результатов.
Как начать работу с векторным поиском в DynamoDB
Рассмотрим, как добавить векторный поиск в существующую таблицу через консоль DynamoDB.
В примере используется интернет-магазин спортивных товаров с таблицей каталога. Каждая запись содержит обычные атрибуты: productId, category, description, marketplace, name и price.
Задача — добавить семантический поиск, чтобы покупатели могли искать товары с помощью запросов на естественном языке, а не только по точному совпадению ключевых слов.
1. Подготовка таблицы DynamoDB
Сначала для описаний товаров, уже сохранённых в таблице, необходимо создать эмбеддинги.
Эмбеддинг — это числовое представление текста, сформированное моделью машинного обучения с учётом его смысла. У товаров с похожими описаниями векторы будут находиться близко друг к другу в векторном пространстве. На этом и основан поиск по схожести.

Эмбеддинги можно создать с помощью Amazon Bedrock Titan Text Embeddings или другой подходящей модели. Добавить их в таблицу можно через AWS Management Console, оболочку командной строки AWS CLI, AWS SDK, AWS CloudFormation или другие инструменты управления инфраструктурой как кодом.
Для существующей таблицы ProductCatalog эмбеддинги добавляются к каждой записи как свежий атрибут descriptionEmbedding с помощью вызова UpdateItem.
DynamoDB хранит векторы в стандартном типе данных List. Каждый элемент списка имеет тип Number и содержит одно значение вектора с плавающей точкой. Поэтому для хранения эмбеддингов рядом с существующими атрибутами не требуется новый тип данных или изменение схемы таблицы.
2. Создание векторного индекса
В консоли DynamoDB необходимо открыть таблицу ProductCatalog, перейти на вкладку Indexes и выбрать Create vector index.
На странице создания индекса указываются следующие параметры:
имя индекса —
ProductDescriptionIndex;атрибут с векторами —
descriptionEmbedding.

Далее необходимо указать количество измерений в соответствии с размерностью векторов, создаваемых выбранной моделью, и выбрать функцию расстояния Cosine.
Косинусное расстояние учитывает угол между векторами, а не их длину, поэтому хорошо подходит для сравнения семантической близости текстовых эмбеддингов. DynamoDB равным образом поддерживает функции Euclidean и Dot product.
Euclideanподходит для случаев, когда важна длина вектора, например при кластеризации объектов по числовому показателю — количеству покупок.Dot productиспользуется, когда имеют значение и направление, и длина вектора. Например, в рекомендательных системах, где одновременно учитываются совпадение интересов и частота взаимодействий.
Для наилучшей точности рекомендуется применять ту же функцию расстояния, которая применялась при обучении модели эмбеддингов.
В качестве ключа раздела (Partition key) указывается атрибут marketplace. Он определяет, как DynamoDB распределяет векторы между разделами индекса, и помогает масштабировать поиск с предсказуемой задержкой.
Каждый запрос выполняется в пределах одного значения ключа раздела. Например, каталог для нескольких торговых площадок может искать только по ассортименту конкретной площадки, не просматривая весь индекс. Ключ раздела необязателен, но рекомендуется для крупных наборов данных и высокой интенсивности запросов.
В разделе Inline filter attributes добавляется атрибут category. С его помощью результаты поиска можно ограничить определённой категорией товаров.
Фильтры поддерживают только точное совпадение значений. Условия диапазона, в том числе BETWEEN и BEGINS_WITH, недоступны.
Для параметра Attribute projections остаётся значение All, чтобы вместе с результатами поиска возвращались все атрибуты записей. После этого нужно выбрать Create vector index и дождаться, пока индекс получит статус Active.
3. Выполнение векторного поиска
Сначала из поисковой фразы на естественном языке, например «лёгкие беговые кроссовки для лета», создаётся поисковый вектор. Для этого следует применять ту же схема эмбеддингов, которой обрабатывались описания товаров.
В консоли DynamoDB необходимо открыть раздел Explore items и выбрать таблицу ProductCatalog.
Затем следует переключиться в режим векторного поиска с помощью кнопки Search и задать параметры запроса:
в поле ввода
Select a vector indexвыбратьProductDescriptionIndex;вставить поисковый вектор в поле
Search vector;инсталлировать
Number of results (Top K)равным5;указать
USв качестве значения ключа раздела, чтобы ограничить поиск американской торговой площадкой;в разделе
Inline filter attributesзадать условиеcategory = footwear, чтобы искать только среди обуви.
После выбора Run DynamoDB выполнит поиск и вернёт пять наиболее близких по смыслу товаров, соответствующих указанным условиям.

DynamoDB возвращает пять наиболее близких по смыслу товаров из категории footwear, отсортированных по показателю сходства. В том же ответе приходят обычные атрибуты записей, в том числе название и цену.
Интерпретация показателя сходства зависит от функции расстояния, выбранной для индекса:
для
CosineиEuclideanменьшие значения означают более высокое сходство; значение0соответствует идентичным векторам;для
Dot productболее высокие значения означают более высокое сходство.
Для программной работы с векторным поиском, вызова api и поиска по документации AWS предлагает использовать AWS MCP Server и плагины для поддерживаемых ИИ-инструментов разработки. Подробности доступны в руководстве разработчика Amazon DynamoDB.
Доступность
Векторный поиск в Amazon DynamoDB уже доступен во всех коммерческих регионах AWS, включая AWS GovCloud (US).
Информацию о доступности по регионам и планах дальнейшего развития можно найти на странице AWS Capabilities by Region. Стоимость использования опубликована на странице тарифов Amazon DynamoDB.
Обратную связь AWS принимает через AWS re:Post для Amazon DynamoDB и стандартные каналы AWS Support.
Продолжить тему можно на открытых уроках — о качестве ИИ-ассистентов и архитектуре ML-систем в продакшене. Присоединятесь:
18 августа, 19:00. «AI-ассистент на ваших документах: почему он врёт и что с этим создавать». Записаться
19 августа, 20:00. «Почему 90% ML-проектов не доходят до продакшена? Разбираем архитектуру настоящей ML-системы». Записаться
Читают сейчас

1 час назад
InfoWatch Traffic Monitor интегрирован с мессенджером YuChat
ГК InfoWatch и организация «Унисон» подтвердили совместимость своих продуктов — DLP-системы InfoWatch Traffic Monitor и корпоративного мессенджера YuChat. Работая с YuChat, DLP-система в автоматическо

1 час назад
Энтузиаст сделал переднюю панель для Steam Machine с зарядкой геймпада Steam Controller
Потребитель Reddit продемонстрировал переднюю панель для компактного компьютера Steam Machine со встроенной зарядкой геймпада Steam Controller. Разработчик рассказал, что концепция вдохновлена лицевой

2 часа назад
Nintendo опубликовали список самых продаваемых игр на Switch 1 и 2
Из составленной на основе финансового отчета заметки на портале Nintendolife стало известно, что лидерами продаж на Nintendo Switch 1 cтали: Читать полную новость

2 часа назад
Sony готовится внедрить рекламу в экосистему PlayStation на фоне роста стоимости игр
На фоне роста стоимости игр Sony планирует внедрить рекламу в экосистему консолей PlayStation, пишет Digiday. Эксперты считают, что реклама может стать дополнительным источником дохода для разработчик

2 часа назад
Лучшее за неделю (27.07 — 2.08)
Привет, ! Сегодня расскажем про то, как и зачем патентовать исходник, наш свежий проект в Арктике, причины незаменимости админов даже в эпоху ИИ и лучшие статьи прошлой недели: про старые приёмы вёрст