Transformery w Machine Learning
Computer Vision,  Edukacja,  Natural Language Processing,  Podcast

Transformery w Machine Learning


Cześć. Witam w 103. odcinku podcastu Biznes Myśli. Dzisiejszym gościem jest Krzysztof Choromański, który zrobił doktorat na Uniwersytecie w Kolumbii. Pracuje już od 7 lat w Google Brain Robotics. Jest autorem ciekawych publikacji naukowych. Będziemy dzisiaj rozmawiać o tzw. Performance. Czym jest Performance? To taka wydajna architektura Transformerów (Transformance). Czym są Transformery w Machine Learning? To rozwiązanie, o którym na pewno warto wiedzieć, jeśli chce się zajmować uczeniem maszynowym.  Tę architekturę koniecznie trzeba poznać.

Dlaczego tak mówię? W uczeniu maszynowym istnieje wiele różnych rozwiązań i są grube książki, które opisują je wszystkie,  ale z grubsza rzecz ujmując jest kilka rzeczy, które trzeba poznać. 



Tak się stało, że Transformery wkroczyły w ten ograniczony zasób algorytmów, które moim zdaniem koniecznie trzeba poznać. Owszem, Transformery mają swoje wady jeżeli chodzi o wydajność (potrzebują więcej pamięci lub wolniej się liczą). 



To, o czym dzisiaj właśnie Krzysztof będzie opowiadał, to jest rozwiązanie w konkretnych przypadkach, kiedy mamy troszkę więcej danych czyli to, co podajemy na wejściu (np. duże zdjęcia lub teksty). Jeżeli takie klasyczne Transformery nie działają, to wtedy mogą nam pomóc Performery. 





Ciekawe jest to, że to nadal są Transformery, tylko tak w sposób chirurgiczny zostały wycięte te kawałki, które są bardzo wolne i wstawiono tam bardziej efektywne elementy. W gruncie rzeczy nadal zostały Transformery, tylko zostały lepiej zoptymalizowane. 



Jeżeli chcesz lepiej poznać Transformery, to jest ku temu okazja i to dosyć unikalna. Zapraszam na mój autorski kurs, który został stworzony po to, aby wyjaśnić wszystkie techniki związane z przetwarzaniem języka naturalnego i pracy z tekstem. Sporo miejsca poświęcam tam także właśnie na Transformery, bo działają najlepiej.





Warto wspomnieć, że Transformery były wymyślone w kontekście NLP, ale później udało się to też adaptować do innych dziedzin, np. computer vision, gdzie też robiły rewolucję.




A więc jeśli chcesz poznać, czym są Transformery w praktyce,  to bardzo gorąco Cię zapraszam na mój autorski kurs. Druga edycja rozpoczyna się 13 września 2021. Jedynie na co zwrócę uwagę tutaj, to oczywiście mile widziana na tym kursie jest już przynajmniej podstawowa wiedza o tym, czym są sieci neuronowe itd.





Jeśli nie wiesz, czy Twoja wiedza jest wystarczająca, aby poradzić sobie na tym kursie, to zawsze możesz dołączyć i sprawdzić przez dwa tygodnie, a potem “przeskoczyć” do kursu “Praktyczne Uczenie Maszynowe”, który polecam każdemu na początek, podczas którego uczysz się niezbędnych podstaw i strukturyzujesz wiedzę. Potem można iść dalej.






Jeśli czujesz, że musisz przemyśleć sprawę i potrzebujesz wsparcia, to możesz uzyskać indywidualną konsultację telefoniczną. Po prostu napisz do nas maila, że słuchasz Biznes Myśli i wiesz z odcinka, że jest taka możliwość. Wtedy umówimy się i  porozmawiasz –  ze mną albo z kimś z mojego zespołu. Najważniejsze jest to, żeby wyczuć, jakie masz potrzeby, aby w sposób indywidualny Ci poradzić, więc masz taką unikalną możliwość rozmowy.





Chciałbym zrobić jeszcze jedno krótkie ogłoszenie zanim przejdziemy do rozmowy w gościem.  Rusza Data Science Master Class, które odbędzie się 3 i 4 lipca i jest  100% online. To działa w taki sposób, że na początku jest  delikatne wprowadzenie przez godzinę i jeszcze kilka malutkich bloków, a później już działasz samodzielnie. Będzie też grupa na Slack, zaangażowanie, konkurs. Tematem tego Master Class jest „Prognozowanie cen mieszkań”.





Będą to 2 dni intensywnej nauki, a myślę, że to może zaoszczędzić Ci tygodnie, miesiące samodzielnej nauki, bo tak naprawdę można błądzić bardzo długo. 



Przechodzimy do rozmowy, która jest z jednej strony techniczna, naukowa, ale też zostały  poruszone tematy filozoficzne, za które jestem bardzo wdzięczny Krzysztofowi. To jest rzecz, która mnie osobiście też bardzo kręci. Zresztą cały czas mój umysł jest pobudzany do zadawania sobie różnych pytań koncepcyjnych – jak, dlaczego, czemu tak akurat, a nie inaczej? 



Zapraszam do rozmowy.






Cześć Krzysztof. Przedstaw się: kim jesteś, czym się zajmujesz i gdzie mieszkasz.



Dzień dobry. Nazywam się Krzysztof Choromański. Jestem naukowcem w Google Brain Robotics Team w Nowym Jorku, czyli team robotyczny. Poza pracą w Google,  wykładam też w Columbia University. Łączę się tutaj z pięknego New Jersey, w którym pracuję zdalnie w okresie pandemii.




Co ostatnio fajnego przeczytałeś i dlaczego akurat warto to przeczytać? 





W sumie nie ma takiej jednej specjalnej, natomiast jest jedna z pozycji, do której czasami wracam to „Sen o teorii ostatecznej” Stevena Weinberga. Tę książkę wiele lat temu kupił mi ojciec i wracam do niej. Bardzo fajne opowiadanie o dążeniach ludzi do stworzenia teorii wszystkiego. Pokazana jest bardzo fajna perspektywa jednego z czołowych fizyków amerykańskich, zdobywcy Nagrody Nobla. Odpowiedzialnego w dużej mierze za unifikację (przynajmniej częściową) oddziaływań, więc duży krok w kierunku stworzenia tej teorii wszystkiego. Często do tej książki wracam i różne fajne wątki są w niej poruszane, więc polecam wszystkim pasjonatom – bardzo fajna pozycja.



Bardzo dziękuję. Jesteś naukowcem. Już troszkę powiedziałeś, gdzie pracujesz, czym się zajmujesz, ale spróbujmy teraz to zgłębić i zrozumieć  więcej. Opowiedz o swoim doświadczeniu naukowym.



Pracuję w „robotycznym teamie”, natomiast całe doświadczenie naukowe jest szersze. Moja poważna przygoda naukowa zaczęła się w Columbia University, gdzie przyjechałem do Nowego Jorku studiować  teorię grafów, to była abstrakcyjna matematyka, niekoniecznie z zastosowaniami.



Więc nastąpiła fajna transformacja do uczenia maszynowego, czym się zajmuję teraz. Wszystko się bardzo fajnie zaczęło od teorii grafów. Potem w którymś momencie, już po zakończeniu doktoratu, wybrałem  maszynowe uczenie jako  kierunek, który wydawał się w 2013 r., kiedy kończyłem doktorat, bardzo perspektywiczny. Natomiast teraz rzeczywiście ta rewolucja jest już na dobre i ciężko sobie wyobrazić współczesną informatykę bez maszynowego uczenia. 



Więc to doświadczenie naukowe obejmuje zarówno czystą matematykę czy abstrakcyjną matematykę, czym zawsze byłem zafascynowany, w zasadzie od najmłodszych lat. Ale też bardzo praktyczne dziedziny takie  jak właśnie maszynowe uczenie czy robotyka, do których paradoksalnie ta abstrakcyjna matematyka jest bardzo przydatna. Jeżeli chce się właśnie pracować nad tymi algorytmami w sposób trochę bardziej systematyczny, kiedy nie zgadujesz co działa, ale starasz się rzeczywiście zrozumieć dlaczego działa, co polecałbym wielu osobom, które pracują właśnie nad maszynowym uczeniem. Podejście właśnie może takie bardzo rygorystyczne, matematyczne. Więc w skrócie tak to moje doświadczenie naukowe wygląda 🙂



Wspomniałeś, że zajmowałeś się matematyką, w szczególności grafami, ale później pojawił się ML. Ciekawy jestem, jakie były w głowie pytania, dylematy, być może były jakieś inne opcje do rozwoju? Jak te decyzje wyglądały.



