«Общение с документами компании» с использованием Azure OpenAI

Company document communication using Azure OpenAI

Большие языковые модели (LLM), такие как ChatGPT, хранят огромный объем знаний в своих миллиардах параметров, так как они обучаются на огромных объемах текста из интернета. Однако их знания ограничены только текстовыми данными, на которых они обучались. В случае ChatGPT это означает, что у него нет знаний о событиях после сентября 2021 года или о любых конфиденциальных данных, хранящихся за брандмауэрами, например, о собственных корпоративных данных.

До сих пор популярным и наиболее доступным способом устранения этого ограничения знаний является метод, называемый Retrieval Augmented Generation или RAG (другой метод – это fine-tuning). Он работает путем хранения текстовых документов (о которых LLM не знает) во внешней базе данных. Когда пользователь задает вопрос LLM, система извлекает соответствующие документы из этой базы данных и предоставляет их LLM в качестве справочного материала для ответа на вопрос пользователя. Это называется контекстным обучением или, более грубо, “промпт-стаффинг”. В большинстве случаев метод RAG предпочтительнее fine-tuning LLM, который обычно требует специализированного оборудования (графического процессора) и навыков (например, машинного обучения) и, как правило, является более дорогостоящим для внедрения.

Microsoft Azure выпустила быстрое решение для своих клиентов, которое использует метод RAG для расширения знаний LLM о корпоративных документах. В качестве разговорного агента он использует LLM от OpenAI (gpt-3.5/ChatGPT или gpt-4), размещенные на инфраструктуре Azure (а не на OpenAI), к которым приложение обращается через API-точки завершения. Использование этого приложения регулируется строгой политикой защиты данных Azure, поэтому любое взаимодействие пользователя и передаваемые данные остаются безопасными и конфиденциальными. Ценообразование основано на использовании токенов.

Приведенный ниже пример диалога демонстрирует приложение, использующее образец документа о программе катастрофического кредитования по социальному обеспечению в качестве справочного материала. Известно, что LLM “галлюцинирует” или дает неправдивые или выдуманные ответы. Чтобы уменьшить это, каждый ответ возвращается с справкой, указывающей источник документа, на основе которого был составлен ответ. Это позволяет пользователю проверить достоверность данного ответа.

Каждый ответ сопровождается ссылкой (желтый цвет). Нажмите, чтобы увеличить.

Варианты развертывания

Решение может быть развернуто как веб-приложение или как бот power virtual agent (PVA) напрямую из площадки Azure OpenAI Chat. Источник данных должен быть настроен и затем развернут на основе двух доступных вариантов развертывания.

Вы можете установить 'системное сообщение' чат-бота перед развертыванием приложения.

Веб-приложение

Веб-приложение представляет собой базовый чат-интерфейс, доступный через браузеры на ноутбуках или мобильных устройствах. Веб-приложение было выпущено Microsoft с открытой лицензией MIT, которая позволяет коммерческое использование. Репозиторий GitHub можно найти здесь. Клиенты вправе настраивать приложение по своему усмотрению. Веб-приложение может быть развернуто “как есть” в один клик в качестве службы приложений, размещенной в Azure. Оно будет развернуто с логотипом Azure и стандартными цветовыми схемами.

Пример развертывания с настраиваемым брендингом.

Power Virtual Agent

Боты PVA могут быть развернуты на корпоративных веб-сайтах. Они также имеют встроенную интеграцию и могут легко встраиваться в другие продукты Microsoft, такие как сайты Sharepoint и MS Teams.

Бот PVA встроенный на сайте Sharepoint. Источник изображения
PVA-бот, встроенный в Teams. Источник изображения

Загрузка документов компании в базу знаний чатбота

В базу данных бота можно загрузить следующие типы документов: txt, PDF, файлы Word, файлы PowerPoint и HTML. Рекомендуется использовать документы с богатым текстом, такие как политики компании, контракты, инструкции и т. д. Табличные данные, такие как данные, хранящиеся в Excel/CSV или реляционных базах данных, не рекомендуются. Загруженные документы будут храниться в хранилище блобов в среде Azure клиента и останутся конфиденциальными.

Чатбот запрашивает данные из индекса в службе Azure Cognitive Search. Он имеет интуитивный индексатор, который может загружать все поддерживаемые типы документов из одного места (например, локальной папки или Azure Blob) и добавлять их в индекс.

Служба поиска (которая сравнивает запрос/ввод пользователя с соответствующим документом из индекса, который будет использован в качестве основы для ответа чатбота) поддерживает лексическое или ключевое сравнение на основе алгоритма поиска BM25, а также алгоритмы поиска на основе векторных моделей или схожести косинуса или скалярного произведения. Он также поддерживает гибрид этих двух подходов – комбинацию полнотекстового поиска и поиска по векторам.

Ссылки:

Azure OpenAI для ваших данных (превью)