Polska firma Synerise udostępniła swój projekt na zasadach open-source. Poznajcie Cleorę!
Synerise, firma zajmująca się sztuczną inteligencją, udostępniła na zasadzie open-source narzędzie Cleora jedno z najszybszych istniejących algorytmów zanurzania grafów. – Jest to niezbędny element systemów działających na danych w postaci sieci połączonych węzłów – chwalą się przedstawiciele firmy. Jak powstał i jaki jest cel tego projektu? W jaki sposób open-source-owe projekty mogą rozwijać się z pomocą społeczności? Te i kilka dodatkowych pytań postawiliśmy przed osobami odpowiedzialnymi za Cleorę.
Spis treści
Jaka jest historia powstania Cleory? Ile osób nad nią pracowało i przez jak długi czas?
Od początku istnienia zespołu AI w Synerise, naszą ambicją było szybkie i proste przetwarzanie gigantycznych heterogenicznych danych interakcyjnych. Istniejące do tej pory biblioteki, takie jak StarSpace, Node2Vec, DeepWalk, czy rozmaite grafowe sieci konwolucyjne, nie spełniały naszych wymagań.
Każde z nich miało jedną z wad — bardzo wolne działanie, niepraktyczne ograniczenie maksymalnego rozmiaru grafu lub niezadowalająca jakość rezultatów. Potrzebowaliśmy rozwiązania, które pozwoli nam na szybkie i dokładne obliczenie zanurzeń grafów (być może lepiej znany jest termin anglojęzyczny: graph embeddings) z milionami wierzchołków i miliardami krawędzi, które miały reprezentować zachowania użytkowników. Kilkumiesięczne oczekiwanie na rezultat zanurzenia było dla nas nie do zaakceptowania.
Pierwsza wersja Cleory powstała na początku 2019 roku i została zaimplementowana w Scali. Szybko okazało się, że narzędzie z powodzeniem zastępuje wszystkie dotychczas istniejące biblioteki do zanurzeń.
W kolejnej iteracji, na początku 2020 roku, oprócz optymalizacji algorytmu postanowiliśmy pozbyć się JVM’a. Całe rozwiązanie zostało przepisane ze Scali na Rusta, dzięki czemu mamy większą kontrolę nad zużyciem pamięci oraz procesora, a wydajność wzrosła ponad dwukrotnie.
W tworzenie Cleory początkowo zaangażowany był kilkuosobowy zespół. Jej opracowanie dało nam dodatkowe możliwości tworzenia na jej podstawie szeregu rozwiązań, m.in. na potrzeby generowania rekomendacji, scoringów, segmentacji i różnorodnych predykcji.
Doświadczenie zebrane przez cały zespół AI pozwoliło uczynić Cleorę tym, czym jest dzisiaj — uniwersalnym i niezawodnym “scyzorykiem szwajcarskim” do zanurzeń grafów.
Jaki jest cel tego narzędzia i w jaki sposób Cleora może pomóc przedsiębiorcom? Kto zdecydowanie powinien zainteresować się jej wykorzystaniem?
Cleora jest jednym z najszybszych istniejących algorytmów zanurzania grafów. Jest to niezbędny element systemów działających na danych w postaci sieci połączonych węzłów. Są to więc systemy rekomendacji, przewidywanie połączeń między użytkownikami (like/follow) w social media, czy nawet systemy przewidujące biologiczne funkcje sieci białek, co pozwala na tworzenie nowych leków.
Nic zatem dziwnego, że tworzeniem takich algorytmów zajmują się cyfrowi giganci, tacy jak Facebook czy Google, proponując każdego roku szereg nowych rozwiązań. Jednakże, Cleora posiada znaczącą przewagę nad tymi algorytmami.
Po pierwsze, jest od nich znacznie szybsza. Po drugie, nie wymaga posiadania specjalistycznego sprzętu (np. procesorów graficznych do akceleracji obliczeń), a dodatkowo produkuje wektory zanurzeń o wysokiej jakości. Oznacza to, że systemy (np. rekomendacyjne) używające Cleory, mogą działać szybciej oraz z większą dokładnością.
Cleora jest przystosowana do przetwarzania grafów o wielkości setek milionów węzłów. W sieciach społecznościowych jeden węzeł odpowiada zwykle pojedynczemu użytkownikowi, tak więc Cleora może być stosowana do przetwarzania zbiorów o skali globalnej, na poziomie liczby użytkowników największych serwisów społecznościowych, takich jak Twitter.
Publikacja oprogramowania na licencji open-source oznacza, że od tej chwili zarówno firma, osoba prywatna, czy instytucja badawcza, może używać Cleory w dowolnym celu. Rekomendujemy Cleorę do prac z dużymi grafami, szczególnie w warunkach ograniczonej mocy obliczeniowej. Implementacja jest dostępna w serwisie GitHub.
Zespół Synerise pracujący nad Cleorą
Cleora ma działać 8 razy szybciej niż stworzony przez Facebooka PyTorch-BigGraph, a samo Synerise zostało docenione przez Microsoft. Czy przyszedł czas, w którym polskie przedsiębiorstwa zaczynają zaznaczać swoją obecność na arenie międzynarodowej?
W sferze naukowej zespół Synerise osiągnął znaczący sukces, wygrywając konkurs Rakuten Data Challenge na konferencji SIGIR (Special Interest Group on Information Retrieval). Tematem konkursu było tworzenie rekomendacji w e-commerce, a organizatorami byli m.in. Tracy H. King (Adobe), Shervin Malmasi (Amazon), Dietmar Jannach (University of Klagenfurt), Weihua Luo (Alibaba), Surya Kallumadi (The Home Depot).
Publikacja Synerise o metodach wykrywania najważniejszych cech produktów, decydujących o zainteresowaniu użytkownika, pojawiła się również w materiałach konferencji ICML 2020, a kilka miesięcy później, na konferencji ICONIP 2020 został zaprezentowany artykuł naszego autorstwa, opisujący model dobierający podobne elementy ubioru na podstawie galerii zdjęć pochodzących od producentów oraz użytkowników.
Synerise jest już dostrzegany na arenie międzynarodowej, a rok 2020 był dla nas w tej kwestii szczególnie udany. Współpracujemy z firmami takimi jak Żabka, Orange, Carrefour, mBank, grupą Raiffeisen, Poste Italiane i wieloma innymi liderami rynkowymi nie tylko w Polsce, ale też w Europie i na Bliskim Wschodzie. – dodaje Jarosław Królewski, CEO Synerise.
Jaki jest plan na dalsze działania Synerise?
Naszym celem badawczym jest umożliwienie automatycznego i bardzo wydajnego przetwarzania różnorodnych źródeł danych, które są w posiadaniu naszych klientów, zarówno pod kątem jakości rezultatów, jak i czasu obliczeń.
Algorytmy grafowe pozwalają przetwarzać dane interakcyjne zwykle spotykane w ekosystemach bankowych, telekomunikacyjnych i e-commerce. Istnieje jednak wiele innych rodzajów danych jak obrazy, tekst, dźwięki czy dane strukturalne, a każda firma, która chce poprawiać swoją wydajność, musi mieć możliwość bezproblemowej syntezy wszystkich swoich danych do postaci umożliwiającej łatwe i błyskawiczne predykcje w czasie rzeczywistym.
Priorytetem biznesowym dla Synerise jest obecnie ekspansja międzynarodowa na rynki zachodnie oraz Bliski Wschód.
Dlaczego Cleora działa na zasadach open-source? Jakie korzyści przyniosło otwarcie projektu na społeczność?
Działania tego typu przynoszą firmom duży rozgłos, szczególnie jeśli publikowane narzędzie cechuje się wysoką jakością, czyli jest szybkie, łatwe do uruchomienia i wszechstronne oraz, gdy jest oferowane na otwartej licencji pozwalającej na wykorzystanie komercyjne. Tak właśnie jest w przypadku Cleory.
Na jej przykładzie można samodzielnie sprawdzić, jak pracujemy i jaki jest poziom naszej innowacji. Synerise pragnie stymulować dzielenie się wiedzą, biorąc przykład z cyfrowych gigantów takich jak Google i Facebook, którzy publikują część swoich rozwiązań. Jednocześnie nie dostrzegamy na polskim rynku technologicznym firm, nawet tych bardzo dużych, które w równie otwarty sposób dzieliłyby się wiedzą.
Oczywiście, Google lub Facebook mogą pozwolić sobie na publikowanie części swojej własności za darmo, będąc monopolistami na rynku. Jednakże Cleora jest tylko jedną z wielu autorskich technologii tworzonych w Synerise. Nie sądzimy więc, że jej publikacja negatywnie wpłynie na naszą firmę.
Pamiętajmy też, że wykorzystanie tego typu narzędzi nie jest proste (choć staraliśmy się uczynić Cleorę maksymalnie łatwą w użyciu) i często w praktyce wymagać będzie pomocy w formie konsultingu, dlatego traktujemy to także jako potencjalne źródło nowych klientów.
Cleora leży u podstaw niektórych elementów naszego ekosystemu i nieustannie wdrażamy rozwiązania oparte na jej algorytmach w wielu firmach. Otwarcie kodu źródłowego wpływa pozytywnie na transparencję i zwiększa zaufanie do rozwiązań AI, które dla wielu ludzi wciąż stanowią coś niezrozumiałego.
Transparentne podejście ma wiele zalet. Naukowcy zatrudnieni po stronie naszych klientów mogą wykorzystywać Cleorę do realizacji firmowych lub osobistych projektów, by lepiej zrozumieć zasadę działania, czy zweryfikować nasze stwierdzenia o wydajności.
Nie należy też bagatelizować aspektu rekrutacyjnego. Wysokiej jakości open-source staje się często elementem przyciągającym najbardziej ambitnych kandydatów.
Przewaga centrów innowacji, takich jak Dolina Krzemowa, bierze się w dużej części z efektu synergii – stworzenia przyjaznego środowiska do współdzielenia pomysłów i wzajemnego inspirowania się. Zrobiliśmy odważny krok w tym kierunku. Otwarcie kodu Cleory jest dla nas ważnym eksperymentem, którego konsekwencje z pewnością powrócą do nas za pośrednictwem różnych przedsięwzięć. Będziemy je obserwować z ciekawością i wyciągać wnioski. Już w ciągu pierwszych dni po publikacji pojawili się pierwsi kontrybutorzy wolontariusze, którzy wprowadzają swoje usprawnienia do Cleory, co niezmiernie nas cieszy.
W jaki sposób oprogramowanie open-source może się przyczynić do rozwoju projektu?
Publikacja kodu open-source pozwala na rozwinięcie się nieformalnej grupy użytkowników angażujących się w rozwój narzędzia poprzez wprowadzenie własnych pomysłów i usprawnień. W ten sposób Cleora ma szansę na trwałe zaistnienie w katalogu rozwiązań służących zanurzeniom grafów, ponieważ jest nieustannie rozwijana i aktualizowana.
Oczywiście jest to możliwe jedynie pod warunkiem, że narzędzie będzie interesujące dla społeczności i będzie stanowić źródło inspiracji. Zachęcamy wszystkich developerów Rusta i Pythona do współtworzenia naszego rozwiązania, które jest i pozostanie otwarte. Wszelkie propozycje usprawnień do projektu można zgłaszać poprzez serwis GitHub.
Istnieją jakieś zagrożenia związane z udostępnianiem swoich projektów jako wolne oprogramowanie? Czemu tak mało firm decyduje się na taki ruch?
Bardzo ważnym celem wielu firm jest ochrona własności intelektualnej, rozumianej jako zasób strategiczny. Z perspektywy firmy, ujawnienie kodu kluczowego narzędzia często jest równoznaczne z utratą przewagi konkurencyjnej.
Jednakże przewaga Synerise nie jest oparta na jednej unikalnej technologii, a na synergii wielu autorskich rozwiązań, skupionych w jednym ekosystemie. Dlatego uważamy, że ujawnienie pojedynczego, czy nawet kilku narzędzi nie jest dla nas zagrożeniem. Najważniejszym powodem tak małej liczby podobnych inicjatyw może być fakt, że większość firm w naszym regionie wykorzystuje raczej technologie tworzone przez kogoś innego i czerpie zyski z wdrożeń.
Czego możemy się spodziewać w związku z rozwojem sztucznej inteligencji w biznesie?
Możemy spodziewać się stopniowej eliminacji czynności wtórnych i niekreatywnych, a także nadludzkich możliwości syntezy gigantycznych zbiorów danych. Firmy będą inwestowały w coraz więcej usług AI usprawniających ich działanie, czyli wyszukujących grupy targetowe, adresujących odpowiednio dopasowane reklamy, przyspieszających procesy wewnątrz firm, czy przyspieszających komunikację między działami wsparcia technicznego i klientami.
Branża sztucznej inteligencji jest obecnie na bardzo wczesnym etapie, ale za kilka lat przyjdzie czas na jej konsolidację. Wtedy na rynku pozostaną gracze z najbardziej uniwersalną i wszechstronną ofertą.
Ile procesów w przyszłości dałoby się zautomatyzować z pomocą sztucznej inteligencji? Możemy mówić o samodziałających firmach?
Jest to uzależnione od rodzaju branży, ale automatyzacja i sztuczna inteligencja pozwalają osiągnąć coraz lepsze efekty, przy coraz mniejszym wysiłku wymaganym ze strony ludzi.
Prawdopodobnie za kilka lub kilkanaście lat będziemy mogli spodziewać się pojawienia pierwszych, początkowo bardzo prostych “samodziałających” firm.
Oczywiście, tak jak na pokładzie odrzutowca, człowiek-pilot będzie nadzorował ich działanie jeszcze przez wiele lat, ale tym samym będzie mógł skupić swoją uwagę na problemach prawdziwie kreatywnych i innowacjach, zamiast wykonywać mało ambitne i powtarzalne zadania. Zupełnie automatyczne sklepy spożywcze są testowane już dziś.
W jaki sposób sztuczna inteligencja wpływa na nasze życie już teraz?
Metody uczenia maszynowego są obecne już od dziesięcioleci w funduszach hedgingowych, bankach i innych elementach sektora finansowego. Od kilkunastu lat przenikają do coraz szerszych gałęzi gospodarki.
Rozkwit systemów rekomendacyjnych w firmach z branży e-commerce odpowiada już za ponad 30% jej obrotów. Bez sztucznej inteligencji firmy tego rodzaju nie mają dziś szans na konkurowanie z liderami rynku.
Coraz większa adopcja rozwiązań AI pozwala przede wszystkim automatyzować najbardziej żmudne i pracochłonne czynności nie tylko te, które wykonywali do tej pory ludzie, lecz także te, które ze względu na gigantyczny nakład pracy, były do tej pory poza zasięgiem ludzkości.
Mamy okazję obserwować kolejne gigantyczne osiągnięcia od imponujących modeli generujących tekst naturalny na dowolny temat, jak GPT-3 (OpenAI), po modele symulujące fałdowanie białek jak AlphaFold (DeepMind) z niespotykaną dotąd dokładnością. Mimo relatywnej prostoty konceptualnej, gdyż modele te nie mają jeszcze zbyt wiele wspólnego z “ludzką inteligencją”, tego rodzaju osiągnięcia zrewolucjonizują całe dziedziny nauki, a wkrótce również przemysłu.
A jak AI wpływa na życie codzienne przeciętnego człowieka?
AI jest dziś wszędzie. Nasz telefon zbiera dane o przeglądanych stronach i wyświetla personalizowane reklamy. Systemy analizujące dane z GPS śledzą trasy, po których się poruszamy. Dysponujemy narzędziami służącymi do rozpoznawania mowy ludzkiej (np. Siri, Asystent Google), dokonywania translacji (tłumaczeń językowych), a także zaawansowanego analizowania obrazów (dzięki temu mamy możliwość odblokowywania telefonu przy użyciu skanu własnej twarzy).
Jak dziś wygląda rynek sztucznej inteligencji? Łatwo znaleźć specjalistów?
Rynek sztucznej inteligencji ma dziś paradoksalną naturę.
Z jednej strony, jest wielu kandydatów, którzy wyrażają ogromne zainteresowanie tematyką uczenia maszynowego i AI. Szczególnie deep learning, jako nowo powstały kierunek, cieszy się wielkim zainteresowaniem. Z drugiej jednak strony, uczelnie wyższe jeszcze do niedawna praktycznie tę dziedzinę ignorowały. Z tego względu większość specjalistów z doświadczeniem dłuższym niż 6-8 lat jest samoukami. Jest ich bardzo niewielu i z tego powodu są rozchwytywani.
Jednakże nie każda praca związana z dziedziną sztucznej inteligencji wymaga udziału specjalisty. Znakomita większość firm stosuje rozwiązania wykreowane i zaimplementowane przez innych, do czego wystarczy nawet ogólna znajomość programowania i analizy danych.
Jaką umiejętność wyróżnilibyście, jako potrzebną do pracy nad sztuczną inteligencją?
W pracy nad AI wyróżniamy wiele stanowisk, które można podzielić na dwie główne grupy: badawcze i implementacyjne.
Stanowiska badawcze wymagają wiedzy z zakresu matematyki, rozumienia działania modeli uczenia maszynowego oraz bycia na bieżąco z nowinkami tej szybko rozwijającej się dziedziny, poprzez czytanie publikacji naukowych, blogów, raportów. Dodatkowo niezbędne są umiejętności programowania w językach szczególnie przydatnych do modelowania narzędzi AI, gdzie najczęstszymi wyborami są Python lub R. Dodatkowym atutem jest doświadczenie w publikowaniu oraz obycie w świecie naukowym.
W stanowiskach implementacyjnych istotną częścią pracy jest przetwarzanie rosnących zbiorów danych. W tym przypadku kładziemy nacisk na znajomość baz danych i technologii dedykowanych do Big Data lub danych strumieniowych, takich jak Hadoop, Spark, Hive, Kafka, Clickhouse. Dużą wagę przykładamy do umiejętności pisania kodu wysokiej jakości w językach takich jak Scala, Java, C++, czy Python.
Piotr Bąbel. Studiował na wydziale Elektroniki i Technik Informacyjnych na Politechnice Warszawskiej. Obecnie pracuje w Synerise jako inżynier oprogramowania, gdzie jest odpowiedzialny za wsparcie we wdrażaniu rozwiązań AI. Interesuje się systemami rozproszonymi, językami silnie typowanymi oraz uczeniem maszynowym.
Jacek Dąbrowski. Studiował matematykę, informatykę i psychologię na Uniwersytecie Warszawskim. Posiada 9-letnie doświadczenie w uczeniu maszynowym, a obecnie kieruje działem AI Research w Synerise. Jest odpowiedzialny za rozwój algorytmów modelowania behawioralnego na multimodalnych, heterogenicznych danych o ogromnej skali. Obecnie interesuje się wielowymiarowymi estymatorami gęstości na rozmaitościach różniczkowych i uczeniem reprezentacji metrycznych.
Barbara Rychalska. Jest doktorantką informatyki na Politechnice Warszawskiej. Pracuje jako research scientist w Synerise, koncentrując się na badaniach nad przetwarzaniem języka naturalnego i systemami rekomendującymi. Jest laureatką wielu międzynarodowych konkursów z zakresu uczenia maszynowego, w tym SemEval 2016 i SIGIR Rakuten Challenge 2020. Jest zaangażowana w międzynarodową współpracę naukową i bierze udział w projektach na NTU w Singapurze i Uniwersytecie Oksfordzkim.