To była trudna decyzja, bo po doktoracie miałem bardzo dobry czas. Był to jeden z najpiękniejszych okresów w moich życiu. Natomiast pytanie było też: co dalej chcę robić? Oczywiście kwestia dalszej pracy w teorii grafów to było coś co mnie zawsze ekscytowało, ale zdawałem sobie też sprawę, patrząc na to co moi znajomi robili, że jest ileś tam dziedzin, które potencjalnie mogą okazać się zdecydowanie ważniejsze, jeśli chodzi właśnie o rozwój technologii i wpływ na to jak żyjemy. Abstrakcyjna teoria grafów nie wpływa na to w taki sposób jak chociażby maszynowe uczenie dziś. 



Więc powiedziałbym, że wybrałem właśnie maszynowe uczenie, zamiast np. „postdoca”, na którym zajmowałbym się teorią grafów, ze względu na to, że po pierwsze było w miarę oczywiste, że maszynowe uczenie zdominuje wiele dziedzin życia, a po drugie (to było też bardzo istotne) zrozumiałem bardzo szybko, że ta elegancka matematyka, o której właśnie Weinberg opowiada w swojej książce, o której wspomniałem na początku i która mnie zawsze pasjonowała od najmłodszych lat, jest bardzo przydatna także w maszynowym uczeniu.




Ale jest więcej metod, które mogą być wykorzystane. Ta teoria grafów, to nad czym pracowałem to było bardziej takie kombinatoryczne podejście, natomiast w maszynowym uczeniu może nie stosuje się teorii grafów w takim sensie, w jakim wykorzystywałem podczas doktoratu, ale stosuje się mnóstwo pięknych matematycznych rzeczy. Jest rachunek prawdopodobieństwa, jest też teoria grafów w trochę innym sensie niż w tym, którym ja się zajmowałem podczas doktoratu.




Jest mnóstwo innych ważnych dziedzin, którymi się zawsze interesowałem jeszcze przed rozpoczęciem doktoratu, więc stwierdziłem, że po prostu także z czysto matematycznego punktu widzenia to będzie ekscytujące. Natomiast tym dodatkowym motywatorem było to, że będę mógł tę teorię sprawdzać w praktyce, nie ma nic piękniejszego niż zobaczyć, że robot działa. 



W tamtym czasie, kiedy wybierałem Google, nie wiedziałem jeszcze o robotycznym team’ie. Natomiast już miałem tę intuicję, że maszynowe uczenie to będzie duża rzecz i tak się stało w ciągu następnych kilku lat.


Google Brain Robotics



Czyli dobra decyzja. Już pracujesz od ponad 7 lat w Google. Obecnie w zespole Google Brain Robotics. Fajnie byłoby, żebyś opowiedział troszkę więcej, czym zajmuje się zespół, jaki jest jego cel, jakie problemy rozwiązujecie i jakie macie osiągnięcia na swoim koncie.



Brain Robotics to jest naturalna konsekwencja tej rewolucji maszynowego uczenia, która dzieje się na naszych oczach, ponieważ następnym konkretnym, naturalnym krokiem po tym wszystkim, co udało się zrobić w maszynowym uczeniu (jesteśmy cały czas, mimo wszystko daleko od stworzenia sztucznej inteligencji) jest zobaczenie, czy roboty, do których stosowało się bardziej takie standardowe metody, mogą korzystać właśnie z tej rewolucji. Czy roboty mogą korzystać z sieci konwolucyjnych, żeby widzieć w jaki sposób zastąpić taką standardową control theory (która była wykorzystywana w robotyce w czasie przed maszynowym uczeniem) nowymi technikami, które okazały się niezwykle efektywne w klasycznym Data Science. 




To jest taka myśl przewodnia tego teamu. Jesteśmy bardzo researchowo zorganizowani. Staramy się bardzo dużo publikować. Dużo rzeczy tak naprawdę dzielić ze środowiskiem naukowym, ponieważ jest to researchowe podejście, więc staramy się właśnie kontaktować z tymi ludźmi, którzy są właśnie na zewnątrz, a też pracują właśnie w robotyce. Oczywiście konferencje są bardzo dobrym miejscem na coś takiego. 




Myśl przewodnia to jest te wszystkie dobre rzeczy, których się nauczyliśmy, te techniki, sieci neuronowe, które okazały się tak istotne w maszynowym uczeniu, jakoś przekuć ten sukces na sukces w robotyce. Więc to jest najważniejszy temat ogólny, natomiast oprócz tego to co wydaje się bardzo istotną rzeczą to to, że mamy fizyczne roboty, więc tych algorytmów, które produkujemy nie musimy testować tylko i wyłącznie w symulatorach, ale możemy na prawdziwych robotach. Oczywiście każdy kto się zajmuje robotyką wie, że tak naprawdę symulator, a prawdziwe urządzenie to są dwie różne rzeczy.




Można mieć algorytm, który dobrze działa na symulatorze, ale przenieść potem to na prawdziwego robota to z reguły jest to trudna rzecz i wymaga dużo wysiłku. Więc mamy możliwości robić to, mamy naszą flotę robotów i dlatego to połączenie podejścia teoretycznego do rozwiązywania trudnych, algorytmicznych problemów jest bardzo praktyczne. Mamy te fizyczne roboty, to jest właśnie taki dobry balans, który mamy w teamie. Tak to wygląda właśnie z lotu ptaka nasza działalność. 







Powiedz jeszcze tak od kuchni, jak wygląda życie naukowca w takim zespole? Jak wygląda przeciętny dzień, jak się definiuje problem, ile na przykład trwa taki sprint?



Różnie to wygląda. Tych projektów jest dużo, a problemów naukowych, nad którymi pracujemy jest sporo, ponieważ team też jest duży. To są ludzie i na Wschodnim Wybrzeżu i na Zachodnim Wybrzeżu. Są też ludzie spoza robotycznego teamu, którzy współpracują z nami w Google. Też właśnie środowisko naukowe poza Google z Uniwersytetów. 




Generalnie dobre fajne projekty trwają przynajmniej kilka miesięcy, ale taki projekt naukowy może trwać bardzo długo. Największym projektem naukowym, w którym siedzimy od powstania teamu to jest właśnie maszynowe uczenie dla robotyki. Natomiast mniejsze projekty to zależy bardzo dużo od tego kto siedzi akurat nad projektem, jak duży jest ten team, który pracuje nad tym konkretnym projektem, ale z reguły to jest przynajmniej ileś miesięcy, ponieważ to jest kwestia wymyślenia algorytmu, z reguły przetestowania na jakimś symulatorze na początku, ale największą frajdą jest jak da się to pokazać na prawdziwym robocie.




To też może trwać. Czasami właśnie największą sztuką jest przenieść te pomysły na prawdziwe urządzenie. Więc projekty mogą trwać od kilku miesięcy do kilku lat, więc duża różnorodność, bo dużo tych problemów też jest. Są problemy związane z manipulation, z robotami, które nawigują w terenie, które się przemieszczają i tak naprawdę różne techniki są wykorzystywane, żeby do tych problemów podejść i to są z reguły projekty, które trwają dłuższy czas. 


Attention Mechanism

Jasne, rozumiem. Teraz porozmawiajmy właśnie o jednej takiej publikacji, której jesteś jednym z głównych autorów: Rethinking Attention with Performance. Ale zanim zaczniemy o tym mówić, zróbmy kilka kroków wstecz, aby każdy kto nas słucha trochę lepiej zrozumiał kontekst. Spróbujmy najpierw przypomnieć czym jest tzw. Attention Mechanism? Dlaczego on akurat jest taki pomocny w uczeniu maszynowym?




Attention Mechanism to jest technika, która jest znana w maszynowym uczeniu od wielu wielu lat. Tak naprawdę, mimo, że Transformersy stały się architekturami, które prawdopodobnie najlepiej by promowały Attention w środowisku ludzi zajmujących się maszynowym uczeniem. Idea jest prosta – to jest próba bezpośredniego modelowania interakcji, związków pomiędzy elementami w jakimś potencjalnie bardzo długim ciągu. Ten ciąg to może właśnie być ciąg słów, tak jak to jest w NLP.




To może być sekwencja pikseli czy patchów. To mogą być frames tak jak to jest w wideo. To jest próba modelowania związków pomiędzy właśnie tymi elementami za pomocą czegoś co się nazywa softmax kernels, który jest po prostu jakąś tam miarą podobieństwa pomiędzy obiektami. Ta miara podobieństwa jest w większości architektur modelowana i uczona za pomocą optymalizacyjnych algorytmów. 




Czyli idea polega na tym, żeby te związki modelować bezpośrednio. Pomysł jest taki, że po pierwsze mnóstwo problemów w maszynowym uczeniu ma taki charakter sekwencyjny czyli można te dane rozpatrywać jako ciągi tych elementów, właśnie z tymi związkami, które pełnią kluczową rolę w zrozumieniu semantyki tych danych. Czyli np. jeżeli ma się zdanie to oczywiście związki między słowami w zdaniu czy w paragrafie czy dłuższym tekście, rozdziale, książce – modelowanie tych związków wydaje się być kluczowe do zrozumienia znaczenia tekstu. To modelowanie można zrobić bezpośrednio za pomocą atencji, więc to jest główna myśl przewodnia to co stoi za tym mechanizmem. 


Jak działają Transformery?



Kolejnym takim tematem są Transformery, które powstały nie tak dawno – w 2018 r. One faktycznie zaczęły robić w pewnym sensie rewolucję, rozpoczęło się od NLP, ale do tego jeszcze dojdziemy. Ale najpierw takie pytanie: jak sobie tłumaczysz bardziej na poziomie intuicji, nie tyle jak to działa, ale dlaczego to działa? Było wiele różnych prób, kombinacji i nie wszystko wystrzeliło, to akurat tak. Dlaczego?



Kluczowym mechanizmem jest mechanizm atencji, o którym właśnie mówiliśmy. Tutaj tak naprawdę intuicją, którą ja mam jest taka, że w przeciwieństwie do wielu innych architektur, które operowały na sekwencjach elementów, na danych, które można było naturalnie interpretować jako uporządkowane ciągi elementów, w przeciwieństwie do wielu innych architektur (np. LSPM) te związki pomiędzy tymi poszczególnymi częściami składowymi – czy to są właśnie te słowa w tekście czy piksele w obrazie – są modelowane bezpośrednio.



Wcześniej przed atencją, Transformersami próbowano w jakiś sposób ominąć to, także dlatego, że jest to dosyć kosztowne, ale także dlatego, że nie byliśmy przygotowani na algorytmy, które wykorzystują atencję. Teraz jest inaczej. Dlatego wcześniejsze podejście polegało na tym, że próbowało się znaczenie tego ciągu skompresować do jakiegoś ukrytego stanu, który miał sumaryzować cały tekst. To jest to co właśnie np. robią LSPM.




Problem polega na tym, że ciężko jest skompresować (nawet jeżeli uczysz się tej kompresji, tak jak to jest w algorytmach maszynowego uczenia) cały tekst czy obraz w ukrytym stanie, który jest w miarę kompaktowy. 

W podejściu atencyjnym, czy właśnie w Transformersach, które atencję wykorzystują pomysł jest zupełnie inny. Zamiast tego pojedynczego, ukrytego stanu, którego ciężko się nauczyć, trzyma się informacje, ukryte stany tych wszystkich elementów części składowych. Na pierwszy rzut oka to się może wydawać bardzo nieefektywne, ponieważ tych części składowych jest dużo, ale okazuje się właśnie, że z rozwojem technologii można było to zrobić bardzo efektywnie, a to co się otrzymuje to jest to ekspresywność tej całej architektury.




To, że możemy znaczenie tych poszczególnych elementów bezpośrednio składować i modelować relacje między nimi bezpośrednio powoduje, że jesteśmy w stanie zrozumieć lepiej semantykę tych danych, więc to jest intuicja. Wielu ludzi pracujących nad atencją i Transformerami ma, natomiast oczywiście intuicja to jest jedna rzecz, natomiast połączenie tego w całość (ponieważ Transformersy to nie jest tylko atencja, ale jest mnóstwo różnych bloków, które razem współgrają ze sobą) jest rzeczą nietrywialną i tak jak generalnie w historii maszynowego uczenia bywało, wiele tych rzeczy to jest jakaś intuicja, ale też dużo różnych prób, podejścia i któraś architektura po prostu nagle zaczyna działać. Ale właśnie intuicja wiąże się z bezpośrednim modelowaniem relacji pomiędzy elementami składowymi. 





Gdzie można wykorzystać Transformery?


Zatem jeszcze jedno pytanie intuicyjne, koncepcyjne. Tak jak już było wspomniane, Transformery powstały w takiej dziedzinie NLP m.in. BERT to była taka bardziej kluczowa architektura. Później okazało się, że da się to adaptować. Najpierw poszło w kierunku computer vision albo może nawet muzyka w tej dziedzinie podziałać. To jest ciekawe. Jak interpretujesz ten fakt? Czy to jest jakieś takie prawo natury, w sensie, że udało się stworzyć pewien mechanizm/architekturę, która łapie pewne zależności w sposób bardziej ogólny? Dlaczego to działa akurat w różnych dziedzinach, które nie były na początek przemyślane, że tam powinny działać, ale akurat też wystrzeliły?




Wydaje mi się, że to jest po prostu jeszcze jeden z wielu przykładów na skuteczność matematyki w opisie otaczającego nas świata. Jeszcze jeden przykład, że metoda, która na początku została wymyślona być może właśnie z zamysłem o konkretnym zastosowaniu okazuje się zdecydowanie bardziej uniwersalna. Tak naprawdę, jak się popatrzy na te inne aplikacje to struktura matematyczna innych problemów, często jest bardzo podobna do tej struktury problemu tego NLP modelowania języka na przykład. Jeżeli się patrzy na zastosowanie w images to już wspomniałem o tym, że te słowa można zastąpić pikselami albo grupami pikseli. Relacje między nimi wydaje się, że powinny mieć kluczowe znaczenie dla zrozumienia semantyki obrazu. Tak jak relacje pomiędzy słowami w zdaniu mają kluczowe znaczenie dla zrozumienia sensu zdania. 



Dlatego te techniki fajnie się transferuje z jednej dziedziny do drugiej i w tym bym upatrywał sukces. Oczywiście to nie jest tak, że Transformer, który się zastosuje w NLP można czasami jeden do jednego od razu zmapować do architektury, która będzie od razu działać w innej dziedzinie. Te rzeczy się adaptuje jakoś. Jakieś tam dodatkowe techniki, które się stosuje, biorąc pod uwagę konkretne zastosowanie, ale rzeczywiście główne algorytmiczne koncepcje pozostają bardzo podobne. W przypadku Transformersów to jest jest właśnie ta atencja, bezpośrednie modelowanie związków pomiędzy tymi częściami składowymi. 



Takim bardzo fajnym przykładem tutaj jest bioinformatyka. To jest przykład, że wydawałoby się, że może ma niewiele wspólnego z takimi klasycznymi zastosowaniami Transformersów, a okazuje się właśnie, że można zastąpić te słowa w zdaniu poprzez aminokwasy w cząstce białka i relacje pomiędzy tymi aminokwasami można modelować w zasadzie bardzo podobnym algorytmem do relacji między słowami w zdaniu. 




To jest jeszcze jeden przykład na uniwersalność matematyki i tego właśnie co Weinberg w swojej książce mówi, że w jakiś sposób tak zmierzamy do tej unifikacji, jest ileś tych idei, które pozwalają upraszczać opis świata. Tutaj taka mała unifikacja też następuje w maszynowym uczeniu, co tylko odzwierciedla jak zbudowany jest świat. Dzięki temu potrafimy tak dużo rzeczy zrobić w nauce, ponieważ byłoby straszne gdybyśmy musieli dla każdego nowego problemu wymyślać nowy algorytm, nową metodę od samego początku. Bardzo nieefektywne, a jakimś cudem okazuje się, że te idee się bardzo fajnie transferuje. To stanowi też o sukcesie nauki. Więc tak patrzę na uniwersalność Transformersów w maszynowym uczeniu. Tak długo jak masz dane o strukturze sekwencyjnej, te architektury się bardzo przydają. 




Transformery same w sobie, jak już dzisiaj powiedziałem, że to była taka rewolucja jeżeli chodzi o NLP, ale też w computer vision. Natomiast wejdźmy teraz bardziej w krytykę, bo każde rozwiązanie ma swoje wady. Jakie problemy mają Transformery i dlaczego powstał Performer?



