Суперсилы «Виталика»: на что способен ViTalk GPT

от автора

Привет, Хабр! Область Business Intelligence — одна из наиболее “интеллектуальных” по определению, и в аналитической работе в некоторых задачах особенно удобно использовать искусственный интеллект. Поэтому мы сегодня поговорим про чат-бота ViTalk GPT, который в некоторых задачах помогает очень быстро найти правильный ответ на поставленные вопросы, а иногда — даже скорректировать свой же вопрос с учетом возможностей платформы Visiology. В этой статье мы коснемся сильных и слабых сторон AI, проверим, смогут ли два слона поставить мат королю, и оценим сферу применения ViTalk GPT для аналитиков, разработчиков и даже бизнес-пользователей. 

AI помогает делать многое, но при работе с современными сервисами часто возникают технические трудности — платная подписка, необходимость подключать VPN, потребность постоянно напоминать AI контекст предметной области и т.д. К счастью, для аналитики в DAX доступен бесплатный чат-бот ViTalk, который способен решать множество важных задач без лишних танцев с бубном. 

Пример 1 — ViTalk для поиска по документации Visiology

Начнем с простого — с поиска. Всё чаще говорят о том, что поиск в Google отходит на второй план, и многие пользуются поиском через AI. Лично мне поиск информации через ChatGPT тоже нравится больше, т.к. для меня он выглядит намного более быстрым, точным, осмысленным и качественным, чем поиск Google. А также он не содержит рекламы — это приятно! Любителям ссылок на первоисточники и факт-чекинга можно пользоваться Copilot, который умеет добавлять ссылки на свои выводы. 

Как же умеет искать ViTalk? Очень успешно, если применять его в нужном направлении. По документации Visiology (и за ее пределами) Виталик ищет отлично. Например, ответ на вопрос по поддерживаемому синтаксису логического И выглядит исчерпывающе.

Конечно, как и во многих AI, вопрос можно задать несколько раз, чтобы получить вариант ответа, который больше подходит. Но в любом случае Вы сами можете убедиться, что ответ соответствует справке.

Пример 2 — Логика Time Intelligence

Если у Вас есть вопросы по накопленному итогу, то ViTalk поможет найти способ ответить на них. Причем для этого достаточно текстового описания полей результата — не требуется даже описание схемы данных. Интересно, что при необходимости ViTalk сам применяет логику Time Intelligence и подсчитывает накопленный итог по продажам с начала года для нескольких лет.

Получаем следующий DAX от ViTalk:

SUMMARIZECOLUMNS (     YEAR('Sales'[SaleDate]),     MONTH('Sales'[SaleDate]),     "Accumulated Sales",     TOTALYTD (         SUM('Sales'[SalesAmount]),         'Sales'[SaleDate]     ) )

Пример 3 — Переименования и другая рутинная обработка DAX

ViTalk предоставляет удобные возможности AI редактирования DAX, в частности, переход на новую схему данных с новыми именами таблиц. Например, можно легко перевести запрос из предыдущего примера на новую схему данных с таблицей фактов Продажи (Дата, Сумма):

Получим следующий DAX от ViTalk:

SUMMARIZECOLUMNS(     YEAR('Продажи'[Дата]),     MONTH('Продажи'[Дата]),     "Накопленные продажи",     TOTALYTD(         SUM('Продажи'[Сумма]),         'Продажи'[Дата]     ) )

Пример 4 — Создание мер по описанию

В некоторых ситуациях, когда Вы понимаете, каким методом Вы хотите решить задачу, можно направить ViTalk GPT в нужном направлении и перечислить необходимые функции. Например, при текстовом описании меры для подсчета коэффициента проникновения по клиентам можно помочь ViTalk с тем, что хотим использовать REMOVEFILTERS(Customers).

В итоге получим DAX от ViTalk:

CustomerPenetrationRate := DIVIDE(     DISTINCTCOUNT(Sales[CustomerID]),     CALCULATE(         DISTINCTCOUNT(Customers[CustomerID]),         REMOVEFILTERS(Customers)     ) )

Неплохой результат, кстати, рабочий DAX! Также ViTalk приводит теоретическую справку о том, что такое коэффициент проникновения. Да, не всё идеально. Но в итоге мы получаем удобную заготовку, которую нужно немного подправить: 

