Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Пример реализации вопрос-ответного бота по документации на базе YandexGPT и других сервисов Yandex Cloud.

License

NotificationsYou must be signed in to change notification settings

yandex-cloud-examples/yc-yandexgpt-qa-bot-for-docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Языковая модель YandexGPT может использоваться для реализации сценариев ответа на вопросы по документации, набору регулирующих документов, базе знаний и т.д. Для того, чтобы модель опиралась на конкретный корпус документов, а не только на те данные, на которых она обучалась, рекомендуется использовать подход Retrieval-Augmented Generation.

Архитектура Retrieval-Augmented Generation

Как выглядит сценарий работы?:

  1. База знаний (набор документов) разбивается на фрагменты, которые переводятся в векторное представление (embedding) с помощью YandexGPT и сохраняются в векторную базу данных. Примерами таких баз данных являются OpenSearch, ChromaDB, LanceDB и т.д.
  2. Пользователь отправляет свой запрос к системе.
  3. Запрос переводится в векторное представление с помощью модели YandexGPT.
  4. В векторной базе данных происходит поиск фрагментов наиболее близких к запросу пользователя. В зависимости от размера фрагментов выбирается топ-n наиболее релевантных документов.
  5. Полученные документы, запрос пользователя и постановка задачи (промпт) передаются YandexGPT, которая генерирует финальный ответ, который возвращается пользователю.

В данном руководстве для реализации описанного сценария будут использоваться следующие сервисы Yandex Cloud.

  1. YandexGPT - большая языковая модель для построения embedding-ов по документам и ответов на вопросы.
  2. Yandex Managed Service for OpenSearch - Сервис для управления кластерами OpenSearch, который будет использоваться для хранения пар фрагментов документов и векторных представлений этих фрагментов.
  3. Yandex Object Storage - Объектное хранилище, в котором изначально хранятся файлы с базой знаний.
  4. Yandex DataSphere - Cервис для обучения ML-моделей и среда разработки на Python для взаимодействия с YandexGPT и OpenSearch.

Работа с векторной БД и языковой моделью YandexGPT будет осуществляться с помощью популярного фреймворка с открытым исходным кодомLangChain.

Подробные комментарии по работе с компонентами содержатся в файлах проекта, которые рекомендуется открыть вYandex DataSphere.

Пошаговая инструкция

  1. Необходимо перейти в сервисOpenSearch и создать кластер поинструкции. Необходимо создать группу виртуальных хостов OpenSearch и группу виртуальных хостов Dashboards. Важно, чтобы кластер OpenSearch, Object Storage и DataSphere находились в одной подсети, например,default-ru-central1-a.
  2. Перейдите в сервисYandex Object Storage, создайте новый бакет и загрузите в него документы, по которым будет необходимо отвечать на вопросы.
  3. Перейдите в сервисYandex DataSphere и создайте в немсообщество ипроект, в котором можно будет запускать код на Python.
  4. Создайтеконнектор к Object Storage S3 в проекте DataSphere. Активируйте коннектор для работы с ним JupyterLab.
  5. В созданном проекте необходимо перейти во вкладку "Настройки" и указать:
  • Каталог по умолчанию: каталог, в котором созданы сервисы Yandex Managed Service for OpenSearch и YandexGPT.
  • Сервисный аккаунт:сервисный аккаунт, который позволит обращаться к другим сервисам из проекта DataSphere. Важно, что сервисному аккаунту должны быть назначены ролиai.languageModels.user для доступа к модели YandexGPT,managed-opensearch.admin для работы с OpenSearch иvpc.user.
  • Подсеть: укажите подсеть, в которой находятся сервисы OpenSearch и YandexGPT.
  1. Откройте проект в JupyterLab и склонируйте данный репозиторий с помощьюGit. При запуске рекомендуем использовать режим Dedicated.
  2. Откройте в проекте ноутбукYandexGPT_OpenSearch.ipynb и выполните все ячейки кода.

Основные шаги в ноутбуке YandexGPT_OpenSearch

  1. Документы из объектного хранилища разбиваются на небольшие фрагменты размеромchunk_size. Размерchunk_size нужно выбирать исходя из нескольких показателей:
    • Допустимая длина контекста для эмбеддинг-модели. Yandex GPT Embeddings допускают 2048 токенов.
    • Допустимый размер окна контекста большой языковой модели. Если мы хотим использовать в запросе top 3 результатов поиска, то 3*chunk_size+prompt_size+response_size должно не превышать длины контекста модели.
  2. Далее мы генерируем векторные эмбеддинги по фрагментам текста с помощью Yandex GPT Embedding API. Адаптер для работы с embeddings и моделью YandexGPT доступен в файлеYaGPT.py.
  3. Добавляем полученные вектора в OpenSearch.
  4. Тестируем извлечение релевантных фрагментов по запросу.
  5. Собираем цепочку для Retrieval-Augmented Generation и проверяем её работу.

About

Пример реализации вопрос-ответного бота по документации на базе YandexGPT и других сервисов Yandex Cloud.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors4

  •  
  •  
  •  
  •  

[8]ページ先頭

©2009-2025 Movatter.jp