Perché una startup hardware ha bisogno di un hackathon software?

Lo scorso dicembre abbiamo organizzato il nostro hackathon di startup con altre sei società di Skolkovo. Senza sponsor aziendali o alcun supporto esterno, grazie agli sforzi della comunità di programmazione abbiamo raccolto duecento partecipanti da 20 città della Russia. Di seguito ti racconterò come ci siamo riusciti, quali insidie ​​abbiamo incontrato lungo il percorso e perché abbiamo iniziato subito a collaborare con uno dei team vincitori.

Perché una startup hardware ha bisogno di un hackathon software?Interfaccia dell'applicazione che controlla i moduli Watts Battery dei finalisti del brano “Wet Hair”

società

La nostra azienda Watts Battery crea centrali elettriche portatili modulari. Il prodotto è una centrale elettrica portatile di 46x36x11 cm, in grado di erogare da 1,5 a 15 kilowattora. Quattro di questi moduli possono fornire il consumo energetico di una piccola casa di campagna per due giorni.

Anche se abbiamo iniziato a spedire campioni di produzione lo scorso anno, a detta di tutti Watts Battery è una startup. L'azienda è stata fondata nel 2016 e dallo stesso anno è residente nel cluster di tecnologie per l'efficienza energetica di Skolkovo. Oggi abbiamo 15 dipendenti e un enorme arretrato di cose che vorremmo fare prima o poi, ma al momento non c'è tempo per quello.

Ciò include anche attività puramente software. Perché?

Il compito principale del modulo è fornire un approvvigionamento energetico ininterrotto ed equilibrato a un costo ottimale. Se si verifica un'interruzione di corrente per motivi indipendenti dalla tua volontà, dovresti sempre avere una riserva per alimentare completamente il carico di rete richiesto per la durata dell'interruzione. E quando l'alimentazione è buona, puoi utilizzare l'energia solare per risparmiare denaro.

L'opzione più semplice è che puoi caricare la batteria dal sole durante il giorno e usarla la sera, ma esattamente al livello necessario in modo che in caso di blackout non rimani senza elettricità. Quindi, non ti troverai mai nella situazione in cui hai alimentato l'illuminazione con una batteria per tutta la sera (perché è più economico), ma di notte è andata via la corrente elettrica e il tuo frigorifero si è sbrinato.

È chiaro che una persona raramente è in grado di prevedere con grande precisione la quantità di elettricità di cui ha bisogno, ma un sistema dotato di un modello predittivo può farlo. Pertanto, l’apprendimento automatico in quanto tale è una delle nostre aree prioritarie. È solo che al momento siamo concentrati sullo sviluppo dell’hardware e non riusciamo a destinare risorse sufficienti a queste attività, ed è questo che ci ha portato allo Startup Hackathon.

Preparazione, dati, infrastrutture

Di conseguenza, abbiamo seguito due percorsi: analisi dei dati e sistema di gestione. Oltre alla nostra, c'erano altre sette tracce di colleghi.

Anche se il formato dell'hackathon non era definito, pensavamo di creare “la nostra atmosfera”, con un sistema di punti: i partecipanti fanno alcune cose che ci sembrano difficili e interessanti, ricevendo punti per questo. Avevamo molti compiti. Ma mentre costruivamo la struttura dell'hackathon, altri organizzatori ci hanno chiesto di portare tutto in una forma comune, cosa che abbiamo fatto.

Poi siamo arrivati ​​al seguente schema: i ragazzi creano un modello in base ai loro dati, poi ricevono i nostri dati, che il modello non aveva mai visto prima, impara e inizia a prevedere. Si presumeva che tutto ciò potesse essere fatto in 48 ore, ma per noi questo è stato il primo hackathon sui nostri dati e forse abbiamo sopravvalutato le risorse di tempo o il grado di preparazione dei dati. Negli hackathon specializzati nel machine learning, una sequenza temporale del genere sarebbe la norma, ma la nostra non era così.

Abbiamo alleggerito il più possibile il software e l'hardware del modulo e abbiamo realizzato una versione del nostro dispositivo appositamente per l'hackathon, con un'interfaccia interna molto semplice e comprensibile che qualsiasi sviluppatore potrebbe supportare.

