Защо един хардуерен стартъп има нужда от софтуерен хакатон?

Миналия декември проведохме наш собствен стартъп хакатон с шест други компании от Сколково. Без корпоративни спонсори или каквато и да е външна подкрепа събрахме двеста участници от 20 града на Русия чрез усилията на програмната общност. По-долу ще ви разкажа как успяхме, какви клопки срещнахме по пътя и защо веднага започнахме да си сътрудничим с един от печелившите отбори.

Защо един хардуерен стартъп има нужда от софтуерен хакатон?Интерфейс на приложението, което контролира модулите Watts Battery от финалистите на парчето „Мокра коса“

компания

Нашата компания Watts Battery създава модулни преносими електроцентрали. Продуктът представлява преносима електроцентрала 46x36x11 cm, способна да доставя от 1,5 до 15 киловата на час. Четири такива модула могат да осигурят потреблението на енергия на малка селска къща за два дни.

Въпреки че започнахме да доставяме производствени проби миналата година, по всички сметки Watts Battery е стартираща компания. Компанията е основана през 2016 г. и от същата година е резидент на Клъстера за енергийно ефективни технологии Сколково.Днес имаме 15 служители и огромно изоставане от неща, които бихме искали да направим на някакъв етап, но в момента няма време за това.

Това включва и чисто софтуерни задачи. Защо?

Основната задача на модула е да осигури непрекъснато, балансирано енергоснабдяване на оптимална цена. Ако претърпите прекъсване на електрозахранването поради причини извън вашия контрол, винаги трябва да имате резерв, за да захраните напълно необходимия мрежов товар за времето на прекъсването. И когато захранването е добро, можете да използвате слънчева енергия, за да спестите пари.

Най-простият вариант е, че можете да зареждате батерията от слънцето през деня и да я използвате вечер, но точно до нивото, което е необходимо, за да не останете без ток при спиране на тока. Така че никога няма да се окажете в ситуация, в която цяла вечер сте захранвали осветлението от батерия (защото е по-евтино), но през нощта електричеството е спряло и хладилникът ви е размразен.

Ясно е, че човек рядко може да предвиди с голяма точност количеството електроенергия, от което се нуждае, но система, въоръжена с предсказуем модел, може. Следователно машинното обучение като такова е една от нашите приоритетни области. Просто в момента сме фокусирани върху разработването на хардуер и не можем да отделим достатъчно ресурси за тези задачи, което ни доведе до Startup Hackathon.

Подготовка, данни, инфраструктура

В резултат на това поехме в две направления: анализ на данни и система за управление. Освен нашите, имаше още седем парчета от колеги.

Докато форматът на хакатона не беше определен, ние мислехме да създадем „наша собствена атмосфера“ с точкова система: участниците правят някои неща, които ни се струват трудни и интересни, получавайки точки за това. Имахме много задачи. Но докато изграждахме структурата на хакатона, други организатори поискаха да приведат всичко в обща форма, което направихме.

Тогава стигнахме до следната схема: момчетата правят модел на базата на техните данни, след това получават нашите данни, които моделът не е виждал преди, научава се и започва да прогнозира. Предполагаше се, че всичко това може да стане за 48 часа, но за нас това беше първият хакатон на нашите данни и може би сме надценили времевия ресурс или степента на готовност на данните. На специализираните хакатони за машинно обучение такава времева линия би била норма, но нашата не беше такава.

Разтоварихме максимално софтуера и хардуера на модула и направихме версия на нашето устройство специално за хакатона, с много прост и разбираем вътрешен интерфейс, който всеки разработчик може да поддържа.

За пистата, базирана на системата за управление, имаше възможност да се направи мобилно приложение. За да попречим на участниците да си блъскат мозъка как трябва да изглежда и да губят допълнително време, ние им дадохме суперлеко дизайнерско оформление на приложението, така че тези, които го искат, могат просто да „разпънат“ функциите, от които се нуждаят, върху него . Честно казано, не очаквахме някакви морални дилеми тук, но един от екипите го прие по такъв начин, че ограничихме полета на фантазията им, искахме да получим готово решение безплатно, а не да ги тестваме на практика. И излетяха.