заменить DISTINCTCOUNT(Customers[CustomerID]) на DISTINCTCOUNT(Sales[CustomerID])

В итоге с помощью ViTalk и этого ручного фикса получим:

CustomerPenetrationRate := DIVIDE(     DISTINCTCOUNT(Sales[CustomerID]),     CALCULATE(         DISTINCTCOUNT(Sales[CustomerID]),         REMOVEFILTERS(Customers)     ) )

Пример 5 — Помощь с SQL в рамках ETL

Да, скрипты — это сильная сторона всех AI. Однако ViTalk не “заточен” непосредственно на SQL, и поэтому, если спросить его “в лоб”, без привязки к BI, то ответа не будет — и не должно быть!

Однако если переформулировать запрос и объяснить, какое это имеет отношение к BI, можно получить необходимый ответ

Таким образом, видим ответ

SELECT     d::DATE AS date,     TO_CHAR(d::DATE, 'YYYY-MM-DD') AS date_string FROM     GENERATE_SERIES('2020-01-01'::DATE, '2030-12-31'::DATE, '1 day'::INTERVAL) AS d;

Пример 6 — ViTalk помогает отказаться от глупых идей

ViTalk достаточно умен, чтобы не отвечать на отвлеченные вопросы. Так, методом пузырька ViTalk не проведешь 🙂

Понять и простить

Нужно иметь в виду, что ViTalk обладает всеми преимуществами и недостатками AI движков. Можно проиллюстрировать на примере ChatGPT, как самого популярного и развитого на сегодня сервиса. Не зря его создатели предупреждают нас:

ChatGPT can make mistakes. Check important info.

Рассмотрим достаточно простой вопрос к ChatGPT:

На шахматной доске остался белый король, два белых слона и черный король. Могут ли белые поставить мат черным?

Спойлер — вообще-то да, хоть и не так просто, но ответ ChatGPT вызывает грусть.

“Важно, чтобы угол доски был окрашен в цвет одного из слонов.” — т.е. не фиолетовый, наверно, с учетом того, что белопольный и чернопольный слоны ставят мат, а два белопольных или два чернопольных — нет, — это уже выглядит подозрительно.

И дальше совсем грустно:

Примерная матовая позиция:

Белый король: c6.

Белый слон: d5.

Другой белый слон: e7.

Черный король: a8.

В этой позиции черному королю некуда ходить, и это мат.

Да-да, “мат”. Хорошо, что хоть не бинго, аут или рыба. Занавес.

Этот пример показывает, что человек может всего за один или пару вопросов получить от AI некорректный ответ, и это нужно учитывать при работе с любым AI, в том числе и с ViTalk GPT, и в этом смысле не судить AI инструменты строго. Нужно понять и простить тот факт, что у них нет ощущения реальности, они опираются на информацию, которая может быть неточной; могут содержать какие-то несовершенные элементы в своих алгоритмах. Поэтому ViTalk, как и любой другой AI, не может полностью заменить аналитика, но зато может ускорить его работу и помочь с выбором операторов, генерацией скриптов и изучением Visiology во всех ее проявлениях.

Выводы

  • ViTalk может использоваться как поиск по документации Visiology и за её пределами

  • В работе с ViTalk можно повторно задавать вопрос, получать разные результаты и выбрать лучший

  • Если Вы знаете, что Вам нужно, можно самому подсказывать ViTalk, какие конструкции использовать, чтобы получить желаемый DAX

  • ViTalk предоставляет теоретическую справку, связанную с расчетами в DAX

  • ViTalk может автоматически переводить запросы на новую схему данных

  • ViTalk пошагово поясняет построенные DAX запросы

  • ViTalk успешно пишет скрипты для ETL

Однако Вам нужно учитывать, что имеет смысл проверять запросы от ViTalk и при необходимости вносить небольшие исправления. И чем сложнее задача, которую Вы решаете, тем больше внимания нужно уделить проверке. Я бы советовал воспринимать ViTalk как опытного специалиста, который дает вам совет — он не решает задачу за Вас, он делится опытом и рекомендует. А дальше — дело за Вами!

Надеюсь, перечисленные кейсы и практики помогут повысить эффективность построения дашбордов в Visiology.


ссылка на оригинал статьи https://habr.com/ru/articles/863144/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *