Zakaj zagon strojne opreme potrebuje programski hackathon?

Lani decembra smo s šestimi drugimi podjetji Skolkovo izvedli lasten startup hackathon. Brez korporativnih sponzorjev ali zunanje podpore smo s prizadevanji programerske skupnosti zbrali dvesto udeležencev iz 20 mest Rusije. Spodaj vam bom povedal, kako nam je uspelo, na kakšne pasti smo naleteli na poti in zakaj smo takoj začeli sodelovati z eno od zmagovalnih ekip.

Zakaj zagon strojne opreme potrebuje programski hackathon?Vmesnik aplikacije, ki nadzoruje module Watts Battery iz finalistov skladbe "Mokri lasje"

podjetje

Naše podjetje Watts Battery ustvarja modularne prenosne elektrarne. Izdelek je prenosna elektrarna velikosti 46x36x11 cm, ki lahko proizvede od 1,5 do 15 kilovatov na uro. Štirje takšni moduli lahko zagotovijo porabo energije majhne podeželske hiše za dva dni.

Čeprav smo lansko leto začeli pošiljati proizvodne vzorce, je po vsem mnenju Watts Battery startup. Podjetje je bilo ustanovljeno leta 2016 in je od istega leta rezident Grozda energetsko učinkovitih tehnologij Skolkovo.Danes imamo 15 zaposlenih in ogromno zaostankov stvari, ki bi jih radi naredili v neki fazi, a jih trenutno ni. čas za to.

To vključuje tudi povsem programske naloge. Zakaj?

Glavna naloga modula je zagotavljanje nemotene, uravnotežene oskrbe z energijo po optimalni ceni. Če pride do izpada električne energije zaradi razlogov, na katere nimate vpliva, morate vedno imeti rezervo, da v celoti napajate potrebno obremenitev omrežja v času izpada. In ko je oskrba z električno energijo dobra, lahko s sončno energijo prihranite denar.

Najenostavnejša možnost je, da baterijo čez dan polnite od sonca in jo uporabljate zvečer, vendar točno toliko, da v primeru izpada ne ostanete brez elektrike. Nikoli se torej ne boste znašli v situaciji, ko ste cel večer napajali razsvetljavo iz baterije (ker je ceneje), ponoči pa je zmanjkalo elektrike in se vam je hladilnik odmrznil.

Jasno je, da je človek le redko sposoben z veliko natančnostjo napovedati količino električne energije, ki jo potrebuje, toda sistem, oborožen s prediktivnim modelom, lahko. Zato je strojno učenje kot tako eno naših prednostnih področij. Trenutno smo osredotočeni na razvoj strojne opreme in tem nalogam ne moremo dodeliti dovolj sredstev, kar nas je pripeljalo do Startup Hackathona.

Priprava, podatki, infrastruktura

Posledično smo ubrali dve smeri: podatkovna analitika in sistem upravljanja. Poleg naših je bilo še sedem skladb kolegov.

Čeprav format hackathona ni bil določen, smo razmišljali o ustvarjanju »lastne atmosfere«, s točkovnim sistemom: udeleženci naredijo nekaj stvari, ki se nam zdijo težke in zanimive, in za to dobijo točke. Imeli smo veliko nalog. Ko pa smo gradili strukturo hackathona, so drugi organizatorji zahtevali, da vse skupaj spravimo v enotno obliko, kar smo tudi storili.

Potem smo prišli do naslednje sheme: fantje naredijo model na podlagi svojih podatkov, nato prejmejo naše podatke, ki jih model prej ni videl, se nauči in začne napovedovati. Predvidevalo se je, da bo vse to mogoče narediti v 48 urah, a za nas je bil to prvi hekaton na naših podatkih in morda smo precenili časovne vire ali stopnjo pripravljenosti podatkov. Na specializiranih hackathonih za strojno učenje bi bila takšna časovnica običajna, pri nas pa ni bilo tako.

Programsko in strojno opremo modula smo čim bolj razbremenili in naredili različico naše naprave posebej za hackathon, z zelo preprostim in razumljivim notranjim vmesnikom, ki bi ga lahko podpiral vsak razvijalec.

Za progo, ki temelji na nadzornem sistemu, je obstajala možnost izdelave mobilne aplikacije. Da si udeleženci ne bi več razbijali glave, kako bi morala izgledati, in izgubljali dodatnega časa, smo jim dali oblikovno postavitev aplikacije, superlahko, tako da lahko tisti, ki si jo želijo, nanjo preprosto »raztegnejo« funkcije, ki jih potrebujejo. . Po pravici povedano, tukaj nismo pričakovali nobenih moralnih dilem, ampak ena od ekip je zadevo vzela tako, da smo jim omejili polet domišljije, želeli smo dobiti že pripravljeno rešitev zastonj, ne pa jih testirati. v praksi. In so odleteli.

Druga ekipa se je odločila narediti popolnoma drugačno aplikacijo iz nič in vse je uspelo. Nismo vztrajali, da je aplikacija točno takšna, le, da vsebuje nekaj elementov, ki dokazujejo tehnično raven rešitve: grafe, analitiko itd. Namig je bil tudi dokončan dizajn.

Ker bi bilo analiziranje živega modula Watts Battery na hackathonu preveč zamudno, smo udeležencem dali že pripravljen izrezek podatkov za en mesec, vzetih iz dejanskih modulov naših strank (ki smo jih predhodno skrbno anonimizirali). Ker je bil junij, ni bilo ničesar, kar bi v analizo vključilo sezonske spremembe. Toda v prihodnosti jim bomo dodali zunanje podatke, kot so sezonske in podnebne značilnosti (danes je to industrijski standard).

Pri udeležencih nismo želeli ustvarjati nerealnih pričakovanj, zato smo v napovedi hackathona neposredno povedali: delo bo čim bližje delu na terenu: hrupni, umazani podatki, ki jih nihče ni posebej pripravil. A to je imelo tudi pozitivno stran: v agilnem duhu smo bili ves čas v stiku z udeleženci ter sproti spreminjali naloge in pogoje za sprejem (več o tem v nadaljevanju).

Poleg tega smo udeležencem omogočili dostop do Amazon AWS (tako aktivno, da nam je Amazon blokiral eno regijo, bomo ugotovili, kaj storiti glede tega). Tam lahko uvedete infrastrukturo za internet stvari in na podlagi preprostih Amazonovih predlog ustvarite popolno rešitev v enem dnevu. Ampak na koncu je čisto vsak šel svojo pot, naredil vse po svoje. Pri tem je nekaterim rok uspelo doseči, drugim ne. Ena ekipa, Nubble, je uporabljala Yandex.cloud, nekdo ga je postavil na svojem gostovanju. Domene smo bili celo pripravljeni dati (imamo registrirane), a niso bile uporabne.

Za določitev zmagovalcev v analitični smeri smo predvideli primerjavo rezultatov, za kar smo pripravili numerične metrike. A na koncu tega ni bilo treba storiti, saj se trije od štirih udeležencev iz različnih razlogov niso uvrstili v finale.

Kar zadeva gospodinjsko infrastrukturo, je tehnopark Skolkovo pomagal tako, da nam je (brezplačno) zagotovil eno od svojih udobnih modularnih sob z video steno za predstavitve in nekaj manjših sob za rekreacijski prostor in za organizacijo cateringa.

Google Analytics

Naloga: samoučeči se sistem, ki na podlagi kontrolnih podatkov prepozna nepravilnosti v porabi in delovanju modula. Besedilo smo namerno ohranili čim bolj splošno, da so lahko udeleženci skupaj z nami razmišljali, kaj bi lahko storili na podlagi razpoložljivih podatkov.