Друг екип избра да направи напълно различно приложение от нулата и всичко се получи. Не сме настоявали приложението да е точно такова, просто трябваше да съдържа някои елементи, които демонстрират техническото ниво на решението: графики, анализи и т.н. Готовото оформление на дизайна също беше намек.

Тъй като анализирането на жив модул Watts Battery на хакатон би отнело твърде много време, ние предоставихме на участниците готова част от данни за един месец, взети от реалните модули на нашите клиенти (които предварително внимателно анонимизирахме). Тъй като беше юни, нямаше нищо, което да включва сезонни промени в анализа. Но в бъдеще ще добавим външни данни към тях, като сезонни и климатични характеристики (днес това е индустриален стандарт).

Не искахме да създаваме нереалистични очаквания сред участниците, така че в анонса на хакатона директно казахме: работата ще бъде възможно най-близо до теренната работа: шумни, мръсни данни, които никой не е подготвил специално. Но това имаше и положителна страна: в духа на agile, ние бяхме в постоянен контакт с участниците и своевременно направихме промени в задачата и условията за прием (повече за това по-долу).

Освен това предоставихме на участниците достъп до Amazon AWS (толкова активно, че Amazon блокира един регион за нас, ще разберем какво да правим по въпроса). Там можете да разположите инфраструктура за Интернет на нещата и, въз основа дори на прости шаблони на Amazon, да създадете пълноценно решение в рамките на един ден. Но в крайна сметка абсолютно всеки тръгна по своя път, правейки всичко сам на максимум. В същото време някои успяха да спазят срока, други не. Един екип, Nubble, използва Yandex.cloud, някой го повдигна на техния хостинг. Дори бяхме готови да дадем домейни (имаме регистрирани), но не бяха полезни.

За да определим победителите в аналитичната писта, планирахме да сравним резултатите, за които подготвихме числени показатели. Но в крайна сметка не беше необходимо да се прави това, тъй като по различни причини трима от четиримата участници не стигнаха до финала.

Що се отнася до битовата инфраструктура, Технопарк Сколково помогна тук, като ни предостави (безплатно) една от своите уютни модулни стаи с видео стена за презентации и няколко по-малки стаи за зона за отдих и за организиране на кетъринг.

Анализ

Задача: самообучаваща се система, която идентифицира аномалии в консумацията и работата на модула въз основа на контролни данни. Умишлено запазихме формулировката възможно най-обща, така че участниците да могат да работят с нас, за да обмислят какво може да се направи въз основа на наличните данни.

Специфичност: По-сложната от двете песни. Индустриалните данни имат някои разлики от данните в затворени системи (например дигитален маркетинг). Тук трябва да разберете физическата природа на параметрите, които се опитвате да анализирате; разглеждането на всичко като абстрактни числови серии няма да работи. Например разпределението на потреблението на електроенергия през целия ден. Това е като ритуали: електрическата самобръсначка се включва сутрин през делничните дни, а миксерът се включва през уикендите. След това същността на самите аномалии. И не забравяйте, че батерията Watts е предназначена за лична употреба, така че всеки клиент ще има свои собствени ритуали и един универсален модел няма да работи. Намирането на известни аномалии в данните дори не е задача; създаването на система, която автономно търси немаркирани аномалии, е друг въпрос. В крайна сметка всичко може да бъде аномалия, включително коварният човешки фактор. Например, в нашите тестови данни имаше случай, при който системата беше принудена от потребителя в режим на батерия. Без причина потребителите понякога правят това (ще направя резервация, че този потребител тества модула за нас и поради тази причина той има достъп до ръчно управление на режимите; за други потребители управлението е напълно автоматично). Както е лесно да се предвиди, в такава ситуация батерията се разрежда доста активно и ако натоварването е голямо, зареждането ще приключи, преди слънцето да изгрее или да се появи друг източник на енергия. В такива случаи очакваме да видим някакво известие, че поведението на системата се е отклонило от нормалното. Или човекът си е тръгнал и е забравил да изключи фурната. Системата вижда, че обикновено по това време на деня консумацията е 500 вата, но днес - 3,5 хиляди - аномалия! Като Денис Мацуев в самолета: „Не разбирам нищо от авиационни двигатели, но по пътя до там двигателят звучеше различно.“

Защо един хардуерен стартъп има нужда от софтуерен хакатон?Графика на прогнозен модел на невронната мрежа с отворен код Yandex CatBoost

От какво наистина се нуждае компанията?: система за самодиагностика вътре в устройството, предсказуем анализ, включително без мрежова инфраструктура (както показва практиката, не всички наши клиенти бързат да свързват батерии към интернет - за повечето е достатъчно всичко просто да работи надеждно), идентифициране на аномалии, чието естество все още не знаем, самообучаваща се система без учител, групиране, невронни мрежи и целия арсенал от съвременни аналитични методи. Трябва да разберем, че системата започна да се държи по различен начин, дори и да не знаем какво точно се е променило. На самия хакатон за нас беше много важно да видим, че има момчета, които са готови да навлязат в индустриалния анализ или вече са в него и търсят нови области, в които да приложат способностите си. Първоначално се учудих, че има толкова много желаещи: все пак това е много специфична кухня, но постепенно четиримата участници до един отпаднаха, така че донякъде всичко си дойде на мястото.

Защо не е осъществимо на този етап?: Основният проблем при задачите за извличане на данни е липсата на достатъчно данни. Днес по света има няколко десетки устройства с батерии Watts, които работят, но много от тях не са свързани към мрежата, така че нашите данни все още не са много разнообразни. Едва отстранихме две аномалии - и те се случиха на прототипи; индустриалната Watts батерия работи доста стабилно. Ако имахме вътрешен инженер по машинно обучение и знаехме - да, това може да бъде изтръгнато от тези данни, но искаме да получим по-добро качество на прогнозиране - това щеше да е една история. Но до този момент не сме направили нищо с тези данни. Освен това това би изисквало дълбоко потапяне на участниците в спецификата на работата на нашия продукт, ден и половина не е достатъчен за това.

Как реши?: Не поставиха веднага точната крайна задача. Вместо това, през всичките 48 часа, ние бяхме в диалог с участниците, като своевременно разбрахме какво могат да получат и какво не. Въз основа на това, в дух на компромис, задачата беше финализирана.

Какво получихте в резултат?: победителите в пистата успяха да изчистят данните (в същото време те откриха „характеристиките“ за изчисляване на някои параметри, които ние самите не бяхме забелязали преди, тъй като не използвахме някои от данните, за да решим проблемите си) , подчертават отклоненията от очакваното поведение на модулите Watts Battery и създават прогнозен модел, който може да предвиди консумацията на енергия с висока степен на точност. Да, това е само етап на осъществимост за разработване на индустриално решение; след това ще са необходими седмици усърдна техническа работа, но дори този прототип, създаден директно по време на хакатона, може да формира основата на истинско индустриално решение, което е рядкост.

основен извод: Въз основа на данните, с които разполагаме, е възможно да настроим прогнозни анализи, предположихме това, но нямахме ресурсите да проверим. Участниците в хакатона тестваха и потвърдиха нашата хипотеза и ние ще продължим да работим с победителите в трасето по тази задача.

Защо един хардуерен стартъп има нужда от софтуерен хакатон?Графика на прогнозен модел на невронната мрежа с отворен код Facebook Prophet

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

Управление

Задача: (приложение), което управлява мрежа от модули Watts Battery, с личен акаунт, съхранение на данни в облака и наблюдение на състоянието.

Специфичност: в тази песен не търсихме някакво ново техническо решение; ние, разбира се, имаме собствен потребителски интерфейс. Избрахме го за хакатона, за да демонстрираме възможностите на нашата система, да се потопим в нея и да проверим дали обществото се интересува от темата за разработката на умни системи и алтернативна енергия. Позиционирахме мобилното приложение като опция, можете да го направите или да не го направите по ваша преценка. Но по наше мнение показва добре как хората успяха да организират съхранение на данни в облака, с достъп от няколко различни източника наведнъж.

