Amazon Kendra
Amazon Kendra — это облачный сервис корпоративного поиска на основе технологий искусственного интеллекта и машинного обучения, разработанный компанией Amazon Web Services (AWS). Сервис предназначен для индексирования и поиска информации в разрозненных внутренних источниках данных организации (базах знаний, документах, базах данных, веб-сайтах, файловых хранилищах) с использованием обработки естественного языка (NLP). В отличие от традиционных поисковых систем, которые ищут по ключевым словам, Kendra способен понимать контекст запроса, синонимы и намерения пользователя, возвращая точные ответы в виде цитат из документов.
История и развитие
Сервис Amazon Kendra был анонсирован компанией Amazon Web Services на конференции AWS re:Invent в ноябре 2018 года. Запуск в публичный доступ состоялся 13 мая 2020 года. Разработка была обусловлена растущей потребностью бизнеса в эффективном поиске по внутренним данным, которые часто хранятся в десятках различных систем и форматов. Kendra стал частью портфеля сервисов AWS в области машинного обучения и искусственного интеллекта, наряду с такими продуктами, как Amazon Comprehend (анализ текста) и Amazon Lex (чат-боты).
В 2021 году были добавлены возможности для поиска по отсканированным документам (с использованием оптического распознавания символов, OCR) и интеграция с системами управления контентом (CMS). В 2022 году появилась функция Kendra Experiences, позволяющая встраивать поисковые виджеты на корпоративные порталы и веб-сайты. В 2023 году была представлена поддержка генеративных AI-агентов (на базе Amazon Bedrock), которые могут использовать Kendra в качестве источника фактических данных для ответов (Retrieval-Augmented Generation, RAG).
Архитектура и принцип работы
Amazon Kendra работает по модели «программное обеспечение как услуга» (SaaS). Пользователю не требуется управлять серверной инфраструктурой; весь процесс настройки и обслуживания осуществляется через консоль AWS или API.
Индексирование
Основой работы сервиса является индекс — структура данных, в которой хранятся обработанные копии документов. Процесс индексирования включает несколько этапов:
- Подключение источников данных (Data Sources). Kendra поддерживает более 30 типов коннекторов к популярным корпоративным системам, включая:
- Файловые хранилища: Amazon S3, SharePoint Online, Google Drive, Microsoft OneDrive.
- Базы данных: Amazon RDS, Amazon Aurora, Oracle, MySQL, PostgreSQL.
- Системы управления контентом: Salesforce, ServiceNow, Confluence, Jira.
- Веб-сайты (через веб-скрапинг).
- Базы знаний: Zendesk, Freshdesk.
- Извлечение текста. Сервис извлекает текст из документов различных форматов: PDF, Microsoft Word, Excel, PowerPoint, HTML, TXT, CSV, а также из изображений (через OCR) и аудиофайлов (через транскрибацию Amazon Transcribe).
- Обогащение (Enrichment). На этом этапе применяются модели машинного обучения для:
- Распознавания сущностей (имена, даты, названия продуктов, юридические термины).
- Автоматического извлечения ключевых фраз и тегов.
- Понимания иерархии документов (заголовки, разделы, списки).
- Построение векторных представлений. Kendra создаёт эмбеддинги (векторные представления) текста, что позволяет искать по смыслу, а не только по точному совпадению слов.
Поиск и ранжирование
При поступлении поискового запроса Kendra выполняет следующие действия:
- Анализ запроса. Сервис использует NLP для понимания интенции пользователя. Например, запрос «как сменить пароль в системе» будет интерпретирован как инструкция, а не как определение термина «пароль».
- Поиск. Производится одновременный поиск по ключевым словам (лексический поиск) и по векторным представлениям (семантический поиск). Это позволяет находить релевантные документы даже при опечатках, синонимах или неполных запросах.
- Ранжирование. Kendra использует ансамбль моделей машинного обучения для оценки релевантности результатов. Факторы ранжирования включают:
- Семантическую близость запроса к содержанию документа.
- Авторитетность источника (например, официальный документ имеет больший вес, чем комментарий в вики).
- Свежесть документа.
- Наличие в документе ответа на конкретный вопрос (featured snippets).
- Выдача результатов. Результаты возвращаются в виде рейтингового списка. Для каждого результата Kendra может предоставить:
- Заголовок и URL документа.
- Фрагмент текста с подсветкой релевантных слов.
- Прямой ответ (если в документе найден точный ответ на вопрос).
- Рекомендации по уточнению запроса.
Ключевые возможности
Точные ответы (FAQ Matching)
Kendra способен извлекать из документов прямые ответы на вопросы, сформулированные на естественном языке. Например, на вопрос «Какая процедура утверждения бюджета?» сервис может вернуть не весь документ, а конкретный абзац, содержащий описание процедуры. Для этого сервис анализирует структуру документа и ищет фрагменты, которые наиболее вероятно являются ответами.
Поиск по документам с таблицами и формами
Сервис умеет индексировать содержимое таблиц и форм в документах. Пользователь может задать запрос, например, «Зарплата Иванова за 2023 год», и Kendra найдёт соответствующую строку в таблице, даже если таблица не имеет явных заголовков.
Поиск по отсканированным документам
Встроенная поддержка OCR (Amazon Textract) позволяет индексировать отсканированные PDF-файлы, фотографии документов и рукописные записи. Это делает доступным поиск по архивам бумажных документов, которые были оцифрованы.
Интеграция с Amazon Bedrock и генеративным AI
Kendra может выступать в роли базы знаний для больших языковых моделей (LLM) в рамках архитектуры RAG (Retrieval-Augmented Generation). Когда пользователь задаёт вопрос чат-боту на базе Amazon Bedrock, бот сначала отправляет запрос в Kendra для поиска релевантных фактов, а затем генерирует ответ на основе найденных данных. Это позволяет избежать галлюцинаций LLM и гарантирует, что ответ основан на проверенных корпоративных источниках.
Управление доступом
Kendra поддерживает интеграцию с системами управления доступом (IAM) источников данных. Например, если пользователь имеет доступ только к определённым папкам в SharePoint, то Kendra не покажет ему результаты из других папок. Это реализуется через атрибуты документов и политики фильтрации на уровне индекса.
Применение
Amazon Kendra используется в различных отраслях для решения задач корпоративного поиска:
- Корпоративные порталы и интранеты. Сотрудники могут быстро находить политики компании, инструкции, контакты, новости и другие внутренние ресурсы.
- Службы поддержки. Операторы колл-центров используют Kendra для поиска ответов в базах знаний, что сокращает время обработки запросов и повышает качество обслуживания.
- Юридические и комплаенс-отделы. Поиск по массивам юридических документов, контрактов, нормативных актов и судебных решений.
- Научные и исследовательские организации. Поиск по публикациям, патентам, отчётам и лабораторным записям.
- Электронная коммерция. Встраивание поискового виджета на сайт интернет-магазина для поиска товаров по каталогу.
Ограничения и критика
- Стоимость. Amazon Kendra является одним из наиболее дорогих сервисов AWS среди продуктов для поиска. Ценообразование основано на количестве проиндексированных документов и объёме запросов. Для крупных организаций с миллионами документов затраты могут быть значительными.
- Сложность настройки. Для достижения высокой точности поиска требуется правильная настройка синонимов, тегов, исключений и правил ранжирования. Без этого качество поиска может быть ниже ожидаемого.
- Зависимость от качества данных. Если исходные документы содержат ошибки, устаревшую информацию или плохо структурированы, Kendra не сможет исправить эти недостатки. Качество поиска напрямую зависит от качества источника.
- Ограниченная поддержка русского языка. Хотя Kendra поддерживает русский язык, модели NLP для русского языка могут быть менее точными, чем для английского. Это может проявляться в худшем понимании контекста и синонимов.
- Отсутствие полной настройки модели. Пользователь не может самостоятельно обучить или дообучить модели машинного обучения, используемые Kendra для ранжирования. Все улучшения вносятся только через настройку правил и фильтров.
Альтернативы
На рынке корпоративного поиска существуют другие решения, как коммерческие, так и с открытым исходным кодом. К основным конкурентам Amazon Kendra относятся:
- Elastic Enterprise Search (на базе Elasticsearch) — решение с открытым исходным кодом, требующее самостоятельного управления инфраструктурой, но предоставляющее большую гибкость в настройке.
- Microsoft Search (в составе Microsoft 365) — встроенное решение для организаций, использующих экосистему Microsoft. Интегрировано с SharePoint, Teams и Outlook.
- Google Cloud Search — аналогичный сервис от Google Cloud Platform, ориентированный на интеграцию с Google Workspace.
- Algolia — облачный сервис поиска, ориентированный в первую очередь на веб-сайты и мобильные приложения, с фокусом на скорость и автодополнение.
Источники
- Официальная документация Amazon Web Services: Amazon Kendra Developer Guide.
- Документация AWS: What is Amazon Kendra? (AWS Documentation).
- Презентация AWS re:Invent 2018: Introducing Amazon Kendra.
- Статья «Amazon Kendra: Enterprise search with machine learning» (AWS News Blog, 13 мая 2020).
- Документация AWS: Amazon Kendra Pricing.
- Статья «Retrieval Augmented Generation (RAG) with Amazon Kendra and Amazon Bedrock» (AWS Machine Learning Blog).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →