Расширенная генерация с использованием LangChain, Amazon SageMaker JumpStart и семантического поиска MongoDB Atlas | Веб-сервисы Amazon

Расширенная генерация с использованием LangChain, Amazon SageMaker JumpStart и семантического поиска MongoDB Atlas | Веб-сервисы Amazon

Генеративный ИИ Модели могут произвести революцию в работе предприятий, но предприятия должны тщательно продумать, как использовать их возможности, одновременно преодолевая такие проблемы, как защита данных и обеспечение качества контента, создаваемого ИИ.

Платформа извлечения дополненной генерации (RAG) дополняет подсказки внешними данными из нескольких источников, таких как репозитории документов, базы данных или API, чтобы сделать базовые модели эффективными для задач, специфичных для предметной области. В этом посте представлены возможности модели RAG и подчеркивается преобразующий потенциал MongoDB Atlas с его функцией векторного поиска.

Атлас MongoDB представляет собой интегрированный набор сервисов обработки данных, которые ускоряют и упрощают разработку приложений, управляемых данными. Хранилище векторных данных легко интегрируется с хранилищем операционных данных, устраняя необходимость в отдельной базе данных. Эта интеграция обеспечивает мощные возможности семантического поиска посредством Векторный поиск, быстрый способ создания семантического поиска и приложений на базе искусственного интеллекта.

Создатель мудреца Амазонки позволяет предприятиям создавать, обучать и развертывать модели машинного обучения (ML). Amazon SageMaker JumpStart предоставляет предварительно обученные модели и данные, которые помогут вам начать работу с машинным обучением. Вы можете получить доступ, настроить и развернуть предварительно обученные модели и данные через целевую страницу SageMaker JumpStart в Студия Amazon SageMaker всего за несколько кликов.

Amazon Lex — это диалоговый интерфейс, который помогает компаниям создавать чат-ботов и голосовых ботов, которые участвуют в естественном, реалистичном взаимодействии. Интегрируя Amazon Lex с генеративным искусственным интеллектом, компании могут создать целостную экосистему, в которой пользовательский ввод плавно превращается в последовательные и контекстуально релевантные ответы.

Обзор решения

Следующая диаграмма иллюстрирует архитектуру решения.

Обзор решения

В следующих разделах мы рассмотрим шаги по реализации этого решения и его компонентов.

Настройка кластера MongoDB

Чтобы создать кластер MongoDB Atlas бесплатного уровня, следуйте инструкциям в разделе Создать кластер. Настройте базу данных доступ и сети доступ.

Развертывание модели внедрения SageMaker

Вы можете выбрать модель встраивания (ВСЕ MiniLM L6 v2) на странице SageMaker JumpStart Модели, ноутбуки, решения стр.

SageMaker JumpStart Модели, ноутбуки, решения

Выберите Развертывание для развертывания модели.

Убедитесь, что модель успешно развернута, и убедитесь, что конечная точка создана.

модель успешно развернута

Векторное вложение

Векторное вложение это процесс преобразования текста или изображения в векторное представление. С помощью следующего кода мы можем генерировать векторные внедрения с помощью SageMaker JumpStart и обновлять коллекцию созданным вектором для каждого документа:

payload = {"text_inputs": [document[field_name_to_be_vectorized]]}
query_response = query_endpoint_with_json_payload(json.dumps(payload).encode('utf-8'))
embeddings = parse_response_multiple_texts(query_response) # update the document
update = {'$set': {vector_field_name :  embeddings[0]}}
collection.update_one(query, update)

Приведенный выше код показывает, как обновить один объект в коллекции. Чтобы обновить все объекты, следуйте инструкциям инструкции.

Хранилище векторных данных MongoDB

Векторный поиск в Атласе MongoDB — это новая функция, которая позволяет хранить и искать векторные данные в MongoDB. Векторные данные — это тип данных, которые представляют точку в многомерном пространстве. Этот тип данных часто используется в приложениях машинного обучения и искусственного интеллекта. MongoDB Atlas Vector Search использует метод, называемый k-ближайшие соседи (k-NN) для поиска подобных векторов. k-NN работает путем поиска k векторов, наиболее похожих на заданный вектор. Наиболее похожими векторами являются те, которые наиболее близки к данному вектору по евклидову расстоянию.

Хранение векторных данных рядом с операционными данными может повысить производительность за счет уменьшения необходимости перемещения данных между различными системами хранения. Это особенно полезно для приложений, которым требуется доступ к векторным данным в режиме реального времени.

Создать индекс векторного поиска

Следующим шагом является создание Индекс векторного поиска MongoDB в векторном поле, созданном на предыдущем шаге. MongoDB использует knnVector введите для индексации векторных вложений. Векторное поле должно быть представлено как массив чисел (только типы данных BSON int32, int64 или double).

Обратитесь к Обзор ограничений типа knnVector для получения дополнительной информации об ограничениях knnVector тип.

Следующий код представляет собой пример определения индекса:

{ "mappings": { "dynamic": true, "fields": { "egVector": { "dimensions": 384, "similarity": "euclidean", "type": "knnVector" } } }
}