От какво наистина се нуждае компанията?: общност от разработчици, които ще измислят бизнес идеи, ще тестват хипотези и ще създават работещи инструменти за тяхното прилагане.

Защо не е осъществимо на този етап?: Обемът на пазара все още е твърде малък за органично формиране на такава общност.

Как реши?: Като част от хакатон, ние проведохме вид проучване на физиката, за да видим дали е възможно да измислим не просто функции, но пълноценни бизнес модели около нашия много специфичен продукт. Освен това, за да могат хората, способни да реализират прототип, да направят това, в края на краищата, тук - не искам да обидя никого - това не е нивото на програмиране на мигащ светодиод на Arduino (въпреки че това може да се направи с иновации) , тук се изискват доста специфични умения: разработване на backend и frontend системи, разбиране на принципите за изграждане на мащабируеми системи за Интернет на нещата.

*Реч на победителите от втората песен*

Какво получихте в резултат?: два екипа предложиха пълноценни бизнес идеи за своята работа: единият се фокусира повече върху руския сегмент, другият върху чуждестранния. Тоест, на финала те не просто разказаха как са измислили приложението, но по същество дойдоха да правят бизнес около Watts. Момчетата очертаха как виждат използването на Watts в няколко бизнес модела, предоставиха статистика, показаха кои региони имат какви проблеми, какви закони се приемат къде, очертаха глобалната тенденция: не е модерно да копаете биткойни, модерно е да копаете киловати. Умишлено стигнаха до алтернативната енергия, която много ни хареса. Фактът, че участниците, в допълнение към това, успяха да създадат работещо техническо решение, предполага, че те могат самостоятелно да стартират стартиране.

основен извод: Има екипи, готови да вземат Watts Battery като основа на своя бизнес модел, да го развият и да станат партньори/съдружници на компанията. Някои от тях дори знаят как да идентифицират MVP на дадена бизнес идея и да работят първо върху нея, нещо, което днес липсва навсякъде в индустрията. Хората не разбират кога да спрат, кога да пуснат решение на пазара, макар и рано, но работещо. Всъщност етапът на полиране на решението често не свършва, технически решението преминава границата на разумната сложност, навлиза на пазара претоварено, вече не е ясно каква е била първоначалната идея, какво е таргетирането на клиента, какви са бизнес моделите включени. Като във вица за Акунин, който написал друга книга, докато подписвал предишната за някого. Но тук беше направено в най-чистата му форма: ето графика, ето брояч, ето индикатори, ето прогноза - това е всичко, нищо друго не е необходимо, за да го стартирате. С това можете да отидете при инвеститор и да получите пари, за да започнете бизнес. Тези, които намериха този баланс, излязоха от пистата като победители.

Съвет за бъдещето: на следващия хакатон (планираме го през март тази година), може би има смисъл да експериментирате с хардуера. Имаме собствена разработка на хардуер (едно от предимствата на Watts), контролираме изцяло производството и тестването на всичко, което правим, но нямаме достатъчно ресурси, за да тестваме някои „хардуерни“ хипотези. Много е възможно в общността на системните и ниско ниво програмисти и разработчиците на хардуер да има хора, които ще ни помогнат с това и в бъдеще ще станат наши партньори в тази област.

Хора

На хакатона очаквахме тези, които искат да се пробват в нова област (например завършили различни училища по програмиране), а не тези, които се специализират в този вид разработка. Но все пак очаквахме, че преди хакатона те ще направят малко подготвителна работа, ще прочетат как се прогнозира консумацията на енергия като цяло и как работят системите за интернет на нещата. Така че всеки идва не само за забавление, търсейки интересни данни и задачи, но и с предварително потапяне в предметната област. От наша страна разбираме, че за това е необходимо предварително публикуване на наличните данни, тяхното описание и по-точни изисквания към резултата, публикуване на API модули и др.

Технологичното ниво на всички беше приблизително еднакво, плюс-минус еднакви възможности. На този фон нивото на хармония не беше последният фактор. Редица отбори не стреляха, защото не можаха ясно да се разпределят по области на работа. Имаше и такива, в които един човек се занимаваше с цялата разработка, останалите бяха заети с подготовката на презентацията, в други на някой бяха дадени задачи, които изпълняваше вероятно за първи път в живота си.

Повечето от участниците бяха млади, това не означава, че сред тях няма силни инженери и разработчици на машинно обучение. Повечето дойдоха в екипи, практически нямаше индивидуални. Всички мечтаеха да спечелят, някой искаше да си намери работа в бъдеще, около 20% вече са намерили такава, мисля, че тази цифра ще расте.

Нямахме достатъчно хардуерни маниаци, но се надяваме да компенсираме на втория хакатон.

Напредък на хакатона

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

Последното доуточняване на задачата беше някъде около последния контролен пункт, в събота следобед (финалът беше предвиден за неделя вечерта). Опростихме всичко още малко: премахнахме изискването за преизчисляване на модела върху нови данни, оставяйки данните, с които екипите вече работеха. Сравняването на показателите вече не ни даде нищо, те вече имаха готови резултати въз основа на наличните данни и на втория ден момчетата вече бяха уморени. Затова решихме да ги измъчваме по-малко.

Трима от четирима участници обаче не стигнаха до финала. Единият отбор още в началото разбра, че се интересува повече от пистата на нашите колеги, другият, малко преди финала, разбра, че по време на процеса на обработка са филтрирали необходимите данни преди време и отказа да представи работата си.

Екипът на “21 (Ефект на мокра коса)” участва и в двете ни парчета до последно. Те искаха да покрият всичко наведнъж: машинно обучение, разработка, приложение и уебсайт. Докато не ги заплашихме с оттегляне в последния момент, те вярваха, че правят всичко навреме, въпреки че още на втория контролен пункт беше очевидно, че с основното нещо - машинното обучение - не могат да постигнат значителен напредък: като цяло се справиха с вторият блок, но не можа да предвиди консумацията на електроенергия, не бяха готови. В резултат на това, когато определихме минималната задача за класиране на първото, те все пак избраха второто трасе.

Fit-predict имаше балансиран състав, пригоден за анализ на данни, така че успяха да преодолеят всичко. Беше забележимо, че момчетата се интересуват от „докосване“ на реални индустриални данни. Те веднага се концентрираха върху основното: анализиране, почистване на данните, справяне с всяка аномалия. Фактът, че успяха да изградят работещ модел по време на хакатона, е голямо постижение. В работната практика това обикновено отнема седмици: докато данните се почистват, докато се ровят в тях. Затова определено ще работим с тях.

Във втората писта (управление) очаквахме всички да направят всичко за половин ден и да дойдат да поискат, за да усложнят задачата. На практика едва имахме време да изпълним основната задача. Работихме върху JS и Python, което отразява текущото състояние на индустрията.

И тук резултатите бяха постигнати от добре координирани екипи, в които беше изградено разделение на труда, ясно се виждаше кой какво прави.

Третият екип, FSociety, изглеждаше, че има решение, но в крайна сметка решиха да не показват разработката си, казаха, че не го смятат за работещо. Ние уважаваме това и не сме спорили.

Победител стана отборът „Стриптийзьорки от Баку“, който успя да се спре, не да преследва „дрънкулки“, а да създаде MVP, който не се срамува да покаже и за който е ясно, че може да бъде доразвиван и мащабиран. Веднага им казахме, че не се интересуваме много от допълнителни възможности. Ако искат регистрация чрез QR код, лицево разпознаване, нека първо да направят графики в приложението, а след това да се заемат с незадължителните.

В тази песен „Мокра коса“ уверено влезе във финала и обсъдихме по-нататъшно сътрудничество с тях и „Hustlers“. С последното вече се запознахме през новата година.

Надявам се всичко да се получи и очакваме с нетърпение да видим всички на втория хакатон през март!

Източник: www.habr.com

Добавяне на нов коментар