Powiedziałem, że to co stanowi o sukcesie Transformersów w jakimś sensie jest też najsłabszą stroną. Transformersy zrywają z tradycją opisu właśnie tego złożonego ciągu zależności poprzez bardzo skompresowany stan. Ale oczywiście ceną, którą płaci się za to, że te ukryte stany trzyma się dla tych wszystkich elementów ciągu jest kwestia efektywności. Jeżeli te ciągi są bardzo długie – przynajmniej tysiące elementów albo nawet miliony – to oczywiście modelowanie wszystkich zależności jest po prostu niemożliwe. Jeśli chodzi właśnie o compute timespace.



Po prostu fizycznie nie jest możliwe nawet przy dużych zasobach, na których można trenować te architektury, one mają z reguły przynajmniej miliony i biliony parametrów. Przy tak dużych zasobach po prostu bijemy głową o ścianę, jeżeli chcemy modelować wszystkie zależności w bardzo długich ciągach. 



A wydaje się, że takie długie ciągi naturalnie powstają, jeżeli mówimy o zastosowaniach w maszynowym uczeniu. Jednym przykładem oczywiście jest Vision, piksele w obrazie, w high resolution image to tych pikseli będzie w milionach i modelowanie zależności pomiędzy każdą parą pikseli jest po prostu niemożliwe.



Innym przykładem będzie bioinformatyka. Wspomniałem o białkach. Białka to z reguły kilkaset aminokwasów. Ciąg o długości kilkuset elementów nie jest problemem dla Transformersów, ale przejdźmy teraz od białek do genomiki. Modelujemy transkrypcję genów czyli to mapowanie genów do białek, które powstają. Genom jest bardzo długi, miliardy elementów – nie jest możliwe modelowanie tych wszystkich zależności bezpośrednio za pomocą Transformersów i to jest problem.



No i mamy problem skalowalności dotyczący zdecydowanie dłuższych ciągów. Także uczynienie Transformersów architekturami, z których można korzystać nawet jeżeli nie ma się dużych zasobów obliczeniowych to jest myśl założycielska Performersów.


Przypominam sobie, jak jakiś czas temu uczyłem się – duże O i takie tam różne historie. To było na początek dla mnie bardziej nudne, bo w sumie nie było wiadomo po co to wszystko. A później jak już zaczynasz pracować np. z danymi, tzw. big data to tutaj masz taki wybór, że mniej optymalne rozwiązanie potrafi się liczyć godzinami albo nawet dniami lub tygodniami, a bardziej zoptymalizowane minuty albo nawet sekundy, więc tutaj od razu widać taką wartość dodaną. Ale też jest drugi wymiar, jak pamięć. 




Tutaj fajnie, żeby to jeszcze bardziej wybrzmiało, w szczególności jak mówimy o kartach graficznych. Co prawda Nvidia trochę te rzeczy już naprawia, bo wcześniej to była jeszcze większa bolączka. Mam na myśli to, że karty GPU zwykle mają dość mało tej pamięci dostępnej i ten wyjątek, jeden z najsłynniejszych OOM (Out Of Memory) jest mega męczący.



Tak, zgadza się.

To chciałem, żeby też wybrzmiało, bo w sumie jeżeli chodzi o ten Performance liczenia, że trochę dłużej się liczy to jest problem, ale powiedzmy da się poczekać czasem, a jeżeli mówimy o pamięci to po prostu jest bloker. Jak brakuje pamięci to wszystko się zatrzymuje i nie działa. Więc dlatego to jest aż tak ważne, żeby to uruchomić.



Tak, Out Of Memory to jest koszmar ludzi, którzy próbują zastosować tego typu architektury dla bardzo skomplikowanych problemów, gdzie te ciągi są długie. Taki konkretny przykład z robotyki – atencję, która jest kluczowym elementem Transformersów, próbuje się wykorzystać do kompresji obrazów dla robotów. Czyli mamy robota, który dostaje jako input vision obraz np. z kamery i próbuje ten obraz skompresować, żeby zrozumieć tak naprawdę jakie części tego obrazu są kluczowe dla podejmowania decyzji w określonej chwili.




Można próbować właśnie tę kompresję robić za pomocą atencji. Jest wiele bardzo fajnych prac, które to pokazują. Natomiast tak naprawdę nie jest możliwe modelowanie tych pixel to pixel atencji za pomocą standardowego mechanizmu atencji. Można robić fajne rzeczy z obrazami powiedzmy 100×100, natomiast jeżeli mamy coś rzędu 1024×1024 i chcesz modelować pixel to pixel attention to jest to w zasadzie nie do zrobienia w standardowy sposób.



 

Poza tym, jeszcze dodatkowy problem związany z pamięcią i z czasem wykonania, nawet jeżeli zakładasz, że w jakiś sposób, jakimś cudem możesz tą skomplikowaną atencję policzyć. Czekasz powiedzmy tydzień czy miesiąc i to się liczy, korzystając z naprawdę bardzo dużych zasobów obliczeniowych, to potem to musisz często gdzieś to wstawić. W robotycznych zastosowaniach wstawiany na robota. To jest też problem, tzn. nawet przy dużych zasobach, koniec końców down screen application, gdzie to ma być zastosowane.




Wstawienie architektury, która ma miliony, biliony parametrów, która zjada kwadratową pamięć i potrzebuje czasu, żeby procesować te dane jest szczególnym problemem w robotyce, gdzie ten inference time musi być bardzo szybki, żeby te decyzje podejmować natychmiast. Oczywiście zasoby też pamięciowe takiego robota są małe. Nie da się olbrzymiej architektury przenieść 1:1 na robota. 




Transformery w Machine Learning

ograniczenia i optymalizacje


Tak jak powiedzieliśmy Performersy przede wszystkim skupiają się na wydajności Transformerów, więc stąd jest też ta nazwa. Natomiast to nie były pierwsze próby, kiedy ludzie próbowali jakoś usprawnić Transformery. Były różne podejścia, ale z różnych powodów to nie wystrzeliło. Jakie miały wady te poprzednie próby naprawy Transformerów i dlaczego akurat Performersom to się udało?

Dużo jest podejść do stworzenia nie tylko efektownych, ale też efektywnych architektur transformerowych.

Rzeczywiście jest cała klasa algorytmów polegających na sparsyfikacji atencji. W jakimś sensie jest to takie najbardziej intuicyjne podejście, tzn. jeżeli nie potrafi modelować wszystkich zależności pomiędzy częściami składowymi to modeluję tylko niektóre z nich.



To, które zależności będą modelowane jest albo kwestią, której algorytm się uczy, albo zakodowaną np. takim najbardziej trywialnym podejściem byłoby po prostu powiedzenie, że jeżeli mamy sekwencję elementów to elementy, które są w jakimś sensie koło siebie w tej sekwencji to relacje między nimi powinny być modelowane. Natomiast elementy, które nie są koło siebie – niekoniecznie.




Czyli np. jeżeli mamy zdanie to słowa, które występują czy jakiś paragraf, tekst, pewnie jakiś związek mają. Słowa, które występują daleko od siebie, mogą mieć lub nie mieć, ale jeżeli nie wiemy jak modelować efektywnie to tego nie róbmy. 



Tego typu podejście sprawdza się w wielu zastosowaniach, natomiast ma oczywiście kluczowe wady, tzn. jest wiele problemów, gdzie te relacje pomiędzy odległymi elementami w ciągu są bardzo istotne. Konkretnym przykładem jest choćby właśnie modelowanie białek. Mamy sekwencję aminokwasów, jeżeli o tym białku się myśli jak o sekwencji to rzeczywiście mamy fajny input dla Transformersa.




Wydaje się, że aminokwasy, które są koło siebie, relacje między nimi są najistotniejsze. Natomiast jeżeli się uzmysłowi sobie, że takie białko może się składać, ma 3d strukturę i aminokwasy, które w tej zwektoryzowanej, sekwencyjnej wersji są daleko od siebie, mogą znaleźć się bardzo blisko od siebie, bo białko się zwija to nagle się okazuje, że właśnie te parę aminokwasów, które są w tej zwiniętej strukturze blisko siebie, a były daleko w tej zwektoryzowanej, odgrywają olbrzymią rolę w zdefiniowaniu kształtu takiego białka. A kształt tego białka, jak wiemy ucząc się od biologów, ma kluczowe znaczenie dla zrozumienia jego funkcjonalności. 

Więc jest mnóstwo problemów. Tutaj podałem przykład z bioinformatyki, gdzie modelowanie tych związków między odległymi elementami jest bardzo istotne. Właśnie jest to trudne do osiągnięcia z tymi metodami, gdzie się sparsyfikuje. Oczywiście można próbować nauczyć się, które z tych odległych relacji modelować, natomiast w praktyce jest to trudne.





Poza tym, dodatkowym problemem jest, że taka architektura, której uczy się w ten sposób, nie może zostać wykorzystana do usprawnienia czy wzmocnienia architektury, którą trenowało się zwykłym algorytmem. Czyli np. jeżeli team X skorzysta z jakiejś architektury i modeluje ten Transformers, trenuje go przez tydzień to nie będzie w stanie zrobić dodatkowego treningu z tą nową Spars Architecture, ponieważ te architektury nie są kompatybilne. To jest właśnie duży problem tego podejścia korzystającego ze sparsyfikacji. 



Oczywiście jest wiele sytuacji, w których ciągi są na tyle krótkie, że to nie jest problem i nawet nie trzeba sparsyfikować. Ale kiedy okazuje się, że trzeba sparsyfikować to zaczynają się schody. Poza tym te wszystkie metody sparsyfikacji, one nie aproksymują tak naprawdę atencji dokładnie – tej standardowej atencji. Raczej zamieniają tę atencję w trochę prostszą atencję, gdzie mnóstwo elementów jest wyzerowanych, mnóstwo relacji się nie modeluje. Oczywiście ta prostsza atencja jest słabsza też w tym sensie, że jakość takiego Transformersa różni się od Transforemersa, który by się trenował w sposób standardowy, ale nie można tak, ze względu computational costs. 

To są tego typu problemy związane z sparsyfikacją. 



Jak czytałem publikację, o której teraz właśnie rozmawiamy to z jednej strony było czuć, że była przygotowana przez naukowców – tam jest dużo różnych matematycznych wzorów. Ale z drugiej strony było bardzo czuć, że to podejście jest takie praktyczne, czyli sam problem, który jest rozwiązywany jest praktyczny i też takie zdania, które można było złapać pokazują sposób myślenia.




Na przykład tam było zaznaczone, że Performer jest w 100% kompatybilny ze zwykłym Transformerem albo np. była taka twarda gwarancja matematyczna, że to rozwiązanie, to prawdopodobieństwo, będzie stabilne. Więc spróbujmy wyjaśnić tak w praktyce, co to oznacza  i dlaczego akurat to było wyróżnione.




Performersy opierają się na bardzo prostej idei. To jest idea dekompozycji tej atencji na części składowe, które są prostsze niż ta standardowa atencja. Czyli jest to próba dekompozycji atencji w taki sposób, że te części składowe połączone znowu razem w jakiś tam aproksymacyjny sposób, dobrze przybliżają tę prawdziwą atencję, ale umożliwiają właśnie zdecydowanie bardziej efektywne policzenie tej atencji.




Prostota tego pomysłu polega na tym, że (do tego odnosimy się jak mówimy o kompatybilności) tak naprawdę jedyna rzecz, którą się zmienia w Performersach to sposób liczenia atencji. Wszystkie pozostałe elementy Transformersów są takie jak w standardowych architekturach albo jakiś tam zmodyfikowanych architekturach. Jednym słowem, można wziąć sobie swój ulubiony Transformer (a teraz tych różnych wersji Transformersów na rynku jest mnóstwo) i w zasadzie jedyną rzecz, którą się robi to się podmienia właśnie sposób liczenia tej atencji na ten moduł, który jest wykorzystywany w Performersach.



Kompatybilność polega właśnie na tym, że bardzo łatwo można to podmienić, a także na tym, że sposób modelowania relacji pomiędzy elementami, pozostaje dokładnie taki sam jak w oryginalnej architekturze. To znaczy w szczególności modelowane są wszystkie relacje, natomiast nie w sposób bezpośredni, tzn. nie materializuje się tego bezpośrednio, nie trzyma się tych wszystkich relacji bezpośrednio w pamięci, natomiast one są tak naprawdę wszystkie modelowane w sposób bardziej kompaktowy za pomocą tej dekompozycji, o której wspomniałem.



Dzięki temu można te architektury czy ten algorytm używać do kontynuowania trenowania architektur, które trenowało się wcześniej innym algorytmem. Po prostu podmieniając tylko sposób, w jaki tę atencję się liczy. Czyli tak naprawdę prostota, fakt, że nie trzeba też wszystkiego budować od początku to wydaje mi się jest kluczowy element. Jest wiele architektur na rynku, ale wiele z tych innych podejść jest dosyć skomplikowanych z praktycznego punktu widzenia.



Natomiast tutaj rzeczywiście mamy bardzo jasne podejście do tego, w jaki sposób modyfikować te architektury – taki bardzo chirurgiczny sposób. Nie zmienia się wszystkiego, zmienia się tylko jeden konkretny element, który pełni kluczową rolę w Transformersach, jeśli chodzi o otrzymanie dobrej jakości modeli.



To jest właśnie ta kompatybilność i my to trenowaliśmy po prostu na wielu różnych problemów, także właśnie z bioinformatyki. Dla nas było istotne, żeby właśnie wymyślić coś, co będzie łatwe do użycia. Będziesz mógł wziąć swoją architekturę, dokonać tej małej modyfikacji i będziesz mieć performance variance tej swojej architektury, z tymi wszystkimi zaletami, które płyną z liniowej zamiast kwadratowej złożoności czasowej i pamięciowej.



A propos gwarancji też może coś dodasz?

Mamy dosyć fajną analizę teoretyczną tego algorytmu, więc okazuje się, że ten nasz sposób przybliżania… chociaż ta atencja, którą liczymy nie jest to dokładnie ta atencja w regularnym Transformersie, ale jej aproksymacja, natomiast ona jest dosyć dokładna i w artykule podajemy liczby, kwantyfikujemy to dosyć dokładnie, jak dokładna ona jest.




Też jest to co nazywamy unbiased czyli tak naprawdę przybliżanie atencji jest algorytmem proabilistycznym, natomiast wartość oczekiwana tej atencji, którą wylicza się tym algorytmem jest dokładnie tym, co chcemy, czyli tą regularną atencją. A błąd czyli wariancja, może być dosyć dokładnie policzona. To jest duża różnica w porównaniu z innym podejściem. To jest tak naprawdę zastąpienie standardowego mechanizmu przez mechanizm aproksymacyjny z bardzo mocnymi gwarancjami teoretycznymi. Tam jest wiele różnych, dodatkowych technik, które pełnią bardzo ważną rolę w osiągnięciu algorytmu, który właśnie dosyć dokładnie aproksymuje tę regularną atencję. W szczególności algorytmy z dziedziny, którą nazwałabym Quasi-Monte Carlo. 



Techniki, które wykorzystywaliśmy wcześniej, w wielu innych problemach, ale matematyka jest uniwersalna i okazało się po raz kolejny, że pełnią istotną rolę także tutaj. Tak więc powiedziałbym, może nie skromnie trochę, że jeśli chodzi o gwarancje teoretyczne tej atencji, którą proponują Performersy to pod względem teoretycznym to jest moim zdaniem jedna z niewielu prac, gdzie jest rzeczywiście wysiłek, żeby zrozumieć też dlaczego ten mechanizm działa, a nie tylko pokazać, że działa. Sądzę, że wiemy dosyć dokładnie, dlaczego działa, częściowo wyjaśniając to ze względu też na limit stron w artykule.




Tutaj dodam oczywiście, że te wszystkie szczegóły matematyczne to jak najbardziej polecam przeczytać publikację, bo tam faktycznie fajnie można spędzić czas czytając różne szczególiki. Ale z drugiej strony jednak chciałbym trochę dopytać o kilka rzeczy, które zresztą wprost chyba nie są tak jednoznacznie powiedziane, bo to jest trochę o czymś innym. Czyli to co już dotychczas było powiedziane to było to, że Transformery same w sobie podbijają rynek, to po prostu działa, ale są tzw. pewne bottlenecki , które są mało wydajne czyli ten mechanizm atencji.




Teraz to co udało się tu stworzyć w sposób chirurgiczny – wymienić ten komponent, który jest za wolny na ten, który nie jest za wolny. To jest taka pełna aproksymacja, ale też jak powiedziałeś to przed chwilą, z punktu widzenia teoretycznego da się udowodnić, że to działa stabilnie, dokładnie i na tym też polega właśnie wartość dodana, jeżeli chodzi o tą pracę naukową.



Natomiast jeżeli chodzi o parametry. Chodzi o znalezienie tzw. kernela, który próbuje to aproksymować. Tam są różne parametry, np. takie h(x), który domyślnie był tam jako 1. Też liczba funkcji fw albo omega. Tak na poziomie intuicji, najważniejsze wnioski, które udało się wyciągnąć właśnie eksperymentując przy tej publikacji i jak te parametry dobierać?



