Zeszłej wiosny miałem przyjemność uczestniczyć w hackathonie BilotGo.ai, w teamie który wyszedł z zawodów zwycięsko! Chcę podzielić się kilkoma przemyśleniami – co sprawiło, że osiągnęliśmy sukces? Myślę, że te wskazówki mogą być przydatne również przy innych projektach, które opierają się na danych.
1. Znalezienie odpowiedniego pytania
Wszyscy słyszeliśmy fascynujące przykłady zastosowania sztucznej inteligencji oraz uczenia maszynowego. Te przypadki są często wynikiem długoletniej, zorientowanej na konkretny cel pracy. Przede wszystkim nasz cel musi mierzyć odpowiednio wysoko, nawet gdy praca postępuje etapowo. O wiele łatwiej jest najpierw podjąć decyzję o projekcie pilotażowym i następnie iść do przodu małymi krokami niż starać się o zatwierdzenie projektu, który potrwa wiele lat, kosztuje miliony, a jego wynik jest niepewny. Jest jednak ważne, by każdy krok przynosił rezultaty korzystne dla biznesu.
Nasz zespół z BilotGo.ai razem ze zleceniodawcą poświęcił dużo czasu na zidentyfikowanie i określenie konkretnego wyzwania do rozwiązania z użyciem technik uczenia maszynowego. Musieliśmy postawić problem, na który odpowiedź miałaby istotne znaczenie dla biznesu oraz który można było rozwiązać z pomocą danych, do których mieliśmy dostęp, jak również zmieścić się w wyznaczonym czasie. Nasz pierwszy pomysł polegał na zbudowaniu modelu, który ustala jak karmienie krów wpływa na ilość i jakość dawanego przez nie mleka, ale wraz z postępem prac byliśmy zmuszeni przedefiniować pytanie. Zdecydowaliśmy, że przygotujemy prognozy ilości dawanego mleka przez krowy na podstawie ich wieku i ocielenia, a pozostałe problemy zostawiliśmy innym projektom.
2. Zebranie danych
Kiedy wiadomo, jaki jest cel projektu, zaczyna się zbieranie danych, które będą potrzebne do wytrenowania modelu uczenia maszynowego dającego rozwiązanie. Oczywiście początkowo może się okazać, że trzeba przedefiniować pytania i szukać informacji na nowo, ponieważ ilość i jakość danych bywa rozbieżna z oczekiwaniami.
W BilotGo.ai podjęliśmy najpierw zadanie przygotowania modelu prognozy na podstawie przykładowych danych. Kiedy minęła połowa czasu na wykonanie projektu, okazało się, że pliki były zbierane ręcznie z pojedynczych źródeł. W rzeczywistości dane miały zupełnie różną strukturę, a najgorsze, że informacje nie były do końca zrozumiałe. Musieliśmy więc cofnąć się do etapu definiowania problemu. Ustaliliśmy też, że po zawodach przygotujemy plan zbierania i przetworzenia danych.
3. Przygotowanie danych
Mówi się, że projekt uczenia maszynowego w 80% składa się z przygotowania danych i zaledwie w dwudziestu procentach z rozwinięcia modelu ML. Podobnie było i w tym projekcie, gdy doszło do implementacji! Gdyby wziąć pod uwagę etap przygotowań do pracy oraz później do startu, czas spędzony na pisaniu algorytmów był proporcjonalnie krótki.
Główną częścią naszych danych były wyniki pomiarów uzyskane od robotów, więc można było założyć, że były one odpowiednio uformowane i konsekwentne. W praktyce roboty różniły się i wysyłały dane w różnych formach. Poza tym trudno było zinterpretować dane odstające. Przykładowo, jeśli zawartość tłuszczu w mleku według pomiaru wynosiła 30 procent, błąd w wyniku był oczywisty, ale co jeśli wartość wskazywała między 6 a 12 procent? Przygotowanie informacji wymaga dogłębnego zrozumienia ich znaczenia. Z tego powodu intensywnie współpracowaliśmy z klientem.
4. Przedstawienie
Nawet najlepsza innowacja może spalić na panewce, jeżeli grupa docelowa jej nie zaakceptuje.
Hackathon zakończył się prezentacją przez zespoły swoich rozwiązań przed jury złożonym z zewnętrznych ekspertów. Nasz zespół poświęcił tydzień z łącznego czasu ośmiu tygodni na ulepszenie interfejsu użytkownika oraz przygotowanie końcowego demo na 15 minut. Zastanawialiśmy się nad nośną opowieścią do prezentacji i sprzątaliśmy zawartość, aby podkreślić innowację i jej korzyści. Tak jak powiedział nasz coach, Antti Apunen: „grupa docelowa nie jest zainteresowana algorytmem, którego użyto – oni ufają waszym zdolnościom i chcą zobaczyć rezultat oraz korzyść”.
W świecie biznesu projekt rzadko da się zamknąć w piętnastominutowym wystąpieniu przed jury, ale nawet w innych projektach launch jest często krótki, a zarazem kluczowy – niezależnie czy jest to wewnętrzny system czy web service. Klienci rzadko dają drugą szansę i nie można spodziewać się zbyt dużej pobłażliwości ze strony użytkowników. Korzyść z rozwiązania musi być wyraźnie podkreślona a zastosowanie jak najłatwiej przedstawione. W końcowym etapie projektu należy więc postawić na komunikację zamiast na dopieszczaniu strony technicznej. Jeśli start się powiedzie, zagwarantuje to możliwość dokończenia rozwiązania w kolejnych etapach.
Myślę, że w hackathonie to właśnie przemyślana prezentacja przechyliła szalę zwycięstwa na naszą korzyść i dała nam nagrodę. Wierzę również, że staranne wykończenie zapewnia sukces każdego projektu.
Więcej o idei stojącej za hackathonem BilotGo.ai można przeczytać tutaj.
