Nav kļūdas, ir tikai pieredzes: Mūsu mašīnmācīšanās stāsts

Bezmiega naktis, dārgi lēmumi un pirmais strādājošais kods

Viss sākās ar divām diezgan sāpīgām pieredzēm, kad mēģinājām ārpakalpojumā izstrādāt mašīnmācīšanās (ML) risinājumu. Pēc pusgada darba, vairākiem tūkstošiem iztērētu eiro un nevienas strādājošas koda rindiņas mēs nonācām pie vienkārša secinājuma: kodu nāksies rakstīt pašiem.

Mūsu pirmā ML modeļa recepte:

  • Viens nodedzis portatīvais dators
  • Viens sabojāts serveris
  • Neskaitāmas bezmiega naktis un vairāk kafijas nekā gribētos atzīt
  • Un, par laimi, arī daži pieredzējušāki ML jomas kolēģi

Miegs bija kļuvis par tādu ekskluzivitāti, ka es pat pārstāju valkāt Garmin pulksteni – tikai lai tas man vairs neatgādinātu par nepieciešamību atpūsties. Ironiski, bet zināšanas, ko savulaik ieguvu bezmaksas tiešsaistes kursos par interneta veikalu veidošanu, izrādījās ļoti noderīgas. Koda struktūras veidošana, serveru resursu pārvaldība, API apstrāde – viss nāca atpakaļ atmiņā un deva man būtisku priekšrocību darbā ar ML sistēmām.

Pirmā kļūda: uzdevuma vienkāršošana Kad sākām šo projektu, uzdevums šķita vienkāršs: vēlējāmies gudrāk vadīt ēku apkures sistēmas. Mērķis bija novērst situācijas, kad apkures sistēmas pārkurina ēkas, neņemot vērā ārējās vides faktorus – temperatūru, vēju un saules starojumu. Mūsu vīzija bija ML sistēma, kas dinamiski pielāgotu apkures grafikus atkarībā no šiem faktoriem un konkrētas ēkas īpašībām. Vēlamais rezultāts? Ietaupīt 13–15% enerģijas, nepasliktinot biroja komfortu. Tas šķita paveicami – tāpēc nolēmām, ka nav nepieciešams algot iekšējo izstrādātāju, un uzticējām darbu ārpakalpojumu sniedzējiem. Klasiska kļūda. Mēs būtiski nenovērtējām uzdevuma sarežģītību.

Otrā kļūda: zināšanu proporcijas kļūdaina novērtēšana Mēs pieņēmām, ka projekts prasīs aptuveni 30% zināšanas par ēku automatizāciju un 70% mašīnmācīšanās izstrādi. Beigu beigās viss notika tieši otrādii. Ēku uzvedības nianses, dažādu materiālu siltumnoturības un zudumu īpašības, sistēmu reakcija uz ārējām izmaiņām – tas viss izrādījās daudz ievērojamāks, nekā sākumā šķita.

Trešā kļūda: neizlasījām līguma mazos burtus Pats sāpīgākais bija tas, ka nepamanījām līgumā punktu, kurš paredzēja, ka visa izstrādātā programma pieder ārpakalpojumu sniedzējam. Dārga kļūda, jā, bet arī apslēpta svētība. Šī kļūda mūs piespieda attīstīt prasmes un veidot visu pašiem uzņēmuma iekšienē. Mēs pārvērtām citronus par limonādi. Tagad ne tikai es daudz labāk saprotu ML, bet arī vairāki mūsu izstrādātāji kļuvuši par prasmīgiem mašīnmācīšanās inženieriem.

Atvainošanās un "Iron Man" mirkļi Vēlos atvainoties mūsu projektu vadītājam, kurš bija neizpratnē, kāpēc ēka "pieņēma lēmumu pati". Man pusnaktī radās iedvesma, un es nespēju atturēties no vēlmes palaist algoritmu dzīvajā režīmā. Kā mans kolēģis inženieris Tonijs Stārks reiz teica: "Dažkārt ir jāskrien, pirms mācies staigāt."

Kur esam tagad? Mums ir izveidots stabils pamats – strādājošs kods, zināšanas, kas paliek uzņēmumā, un spēja turpināt attīstīties. Labākā daļa? Mēs esam sasnieguši savus enerģijas ietaupījuma mērķus. Vismaz uz papīra. Tagad atliek tikai sagaidīt apkures sezonu. Vai arī – varbūt pirmo reizi dzīvē – klusībā ceru uz vēsu vasaru.