Aproksymując tę atencję. Tak jak wspomniałem wcześniej, modelowanie atencji to jest po prostu bezpośrednie modelowanie zależności pomiędzy elementami. Do modelowania zależności pomiędzy elementami musimy mieć jakąś definicję podobieństwa między elementami. Jak dwa elementy są związane ze sobą to chcemy mieć jakąś miarę podobieństw. To podobieństwo w maszynowym uczeniu nazywa się kernel.




To jest po prostu fajne słowo dla funkcji, która liczy podobieństwo między elementami. Ale oczywiście w maszynowym uczeniu, tę funkcję podobieństwa się też trenuje. Trenuje się pewne parametry, natomiast jest pewna struktura, której się nie trenuje.  Ta struktura to jest jakby ten szkielet tej funkcji podobieństwa, szkielet kernela. W tradycyjnych Transformersach ten szkielet jest opisywany przez coś co się nazywa softmax kernel. Nie wchodząc w szczegóły jest to taki bardzo fajny szkielet, na którym można budować właśnie te funkcje podobieństwa, natomiast ten szkielet jest niesłychanie efektywny w praktyce. Mówisz o tych różnych funkcjach h itd. – bawiąc się tymi różnymi funkcjami można te szkielety zmieniać.




Czy chcemy te szkielety zmieniać czy nie to jest pytanie. Ten softmax kernel szkielet jest bardzo dobry. On w praktyce działa niesłychanie dobrze i dlatego jednym z dużych wyzwań, które mieliśmy jak pracowaliśmy nad Performersami to mieć pewność, że co prawda możemy udostępnić inne szkielety i cały czas mieć tę liniową atencję zamiast kwadratowej, ale że jesteśmy w stanie korzystać teraz też z tego szkieletu softmax kernel, który okazuje się niezwykle efektywny do modelowania zależności. 




Tak naprawdę, jednym z dużych teoretycznych moim zdaniem fajnych pomysłów w tej pracy to jest efektywny sposób modelowania tego softmax kernel szkieletu. To jest związane właśnie z konkretnym wyborem tego h, tych parametrów o których mówisz. Jak się wczyta w pracę to tam jest powiedziane, że możemy modelować ten softmax kernel szkielet za pomocą losowych Random features, natomiast jest nowy mechanizm, z którego korzystamy tam.




Standardowy mechanizm, który tak naprawdę też zaproponowaliśmy w pracy, ale okazało się, że nie działał dobrze to jest mechanizm, który korzysta z trygonometrycznych funkcji do modelowania tego szkieletu. On w praktyce nie jest stabilny, tzn. właśnie okazuje się, że jak się próbuje trenować Transformersy tym mechanizm, on się cechuje za dużym błędem, za dużą wariancją. Ten nowy mechanizm opiera się na exponential functions do modelowanie właśnie tego szkieletu to są właśnie te parametry, które się wybiera i jest zdecydowanie bardziej stabilny. Tak naprawdę jest pierwszym efektywnym mechanizmem modelowania tego softmax szkieletu w taki sposób, że cała architektura, cały mechanizm atencji jest ciągle liniowy.




Tak jak to jest w innych wersjach Performersa, gdzie korzystamy z prostszych szkieletów, gdzie liniowość wychodzi automatycznie z definicji szkieletu. 
Więc tak naprawdę, jeśli chodzi o wybór parametrów to wybranie szkieletu związanego z softmax kernel jest zawsze bardzo dobrym pomysłem. Mamy nowy mechanizm właśnie, który pozwala korzystać z tego szkieletu. Natomiast bardzo często to, co działa w praktyce, jest prostsze i to jest tzw. Performers Value.

W praktyce to jest mechanizm nie losowy, tam nie ma Random Features. W praktyce jest bardzo szybki do policzenia. Jeszcze szybszy niż ten mechanizm losowy. Bardzo często działa naprawdę fajnie, więc tak naprawdę wybór tych parametrów, wybór tego szkieletu, tego kernela, który będzie uczony, ale wybór szkieletu, którego się nie uczy, z którego korzysta się, zależy w dużej mierze od aplikacji.




Jeżeli mamy aplikację, gdzie tak naprawdę zastosowanie standardowego Transformersa jest niemożliwe, ze względu na długość ciągu (właśnie te problemy obliczeniowe) to często właśnie te zastosowanie aproksymacji tego szkieletu softmaxa, korzystającego z Random Features jest bardzo fajnym pomysłem, bo to Ci od razu zmienia problem na liniowy i możesz korzystać z bardzo mocnego kernela. 




W wielu innych zastosowaniach, gdzie liczy się przede wszystkim czas, po prostu chcesz mieć bardzo szybkie trenowanie albo bardzo szybką inferencję. W tym momencie ten ReLu kernel jest bardzo dobrym pomysłem, ponieważ to się po prostu jeszcze szybciej liczy. 


Można też zmieniać z 1 kernel podmieniać na 2 kernel. To jest bardzo fajna rzecz związana z Performersami. Czyli można trenować z jednym kernelem, a potem robić up training albo finetunings. Innym szkieletem – możesz wziąć architekturę, która jest trenowana z jednym szkieletem, jak trenować z innym szkieletem. Właśnie to flexibility to jest coś, co uważam za jedno z najbardziej atrakcyjnych własności Performersów.



Doktorat na Columnia University

Myślę, że tu wyobraźnia została już dość mocno pobudzona, więc temat Performersów na razie zamykamy na dzisiaj. Teraz pozwolę sobie zmienić temat. Robiłeś doktorat na Columbia University. Jak oceniasz tę decyzję z perspektywy czasu? Na ile właśnie ta decyzja pomogła zbudować karierę, którą już masz, gdzie się rozwijasz, zmienić otoczenie? Powiedz, co o tym myślisz.


To było bardzo istotne, ponieważ tak naprawdę otworzyło mnie na wielką naukę. Możliwość pracy z naukowcami, którzy są naprawdę światowymi ekspertami w dziedzinie. W Kolumbii pracowałem nad teorią grafów. Miało to niewiele wspólnego tak naprawdę z maszynowym uczeniem, ale pracowałem nad trudnymi problemami. Wiele z nich cały czas są to otwarte problemy. Z ludźmi, którzy są naprawdę na topie, jeśli chodzi o tego typu rzeczy. Więc jakby jest to zupełnie inne doświadczenie niż to co miałem wcześniej.


W Polsce bardzo dużo nauczyłem się jeśli chodzi o techniki. Te techniki matematyczne, powiedziałbym, że na najwyższym poziomie i to jeszcze przed rozpoczęciem doktoratu, więc byłem w dosyć komfortowej sytuacji, nie musiałem się wielu rzeczy uczyć. Natomiast to jest temat na oddzielną dyskusję na temat inwestycji w naukę w różnych krajach. W Stanach Zjednoczonych rzeczywiście jest takie podejście, że… są oczywiście fundusze na naukę przez duże N.




Ponieważ pracują ludzie z całego świata to się wzajemnie od siebie uczymy i też jest po prostu łatwiej wpaść na coś przełomowego. Więc to miało olbrzymie znaczenie. Mnie otworzyło na taki research, którym zajmuję się już od wielu lat. Natomiast chcę podkreślić, że tak naprawdę gdyby nie lata w Polsce, gdzie nauczyłem się mnóstwo ważnych technik na Uniwersytecie Warszawskim i jeszcze przed Uniwersytetem Warszawskim to wszystko to nie byłoby możliwe.




Natomiast fundusze, które są kierowane na naukę w Stanach są nieporównywalne z innymi krajami i to się widzi nawet jak się zaczyna robić doktorat w Stanach. Więc miało to olbrzymie znaczenie, w jaki sposób ukierunkowało moje myślenie na temat kariery naukowej i chęci pracy nad tymi najtrudniejszymi problemami, rozwiązywania ich.


Więc skoro jest to taka ważna decyzja to spróbujmy teraz podpowiedzieć osobom, które teraz są na takim etapie życiowym, mają dylematy w głowie czy próbować czy nie. Jakie 3-5 trików podpowiesz osobie, która rozważa czy robić doktorat czy nie? Gdzie go robić, jak robić albo jak się np. zaczepić w Stanach Zjednoczonych?