Per il tracciato basato sul sistema di controllo c'era la possibilità di realizzare un'applicazione mobile. Per evitare che i partecipanti si scervellassero su come dovrebbe essere e perdessero tempo extra, abbiamo dato loro un layout di progettazione dell'applicazione, superleggero, in modo che chi lo desidera possa semplicemente “allungare” su di esso le funzioni di cui ha bisogno . Ad essere onesti, non ci aspettavamo dilemmi morali qui, ma uno dei team l'ha presa in modo tale da limitare i loro voli di fantasia, volevamo ottenere una soluzione già pronta gratuitamente e non testarla in pratica. E sono partiti.

Un altro team ha scelto di creare da zero un'applicazione completamente diversa e tutto ha funzionato. Non abbiamo insistito affinché l'applicazione fosse esattamente così, volevamo solo che contenesse alcuni elementi che dimostrassero il livello tecnico della soluzione: grafici, analisi, ecc. Anche il layout del progetto finito è stato un suggerimento.

Poiché analizzare un modulo Watts Battery dal vivo durante un hackathon richiederebbe troppo tempo, abbiamo fornito ai partecipanti una fetta di dati già pronta per un mese, prelevata dai moduli reali dei nostri clienti (che abbiamo accuratamente anonimizzato in anticipo). Dato che era giugno, non c'era nulla che includesse i cambiamenti stagionali nell'analisi. Ma in futuro aggiungeremo loro dati esterni, come le caratteristiche stagionali e climatiche (oggi questo è lo standard del settore).

Non volevamo creare aspettative irrealistiche tra i partecipanti, quindi nell'annuncio dell'hackathon abbiamo detto direttamente: il lavoro sarà il più vicino possibile al lavoro sul campo: dati rumorosi e sporchi, che nessuno ha preparato appositamente. Ma questo ha avuto anche un lato positivo: nello spirito agile siamo stati costantemente in contatto con i partecipanti e abbiamo apportato tempestivamente modifiche al compito e alle condizioni di ammissione (ne parleremo più avanti).

Inoltre, abbiamo concesso ai partecipanti l'accesso ad Amazon AWS (così attivamente che Amazon ci ha bloccato una regione, scopriremo cosa fare al riguardo). Lì puoi distribuire l'infrastruttura per l'Internet delle cose e, sulla base anche di semplici modelli Amazon, creare una soluzione completa in un giorno. Ma alla fine, assolutamente ognuno è andato per la sua strada, facendo tutto da solo al massimo. Allo stesso tempo, alcuni sono riusciti a rispettare il limite di tempo, altri no. Un team, Nubble, ha utilizzato Yandex.cloud, qualcuno lo ha creato sul proprio hosting. Eravamo anche pronti a dare domini (ne abbiamo registrati), ma non sono serviti.

Per determinare i vincitori nel percorso analitico, abbiamo pianificato di confrontare i risultati, per i quali abbiamo preparato metriche numeriche. Ma alla fine non è stato necessario farlo, poiché per vari motivi tre dei quattro partecipanti non sono arrivati ​​​​in finale.

Per quanto riguarda l'infrastruttura domestica, il Technopark Skolkovo ci ha aiutato mettendoci a disposizione (gratuitamente) una delle sue accoglienti sale modulari con un videowall per le presentazioni e un paio di sale più piccole per l'area ricreativa e per l'organizzazione del catering.

Analitica

Compito: un sistema di autoapprendimento che identifica anomalie nei consumi e nel funzionamento dei moduli in base ai dati di controllo. Abbiamo deliberatamente mantenuto la formulazione il più generale possibile in modo che i partecipanti potessero lavorare con noi per pensare a cosa si potrebbe fare sulla base dei dati disponibili.

