Назад

Мы создали интеллектуальную базу знаний, используя подход LLM и RAG

Кейсы
2 сент., 2024
article cover

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


Привет, это «Технократия»! Мы занимаемся цифровизацией бизнеса и разработкой ИТ-систем. Но иногда мы сами тестируем новые технологии, чтобы понять, как они работают в реальной жизни. В этот раз мы опробовали возможности искусственного интеллекта и создали помощника, о котором расскажем в этом тексте. Давайте начнём! 

Если вам нужно разработать аналогичного ИИ-ассистента, то оставляйте заявку на сайте или пишите напрямую в Telegram-бот. Мы ответим вам в самые короткие сроки.

Задача: создать интеллектуальную базу знаний, с которой можно будет вести диалог

В Технократии мы уделяем большое внимание процессам. А процессы всегда сопровождаются регламентами, руководствами и сводами правил, которые помогают сотрудникам находить ответы на свои вопросы.

По нашему опыту, чем больше и опытнее компания, тем больше процессов она запускает. А это, в свою очередь, приводит к увеличению количества документов.

Кроме того, стоит учесть, как и где хранится информация. Она может находиться в разных источниках: в корпоративном Confluence, на сайте компании, в HRM-системе и десятках других мест, где фиксируются данные о процессах.

Однажды этот милый на первый взгляд покемон превратится в то, чего боятся все, кто связан с информационными технологиями — в бюрократию!

Кроме того, существует проблема «корпоративной памяти». Из-за огромного количества информации и сложностей с её систематизацией компаниям приходится заново анализировать опыт, который уже был получен ранее.

Эти факторы становятся серьёзным препятствием в работе и затрудняют адаптацию новых сотрудников, а также усложняют работу уже состоявшимся членам команды. Очевидно, что эту проблему необходимо решить. Но как это сделать?

В целом мы рассматривали два варианта решения проблемы.

  • Нужно провести аудит всей информации и собрать все описанные документы в одном месте, например, в корпоративной вики. Это требует много методической работы, которую нужно выполнить вручную, чтобы хранить всё в одном месте. Однако такой подход не решает проблему сложности. Он нам не подходит!
  • Можно использовать искусственный интеллект. Мы любим тестировать новые технологии, и что сейчас на слуху у всего мира? Большие языковые модели, известные как LLM. Их можно применить к описанным регламентам, чтобы они выдавали ответы на вопросы сотрудников. Кажется, это подходящее решение для нас.

В целом задача заключалась в том, чтобы разработать интеллектуального помощника, который бы предоставлял ответы на вопросы сотрудников компании «Технократия» о самой компании и её внутренних правилах и процедурах.

Но есть и подводные камни. Если использовать только LLM для решения нашей задачи, могут возникнуть трудности. Основная проблема в том, что LLM ничего не известно о регламентах Технократии, поскольку они хранятся во внутреннем контуре нашей системы.

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

Очевидное решение этой проблемы — предоставить модели больше данных.

Можно было бы дополнительно обучить модель на наших данных, но для адаптации LLM (не говоря уже о полной тренировке) потребуются сотни тысяч токенов, много времени и терпения, а также значительные затраты на GPU-вычисления.

Однако специалисты по анализу данных и инженеры машинного обучения нашли выход из этой ситуации и создали надстройку над LLM, которая называется RAG.

Что такое RAG и как он функционирует?

Термин LLM, который расшифровывается как Large Language Model (большая языковая модель), сейчас у всех на слуху. Самые известные коммерческие модели — это ChatGPT от OpenAI, GigaChat от Сбера и YandexGPT от Яндекса.

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

Это звучит очень перспективно, и LLM действительно хорошо справляются с общими задачами. Однако для решения конкретной задачи в чистом виде они не всегда могут давать правильные ответы. Например, если спросить у ChatGPT «Что такое Технократия?», то мы получим ответ о форме правления и устройстве общества, что, в целом, верно, но не решает нашу задачу.

Проблема в контексте: LLM не знает, что речь идёт о компании «Технократия» из Казани, которая занимается цифровизацией бизнеса. Чтобы языковая модель могла понять контекст, его нужно ей предоставить.