Czy da się to robić zdalnie w tych warunkach, w których teraz jesteśmy? Podpowiedz tak po ludzku, jaka jest najkrótsza możliwa ścieżka, żeby ktoś, kto powiedzmy być może w tej chwili czuje się trochę zagubiony, być może też nie ma pieniędzy, ale ma chęć, motywację do działania, co on może zrobić?



Opcji jest bardzo dużo. Wiele osób nie zna tych opcji i tutaj jest problem. W większości przypadków tak naprawdę (tak było w moim przypadku) za doktorat nie musisz płacić Uczelni – dostajesz stypendium. Oczywiście są wyjątki, czasami może się zdarzyć, że osoba zostaje przyjęta na doktorat, ale właśnie bez tego stypendium co jest dużym problemem. Natomiast w większości przypadków (99,9%) przyjęcie na doktorat na prestiżowej uczelni amerykańskiej wiąże się z otrzymaniem stypendium.




To stypendium pokrywa wszystko – akademik, koszty związane z uczeniem itd. Ja w przeciągu całego doktoratu nie musiałem zapłacić centa z własnej kieszeni za te opłaty, które na pierwszy rzut oka wydają się duże. Są duże, jeżeli chce się płacić samemu, ale oczywiście uczelnie amerykańskie działają w ten sposób, że pomagają. Ponieważ w innym przypadku, większość studentów nie miałoby po prostu możliwości studiowania, gdyby musiała to wszystko opłacać samo. Więc to jest pierwsza rzecz, żeby się nie martwić tak bardzo o te kwestie finansowe, ponieważ jeżeli dostaje się ofertę to z reguły te kwestie finansowe są dosyć dobrze rozwiązane.



Natomiast jeśli chodzi o jakieś inne rady, generalnie uważam, że doktorat na prestiżowej uczelni, czy to jest amerykańska czy jakakolwiek inna to jest bardzo fajna rzecz. Szczególnie w Stanach po doktoracie z przedmiotu ścisłego, technicznego jest mnóstwo opcji. Można zostać na uczelni, kontynuować jako postdoc, myśleć o full time position. Można myśleć o pracy.




To była moja ścieżka, kiedy przeszedłem do Googla. Jest mnóstwo firm, które są zainteresowane osobą, która ma doktorat z dziedziny ścisłej – czy to jest matematyka, informatyka, maszynowe uczenie. To są ważne dziedziny, w które się inwestuje teraz. Więc ja zawsze mówię, że doktorat na tego typu uczelni amerykańskiej czy jakiejkolwiek innej mocnej uczelni na świecie to jest po prostu inwestycja w siebie. Uczelnia pokrywa koszty, ale to nie jest oczywiście czas, kiedy będzie się zarabiało pieniądze to jest to mimo wszystko bardzo fajna inwestycja, która pozwala potem rozważać wiele opcji.



Wiele osób mówi właśnie, że nie potrzebują doktoratu, ponieważ tak naprawdę mogą się nauczyć tych wszystkich rzeczy omijając tą ścieżkę – od razu skacząc do pracy z branży. Często tych propozycji nie ma aż tak atrakcyjnych, jeżeli tego doktoratu się nie ma. Ale poza tym doktorat to jest też kwestia poznania ludzi, którzy potem albo pracują z Tobą, albo spotyka się ich w różnych momentach swojego życia. Często właśnie współpracuje się z innymi teamami i nawiązywanie tych relacji podczas doktoratu jest bardzo ważne.



Tak więc moja rada to jak najbardziej iść na doktorat na prestiżowej uczelni. Taka ostatnia wskazówka, którą chciałbym się podzielić to, żeby nie mieć żadnych obaw, że nie powinienem czy nie powinnam się tym zająć, ponieważ ileś tam osób przede mną siedziało nad tym, próbowało to zrobić i się nie udało. To jest bardziej taka filozoficzna uwaga. Pewność siebie w każdej dziedzinie życia – w sporcie, nauce jest bardzo istotne. Jest istotna właśnie, jeżeli myśli się czy o doktoracie czy o karierze naukowej.



Oczywiście z jednej strony docenić to co inni zrobili jest piekielnie ważne, ale to co zrozumiałem dosyć wcześnie to to, że nie można o tym myśleć za dużo. Nie przeskoczysz tych wyników, jeżeli myślisz, że to jest poza zasięgiem. Nie mieć żadnych sentymentów, jeśli chodzi o to co inni zrobili. Doceniać pracę, szanować ją, szanować wysiłek, ale nigdy nie myśleć, że jest to jakaś przeszkoda, której nie da się przeskoczyć. Tylko w ten sposób można osiągnąć sukces, czy w nauce czy w sporcie. To widzimy tak namacalnie na każdym kroku. Więc to jest generalnie filozoficzna uwaga, ale wydaje się istotna.




Oczywiście te najlepsze uczelnie mają najlepszych studentów z całego świata, ale tak jak mówię, tym studentem może być Pan X czy Pani Y i to tak naprawdę od Ciebie zależy na koniec czy tak będzie czy nie. I oczywiście ciężka praca. To jest jakby wyświechtany termin, ale ileś procent to jest talent, który jest istotny, ale 70% to jest ciężka praca. Jest dużo ludzi utalentowanych, natomiast połączyć to z powtarzalnością, która jest potrzebna jak się robi doktorat czy potem właśnie w nauce. To jest kluczowa rzecz – wtedy ten talent fajnie działa i sukcesy można osiągać. Więc tyle, jeżeli chodzi o kilka takich ogólnych uwag dotyczących kariery naukowej i planowania tego.




Bardzo dziękuję. W szczególności też za te filozoficzne wątki, bo dość mocno to ze mną rezonuje. Słuchając jednego z Twoich wywiadów, fajnie powiedziałeś o studentach, którzy dość często nie wiedzą, że coś jest niemożliwe i dzięki temu mogą być bardziej efektywni, bo nie blokują się. Owszem, czasem popełniają proste błędy, których być może niektórzy nie powinni popełniać, ale przez to, że nie mają za dużo blokad w swojej głowie to po prostu próbują robić rzeczy bardziej odważne. A historia pokazuje, na ile takie podejście pozwalało odkrywać takie rewolucyjne rzeczy.




Jak sobie radzisz z tym? Jak w pewnym momencie już wiesz coraz więcej i wiesz co nie działa, jak sobie radzisz z tym, żeby mieć cały czas otwarte oczy, otwarty umysł i ignorować to pojęcie, że coś się nie da. Po prostu wszystko się da.


Generalnie pasja do nauki. Dla mnie te kwestie naukowe czy matematyka to jest taki piękny pojedynek z matką naturą, wydzierania jej sekretów. To jest taki pojedynek, który nigdy się nie kończy. Ja w ten sposób to traktuje. Uważam, że te prawa głębokie, to do czego docieramy to jest gdzieś zapisane. Jest wiele różnych filozoficznych podejść. Jest takie podejście, że my ludzie tak naprawdę tę tematykę, te prawa stojące za nią w jakiś sposób, sami tworzymy tę naszą wersję. Jest grupa, która uważa, że to jest gdzieś zapisane, a my to odkrywamy.





Więc ja należę do tej drugiej. Rzeczywiście, jeżeli myśli się o tym w kontekście pięknego pojedynku z matką naturą, który jest ciężki i te sekrety się wydziera z trudem to ma się frajdę nawet jeżeli jest problem trudny, nawet jeżeli właśnie się wie, że ileś tam osób wcześniej pracowało nad tym i tego nie zrobiło, bo się wie, że to gdzieś jest. To jest gdzieś ukryte i może Ty będziesz tą pierwszą osobą, która to zobaczy. To jest tego typu podejście. Dziecięca więc ciekawość. To pamiętam miałem od najmłodszych lat dzieciństwa, żeby właśnie odkrywać to co natura stara się szczelnie czasami ukryć. Wtedy jak się na to patrzy w ten sposób to nie myśli się tak naprawdę o tym co Pan X, Y, Z zrobił wcześniej czy czego nie zrobił, tylko myśli się właśnie o tym co ja mogę zrobić i jak wygrać kolejny z pojedynków.


To jest moje podejście. Trochę przez zabawę. Trzeba mieć frajdę z tego co się robi. Jeżeli się człowiek zacznie zastanawiać jak problem jest trudny, jak wiele było różnych innych podejść to na starcie można się poddać.