Specificità: La più complessa delle due tracce. I dati industriali presentano alcune differenze rispetto ai dati presenti nei sistemi chiusi (ad esempio, il marketing digitale). Qui devi comprendere la natura fisica dei parametri che stai cercando di analizzare; guardare tutto come una serie di numeri astratti non funzionerà. Ad esempio, la distribuzione del consumo di elettricità durante la giornata. È come un rituale: il rasoio elettrico viene acceso la mattina nei giorni feriali e il mixer nei fine settimana. Quindi l'essenza delle anomalie stesse. E non dimenticare che la batteria Watts è destinata all'uso personale, quindi ogni cliente avrà i propri rituali e un modello universale non funzionerà. Trovare anomalie note nei dati non è nemmeno un compito; creare un sistema che cerchi autonomamente anomalie senza etichetta è un’altra questione. Dopotutto, tutto può essere un'anomalia, compreso l'insidioso fattore umano. Ad esempio, nei nostri dati di test si è verificato un caso in cui il sistema è stato forzato dall'utente in modalità batteria. Senza alcun motivo, gli utenti a volte lo fanno (prenoto che questo utente sta testando il modulo per noi ed è per questo motivo che ha accesso al controllo manuale delle modalità; per gli altri utenti il ​​controllo è completamente automatico). Come è facile prevedere, in una situazione del genere la batteria si scarica abbastanza attivamente e, se il carico è elevato, la carica terminerà prima che sorga il sole o appaia un'altra fonte di energia. In questi casi, ci aspettiamo di vedere una sorta di notifica che il comportamento del sistema si è discostato da quello normale. Oppure la persona se n'è andata e ha dimenticato di spegnere il forno. Il sistema vede che solitamente a quest'ora del giorno il consumo è di 500 watt, ma oggi - 3,5mila - un'anomalia! Come Denis Matsuev sull'aereo: "Non capisco niente di motori di aerei, ma durante il viaggio il motore sembrava diverso".

Perché una startup hardware ha bisogno di un hackathon software?Grafico di un modello predittivo sulla rete neurale opensource Yandex CatBoost

Di cosa ha veramente bisogno l’azienda?: sistema di autodiagnosi all'interno del dispositivo, analisi predittiva, anche senza infrastruttura di rete (come dimostra la pratica, non tutti i nostri clienti hanno fretta di collegare le batterie a Internet - per la maggior parte è sufficiente che tutto funzioni in modo affidabile), identificazione di anomalie, di cui non conosciamo ancora la natura, un sistema di autoapprendimento senza insegnante, clustering, reti neurali e l'intero arsenale di moderni metodi analitici. Dobbiamo capire che il sistema ha cominciato a comportarsi diversamente, anche se non sappiamo cosa sia cambiato esattamente. Durante l'hackathon stesso, per noi è stato molto importante vedere che ci sono ragazzi pronti a dedicarsi all'analisi industriale o che ci stanno già lavorando e sono alla ricerca di nuove aree in cui applicare le loro capacità. All'inizio sono rimasto sorpreso dal fatto che ci fossero così tanti candidati: dopo tutto, questa è una cucina molto specifica, ma gradualmente tutti i quattro partecipanti tranne uno hanno abbandonato, quindi in una certa misura tutto è andato a posto.

Perché non è fattibile in questa fase?: Il problema principale con le attività di data mining sono i dati insufficienti. Oggi esistono diverse dozzine di dispositivi Watts Battery in funzione in tutto il mondo, ma molti di essi non sono collegati alla rete, quindi i nostri dati non sono ancora molto diversificati. Siamo riusciti a malapena a mettere insieme due anomalie, che si sono verificate sui prototipi; la batteria industriale Watts funziona in modo abbastanza stabile. Se avessimo un ingegnere interno di machine learning e sapessimo - sì, questo può essere estratto da questi dati, ma vogliamo ottenere una migliore qualità di previsione - sarebbe una storia. Ma finora non abbiamo fatto nulla con questi dati. Inoltre, ciò richiederebbe una profonda immersione dei partecipanti nelle specificità del funzionamento del nostro prodotto, per questo un giorno e mezzo non è sufficiente.

Come hai deciso?: Non hanno impostato immediatamente l’esatto compito finale. Invece, durante tutte le 48 ore, abbiamo dialogato con i partecipanti, scoprendo tempestivamente cosa potevano ottenere e cosa no. Su questa base, in uno spirito di compromesso, il compito è stato portato a termine.

Cosa hai ottenuto come risultato?: i vincitori del percorso hanno potuto ripulire i dati (allo stesso tempo hanno trovato le “caratteristiche” di calcolo di alcuni parametri che noi stessi non avevamo notato prima, poiché non utilizzavamo alcuni dati per risolvere i nostri problemi) , evidenziare le deviazioni dal comportamento previsto dei moduli Watts Battery e impostare un modello predittivo in grado di prevedere il consumo di energia con un elevato grado di precisione. Sì, questa è solo una fase di fattibilità dello sviluppo di una soluzione industriale; poi serviranno settimane di minuzioso lavoro tecnico, ma anche questo prototipo, creato direttamente durante l'hackathon, può costituire la base di una vera soluzione industriale, cosa rara.

La conclusione principale: Sulla base dei dati in nostro possesso è possibile impostare un'analisi predittiva, lo abbiamo ipotizzato, ma non avevamo le risorse per verificarlo. I partecipanti all'hackathon hanno testato e confermato la nostra ipotesi e continueremo a lavorare con i vincitori della traccia su questo compito.

Perché una startup hardware ha bisogno di un hackathon software?Grafico di un modello predittivo sulla rete neurale opensource Facebook Prophet

Consigli per il futuro: quando si elabora un compito, è necessario guardare non solo alla tabella di marcia della produzione, ma anche all'interesse dei partecipanti. Poiché il nostro hackathon non prevede premi in denaro, giochiamo sulla naturale curiosità dei data scientist e sulla voglia di risolvere problemi nuovi, interessanti, in cui nessuno ha ancora mostrato nulla o dove possono mostrarsi meglio dei risultati esistenti. Se prendi subito in considerazione il fattore di interesse, non dovrai spostare la tua attenzione lungo il percorso.

Управление

Compito: (applicazione) che gestisce una rete di moduli Watts Battery, con account personale, archiviazione dei dati nel cloud e monitoraggio dello stato.

Specificità: in questo percorso non stavamo cercando qualche nuova soluzione tecnica; ovviamente abbiamo la nostra interfaccia consumatore. Lo abbiamo scelto per l'hackathon per dimostrare le capacità del nostro sistema, immergerci in esso e verificare se la comunità è interessata al tema dello sviluppo di sistemi intelligenti ed energie alternative. Abbiamo posizionato l'applicazione mobile come opzione; puoi farlo o non farlo a tua discrezione. Ma a nostro avviso mostra bene come le persone siano riuscite a organizzare l’archiviazione dei dati nel cloud, accedendo da più fonti diverse contemporaneamente.

Di cosa ha veramente bisogno l’azienda?: una community di sviluppatori che proporrà idee di business, testerà ipotesi e creerà strumenti di lavoro per la loro implementazione.

Perché non è fattibile in questa fase?: Il volume del mercato è ancora troppo piccolo per la formazione organica di una tale comunità.

Come hai deciso?: Nell'ambito di un hackathon, abbiamo condotto una sorta di studio sulla fisicità per vedere se fosse possibile elaborare non solo funzionalità, ma modelli di business completi attorno al nostro prodotto molto specifico. Inoltre, affinché persone in grado di implementare un prototipo possano farlo, dopo tutto, qui - non voglio offendere nessuno - questo non è il livello di programmare un LED lampeggiante su Arduino (anche se questo può essere fatto con innovazioni) , qui sono richieste competenze piuttosto specifiche: sviluppo di sistemi backend e frontend, comprensione dei principi della costruzione di sistemi scalabili di Internet of Things.

*Discorso dei vincitori del secondo brano*

Cosa hai ottenuto come risultato?: due team hanno proposto idee di business a tutti gli effetti per il loro lavoro: uno si è concentrato maggiormente sul segmento russo, l'altro su quello estero. Cioè, nel finale non hanno solo raccontato come hanno presentato la domanda, ma essenzialmente sono venuti a fare affari intorno a Watts. I ragazzi hanno spiegato come vedono l'uso dei Watt in diversi modelli di business, hanno fornito statistiche, hanno mostrato quali regioni hanno quali problemi, quali leggi vengono adottate dove, hanno delineato la tendenza globale: è fuori moda estrarre bitcoin, è di moda estrarre kilowatt. Sono venuti deliberatamente all'energia alternativa, cosa che ci è davvero piaciuta. Il fatto che i partecipanti, oltre a ciò, siano riusciti a creare una soluzione tecnica funzionante suggerisce che possano avviare autonomamente una startup.

La conclusione principale: Ci sono team pronti a prendere Watts Battery come base del proprio modello di business, svilupparlo e diventare partner/compagni dell'azienda. Alcuni di loro sanno anche identificare l’MVP di un’idea imprenditoriale e lavorarci per primi, cosa che oggi manca ovunque nel settore. Le persone non capiscono quando fermarsi, quando rilasciare una soluzione sul mercato, anche se in anticipo, ma funzionante. In effetti, la fase di perfezionamento della soluzione spesso non finisce, tecnicamente la soluzione supera il limite della ragionevole complessità, entra nel mercato sovraccarica, non è più chiaro quale fosse l'idea originale, cosa sia il targeting del cliente, quali modelli di business siano incluso. Come nella battuta su Akunin, che scrisse un altro libro mentre firmava il precedente per qualcuno. Ma qui è stato fatto nella sua forma più pura: ecco un grafico, ecco un contatore, ecco gli indicatori, ecco una previsione - tutto qui, non è necessario nient'altro per eseguirlo. Con questo, puoi rivolgerti a un investitore e ricevere denaro per avviare un'impresa. Chi ha trovato questo equilibrio è uscito vincitore.