Posebnost: bolj zapletena od obeh skladb. Industrijski podatki se nekoliko razlikujejo od podatkov v zaprtih sistemih (na primer digitalni marketing). Tu morate razumeti fizično naravo parametrov, ki jih poskušate analizirati; gledanje na vse kot na abstraktne številske serije ne bo delovalo. Na primer porazdelitev porabe električne energije čez dan. To je kot obredi: električni brivnik je vklopljen zjutraj ob delavnikih, mešalnik pa ob koncu tedna. Potem pa bistvo samih anomalij. In ne pozabite, da je baterija Watts namenjena osebni uporabi, zato bo imela vsaka stranka svoje rituale in en univerzalni model ne bo deloval. Iskanje znanih anomalij v podatkih sploh ni naloga; druga stvar je ustvariti sistem, ki avtonomno išče neoznačene anomalije. Navsezadnje je lahko karkoli anomalija, vključno z zahrbtnim človeškim faktorjem. Na primer, v naših testnih podatkih je bil primer, ko je uporabnik prisilil sistem v način baterije. Uporabniki to včasih počnejo brez razloga (pridržim se, da ta uporabnik testira modul za nas in ima zato dostop do ročnega nadzora načinov; za druge uporabnike je nadzor popolnoma samodejen). Kot je enostavno predvideti, se v takšni situaciji baterija izprazni precej aktivno in če je obremenitev velika, se bo polnjenje končalo, preden vzide sonce ali se pojavi drug vir energije. V takih primerih pričakujemo, da bomo videli nekakšno obvestilo, da je vedenje sistema odstopalo od običajnega. Ali pa je oseba odšla in pozabila izklopiti pečico. Sistem vidi, da je običajno v tem času poraba 500 vatov, danes pa - 3,5 tisoč - anomalija! Kot Denis Matsuev na letalu: "Ničesar ne razumem o letalskih motorjih, a na poti tja je motor zvenel drugače."

Zakaj zagon strojne opreme potrebuje programski hackathon?Graf napovednega modela na odprtokodni nevronski mreži Yandex CatBoost

Kaj podjetje v resnici potrebuje?: samodiagnostični sistem znotraj naprave, napovedna analitika, tudi brez omrežne infrastrukture (kot kaže praksa, se vsem našim strankam ne mudi priklopiti baterije na internet - za večino je dovolj, da vse deluje samo zanesljivo), prepoznavanje anomalij, katerih narave še ne poznamo, samoučeči sistem brez učitelja, grozdenje, nevronske mreže in ves arzenal sodobnih analitičnih metod. Razumeti moramo, da se je sistem začel obnašati drugače, tudi če ne vemo, kaj točno se je spremenilo. Na samem hackathonu nam je bilo zelo pomembno, da vidimo, da obstajajo fantje, ki so pripravljeni stopiti v industrijsko analitiko ali pa so že v njej in iščejo nova področja uporabe svojih sposobnosti. Sprva me je presenetilo, da je bilo toliko prijavljenih: navsezadnje je to zelo specifična kuhinja, a postopoma so od štirih sodelujočih odpadli vsi razen enega, tako da se je do neke mere vse postavilo na svoje mesto.

Zakaj v tej fazi ni izvedljivo?: Glavna težava pri nalogah podatkovnega rudarjenja je premalo podatkov. Danes po svetu deluje več deset naprav Watts Battery, vendar jih veliko ni povezanih v omrežje, zato naši podatki še niso zelo raznoliki. Komaj smo izpraznili dve anomaliji - in to na prototipih; industrijska baterija Watts deluje precej stabilno. Če bi imeli notranjega inženirja za strojno učenje in bi vedeli – da, to je mogoče iztisniti iz teh podatkov, vendar želimo dobiti boljšo kakovost napovedi –, bi bila to ena zgodba. Toda do te točke s temi podatki nismo storili ničesar. Poleg tega bi to zahtevalo globoko potopitev udeležencev v posebnosti delovanja našega produkta, dan in pol je za to premalo.

Kako ste se odločili?: Niso si takoj zastavili natančne končne naloge. Namesto tega smo bili vseh 48 ur v dialogu z udeleženci in sproti ugotavljali, kaj lahko dobijo in česa ne. Na podlagi tega je bila naloga v duhu kompromisa zaključena.