Обратите внимание, что размер должен соответствовать размеру вашей модели внедрения.

Запрос к хранилищу векторных данных

Вы можете запросить хранилище векторных данных, используя команду Конвейер агрегирования векторного поиска. Он использует индекс векторного поиска и выполняет семантический поиск в хранилище векторных данных.

Следующий код представляет собой пример определения поиска:

{ $search: { "index": "<index name>", // optional, defaults to "default" "knnBeta": { "vector": [<array-of-numbers>], "path": "<field-to-search>", "filter": {<filter-specification>}, "k": <number>, "score": {<options>} } }
}

Развертывание модели большого языка SageMaker

Модели основания SageMaker JumpStart — это предварительно обученные модели большого языка (LLM), которые используются для решения различных задач обработки естественного языка (NLP), таких как суммирование текста, ответы на вопросы и вывод на естественном языке. Они доступны в различных размерах и конфигурациях. В этом решении мы используем Обнимая лицо Модель ФЛАН-Т5-XL.

Найдите модель FLAN-T5-XL в SageMaker JumpStart.

Найдите FLAN-T5-XL

Выберите Развертывание для настройки модели FLAN-T5-XL.

Развертывание

Убедитесь, что модель успешно развернута и конечная точка активна.

Расширенная генерация с использованием LangChain, Amazon SageMaker JumpStart и семантического поиска MongoDB Atlas | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Создайте бота Amazon Lex

Чтобы создать бота Amazon Lex, выполните следующие шаги:

  1. На консоли Amazon Lex выберите Создать бота.

Создать бота

  1. Что касается Имя ботавведите имя.
  2. Что касается Роль времени выполнения, наведите на Создайте роль с базовыми разрешениями Amazon Lex.
    Расширенная генерация с использованием LangChain, Amazon SageMaker JumpStart и семантического поиска MongoDB Atlas | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  3. Укажите настройки языка, затем выберите Готово.
    Расширенная генерация с использованием LangChain, Amazon SageMaker JumpStart и семантического поиска MongoDB Atlas | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  4. Добавьте образец высказывания в NewIntent Пользовательский интерфейс и выберите Сохранить намерение.
    Расширенная генерация с использованием LangChain, Amazon SageMaker JumpStart и семантического поиска MongoDB Atlas | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  5. Перейдите в FallbackIntent который был создан для вас по умолчанию и переключите Активные в Выполнение .
    переключить активный
  6. Выберите строить и после успешной сборки выберите Пусконаладка.
    Сборка и тестирование
  7. Перед тестированием выберите значок шестеренки.
    Расширенная генерация с использованием LangChain, Amazon SageMaker JumpStart и семантического поиска MongoDB Atlas | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  8. Укажите AWS Lambda функция, которая будет взаимодействовать с MongoDB Atlas и LLM для предоставления ответов. Чтобы создать лямбда-функцию, выполните следующие действия. этим шагам.
    9. Укажите функцию AWS Lambda.
  9. Теперь вы можете взаимодействовать с LLM.

Убирать

Чтобы очистить ресурсы, выполните следующие действия:

  1. Удалите бот Amazon Lex.
  2. Удалите функцию Лямбда.
  3. Удалите конечную точку LLM SageMaker.
  4. Удалите конечную точку модели внедрения SageMaker.
  5. Удалите кластер MongoDB Atlas.

Заключение

В статье мы показали, как создать простого бота, который использует семантический поиск MongoDB Atlas и интегрируется с моделью из SageMaker JumpStart. Этот бот позволяет быстро создавать прототипы взаимодействия пользователя с различными LLM в SageMaker Jumpstart, сопоставляя их с контекстом, происходящим из MongoDB Atlas.

Как всегда, AWS приветствует обратную связь. Пожалуйста, оставляйте свои отзывы и вопросы в разделе комментариев.


Об авторах

Расширенная генерация с использованием LangChain, Amazon SageMaker JumpStart и семантического поиска MongoDB Atlas | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Игорь Алексеев является старшим архитектором партнерских решений в AWS в области данных и аналитики. В своей роли Игорь работает со стратегическими партнерами, помогая им создавать сложные архитектуры, оптимизированные для AWS. До прихода в AWS в качестве архитектора данных/решений он реализовал множество проектов в области больших данных, в том числе несколько озер данных в экосистеме Hadoop. В качестве инженера по обработке данных он занимался применением ИИ/МО для обнаружения мошенничества и автоматизации делопроизводства.


Расширенная генерация с использованием LangChain, Amazon SageMaker JumpStart и семантического поиска MongoDB Atlas | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Бабу Сринивасан
является старшим архитектором партнерских решений в MongoDB. В своей текущей роли он работает с AWS над созданием технических интеграций и эталонных архитектур для решений AWS и MongoDB. Он имеет более чем двадцатилетний опыт работы с базами данных и облачными технологиями. Он увлечен предоставлением технических решений клиентам, работающим с несколькими глобальными системными интеграторами (GSI) в разных регионах.

Отметка времени:

Больше от Машинное обучение AWS