ИИ-инструменты для аналитиков: теория, кейсы, советы
Аналитик департамента CRM КОРУС Консалтинг
Меня зовут Даниил Иванов, я работаю аналитиком Битрикс24 в КОРУС Консалтинг. За время работы успел поучаствовать примерно в 15 проектах разного масштаба и в различных ролях — от аналитика-консультанта до ведущего аналитика и архитектора на проекте. В каждом проекте я выполняю классический цикл работы аналитика на стыке бизнес-анализа и системного анализа.
Работа, безусловно, интересная, но, как и в любой работе, присутствует рутина и точки оптимизации времени.
Зачем аналитику ИИ-инструменты
ИИ давно перестал быть просто забавным развлечением, он позволяет высвободить время от рутины и операционки, что дает сконцентрироваться на уникальных нетипичных задачах, где требуется весь спектр навыков аналитика. Я, как апологет всего нового, начал изучать возможности ИИ еще в 2021 году. В течение пары лет я активно использовал их в работе и искал точки применения, в которых они оптимизируют мою работу. Если раньше на подготовку к интервью и его расшифровку я мог потратить несколько часов или даже целый день, теперь это занимает около получаса. Другой пример — подготовка схем и диаграмм для визуализации проекта. С помощью ChatGPT и PlantUML на подготовку черновика диаграммы у меня уходит минут пять. И таких примеров очень много, о некоторых из них я расскажу подробнее в этой статье.
В начале года я выступал на вебинаре от нашего Корпоративного университета по теме использования ИИ-инструментов в работе аналитика. Я увидел, что коллегам откликается мой материал, поэтому решил структурировать всю используемую информацию и написать эту статью для всех, кому тема может показаться полезной.
Какие задачи аналитика можно делегировать ИИ
Можно выделить множество задач, которые поможет решить ИИ. Я опишу и раскрою на примерах те, которые решаю лично я:
подготовка вопросов к интервью;
выделение бизнес-, функциональных и нефункциональных требований;
подготовка схем процессов (Activity, ER и Sequence диаграммы);
проектирование архитектуры интеграций;
чтение и анализ кода программного продукта.
Ниже на схеме отразил больше различных категорий задач, с которыми может помочь ИИ.
Какие бывают ИИ-инструменты и чем они отличаются друг от друга?
Сразу спойлер — несмотря на многообразие ИИ-сервисов, остановился я в итоге на парочке наиболее подходящих. Но для начала давайте разберемся, какие вообще ИИ бывают. Сделаем акцент именно на тех, которые могут помочь аналитику в работе, но не будем уходить в глубокую классификацию. Я бы выделил следующие категории ИИ, которыми сам пользуюсь.
Классические генеративные нейросети типа LLM (Large Language Model), из которых развились все GPT-модели. К ним относится знакомый всем ChatGPT (OpenAI), а также отечественные аналоги — YandexGPT (Яндекс), GigaChat (Сбер).
Если бы меня спросили еще год назад, кто из GPT всех красивее и милее (хотя в первую очередь умнее), я бы без сомнения ответил ChatGPT. Сейчас же видно, что разработчики отечественных аналогов не стоят на месте, и их ИИ становится умнее от месяца к месяцу. Временами, когда мне нужен быстрый доступ к GPT без смс и регистрации VPN, я обращаюсь к GigaChat (чаще) или YaGPT (реже, на мой взгляд он похуже аналога от Сбера по качеству ответов). Но фаворитом по-прежнему остается ChatGPT. Банально из-за того факта, что он обучен на гораздо больших массивах данных, а еще он лучше поддерживает контекст диалога.
В таблице ниже постарался визуализировать свое субъективное восприятие качества приведенных сервисов по разным критериям. У таблицы идея в том, что ранжирование идет снизу вверх, т.е. чем ниже иконка того или иного GPT, тем лучше у него закрывается критерий по моему мнению.
Повторю, данные из таблицы не стоит воспринимать как результат самого объективного научного исследования. Это мое субъективное восприятия удобства и комфорта работы с приведенными ИИ.
Нейросети для визуализации. Иногда возникает потребность визуализировать какие-то данные — от дорожной карты проекта (или условного плана действий на проекте) до схем процессов. Здесь мой фаворит это нейросеть Whimsical (доступ через VPN). Но и ChatGPT в этой категории также присутствует. Как именно использовать эти нейросети для визуализации я расскажу ниже, лично для меня это вообще киллер фича.
Нейросети для работы с данными и их преобразования. В основном это вспомогательные инструменты для ускорения некоторых рутинных действий. Например, я использую AI инструмент от riverside, который позволяет преобразовать аудио в текст. Хорошо понимает как аудио, так и видео файлы, но на практике заметил, что лучше предварительно вытаскивать аудиодорожку из видео (это сделает любой онлайн сервис из гугла без всякого ИИ), и только потом конвертировать в текст. Также к этой категории я бы отнес сервис retext.ai, позволяющий быстро проверить написанный текст на соответствие правилам и нормам русского языка, на наличие синтаксических, орфографических и пунктуационных ошибок. Полезно, если нужно быстро привести в порядок бегло описанные тезисы на встрече, чтобы подготовить мемо. В принципе, то же самое умеет и любой GPT, но данный сервис чуть лучше работает с русским языком, т.к. был написан для работы именно на нем.
Пишем промпты
Сегодня обилие сервисов с ИИ настолько высоко, что уже появляются отдельные профессии в виде промпт-инженеров, которые работают с ИИ в части составления качественных запросов. Я не один из них, но за время работы с ИИ выработал несколько своих подходов, которые помогают мне быстро и точно получать нужный результат.
Последние версии GPT-моделей в большинстве случаев поймут запрос и выдадут релевантный ответ, как бы он ни был сконструирован. Однако в некоторых случаях для достижения нужного эффекта (например, более глубокого анализа или представления результата в конкретном формате) можно добавлять в запрос больше информации и контекста. Общий вид запроса с максимумом вкладываемой в него информации может выглядеть так:
Отвечай\действуй как {роль}. Далее — {описание контекста}.
Постановка требуемой {задачи}.
Для получения наиболее релевантного ответа можно привести {пример}, а также указать требуемый {формат} представления ответа.
Пример запроса:
Ты функциональный архитектор {роль}. Запускается новый проект по внедрению CRM-системы, в числе задач которого реализовать интеграцию с ERP {описание контекста}.
Предложи способ реализации интеграционного взаимодействия между CRM- и ERP-системами. Вводные: каждая из систем стоит на собственном сервере. Имеется DWH-система, на текущий момент она никак не задействована в интеграционных процессах, может принимать и отдавать любые данные {задача} + {больше контекста}.
Ответ представь в виде таблицы, в которой каждая строка — это отдельный интеграционный поток. Отрази отдающую и принимающую сторону, предложи формат данных для обмена. {формат ответа}.
Если вы хотите получить качественный ответ с исчерпывающей информацией, придерживайтесь простого правила — много контекста не бывает. Все, как когда-то говорила Зоя Вексельштейн:
От теории к практике на примере рабочего проекта
Итак, давайте возьмем один из моих текущих проектов по развитию CRM для крупного производителя и разберемся на конкретных примерах, как в работе аналитика описанные выше ИИ-сервисы помогают решать прикладные задачи.
Начнем с базы. У нас появилась новая задача с каким-то верхнеуровневым описанием от заказчика, и теперь нужно провести интервью для сбора требований и обсуждения процесса. С базой вопросов нам поможет любой GPT-сервис. Давайте обратимся к GigaChat и попросим его помочь нам подготовить вопросы.
ИИ за 10 секунд предложил около 30 вопросов, которые можно поднять в ходе интервью. Конечно, если посмотреть на ответ внимательнее, видно, что он недостаточно конкретен. Однако будем справедливы, в промпте не очень много контекста. Такой список вопросов точно уже можно брать в доработку, добавляя специфику проекта
Продолжаем. Мы провели интервью по новой задаче и теперь необходимо систематизировать услышанное — для начала как минимум выписать ключевые мысли и предметы обсуждения, а после выделить из этого массива текста бизнес-, функциональные и нефункциональные требования. Пользуюсь для этого связкой AI Transcription + ChatGPT.
Итак, у нас есть запись встречи в формате видео. Получаем из него аудио файл (я пользуюсь встроенным в Windows инструментом Climpchamp, для видео весом 1Гб отделяет дорожку за 10–20 сек, правда потом еще дополнительно приходится потратить пару минут конвертировать файл M4A в MP3). Полученный файл грузим в AI Transcription и… идем пить чай. Сервис бесплатный, а нагрузка на сервера достаточно высокая, поэтому приходится дождаться своей очереди на получение транскрипции. Расшифровка долгих встреч (от 1–1.5ч) может доходить до получаса, поэтому имеет смысл запускать его фоном, пока занимаетесь другими задачами. Ну или найти платный сервис, если планируете пользоваться этим постоянно :) Спустя некоторое время ожидания мы получаем txt файл с транскрибированной встречей. Отмечу, что сервис может допускать ошибки, особенно, если используются специфические термины и аббревиатуры, но на 95% это верно расшифрованная запись в виде текста.
С полученным txt файлом мы отправляемся в ChatGPT и просим выделить его все, что нам требуется в данный момент. Например, я попросил сформировать два блока — предмет обсуждения (мемо встречи) и выделенные по результатам встречи функциональные и нефункциональные требования. Получилось достаточно неплохо, особенно учитывая, что на все это я потратил минут 5–10.
Кстати! Многие крупные разработчики сервисов видеоконференцсвязи тоже не отстают от рынка и внедряют ИИ прямо в свои продукты. Например, любой звонок Teams можно транскрибировать с достаточно высокой точностью (в т.ч. на русском языке) и разбивкой на таймкоды, не закрывая приложения.
Итак, мы провели встречу, выделили ФТ и НФТ. Пришло время приступать к документированию способа реализации в требуемом формате. У нас принят формат ЗНР (Задание на разработку), который иногда сопровождается схемой.
На ней и остановимся подробнее. Это та самая киллер фича, о которой я писал выше. Многие знакомы с таким инструментом, как PlantUML (а если нет — очень советую познакомиться). А еще все наверняка знают, что ChatGPT умеет писать код. Тот код, который используются программисты и разработчики меня, как аналитика, мало интересует, но зато код может быть написан, в том числе, и для PlantUML. И это прекрасный способ сэкономить себе от нескольких десятков минут до нескольких часов в зависимости от объема схемы и процесса. Рассмотрим базовый сценарий на примере проектирования простейшей диаграммы последовательности. Приходим к ChatGPT с запросом:
Спустя несколько секунд получаем ответ в виде блока кода с некоторыми пояснениями.
Копируем данный код и отправляемся в любой инструмент визуализации PlantUML (в моем случае — Visual Studio Code). Вставляем код и получаем результат.
То есть полученная диаграмма (без каких-либо правок в том, что выдал наш ИИ) выглядит так:
Неплохо, правда? Учитывая, что на весь процесс я потратил 5 минут — на формулировку описания процесса и перенос полученного кода в визуализиатор PlantUML. Безусловно, данную диаграмму нельзя назвать идеальной, тут есть над чем поработать, как архитектурно, так и визуально. Но мы за очень короткое время получили отличный шаблон.
Посмотрим на еще один пример. На старте любого проекта перед документированием реализации процессов и, тем более, самой реализацией, хорошим тоном будет подготовить ER-диаграмму сущностей, чтобы понимать, с какими объектами в целом придется работать, как они связаны между собой, а также какие ключевые атрибуты будут иметь. Проверим, справится ли связка ChatGPT + PlantUML с этой задачей. Опишем достаточно базовый абстрактный вид планируемой модели данных и попросим его визуализировать с помощью кода.
Бот выдает код, который мы используем, чтобы получить подобный результат:
И вновь результат весьма неплохой. ChatGPT даже сам добавил некоторые базовые атрибуты, которые по его мнению должны быть в этих объектах. Есть что подправить, но в целом это уже весьма жизнеспособная схема, понять которую смогут аналитики, архитекторы, разработчики с любой из сторон команд проекта.
Я считаю данный пример использования ИИ одним из наиболее эффективных применений его возможностей с учетом затрачиваемого времени и результата, полученного на выходе.
А теперь вновь посмотрим на визуализацию, но уже немного в другом ключе. Представим, что на определенной точке работы над проектом мы оказались в некотором тупике и хотим получить несколько идей, как задача может быть разбита и структурирована. Для этого воспользуемся сервисом Whimsical.
Возьмем достаточно общий пример — заказчик обратился с просьбой провести аудит системы, которую ему внедрили 10 лет назад, и все это время в ней работала компания. Сходу может быть страшно даже подумать, как подступиться к этой задаче и с чего начать. Идем в whimsical, пишем одно общее действие и просим подключиться ИИ. А там, где осталось непонятно, идем еще на уровень глубже. И так до тех пор, пока нам не покажется, что предоставленного количества идей достаточно, чтобы понять, куда двигаться дальше и на основании данного плана сделать свой.
Выше я привел самые интересные, на мой взгляд, точки приложения способностей ИИ для решения задач аналитика. Общий спектр решаемых задач намного шире (см. рисунок в начале статьи). От SQL-запросов до написания кода и помощи в оформлении писем для заказчика\команды проекта в нужной стилистике.
Помним про безопасность
Не могу не выделить очевидный, но важный пункт. Если речь не идет о какой-то нейросети, которую вы развернули в своей компании на собственных серверах и базах, следует придерживаться базовых правил предосторожности:
Названия конкретных продуктов заменяем на класс системы: Microsoft Dynamics → CRM; 1C — ERP.
Из кода для анализа\доработки убираем все креды и access tokens — можно заменить на переменную, чтобы код сохранил смысл.
При запросе для работы с БД названия таблиц и свойства заменяем на буквенно-цифровые обозначения.
Не используем названия юр. лиц \ брендов \ марок заказчика, исполнителя.
Проверяем результаты запроса на тестовых инстансах проекта, а лучше — в песочнице.
Несколько рекомендаций
Ниже несколько советов\лайфхаков, которые помогут сделать ваше взаимодействие с ИИ класса GPT более комфортным и простым.
1. Google It!
Неочевидная мысль — любой из GPT моделей можно пользоваться просто в качестве «поисковика». Любой вопрос, возникающий в процессе работы, получится легко закрыть, задав его боту. «Для чего используется методология X в проектах», «Какие артефакты должен готовить аналитик при входе в проект» и другое — бот подскажет и приведет несколько примеров.
2. Много контекста не бывает
Любой из ботов способен поддерживать контекст. Если результат ответа на запрос вас не удовлетворил — попробуйте не генерировать запрос заново, а продолжить диалог, предложив больше деталей.
3. Ошибки нужно исправлять
Иногда GPT может выдать не самый релевантный и качественный ответ, а местами откровенно ошибаться в показаниях. В таких случаях, по аналогии с п.2, не стоит сразу пытаться изменить запрос, иногда достаточно указать чат-боту, что его ответ в конкретном месте не понятен или даже ошибочен — с высокой долей вероятности вторая попытка ответа будет более успешна.
4. Не формализируйте излишне
GPT был создан в качестве языковой модели и продолжает ей оставаться (любой продукт класса GPT). Часто не требуется излишняя формализация запроса, использование всех составляющих промпта лишь увеличит шансы получить качественный ответ, но это не значит, что просто заданный вопрос\задача без контекста останутся без ответа. Ведите с ботом диалог как с другом, или хотя бы как с профильным коллегой — разработчиком, архитектором, другим аналитиком и т.д.
Подводя итог, не могу не отметить, что нейросети и их возможности за последнюю пару лет совершили большой шаг вперед. На мой взгляд, ИИ уже способы достаточно сильно помочь в работе любого аналитика, вне зависимости от классов систем и продуктов, с которыми они работают. Из недостатков я бы выделил разве что отсутствие долгосрочной памяти. Иногда очень хочется прийти к ChatGPT и сказать «а помнишь месяц назад мы обсуждали вопрос X, вот теперь надо к нему вернуться и закрыть с новыми вводными». К сожалению, в таком случае придется начинать заново.
Инструменты, описанные выше, достаточно универсальны и поэтому использовать их могут не только аналитики, но и разработчики, архитекторы, руководители проектов, конечно же с учетом специфики функционала занимаемой роли.