Kaj ste dobili kot rezultat?: zmagovalci skladbe so lahko prečistili podatke (hkrati so našli »lastnosti« izračuna nekaterih parametrov, ki jih sami prej nismo opazili, saj nekaterih podatkov nismo uporabili za reševanje naših težav) , poudarite odstopanja od pričakovanega obnašanja modulov Watts Battery in vzpostavite napovedni model, ki lahko z visoko stopnjo natančnosti napove porabo energije. Da, to je samo faza izvedljivosti razvoja industrijske rešitve, potem bodo potrebni tedni mukotrpnega tehničnega dela, a tudi ta prototip, ustvarjen neposredno med hackathonom, lahko tvori osnovo prave industrijske rešitve, kar je redko.

glavni sklep: Na podlagi podatkov, ki jih imamo, je možno vzpostaviti napovedno analitiko, to smo predvidevali, vendar nismo imeli virov za preverjanje. Udeleženci hackathona so preizkusili in potrdili našo hipotezo, pri tej nalogi pa bomo nadaljevali delo z zmagovalci proge.

Zakaj zagon strojne opreme potrebuje programski hackathon?Graf napovednega modela na odprtokodnem nevronskem omrežju Facebook Prophet

Nasvet za prihodnost: ko sestavljate nalogo, morate gledati ne le na načrt proizvodnje, ampak tudi na interese udeležencev. Ker naš hackathon nima denarnih nagrad, igramo na naravno radovednost podatkovnih znanstvenikov in željo po reševanju novih, zanimivih problemov, pri katerih še nihče ni pokazal ničesar ali kjer se lahko izkažejo bolje od obstoječih rezultatov. Če takoj upoštevate dejavnik zanimanja, vam na poti ne bo treba preusmerjati pozornosti.

Upravljanje

Naloga: (aplikacija), ki upravlja omrežje modulov Watts Battery z osebnim računom, shranjevanjem podatkov v oblaku in spremljanjem stanja.

Posebnost: v tej skladbi nismo iskali neke nove tehnične rešitve, seveda imamo svoj uporabniški vmesnik. Izbrali smo ga za hackathon, da predstavimo zmožnosti našega sistema, se poglobimo vanj in preverimo, ali skupnost zanima tematika razvoja pametnih sistemov in alternativne energije. Mobilno aplikacijo smo postavili kot možnost, po lastni presoji lahko to storite ali ne. Toda po našem mnenju dobro kaže, kako je ljudem uspelo organizirati shranjevanje podatkov v oblaku, z dostopom iz več različnih virov hkrati.

Kaj podjetje v resnici potrebuje?: skupnost razvijalcev, ki bodo snovali poslovne ideje, testirali hipoteze in ustvarjali delovna orodja za njihovo implementacijo.

Zakaj v tej fazi ni izvedljivo?: Obseg trga je še premajhen za organsko oblikovanje takšne skupnosti.

Kako ste se odločili?: Kot del hackathona smo izvedli nekakšno fizikalno študijo, da bi ugotovili, ali je mogoče ustvariti ne samo funkcije, ampak polne poslovne modele okoli našega zelo specifičnega izdelka. Poleg tega, da bi ljudje, ki so sposobni implementirati prototip, lahko to naredili, navsezadnje tukaj - nočem nikogar užaliti - to ni raven programiranja utripajoče LED na Arduinu (čeprav je to mogoče storiti z inovacijami) , tukaj so potrebne precej specifične veščine: razvoj zalednih in sprednjih sistemov, razumevanje principov gradnje razširljivih sistemov interneta stvari.

*Govor zmagovalcev drugega tira*

Kaj ste dobili kot rezultat?: dve ekipi sta predlagali popolne poslovne ideje za svoje delo: ena se je bolj osredotočila na ruski segment, druga na tujega. To pomeni, da v finalu niso samo povedali, kako so prišli do aplikacije, ampak so v bistvu prišli do posla okoli Wattsa. Fantje so orisali, kako vidijo uporabo Watts v več poslovnih modelih, podali statistiko, pokazali, katere regije imajo kakšne težave, kateri zakoni so kje sprejeti, orisali svetovni trend: ni moderno rudariti bitcoine, moderno je rudariti kilovate. Premišljeno so prišli do alternativne energije, kar nam je bilo zelo všeč. Dejstvo, da so udeleženci poleg tega lahko izdelali delujočo tehnično rešitev, nakazuje, da lahko samostojno zaženejo startup.