Fajnym przykładem są te Transformersy. My  się zaczęliśmy zajmować Transformersami niedawno, chyba półtora roku temu. Oczywiście same Transformersy to też jest dosyć nowy temat, natomiast ten mechanizm atencji jest znany od wielu wielu lat. Jest mnóstwo ludzi, którzy siedziało nad Transformersami wcześniej bardzo mocno i próbowało wielu różnych rzeczy. Okazało się, że było takie świeże podejście, gdzie nie myśleliśmy za bardzo kto co zrobił wcześniej, tylko mieliśmy konkretny problem, który matka natura postawiała. Uważaliśmy, że jest jakieś tam rozwiązanie, które możemy odkryć. To było fajne podejście, które doprowadziło do tego, że udało się te Performersy wymyślić.



Więc na każdym kroku, wszystkim polecam, nie zajmujcie się, nie zastanawiajcie się nad wielkimi tego świata, co zrobili, czego nie zrobili, patrzcie na matkę naturę, na własny pojedynek. Tak jak w westernach – Ty versus przyroda, świat otaczający, który kieruje się tymi ukrytymi prawami. Tylko to się liczy. To jest właśnie ta frajda, którą się ma z nauki koniec końców. A reszta – hierarchie, że ktoś coś zrobił, czegoś nie zrobił nie ma żadnego znaczenia.




Bardzo piękne. Zresztą to zdanie – trzeba mieć frajdę – myślę, że to jest takie mocne zdanie, które trzeba przyswoić. Jak po prostu jest coś na siłę to stąd się biorą dość często różne wątpliwości. Jak bawisz się w to co robisz to nie ma obawy, po prostu robisz to co lubisz.


Machine Learning za 5-15 lat


To już tak na koniec, jak w ogóle widzisz rozwój Machine Learning w ciągu 5-15 lat? Jakie kamienie milowe są możliwe? Oczywiście to wszystko zweryfikuje historia i wiem, że wróżenie to nie jest najprostsza rzecz. Ale z drugiej strony bardzo ciekawy jestem takiej Twojej intuicji, być może takich marzeń naukowych?



Wydaje mi się, że jesteśmy w ogóle na początku drogi do stworzenia nowej technologii, z której czerpać będzie cała cywilizacja, ponieważ oczywiście takim końcowym efektem, na który wszyscy czekają to jest ta sztuczna inteligencja. Ale jak słyszę często właśnie w mediach, że się mówi, że już mamy tą sztuczną inteligencję to tylko się uśmiecham, ponieważ wiem, jak daleko jesteśmy od tego. Stworzenie maszyny, która uczyłaby się przynajmniej częściowo jak człowiek jest jeszcze cały czas poza naszym zasięgiem.




Więc to wydaje się tak naprawdę największym wyzwaniem i mam nadzieję, że w przeciągu najbliższych X lat – nie wiem czy 20, 50, 100 – uda się zrobić duży postęp. To co jest niesamowitą własnością, którą ludzie posiadają to jest generalizacja, czyli uczenie się na podstawie bardzo małej liczby przykładów i generalizowanie skomplikowanych sytuacji, często sytuacji, w których nie było się wcześniej – na podstawie tej nabytej wiedzy.



Oczywiście algorytmy, z których korzystamy teraz nie mają z tym paradygmatem nic wspólnego. Nawet te Transformersy, o których mówimy z dumą, ponieważ pozwalają rzeczywiście nam zrobić to, czego inne architektury nie były w stanie, korzystają z olbrzymiej ilości danych i wymagają czasu na nauczenie. 



Generalnie wydaje mi się w środowisku naukowym jest zgoda, że potrzebujemy zupełnie nowych idei, żeby trenować te systemy, które miałyby tą sztuczną inteligencję osiągnąć. Że tak naprawdę ten paradygmat głębokich sieci neuronowych, które zarzucamy ogromnymi ilościami danych i trenujemy przez X czasu to jest jakieś lokalne maksimum. Rzeczywiście wiele fajnych rzeczy możemy z tym zrobić, ale nie rozwiążemy wielu problemów. Nawet w robotyce jest mnóstwo problemów bardzo namacalnych, które mamy teraz, które nie jesteśmy w stanie rozwiązać za pomocą standardowych technik, z których korzystamy dzisiaj.




Co tym nowym paradygmatem miałoby być – nie wiem. Gdybym wiedział to pewnie bym już starał się opublikować i byśmy to jakoś stosowali. Ciężko jest tak przewidzieć też rozwój nauki. To jest super losowa rzecz, jak działa ludzki mózg, że jak wpadamy na odkrycia. Teoria odkryć naukowych – nie mamy dobrej teorii odkryć naukowych stety albo niestety. Natomiast wydaje się, że jest potrzebna zmiana myślenia na temat takich standardowych technik, które teraz uważamy za klasyczne z punktu widzenia maszynowego uczenia, ale nie są efektywne, jeśli chodzi o ilość danych, które muszą być przetworzone. 




Więc to jest wyzwanie. To jest oczywiście też moje marzenie, żeby w jakiejś mierze kontrybuować do tej nowej rewolucji, która moim zdaniem musi się wydarzyć, żebyśmy przeszli od problemów, gdzie maszynowe uczenie jest wykorzystywane, ale jest wykorzystywane ostrożnie do sytuacji, gdzie możemy w pełni zaufać algorytmom maszynowego uczenia w podejmowaniu skomplikowanych decyzji, które byłyby podejmowane na podstawie właśnie ekstrapolacji, tej informacji, przypadków do sytuacji, w których algorytm nigdy wcześniej się nie znalazł. Nie wiemy jak to robić dobrze i to jest Święty Graal wszystkich, którzy zajmują się teraz maszynowym uczeniem. 




Krzysztof, bardzo dziękuję za piękną, fajną, też motywującą rozmowę. Bardzo fajne rzeczy tu wybrzmiały, wartościowe. Wszystko podlinkujemy – publikację, Linkedin, więc zapraszam też do kontaktu z Krzysztofem. Dzięki wielkie i do usłyszenia.




Bardzo dziękuję. Cała przyjemność po mojej stronie. Do usłyszenia.



Ten odcinek troszkę nam się wydłużył, ale mam nadzieję, że było warto. Wiem, że czasem warto robić troszkę krótsze odcinki, ale z drugiej strony jak się rozmawia z człowiekiem i płyną takie różne, ciekawe informacje i jest ta pozytywna energia – bardzo to czuję, jestem taki bardzo zmotywowany, żeby takimi rzeczami z jednej strony się z Tobą podzielić, a z drugiej strony też, żeby pewne klocki u mnie w głowie się poskładały, żeby jeszcze bardziej się nakręcić i zmotywować do działania. Mam nadzieję, że Ci się podobało.




Zapowiadałem, że tutaj mamy cały plan innych odcinków. Bardzo ciekawy jestem Twojej opinii na temat tych naszych eksperymentów, np. zapraszania ludzi ze świata akademickiego, naukowców. Cały czas łączymy to z praktyką. Krzysztof według mnie jest właśnie takim bardzo ciekawym kandydatem, kiedy z jednej strony to jest ewidentnie człowiek ze świata naukowego, ale z drugiej strony rzeczy, które robi, robi tak, żeby rozwiązywać praktyczne problemy. 




Jestem ciekawy Twojej opinii, co myślisz o tym samym podejściu, na ile to Ci odpowiada. Na koniec też mam taką jedną prostą prośbę do Ciebie – jeżeli to co robimy w ramach Biznes Myśli ma sens dla Ciebie to bardzo proszę podziel się przynajmniej z jedną osobą, a może z kilkoma informacją o tym odcinku. Dzięki temu więcej osób się dowie też, że być może zmieni się ich życie albo przynajmniej częściowo się zainspirują.




A z drugiej strony też jest takie poczucie wdzięczności, że to co robimy po prostu ma sens, bo to jest ważne robić rzeczy, które mają sens, bo wiele różnych rzeczy można robić w tym świecie. Wydaje mi się, że znalezienie pewnych takich formuł, które w sposób najbardziej efektywny przekazują pewną wiedzą, inspirację, motywację, dlatego tak eksperymentujemy. Dlatego też Twoja informacja zwrotna jest bardzo potrzebna. 



To tyle na dzisiaj.

Bardzo dziękuję za wspólnie spędzony czas. Życzę Ci wszystkiego dobrego, cześć, na razie, trzymaj się.



Od 2013 roku zacząłem pracować z uczeniem maszynowym (od strony praktycznej). W 2015 założyłem inicjatywę DataWorkshop. Pomagać ludziom zaczać stosować uczenie maszynow w praktyce. W 2017 zacząłem nagrywać podcast BiznesMyśli. Jestem perfekcjonistą w sercu i pragmatykiem z nawyku. Lubię podróżować.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *