Привет, Хабровчане!
Меня зовут Андрей Беляев, и я занимаюсь расширением возможностей организаций, внедряя ИИ-помощников.
Сегодня я расскажу, как наша R&D-лаборатория, «лампово» называемая «Гараж», исследовала потенциал больших языковых моделей, проверяла бизнес-гипотезы и технические решения и в итоге запустила процесс создания корпоративной экосистемы GenAI, а также технологической платформы в ее основе.
Итак, все началось с ошеломительного успеха ChatGPT, который не мог не привлечь внимание наших инженеров и data science специалистов. Руководство поддержало R&D-инициативы в этом направлении, и мы сформировали кросс-функциональную команду, которая сфокусировалась на новых «суперспособностях» генеративного ИИ. Как инженерам, нам хотелось лично убедиться в его возможностях, а как специалистам, ориентированным на бизнес-результат, — понять, какую пользу он может принести нашей компании и нашим клиентам.
После серии мозговых штурмов с участием топ-менеджеров группы компаний мы выбрали (из порядка 60 идей) несколько бизнес-кейсов, к реализации которых приступили в 2023 году. Основной упор сделали на повышение внутренней эффективности. Примечательно, что все отобранные нами бизнес-кейсы позже были «подтверждены рынком», когда к нам обращались заказчики с аналогичными запросами.
Для выбранных сценариев мы реализовали пилоты, чтобы проверить продуктовые гипотезы (сервисы востребованы/полезны/целесообразны), а также подтвердить техническую реализуемость. После пилота быстро запускали закрытое, а затем открытое тестирование внутри компании. Ну а востребованные решения мы переводим в промышленную эксплуатацию.
Что же это за кейсы? Один из самых популярных — диалог с базой знаний на основе RAG (Retrieval Augmented Generation). Если кратко, RAG позволяет большой языковой модели отвечать на вопросы, основываясь не только на данных, на которых она была обучена, но и на актуальной информации из наших внутренних источников. Бизнес-кейс может выглядеть как ассистент проектной команды, агрегирующий информацию по проекту и предоставляющий возможности умного поиска и генерации новых артефактов на основе имеющихся данных, или как ИИ-эксперт по программному продукту, который может заменить или упростить работу с объемной документацией.
Пользуется популярностью корпоративный чат с множеством генеративных моделей, который позволяет сотрудникам на ходу решать отдельные рабочие задачи с использованием ИИ, а для повторяющихся задач после обкатки и отладки промптов и сценариев в ручном режиме можно создать мини-приложение (аналог GPTs с предустановленным системным промптом и своей базой знаний для решения определенного класса задач) и поделиться этим приложением со всеми сотрудниками.
Есть у нас и ИИ-исследователи, один из них — TechRadar, который регулярно просматривает тематические новости в заданных источниках, автоматически составляет и рассылает подписавшимся ИИ-дайджесты с кратким резюме самых интересных найденных новостей. Сейчас мы выпускаем дайджесты по восьми темам. Другой сервис — ИИ-исследователь, который по заданной теме выполняет поиск и анализ источников в интернете и предоставляет результат в виде развернутого отчета. Мы интегрировали этот сервис в корпоративную чат-платформу, и теперь после получения отчета можно его обработать или доработать с помощь языковой модели. Например, можно попросить пересказать в стихотворной форме.
Будучи разработчиками ПО, мы не могли пройти мимо CodeLLM, и в «Гараже» побывали разные версии Open Source моделей от DeepSeek, Qwen, Mistral. Модели, которые себя хорошо проявили, доступны нашим разработчикам в корпоративном чате и через плагины к IDE. Распространенными на данный момент сценариями их использования являются пояснение и документирование существующего кода, поиск ошибок, подготовка предложений по рефакторингу и оптимизации кода, генерация тестов. Также некоторые CodeLLM неплохо говорят по-русски и могут использоваться для работы с текстами, где много айтишной терминологии. С помощь CodeLLM можно делать «одноразовую» автоматизацию или интерактивное демо в виде веб-приложения, которое на этапе разработки встраивается прямо в корпоративный чат по аналогии с Artifacts от Anthrоpic, что визуализирует прогресс и упрощает процесс создания.
Очень востребован сервис ИИ-стенографирования на основе линейки моделей Whisper от OpenAI, развернутый в контуре группы компаний. С его помощью коллеги транскрибируют запись встреч, в т.ч. конфиденциальных. Получившийся протокол в дальнейшем может быть обработан языковыми моделями для очистки от шума и краткой суммаризации.
Реализуя указанные сценарии, мы старались использовать проверенные подходы и open source компоненты и приложения, чтобы «стоять на плечах гигантов» и продвигаться быстро. В процессе решения практических кейсов мы держали в уме задачу по построению корпоративной экосистемы GenAI, чтобы создать гармоничный управляемый ландшафт таких решений, безопасно и эффективно интегрировать их с корпоративной ИТ-инфраструктурой и данными, а также решать каждый следующий кейс быстрее за счет повторного использования компонентов и подходов. Нам это удалось, и в результате мы создали корпоративную GenAI-платформу из открытых компонентов и наших разработок.
О самой платформе мы расскажем отдельно.
А в этой статье я остановлюсь на специфичных для GenAI компонентах и приложениях, которые хорошо себя зарекомендовали в наших сценариях.
Inference. У нас гибридная инфраструктура. Часть LLM и моделей эмбедингов мы потребляем по API. За сам Inference отвечает вендор, нам остается только пополнять счет 😊 и логировать все обращения, это мы делаем с помощью специальных прокси.
Развертывание моделей в контуре или в облачной IaaS требует бОльших усилий. Мы экспериментируем с разными inference-серверами, но чаще всего используем vLLM — производительное, готовое к использованию в Prod решение, но с настройкой нужно повозиться. Некоторые модели, которые пока не поддерживаются vLLM, разворачиваем на LocalAI — это тоже не тривиальная, но решаемая задача. В частности, сейчас используем LocalAI для расчета эмбедингов bge-m3. Для быстрых экспериментов с большим количеством моделей и подключением их в режиме plug&play отлично подходит Ollama, но под серьезную промышленную нагрузку мы ее сейчас не рассматриваем.
Модели. Попробовали и продолжаем тестировать множество самых разных foundation models. Для решения практических задач в контуре компании чаще всего используются модели Phi от Майкрософт, Qwen от Alibaba, Mixtral от Mistral. Последние версии этих моделей неплохо работают с русским языком и отлично с английским, что для задач, где информация может быть на двух языках, очень удобно. Для векторизации двуязычных текстов хорошо себя зарекомендовала модель эмбедингов bge-m3 от Пекинской академии ИИ, а в гибридных сценариях поиска хорошо отрабатывает их модель для реранкинга bge-reranker-v2-m3.
Защита данных. При использовании внешних моделей применяется автоматическое обезличивание запросов пользователя перед отправкой их в API вендора посредством маскирования, выполняемого специальным модулем на основе модели машинного обучения и регулярных выражений, выявляющих потенциально чувствительные данные. При получении ответа модели производится демаскирование, и пользователь может даже не заметить, что его запрос был модифицирован.
UI. Для быстрого прототипирования активно используем Gradio и Streamlit. Для реализации чат-интерфейса с пользователями остановились на Open WebUI — удобное расширяемое web-приложение, которое довольно динамично развивается.
Векторные хранилища. Чаще всего используем производительный и масштабируемый QDrant, а также легко разворачиваемую и интегрируемую БД Chroma.
Трассирование и оценка. Сейчас для отслеживания работы LLM-based приложений мы обычно используем Arize Phoenix, в отдельных сценариях — LangFuse.
Надеюсь, вам было интересно. О других проектах и находках «Гаража» (а работа здесь кипит 😊) и о нашей корпоративной экосистеме GenAI вы узнаете из следующих статей. Благодарю за внимание!