В статье упоминается, что для выделения протяженных объектов (треков движения автомобилей) на исходном сигнале используется нейронная сеть архитектуры UNET, а для выделения точечных события (начало движения и остановки) - используется YOLOv5. На этом все нейросетевое "волшебство" заканчивается. Далее (с точки зрения разработки) уже идут решения разнообразных инженерных задач, связанных как с анализом исходных данных Data Science специалистами, так и с интерпретацией результатов, выдаваемых нейронными сетями, для их отображения пользователям системы. Но, пожалуй, раскрытие всех нюансов, с которыми пришлось столкнуться, лежит за рамками данной обзорной статьи о проекте в целом.
Если же говорить непосредственно про обучение нейронных сетей, то здесь все достаточно тривиально: как сказано в статье - мы получаем сырые данные непосредственно с акустического датчика. Здесь стоит сделать пояснение - в нашем случае сырые данные это огромный трехмерный массив, каждый элемент которого характеризует уровень улавливаемых шумов на разных частотах в конкретное время на конкретном оптическом метре кабеля. Таким образом, условно сырые можно охарактеризовать как многоканальное изображение. Далее с помощью человека (или же полуавтоматически) происходит разметка данных и дальнейшее обучение нейронных сетей. Сырые данные поступают непрерывно, и исходя из результатов тестирования нейронных сетей на новых сырых данных строятся процессы дальнейшего дообучения.
На первые три абзаца пролилось немного формализма заказчика. Пришлось оставить как плату за разрешение публикации. Но все остальное в одном стиле и на одном дыхании!
Система принимает, обрабатывает и сохраняет в различные хранилища миллионы событий от внешних источников (от 30 до 70 млн в сутки). Также можно отметить объемы "сырых" данных, которые в дальнейшем обрабатываются нейронными сетями - это террабайты информации каждые сутки. Обрабатываемые системой данные также соответствуют характеристикам, определяющим большие данные - классическим трем V: Volume, Velocity и Variety. Ежедневно мы обрабатываем огромный поток данных, поступающих в режиме рального времени, при этом в ходе процессинга данных (в большей степени с помощью Kafka Streams) мы трансформируем, обогащаем и анализируем как события от внешних источников, так и генерируемые с помощью наших собственных нейронных сетей - т.е. работаем с данными различных типов.
Спасибо за советы и ресурсы. А критическую проблему отсутствия опыта предлагаем решить благодаря стажировкам и программам по трудоустройства. Такие вакансии вполне доступны для специалистов без опыта. Программа трудоустройства — это работа, которая приносит стаж, зарплату и знания, которые пригодятся в дальнейшем. И тогда, как вы верно заметили, графа «опыт работы» уже не окажется пустой.
Согласны, это тоже важно. В самом начале года, когда мы только вышли на удаленку, привозили коллегам недостающую технику и даже мебель, чтобы обустроить комфортное рабочее место: мониторы, ноутбуки, мягкие офисные стулья и т.д — до того, как это вошло в закон об удаленке. Новых сотрудников естественно обеспечиваем тоже всем необходимым.
Ещё из важного: мы расширили программу поддержки здоровья (ДМС) и создали свой штаб взаимопомощи (например, если нет возможности купить лекарства или их просто нет в ближайших аптеках, или нужно отвлечь ребёнка в зуме, пока у папы важное совещание, мы помогаем).
Курсы английского легче всего было перевести в онлайн. Тут перестроились сразу.
Потом мы быстро поняли, как нам не хватает совместных обедов, игр в приставку, пиццы на праздники и вот этого всего. Поэтому стали проводить совместные мероприятия в зум: например, чаепития с директорами, онлайн-хелоуин, лекции с приглашёнными экспертами (психологи, ученые и т. д.). Перед Новым годом устроили трансляцию в стиле популярного тв-шоу и подарки для всех сотрудников и их детей.
В чем-то жизнь онлайн нам явно помогла: пока мы все работаем из дома и не чувствуем колоссальный разрыв между теми, кто потом вернётся в офис, и теми, кто устроился в Haulmont на удаленку. Надеемся, что научились этому балансу.
Пока ходит наверное человек 80-100, т.к. мы до конца марта рекомендуем всем работать из дома. В офис ходят только те, кому дома совсем не комфортно или есть необходимость быть в на рабочем месте. Смотрим за ситуацией с ковидом, тестируем на антитела желающих, планируем вакцинацию в крупных офисах (тоже для желающих). Если не будет роста заболеваемости в стране, то в апреле позовем всех в офис. Вот тогда и будет ясно сколько людей любит офисы :). Т.к. каждый выбирает удобный ему режим работы — в офисе, дома или смешанный вариант. Но прошлым летом, когда такая схема уже работала, в офисах было около 300-350 человек из 500.
Java будет обновлена при необходимости в следующей версии Помощника.
На данный момент мы считаем существующий вариант реализации наиболее приемлемым с учетом кроссплатформенности приложения.
Подумаем насчет уменьшения дистрибутива.
Спасибо за отклик, это справедливые замечания. Как я уже упоминала, мы стараемся выполнить то, что обещано клиентам, в первую очередь.
Поэтому, что касается пунктов 1, 3 и 6, это уже в новом релизе поправлено. Во вновь поставляемых инсталляторах проблема с автообновлением Java решена (п.2).
А п.4 и 5 будут проработаны и постараемся решить озвученные вами проблемы. Благодарим за участие в развитии продукта.
Т.е. фактически не все из того что было запланировано может быть реализовано? А кто определяет, на какие задачи можно забить? Снова большой совет?
Подразумевается, что всё, что было начато, доводится до логического завершения. Если мы что-то обещали клиентам, то это будет сделано в первую очередь. Остальные запланированные, но не реализованные по разным причинам новшества, могут перейти в будущие релизы. Планирование работ и оценка ситуации выполняется еженедельно и набор фич, что мы не успеваем сделать, мы знаем задолго до code freeze.
Автоматизация тестирования — действительно камень преткновения. Отчасти, это правда. Работа в этом направлении ведется.
Какая же это заморозка, код-то правят и дальше. Изменения в коде при исправлении ошибок принципиально ничем не отличаются от изменений для нового функционала
Проблемы с code freeze известны всем разработчикам ПО, поэтому вернее сказать об ограничении изменений кода и ужесточении контроля за ним. Таким образом из двух типов замораживания — полное и замораживание функциональных свойств, мы используем второй тип.
А это зачем, простите? Кому эти ТЗ потом нужны?
Проект растет и развивается. Приходит новая команда. Появляются новые «хотелки» от клиентов. Всегда удобнее работать, если есть актуальная документация на все фичи.
А что делают разработчики в «межсезонье»?
Компания выпускает не только стандартное решение. Проектная команда работает с продуктами, которые ориентированы под конкретных заказчиков. Работы мало не бывает.
Что касается бумагописательства, то мы, как адепты электронного документооборота, несколько модернизировали этот процесс. Он не настолько затратен по времени, как может показаться. Переход на короткие итерации несет большие потери времени на регрессионное тестирование продукта.
С 1 октября только начнутся обновления, поэтому опоздать куда-либо маловероятно.
А что не так с инсталлятором Reminder-а (с 4.1 tezis-assistant)? Каждый релиз это улучшение продукта, в новой версии были работы и по улучшению инсталлятора. Если вдруг есть идеи, мысли, предложения, то всегда готовы выслушать.
Спасибо за коммент. Добавили в текст описания продукта про Java.
В этой статье написали о выборе ОС и СУБД с учетом реалий заказчика. О переходе на новую ОС и миграцию СУБД расскажем в следующей.
А обещанную статью про критерии выбора работодателей где почитать?
В статье упоминается, что для выделения протяженных объектов (треков движения автомобилей) на исходном сигнале используется нейронная сеть архитектуры UNET, а для выделения точечных события (начало движения и остановки) - используется YOLOv5. На этом все нейросетевое "волшебство" заканчивается. Далее (с точки зрения разработки) уже идут решения разнообразных инженерных задач, связанных как с анализом исходных данных Data Science специалистами, так и с интерпретацией результатов, выдаваемых нейронными сетями, для их отображения пользователям системы. Но, пожалуй, раскрытие всех нюансов, с которыми пришлось столкнуться, лежит за рамками данной обзорной статьи о проекте в целом.
Если же говорить непосредственно про обучение нейронных сетей, то здесь все достаточно тривиально: как сказано в статье - мы получаем сырые данные непосредственно с акустического датчика. Здесь стоит сделать пояснение - в нашем случае сырые данные это огромный трехмерный массив, каждый элемент которого характеризует уровень улавливаемых шумов на разных частотах в конкретное время на конкретном оптическом метре кабеля. Таким образом, условно сырые можно охарактеризовать как многоканальное изображение. Далее с помощью человека (или же полуавтоматически) происходит разметка данных и дальнейшее обучение нейронных сетей. Сырые данные поступают непрерывно, и исходя из результатов тестирования нейронных сетей на новых сырых данных строятся процессы дальнейшего дообучения.
Спасибо! Будем стараться писать еще.
на текущий момент ямы и их параметры не определяются. Но такой запрос есть и в ближайшее время эта тема будет прорабатываться
На первые три абзаца пролилось немного формализма заказчика. Пришлось оставить как плату за разрешение публикации. Но все остальное в одном стиле и на одном дыхании!
Система принимает, обрабатывает и сохраняет в различные хранилища миллионы событий от внешних источников (от 30 до 70 млн в сутки).
Также можно отметить объемы "сырых" данных, которые в дальнейшем обрабатываются нейронными сетями - это террабайты информации каждые сутки.
Обрабатываемые системой данные также соответствуют характеристикам, определяющим большие данные - классическим трем V: Volume, Velocity и Variety. Ежедневно мы обрабатываем огромный поток данных, поступающих в режиме рального времени, при этом в ходе процессинга данных (в большей степени с помощью Kafka Streams) мы трансформируем, обогащаем и анализируем как события от внешних источников, так и генерируемые с помощью наших собственных нейронных сетей - т.е. работаем с данными различных типов.
Спасибо за советы и ресурсы. А критическую проблему отсутствия опыта предлагаем решить благодаря стажировкам и программам по трудоустройства. Такие вакансии вполне доступны для специалистов без опыта. Программа трудоустройства — это работа, которая приносит стаж, зарплату и знания, которые пригодятся в дальнейшем. И тогда, как вы верно заметили, графа «опыт работы» уже не окажется пустой.
Попробуйте зарегистрироваться по этой ссылке: https://haulmont.timepad.ru/event/1743832/
По ней TimePad не должен просить номер. Расскажите потом, получилось ли?
К сожалению записи митапа не будет — наш гость рассказывает эксклюзивный доклад. Так что очень ждем вас!
В соцсетях Haulmont (Facebook, ВК, Instagram, Twitter)
На Timepad
Можно подписаться на соцсети, будете всегда в курсе новостей.
Ещё из важного: мы расширили программу поддержки здоровья (ДМС) и создали свой штаб взаимопомощи (например, если нет возможности купить лекарства или их просто нет в ближайших аптеках, или нужно отвлечь ребёнка в зуме, пока у папы важное совещание, мы помогаем).
Курсы английского легче всего было перевести в онлайн. Тут перестроились сразу.
Потом мы быстро поняли, как нам не хватает совместных обедов, игр в приставку, пиццы на праздники и вот этого всего. Поэтому стали проводить совместные мероприятия в зум: например, чаепития с директорами, онлайн-хелоуин, лекции с приглашёнными экспертами (психологи, ученые и т. д.). Перед Новым годом устроили трансляцию в стиле популярного тв-шоу и подарки для всех сотрудников и их детей.
В чем-то жизнь онлайн нам явно помогла: пока мы все работаем из дома и не чувствуем колоссальный разрыв между теми, кто потом вернётся в офис, и теми, кто устроился в Haulmont на удаленку. Надеемся, что научились этому балансу.
На данный момент мы считаем существующий вариант реализации наиболее приемлемым с учетом кроссплатформенности приложения.
Подумаем насчет уменьшения дистрибутива.
Поэтому, что касается пунктов 1, 3 и 6, это уже в новом релизе поправлено. Во вновь поставляемых инсталляторах проблема с автообновлением Java решена (п.2).
А п.4 и 5 будут проработаны и постараемся решить озвученные вами проблемы. Благодарим за участие в развитии продукта.
Подразумевается, что всё, что было начато, доводится до логического завершения. Если мы что-то обещали клиентам, то это будет сделано в первую очередь. Остальные запланированные, но не реализованные по разным причинам новшества, могут перейти в будущие релизы. Планирование работ и оценка ситуации выполняется еженедельно и набор фич, что мы не успеваем сделать, мы знаем задолго до code freeze.
Автоматизация тестирования — действительно камень преткновения. Отчасти, это правда. Работа в этом направлении ведется.
Проблемы с code freeze известны всем разработчикам ПО, поэтому вернее сказать об ограничении изменений кода и ужесточении контроля за ним. Таким образом из двух типов замораживания — полное и замораживание функциональных свойств, мы используем второй тип.
Проект растет и развивается. Приходит новая команда. Появляются новые «хотелки» от клиентов. Всегда удобнее работать, если есть актуальная документация на все фичи.
Компания выпускает не только стандартное решение. Проектная команда работает с продуктами, которые ориентированы под конкретных заказчиков. Работы мало не бывает.
Что касается бумагописательства, то мы, как адепты электронного документооборота, несколько модернизировали этот процесс. Он не настолько затратен по времени, как может показаться. Переход на короткие итерации несет большие потери времени на регрессионное тестирование продукта.
А что не так с инсталлятором Reminder-а (с 4.1 tezis-assistant)? Каждый релиз это улучшение продукта, в новой версии были работы и по улучшению инсталлятора. Если вдруг есть идеи, мысли, предложения, то всегда готовы выслушать.