glavni sklep: Obstajajo ekipe, ki so pripravljene vzeti Watts Battery kot osnovo svojega poslovnega modela, ga razviti in postati partnerji/spremljevalci podjetja. Nekateri med njimi celo znajo prepoznati MVP poslovne ideje in najprej delati na njej, česar danes povsod v industriji primanjkuje. Ljudje ne razumejo, kdaj se ustaviti, kdaj dati na trg rešitev, čeprav zgodaj, a deluje. Pravzaprav se faza piljenja rešitve pogosto ne konča, tehnično rešitev prestopi mejo razumne zahtevnosti, na trg pride preobremenjena, ni več jasno, kaj je bila prvotna ideja, kaj je ciljanje na stranke, kakšni so poslovni modeli. vključeno. Kot v šali o Akuninu, ki je napisal drugo knjigo, medtem ko je prejšnjo nekomu podpisal. Toda tukaj je bilo to storjeno v najčistejši obliki: tukaj je grafikon, tukaj je števec, tukaj so indikatorji, tukaj je napoved - to je vse, nič drugega ni potrebno za zagon. S tem lahko greš do investitorja in prejmeš denar za ustanovitev podjetja. Tisti, ki so našli to ravnotežje, so s proge prišli kot zmagovalci.

Nasvet za prihodnost: na naslednjem hackathonu (načrtujemo ga marca letos), morda je smiselno eksperimentirati s strojno opremo. Imamo lasten razvoj strojne opreme (ena od prednosti Wattsa), popolnoma nadzorujemo proizvodnjo in testiranje vsega, kar počnemo, vendar nimamo dovolj sredstev, da bi testirali nekatere "hardverske" hipoteze. Prav lahko se zgodi, da se v skupnosti sistemskih in nizko nivojskih programerjev ter razvijalcev strojne opreme najdejo tisti, ki nam bodo pri tem pomagali in bodo v prihodnosti postali naš partner na tem področju.

Ljudje

Na hackathonu smo pričakovali tiste, ki se želijo preizkusiti na novem področju (na primer diplomante različnih programerskih šol) kot pa tiste, ki so specializirani za tovrsten razvoj. A vseeno smo pričakovali, da se bodo pred hackathonom malo pripravljali, prebrali, kako se na splošno predvideva poraba energije in kako delujejo sistemi interneta stvari. Tako, da vsi pridejo ne samo zaradi zabave, iskanja zanimivih podatkov in nalog, ampak tudi s predhodno potopitvijo v predmetno področje. Zavedamo se, da je za to potrebno vnaprej objaviti razpoložljive podatke, njihov opis in natančnejše zahteve za rezultat, objaviti module API itd.

Vsi so imeli približno enako tehnološko raven, plus ali minus enake sposobnosti. Glede na to raven harmonije ni bila zadnji dejavnik. Številne ekipe niso streljale, ker se niso znale jasno razdeliti na področja dela. Bile so tudi takšne, v katerih je en razvijal, ostali so se ukvarjali s pripravo predstavitve, v tretjih je nekdo dobil naloge, ki jih je opravljal verjetno prvič v življenju.

Večina udeležencev je bila mladih, kar pa ne pomeni, da med njimi ni bilo močnih inženirjev in razvijalcev strojnega učenja. Večina je prišla v ekipah, posameznikov praktično ni bilo. Vsi so sanjali o zmagi, nekdo si je želel najti službo v prihodnosti, približno 20% jih je že našlo, mislim, da bo ta številka še rasla.

Nismo imeli dovolj strojnih geekov, vendar upamo, da bomo to nadoknadili na drugem hackathonu.

Napredek hackathona

Kot sem zapisal zgoraj, smo bili večino 48 ur hackathona z udeleženci in ob spremljanju njihovih uspehov na kontrolnih točkah skušali nalogo in pogoje za sprejem prve, analitične proge prilagoditi tako, da je po eni strani Udeleženci so ga lahko opravili v preostalem času, po drugi strani pa nam je bil zanimiv.

Zadnje razčiščevanje naloge je bilo nekje okoli zadnje kontrolne točke, v soboto popoldne (finale je bil na sporedu v nedeljo zvečer). Vse smo še nekoliko poenostavili: odstranili smo zahtevo po ponovnem izračunu modela na novih podatkih, pri čemer smo pustili podatke, s katerimi so ekipe že delale. Primerjava metrik nam ni dala več ničesar, imeli so že pripravljene rezultate na podlagi razpoložljivih podatkov in drugi dan so bili fantje že utrujeni. Zato smo se odločili, da jih bomo manj mučili.

Vendar se trije od štirih udeležencev niso uvrstili v finale. Ena ekipa je že na začetku ugotovila, da jih bolj zanima proga naših kolegov, druga pa je tik pred finalom ugotovila, da so med procesom obdelave predčasno izfiltrirali potrebne podatke in zavrnila predstavitev svojega dela.

Ekipa “21 (Wet Hair Effect)” je do konca sodelovala na obeh naših progah. Želeli so zajeti vse naenkrat: strojno učenje, razvoj, aplikacijo in spletno stran. Dokler jim v zadnjem trenutku nismo zagrozili z umikom, so verjeli, da delajo vse pravočasno, čeprav je bilo že na drugi kontrolni točki očitno, da pri glavnem – strojnem učenju – ne morejo bistvenega napredka: na splošno so bili kos. drugi blok, vendar niso mogli predvideti porabe električne energije niso bili pripravljeni. Posledično so, ko smo določili minimalno nalogo za uvrstitev v prvi, vseeno izbrali drugi tir.

Fit-predict je imel uravnoteženo sestavo, prilagojeno podatkovni analitiki, tako da so lahko premagali vse. Opaziti je bilo, da se fantje zanimajo za "dotik" resničnih industrijskih podatkov. Takoj so se osredotočili na glavno stvar: analizo, čiščenje podatkov, obravnavo vsake anomalije. Dejstvo, da jim je med hackathonom uspelo zgraditi delujoč model, je velik dosežek. V delovni praksi to običajno traja tedne: dokler se podatki čistijo, dokler se vanje poglobijo. Zato bomo zagotovo sodelovali z njimi.

Pri drugem tiru (vodenje) smo pričakovali, da bodo vsi naredili vse v pol dneva in prišli prosit, da otežijo nalogo. V praksi smo komaj imeli čas, da opravimo osnovno nalogo. Delali smo na JS in Python, kar odraža trenutno stanje industrije.

Tudi tu so rezultate dosegale uigrane ekipe, v katerih je bila zgrajena delitev dela, jasno je bilo, kdo kaj dela.

Za tretjo ekipo, FSociety, se je zdelo, da ima rešitev, vendar so se na koncu odločili, da ne bodo pokazali svojega razvoja, rekli so, da se jim zdi, da ne deluje. To spoštujemo in se nismo prepirali.

Zmagala je ekipa »Striptizerji iz Bakuja«, ki se je znala ustaviti, ne da bi se lovila za »drobnarijami«, ampak ustvarila MVP, ki ga ni sram pokazati in za katerega je jasno, da ga je mogoče še razvijati in stopnjevati. Takoj smo jim povedali, da nas dodatne priložnosti ne zanimajo preveč. Če želijo registracijo preko QR kode, prepoznavanje obraza, naj najprej naredijo grafe v aplikaciji, potem pa se lotijo ​​izbirnih.

V tej skladbi so "Mokri lasje" samozavestno vstopili v finale in z njimi in "Hustlers" smo se pogovarjali o nadaljnjem sodelovanju. Slednjega smo v novem letu že spoznali.

Upam, da bo vse uspelo, in veselimo se, da bomo vse videli na drugem hackathonu v marcu!

Vir: www.habr.com

Dodaj komentar