Consigli per il futuro: al prossimo hackathon (lo stiamo pianificando nel marzo di quest'anno), forse ha senso sperimentare con l'hardware. Abbiamo il nostro sviluppo hardware (uno dei vantaggi di Watts), controlliamo completamente la produzione e il test di tutto ciò che facciamo, ma non abbiamo risorse sufficienti per testare alcune ipotesi “hardware”. Può benissimo essere che nella comunità dei programmatori di sistema e di basso livello e degli sviluppatori hardware ci sia chi ci aiuterà in questo e in futuro diventerà nostro partner in questo settore.

Persone

All'hackathon ci aspettavamo coloro che vogliono cimentarsi in un nuovo campo (ad esempio, diplomati di varie scuole di programmazione) piuttosto che coloro che si specializzano in questo tipo di sviluppo. Tuttavia, ci aspettavamo che prima dell'hackathon facessero un piccolo lavoro preparatorio, leggessero come viene previsto il consumo energetico in generale e come funzionano i sistemi Internet of Things. In modo che tutti vengano non solo per divertimento, alla ricerca di dati e compiti interessanti, ma anche per un'immersione preliminare nell'argomento. Da parte nostra, comprendiamo che per questo è necessario pubblicare in anticipo i dati disponibili, la loro descrizione e requisiti più precisi per il risultato, pubblicare moduli API, ecc.

Tutti avevano all'incirca lo stesso livello tecnologico, più o meno le stesse capacità. In questo contesto, il livello di armonia non è stato l’ultimo fattore. Alcune squadre non hanno sparato perché non potevano dividersi chiaramente in aree di lavoro. C'erano anche quelli in cui una persona faceva tutto lo sviluppo, gli altri erano impegnati a preparare la presentazione, in altri a qualcuno venivano affidati compiti che stavano svolgendo, probabilmente per la prima volta nella loro vita.

La maggior parte dei partecipanti erano giovani, questo non significa che tra loro non ci fossero ingegneri e sviluppatori di machine learning forti. La maggior parte è arrivata in squadre; praticamente non c'erano individui. Tutti sognavano di vincere, qualcuno voleva trovare un lavoro in futuro, circa il 20% lo ha già trovato, penso che questa cifra sia destinata a crescere.

Non avevamo abbastanza fanatici dell’hardware, ma speriamo di rimediare al secondo hackathon.

Progressi dell'hackathon

Come ho scritto sopra, siamo stati con i partecipanti per la maggior parte delle 48 ore dell'hackathon e, monitorando i loro successi ai checkpoint, abbiamo cercato di adattare il compito e le condizioni per accettare il primo percorso analitico in modo che, da un lato, il i partecipanti hanno potuto completarlo nel tempo rimanente e, d'altra parte, per noi era interessante.

L'ultimo chiarimento sull'incarico è avvenuto all'incirca all'ultimo posto di blocco, sabato pomeriggio (la finale era prevista per domenica sera). Abbiamo semplificato ancora un po’ il tutto: abbiamo eliminato l’obbligo di ricalcolare il modello su nuovi dati, lasciando i dati su cui i team stavano già lavorando. Il confronto delle metriche non ci ha dato più nulla, avevano già risultati già pronti in base ai dati disponibili, e al secondo giorno i ragazzi erano già stanchi. Pertanto, abbiamo deciso di torturarli di meno.

Tuttavia, tre partecipanti su quattro non sono arrivati ​​alla finale. Un team si è reso conto già all'inizio di essere più interessato al percorso dei nostri colleghi, l'altro, poco prima della finale, si è reso conto che durante il processo di elaborazione avevano filtrato in anticipo i dati necessari e si sono rifiutati di presentare il proprio lavoro.

Il team “21 (Wet Hair Effect)” ha partecipato ad entrambi i nostri brani fino alla fine. Volevano coprire tutto in una volta: apprendimento automatico, sviluppo, applicazione e sito Web. Fino a quando non li abbiamo minacciati di ritirarsi all'ultimo momento, credevano di fare tutto in tempo, anche se già al secondo checkpoint era ovvio che con la cosa principale - l'apprendimento automatico - non avrebbero potuto fare progressi significativi: generalmente hanno affrontato il secondo blocco, ma non poteva prevedere il consumo di elettricità non era pronto. Di conseguenza, quando abbiamo determinato il compito minimo per qualificarsi per il primo, hanno comunque scelto la seconda traccia.

Fit-predict aveva una composizione equilibrata su misura per l'analisi dei dati, quindi sono stati in grado di superare tutto. Era evidente che i ragazzi fossero interessati a “toccare” i dati industriali reali. Si sono subito concentrati sulla cosa principale: analizzare, pulire i dati, trattare ogni anomalia. Il fatto che siano riusciti a costruire un modello funzionante durante l’hackathon è un grande risultato. Nella pratica lavorativa, questo di solito richiede settimane: mentre i dati vengono puliti, mentre vengono approfonditi. Pertanto, lavoreremo sicuramente con loro.

Nel secondo percorso (gestione), ci aspettavamo che tutti facessero tutto in mezza giornata e venissero a chiedere di rendere il compito più difficile. In pratica, abbiamo avuto appena il tempo di completare il compito di base. Abbiamo lavorato su JS e Python, che riflette lo stato attuale del settore.

Anche qui i risultati sono stati raggiunti da team ben coordinati in cui è stata costruita la divisione del lavoro, era chiaro chi faceva cosa.

Il terzo team, FSociety, sembrava avere una soluzione, ma alla fine hanno deciso di non mostrare il loro sviluppo, hanno detto che non lo consideravano funzionante. Lo rispettiamo e non discutiamo.

Il vincitore è stato il team “Strippers from Baku”, che ha saputo fermarsi, non rincorrendo “ninnoli”, ma creando un MVP che non si vergogna di mostrare e che è chiaro che può essere ulteriormente sviluppato e scalato. Abbiamo subito detto loro che non eravamo troppo interessati ad ulteriori opportunità. Se vogliono la registrazione tramite codice QR o riconoscimento facciale, lascia che creino prima i grafici nell'applicazione e poi assumano quelli opzionali.

In questo brano, "Wet Hair" è entrato con sicurezza in finale e abbiamo discusso di un'ulteriore collaborazione con loro e "Hustlers". Quest'ultimo lo abbiamo già incontrato nel nuovo anno.

Spero che tutto funzioni e non vediamo l'ora di vedere tutti al secondo hackathon di marzo!

Fonte: habr.com

Aggiungi un commento