И вот, спустя четыре абзаца, мы наконец подходим к теме, о которой говорилось в заголовке — метод RAG, что расшифровывается как Retrieval Augmented Generation.

Это подход к работе с большими языковыми моделями, который позволяет пользователю задавать вопросы, а система автоматически дополняет запрос дополнительным контекстом из внешних источников. Таким образом, языковая модель получает более обширный и точный контекст для обработки и формирования ответа.

Для большей ясности давайте вернёмся к нашей задаче.

  • Нам необходимо создать помощника, который будет предоставлять сотрудникам компании ответы на вопросы, связанные с внутренними регламентами.
  • Обучать модель на основе имеющейся базы знаний не представляется возможным, поскольку это слишком затратно, неэффективно и не решит проблему галлюцинаций.
  • Чтобы повысить эффективность, мы можем использовать RAG-систему. Она будет понимать запрос пользователя, находить соответствующую статью в базе знаний и интегрировать информацию из этой статьи в запрос, чтобы LLM могла лучше понять контекст вопроса.

В результате, если мы добавим к LLM RAG-систему, то наш ассистент будет отвечать на вопрос о технократии не как о форме правления, а как об ИТ-компании из Казани.

Мы рассмотрели в общих чертах, как работает RAG-модель. Теперь давайте подробнее рассмотрим её компоненты и принцип работы.

  • Для начала, все наши знания должны быть разделены на отдельные смысловые части, которые специалисты по анализу данных называют «чанки».
  • Эти смысловые части преобразуются в набор чисел, которые система использует для кодирования смысла текста. Все оцифрованные смысловые части собираются в специальную базу данных и группируются по смыслу. Это позволяет системе искать наиболее подходящие по смыслу части текста.
  • Когда пользователь вводит текстовый запрос, он также преобразуется в набор чисел. Этот оцифрованный запрос сравнивается с базой данных, и выбирается наиболее подходящий фрагмент из базы знаний.
  • Наиболее подходящий по смыслу фрагмент из базы данных добавляется к исходному запросу пользователя и передаётся языковой модели (LLM). То есть, на входе языковая модель получает не только запрос пользователя, но и дополнительный контекст.

На всякий случай вот схема для лучшего понимания:

block image

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

Как мы создали базовую версию помощника. Процесс работы.

После того как мы описали теорию и поставили задачу, можно переходить к практическому описанию процесса разработки MVP.

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

Упрощённо такой продукт можно разделить на две части: клиентскую, где пользователь задаёт вопросы и получает ответы, и серверную, где работает связка LLM+RAG, которая обрабатывает вопросы и даёт на них ответы.

Состав команды проекта:

  • Стейкхолдер
  • Менеджер проекта
  • Бизнес аналитик
  • Дизайнер
  • Фронтенд-разработчик
  • Дата-сайентист
  • NLP-инженер
  • DevOps

Первый этап — создание основы.

Любой проект начинается с определения бизнес-требований клиента. В нашем случае заказчиками были мы сами. Мы описали требования для стейкхолдера – чат-бота в виде веб-приложения, который будет отвечать на вопросы, связанные с процессами компании. Это похоже на работу коллег из OpenAI, но с акцентом на базу знаний «Технократии».

После того как мы определили бизнес-требования, мы одновременно начали работу над внешним видом ассистента и сбором информации о компании. Эта информация будет использоваться RAG-моделью.

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

block image

Всё получилось очень просто, но при этом удобно для пользователей. Помимо стандартного окна для ввода текста, в дизайне также присутствуют: 

  • Заранее описанные запросы, которые чаще всего встречаются у сотрудников «Технократии».
  • Выбор модели, которая будет обрабатывать запрос пользователя.
  • Несколько помощников в доменной сфере: от общего помощника для всей компании до чат-ботов для проведения аттестации и бронирования переговорных комнат.

После согласования макеты были отправлены в работу фронтенд-разработчику, который создал клиентскую часть на React.

В это время бизнес-аналитик собирал и структурировал важную информацию о компании. Он использовал следующие источники данных:

  • Корпоративный Confluence
  • Сайт компании
  • Внутренние регламенты
  • Блоги компании на Хабре и VC.

Результатом этой работы стал документ, который содержал более 500 страниц текста и изображений. Он был передан инженерам с целью настройки RAG-системы.

Второй этап. На этом этапе мы настраиваем RAG и запускаем первую версию системы.

На этом этапе к работе подключились специалисты по искусственному интеллекту. Документ, полученный от бизнес-аналитика, нужно было разделить на смысловые части, преобразовать в числа и создать векторную базу данных. Это, кстати, делает другая нейросеть. Таким образом, на этом этапе произошла первичная настройка модели RAG.

После этого этапа требовалось объединить RAG и LLM (языковую модель). В качестве LLM можно использовать как облачные модели, такие как ChatGPT и GigaChat, так и локальные решения, например, Mistral или LLaMA. Мы выбрали облачный вариант от одного из лидеров рынка, с которым обменивались данными по API. Можно сказать, что бэкенд продукта был готов.

Теперь, чтобы ассистент мог работать полноценно, нужно было только соединить фронтенд с бэкендом и разместить всё это на сервере. Для обеспечения минимальных задержек в работе продукта идеально подходит сервер с видеокартой (GPU), но для первичного тестирования нам хватило обычного CPU-сервера.

Альфа-версия продукта готова. Теперь можно приступать к тестированию и доработке ассистента.

Третий этап — тестирование и доработка.

Как только мы разместили сервис на сервере, мы приступили к отладке и доработке. 

Процесс проходил следующим образом: мы задавали чат-боту типичные вопросы, которые могут возникнуть у сотрудников, и собирали ответы в таблицу. Затем мы оценивали качество ответов.

В этот момент мы осознали, что:

  • Пользователю не всегда удобно читать длинные тексты, поэтому мы добавили краткие и подробные ответы.
  • Например, на вопрос «Расскажи, что ты знаешь о технократии?» чат-бот отвечал: «Я не могу предоставить информацию, так как это не относится к нашей компании».

В процессе тестирования первых версий ИИ-помощников неизбежно будут возникать подобные ситуации. Поэтому мы передали собранные ответы с комментариями дата-сайентисту и инженеру по обработке естественного языка. Они использовали эту информацию для дополнения инструкций в RAG-системе.

На этом разработка MVP нашего помощника завершилась. Сейчас сотрудники «Технократии» уже пользуются им. Всего команда потратила на разработку и тестирование две недели.

Демонстрация работы

Чтобы лучше понять, как работает наш ассистент, мы подготовили несколько видеозаписей с примерами типовых запросов. Мы разделили эти запросы на три основные категории: корпоративные процессы, экспертиза в определённых областях и информация о конкретных случаях. Ниже вы найдёте примеры запросов из каждой категории.

Это лишь небольшая часть того, на что способен наш ассистент. Он только недавно появился, но команда машинного обучения уже активно работает над улучшением его ответов.

Перспективы внедрения ИИ-ассистентов

В этом случае мы продемонстрировали, как бизнес может использовать искусственный интеллект для оптимизации своих процессов и преодоления бюрократических преград. Однако, возможности нейросетей гораздо шире, чем просто онбординг и обработка запросов сотрудников. Вот несколько способов, как можно применять LLM и RAG-системы:

Техподдержка клиентов

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

Такой подход поможет увеличить количество успешно решённых задач, улучшить качество ответов и сократить время реакции на запросы.

Оптимизация работы отдела продаж

Для RAG-системы можно использовать записи разговоров менеджеров по продажам с клиентами в качестве данных. 

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

Анализ больших неструктурированных данных

LLM и RAG – это системы, которые могут обрабатывать большие объёмы неструктурированных данных, таких как электронные письма, отзывы пользователей и финансовые данные. С помощью нейросетей можно анализировать эти данные и создавать аналитические дашборды, а также делать выводы на основе полученной информации. 

На всякий случай напомним: если вам нужно разработать аналогичного ИИ-ассистента, то оставляйте заявку на сайте или пишите напрямую в Telegram-бот. Мы ответим вам в самые короткие сроки.