Что бы вы сделали через два дня? Позвольте мне быть более точным, чем бы вы занимались на выходных? В зависимости от того, какой вы человек, ответы могут отличаться. Некоторые могут захотеть остаться дома, выспаться, не торопиться. Если вы похожи на меня, вы были бы в пути на велосипеде к тому единственному уединенному убежищу. Может быть, вы хотите пойти на свидание со своим любимым человеком.

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

Позвольте мне проинформировать вас о том, что происходит. Моя компания организует их ежегодный хакатон Accubits Innovation Challenge. Это ежегодное мероприятие, на котором технологи и новаторы со всего мира сотрудничают и вносят свой вклад в развитие технологий завтрашнего дня. Я был частью внутренней группы исследователей, и нашей идеей было разработать единый инструмент агрегирования и интерпретации данных, основанный на обработке естественного языка, для выполнения анализа данных. Предпосылка идеи состоит в том, чтобы позволить любому выполнять работу в области науки о данных, просто поговорив с инструментом.

Мы заложили основы работы, отметив подходы к решению проблемы на стикерах, и провели много мозговых штурмов с использованием кофеина. Конечным результатом стало осознание того, что чем больше мы об этом думаем, тем сложнее становятся решения. Мы договорились создать минимально жизнеспособный продукт (MVP) в течение выходных. Был принят модульный подход, при котором каждый раздел архитектуры остается изолированным, потому что мы хотели гибкости для настройки, изменения или удаления этих модулей по мере продолжения разработки. Абстрактная структура архитектуры выглядит так:

  • Пользовательский интерфейс чата для диалогового ввода.
  • Механизм NLP для создания запросов к БД на основе свободно текущих диалоговых входов.
  • Анализатор данных для приема необработанных данных и создания дампов в нашу центральную базу данных.
  • Бэкэнд машинного обучения (ML), который принимает данные, создает подмножества и выбирает лучшую модель, соответствующую данным для прогнозирования.
  • Визуализатор данных.

Первый шаг к созданию продукта - это найти для него хорошее, запоминающееся название. После нескольких жарких разговоров и пары черных глаз позже мы остановились на названии InsightsBud. Подумайте больше об имени, и мы поймем, насколько удачно оно составлено. Основная идея платформы состоит в том, чтобы избавить специалиста по данным от лишних обязанностей, таких как очистка данных и создание визуальной информации. Теперь InsightsBud может сделать эту работу за вас, вооружив непрофессионала для выполнения задач по науке о данных и создания корреляций данных для получения бизнес-идей. Самыми большими бенефициарами платформы являются руководители предприятий, руководители продаж и маркетологи, и это лишь некоторые из них.

Возможные варианты использования, а также влияние на рынок такого продукта подогревали энтузиазм команды. У каждого были свои обязанности, и настало время перелома. Мне было поручено разработать бэкэнд машинного обучения. Рабочий процесс был довольно простым. Система получит некоторые данные и некоторую информацию о том, из какого домена эти данные, например: здравоохранение, транспорт и т. Д. Хотя эта информация может не иметь большого значения для того, что происходит в серверной части, лучше иметь что-то, чем ничего.

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

Прогнозная аналитика, анализ данных и т. Д. Создаются в режиме реального времени на основе того, что спрашивает пользователь. В качестве примера позвольте мне рассказать вам, как система реагирует, когда пользователь вводит некоторые данные и общается с ботом. Скажем, вы кто-то из отдела здравоохранения. Вас просят получить представление о данных о пациентах из разных частей штата или провинции. Данные содержат информацию о здоровье пациента, истории диагностированных заболеваний, их географическом местоположении, этническом происхождении, демографии и т. Д. Вы можете загрузить эти данные в InsightsBud, ответить на определенные вопросы, связанные с загруженными данными, и начать задавать вопросы Bud. Вопрос будет примерно таким: «Привет, Бад, какова вероятность того, что кто-то из местоположения X имеет хроническую аритмию?». На основе данных, уже загруженных в систему на предыдущем шаге, и информации, извлеченной ботом, модель учитывает местоположение и тип заболевания, чтобы дать оценку вероятности того, что человек заболел. Модель, созданная для данных, будет основана на нескольких атрибутах обучающих данных и определяется механизмом правил и методом оценки параметров модели, который полагается на подмножества данных для оценки модели наилучшего соответствия для любых данных.

Команда UI начала свою работу с разработки пользовательского потока и дизайна UX. На экспериментальной основе мы опробовали флаттер для разработки приложений, но обнаружили, что он очень нестабилен для нашего конкретного случая использования. Это заставило нас перейти на Angular для интерфейса. NodeJS был нашим выбором для управления внутренними коммуникациями, тогда как python был выбран для создания загрузчика данных и предварительной обработки серверной части.

Во время разработки InsightsBud мы включили наш инструмент приема данных под названием Gulpi, который действует как поисковый робот и механизм сброса данных, который позволяет нам интегрировать такие источники данных, как Slack, Twitter, Facebook и т. Д. Также поддерживается обычный ввод CSV. Затем идет бэкэнд машинного обучения, который был моим основным фокусом. Из-за огромного количества источников данных было разумно придумать несколько универсальное решение, которое могло бы обрабатывать различные характеристики данных, такие как типы данных, источники, дисциплина, к которой принадлежат данные и т. Д.

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

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

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

Время шло, и до презентации продукта оставалось всего 15 часов. Впереди у нас была бессонная ночь. Предвидя это, мы уже запаслись Red Bulls и некоторыми закусками, которые оказались не очень полезными после 6 часов ночи. Было четыре часа утра, и никто, казалось, не дрогнул. Исправление ошибок продолжалось, и к 6 утра платформа, казалось, работала. Он принимал данные и генерировал идеи на основе разговоров с ботом. Мы планировали вздремнуть за пару часов до инаугурационной речи.

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

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

Я чувствовал, что история нашего путешествия должна охватить множество людей, потому что она может вдохновить или оказать влияние на человека или группу людей, чтобы они стали более активными с точки зрения того, как он / она распоряжается своим временем и уделяет им урок командной работы. Чтобы получить дополнительную информацию о нашем путешествии и о том, чем мы занимаемся, посетите нас на www.accubits.com. Чтобы получить более подробное представление о работе InsightsBud и опробовать платформу, посетите www.insightsbud.com.