Negulētas naktis, dārgi lēmumi un pirmā strādājošā koda rinda
Viss sākās ar divām diezgan sāpīgām pieredzēm, mēģinot izstrādāt mašīnmācīšanās (Machine Learning, ML) risinājumu, izmantojot ārpakalpojumu.
Pēc sešiem mēnešiem darba, vairākiem tūkstošiem iztērētu eiro un nevienas strādājošas koda rindas mēs nonācām pie vienkārša secinājuma - kods būs jāraksta pašiem.
Mūsu pirmā ML modeļa "recepte"
- Viens pārkarsis portatīvais dators
- Viens salauzts serveris
- Neskaitāmas negulētas naktis un daudz vairāk kafijas, nekā gribētos atzīt
- Un, par laimi, daži pieredzējušāki kolēģi mašīnmācīšanās jomā
Miegs bija kļuvis par tādu greznību, ka es pat pārstāju valkāt savu Garmin pulksteni - tikai tāpēc, lai tas man neatgādinātu, ka ir pienācis laiks atpūsties.
Ironiskā kārtā zināšanas, ko savulaik ieguvu bezmaksas tiešsaistes kursos par e-komercijas mājaslapu izstrādi, izrādījās pārsteidzoši noderīgas. Koda strukturēšana, serveru resursu pārvaldība un API integrācijas — tas viss atgriezās atmiņā un deva būtisku priekšrocību, strādājot ar ML sistēmām.
Pirmā kļūda: pārāk vienkāršots priekšstats par uzdevumu
Kad sākām šo projektu, viss šķita samērā vienkārši.
Mēs vēlējāmies padarīt ēku apkures sistēmas gudrākas. Mērķis bija novērst situācijas, kad apkures sistēmas pārkurina ēkas, neņemot vērā ārējos apstākļus, piemēram, āra temperatūru, vēju vai saules starojumu.
Mūsu iecere bija izveidot ML sistēmu, kas dinamiski pielāgotu apkures darbību, ņemot vērā šos faktorus un katras ēkas individuālās īpašības.
Vēlamais rezultāts? Samazināt enerģijas patēriņu par 13–15%, nezaudējot biroja komfortu.
Tas šķita pilnīgi sasniedzams, tāpēc nolēmām neveidot savu izstrādes komandu un uzticēt darbu ārpakalpojuma sniedzējam.
Klasiska kļūda.
Mēs būtiski novērtējām par zemu šī uzdevuma sarežģītību.
Otrā kļūda: nepietiekami novērtēta nepieciešamo kompetenču kombinācija
Mēs pieņēmām, ka projektā būs nepieciešamas aptuveni 30% zināšanu par ēku automatizāciju un 70% mašīnmācīšanās izstrādes kompetences.
Realitātē viss izrādījās tieši pretēji.
Ēku uzvedības nianses, dažādu materiālu siltumtehniskās īpašības, siltuma zudumi un tas, kā sistēmas reaģē uz ārējām izmaiņām, izrādījās daudz nozīmīgāki, nekā sākotnēji bijām iedomājušies.
Trešā kļūda: neizlasījām visu līgumu
Sāpīgākais brīdis bija saprast, ka līgumā bija punkts, kurš noteica, ka visa izstrādātā programmatūra piederēs ārpakalpojuma sniedzējam.
Tā bija dārga kļūda.
Taču vienlaikus arī slēpta veiksme.
Tieši šī pieredze mūs pamudināja attīstīt savas kompetences un visu turpmāko izstrādi veikt uzņēmuma iekšienē.
Kā saka — no citroniem var pagatavot limonādi.
Šodien ne tikai man ir daudz dziļāka izpratne par mašīnmācīšanos, bet arī vairāki mūsu izstrādātāji ir kļuvuši par pieredzējušiem ML inženieriem.
Atvainošanās un "Iron Man" cienīgi brīži
Man joprojām ir jāatvainojas mūsu projektu vadītājam, kurš bija pilnīgā neizpratnē par to, kāpēc ēka pēkšņi bija "pieņēmusi lēmumu pati".
Ideja mani apciemoja ap pusnakti, un es vienkārši nespēju atturēties palaist algoritmu reālā vidē.
Kā reiz teica mans kolēģis inženieris Tonijs Stārks:
"Dažreiz ir jāskrien, pirms esi iemācījies staigāt."
Kur mēs esam šodien?
Šodien mums ir stabils pamats.
Strādājošs kods.
Zināšanas, kas paliek uzņēmuma iekšienē.
Un spēja turpināt attīstīt tehnoloģiju arī nākotnē.
Pats patīkamākais ir tas, ka esam sasnieguši savus enerģijas ietaupījuma mērķus.
Vismaz uz papīra.
Tagad atliek vien sagaidīt nākamo apkures sezonu.
Vai, iespējams, pirmo reizi dzīvē klusībā cerēt uz vēsu vasaru.






