Хотя Azure предоставляет различные варианты создания пользовательских чат-ботов, Amazon Web Services (AWS) также предлагает привлекательные решения. Что касается AWS, у вас есть возможность создать собственного чат-бота, используя Amazon Kendra и любую языковую модель (даже самостоятельно размещая его с помощью Sagemaker!). В дополнение к Azure Cognitive Search и OpenAI Amazon активно работает над собственными инструментами разработки чат-ботов, чтобы удовлетворить различные варианты использования и обеспечить гибкость для пользователей.

Вот блог от Amazon для создания вашего чат-бота с использованием Retrieval Augmented Generation (RAG). Что такое РАГ? RAG — это метод, сочетающий подходы на основе поиска с генеративными моделями для получения более точных и контекстно-зависимых ответов. Он включает в себя извлечение соответствующей информации из базы знаний или коллекции документов, использование ее в качестве контекста вместе с вводом пользователя, а затем создание ответа с использованием языковой модели. Включая поиск, RAG позволяет модели использовать конкретную информацию из данных компании, гарантируя, что ответы точно соответствуют имеющимся знаниям и контексту. Этот подход особенно полезен, когда данные огромны, а приглашение ввода языковой модели должно быть кратким из-за ограничений по длине.

Как создать собственного чат-бота с помощью AWS?

Ниже показан процесс с точки зрения пользователя:

  • Пользователь отправляет запрос в приложение GenAI.
  • Приложение GenAI запрашивает индекс Amazon Kendra, используя запрос пользователя.
  • Индекс Amazon Kendra возвращает результаты поиска с релевантными выдержками из документов.
  • Приложение GenAI отправляет запрос пользователя и извлекает данные из индекса в LLM в качестве контекста.
  • LLM генерирует краткий ответ на основе предоставленного контекста и полученных данных.
  • Ответ от LLM отправляется обратно пользователю.

В приведенной выше архитектуре показан типичный поток данных и ответов в приложении. Чтобы создать свой собственный:

  • Разверните Kendra на AWS и создайте индексы для набора данных, по которым вы хотите получить ответы. (Я использовал технический документ LLaMA от Meta в качестве данных для скриншота ниже)

  • Скопируйте следующий репозиторий, чтобы использовать Kendra с OpenAI, Anthropic Claude, Flan-xl или Flan-XXL, и следуйте инструкциям по установке. [Репозиторий Kendra+LLM]
  • Убедитесь, что вы установили свои переменные среды в соответствии с используемой моделью вместе с вашими данными AWS.

Запустите приложение с помощью команды streamlit run app.py ‹LLM›, где LLM основан на модели; как для openai вы звоните:

streamlit run app.py openai

или для антропных вы звоните:

streamlit run app.py anthropic

Я протестировал приложение для OpenAI и Flan-XXL. В кодовой базе Anthropic на данный момент есть некоторые проблемы, поэтому мы проверим их в будущем.

Вот пример того, почему новые модели, такие как GPT-3, лучше подходят для таких сценариев, чем старые, такие как FLAN-XXL. Я задал вопрос о токсичности, основываясь на следующем абзаце из LLama paper.

OpenAI GPT-3 понял это правильно, тогда как Google FLAN-XXL ошибся. Вот скриншоты:

В заключение, создание собственного чат-бота на AWS предлагает ряд эффективных решений. Используя такие инструменты, как Amazon Kendra, и языковые модели, такие как OpenAI, вы можете создать чат-бота, который будет давать точные ответы с учетом контекста. Включение метода извлечения дополненной генерации (RAG) позволяет чат-боту извлекать соответствующую информацию из базы знаний, использовать ее в качестве контекста и генерировать ответы с использованием языковой модели. Следуя описанному алгоритму процесса и развернув необходимые компоненты, вы сможете создать эффективного чат-бота, использующего возможности сервисов AWS.

Если вы дошли до этого момента, спасибо за чтение! Мы очень ценим ваше участие и поддержку, поскольку мы стремимся держать вас в курсе интересных событий в мире ИИ и в лабораториях ИИ версии 1. Пожалуйста, хлопайте в ладоши или подписывайтесь, чтобы оставаться в курсе.

Об авторе:
Рохит Винсент (Rohit Vincent) — специалист по данным в Лаборатории инноваций и ИИ в версии 1.