Bystry telefon?
W miarę postępującej miniaturyzacji chipów napędzających smartfony zaczęły one obrastać w specjalizowane moduły, które pozwalały odciążyć główny procesor. Pierwszymi takimi modułami były procesory sygnałowe (DSP) i procesory graficzne (GPU). Z czasem przyszły wbudowane procesory pasma podstawowego, moduły przetwarzania obrazu, jednostki kryptograficzne – a wszystko na jednym skrawku krzemu. Teraz nastał czas jednostek wspierających uruchamianie algorytmów SI.
Ten nowy rodzaj modułów nie robi niczego, czego nie byłyby w teorii w stanie zrobić arytmetyczno-logiczne rdzenie procesora głównego, ale dzięki swojej specjalizowanej architekturze robią to nieporównywalnie szybciej i przy znacznie mniejszym zużyciu energii, pozwalając na praktyczne wykorzystanie AI w codziennych zadaniach takich jak np. rozpoznawanie twarzy czy dobieranie najlepszych ustawień podczas fotografowania nocą.
Komentarz profesora Dariusza Jemielniaka – współtwórcy programu studiów z zakresu sztucznej inteligencji w biznesie w Akademii Leona Koźmińskiego:
Sztuczna inteligencja już od kilku lat znajduje miejsce w telefonach komórkowych. Choćby tłumaczenia Google Translate, czy podpowiedzi autokorekty powstają w oparciu o jej algorytmy. Fenomen jakości aparatów fotograficznych w smartfonach polega więc nie tyle na najlepszym sprzęcie, co także właśnie na opartych o SI algorytmach automatycznej obróbki obrazu. Siri czy Google Assistant mieszczą się wszak w telefonie. Mimo to, podobnie jak poprzednio wspomniane technologie, wymagają one połączenia z chmurą danych i stanowią jedynie końcówkę dla algorytmów SI. Biorąc pod uwagę, że telefony niemal cały czas są w zasięgu sieci, nie przeceniałbym wagi tego, że algorytmy sztucznej inteligencji w niektórych urządzeniach są odpalane na procesorze lokalnym. Jest to oczywiście w jakimś stopniu istotne, ale nie kluczowe. Kierunek rozwoju technologii wskazuje, że w wielu zastosowaniach będziemy mieli do czynienia z potężnymi algorytmami SI po stronie serwera. Rodzaj urządzenia stanowiącego terminal będzie drugorzędny – czy to telefon, czy to komputer, czy tablet, czy innego typu stacja robocza. Pojęcie sztucznej inteligencji w telefonach komórkowych bywa jednak nadużywane. Choćby wtedy, gdy mamy do czynienia ze zwykłymi algorytmami, nieopartymi o uczenie maszynowe, a które mimo to są przedstawiane jako inteligentne – podkreśla w rozmowie z CHIP-em profesor Dariusz Jemielniak.
A zaczęło się…
….pod koniec roku 2017. Podczas targów IFA w Berlinie Huawei zapowiedziało wprowadzenie pierwszego procesora wyposażonego w koprocesor neuralny. Chwilę potem, w październiku, zaprezentowany został iPhone X z procesorem A11 Bionic i modułem Neural Engine wykorzystywanym do logowania za pomocą twarzy (Face ID). W listopadzie światło dzienne ujrzał Huawei Mate 10 wyposażony w zapowiadany dwa miesiące wcześniej procesor Kirin 970, którego moduł NPU po raz pierwszy nie był przeznaczony do wspomagania jednego zadania, ale służył do akceleracji zaskakująco uniwersalnych algorytmów, choć jego najczęściej wymienianym zadaniem jest poprawa jakości zdjęć, wydłuża też czas pracy baterii, przyśpiesza ładowanie aplikacji i pomaga prowadzić wyszukiwania oparte na rozpoznawaniu obrazu. Dziś większość nowych smartfonów wysokiej klasy ma już taki akcelerator sztucznej inteligencji, np. poza wspomnianym Kirinem 70 jest to np. procesor Exynos 9810 z wbudowaną siecią neuronową, która ma zwiększać płynność działania, dodatkowo zabezpieczać system, a w przyszłości rozpoznawać twarze.
Ale co to znaczy „inteligentne”?
W ostatnich latach zakres pojęcia „sztuczna inteligencja” znacznie poszerzał się i ewoluował. Ogólnie rzecz biorąc, za sztuczne inteligencje uważamy wszelkie maszyny, które są w stanie rozumować i podejmować decyzje w przypadkach, które nie są wyraźnie zdefiniowane.
Jeśli chodzi o smartfony, można kwestię trochę zawęzić. Zazwyczaj chodzi o maszynowe uczenie, czyli zdolność systemu do wyjścia poza jego pierwotne oprogramowanie, oraz uczenie głębokie będące formą maszynowego uczenia, która wykorzystuje sztuczne sieci neuronowe. To ostatnie stara się naśladować w jakimś stopniu zhierarchizowane sieci neuronowe mózgów wyższych ssaków.
Dzięki maszynowemu uczeniu oprogramowanie zauważy spam w skrzynce odbiorczej na podstawie wcześniejszych klasyfikacji wiadomości jako spam, nawet jeśli charakterystyka kolejnych reklamowych e-maili umykałaby pierwotnie zakodowanemu filtrowi. Z głębokim uczeniem jest podobnie – chwytane są po prostu przeróżne niuanse, trudne do formalnego zakodowania. Dzięki temu system, który zobaczył zdjęcia tysięcy kotów, w końcu zacznie rozpoznawać koty na zdjęciach niezależnie od ich umaszczenia czy przyjętej pozy.
I tak oto szkolona na podstawie danych ze świata rzeczywistego sieć neuronowa może np. zamieniać wypowiadane słowa w tekst, rozpoznawać wiek ludzi na zdjęciach czy choćby wykrywać koty. Inaczej mówiąc, może robić to, co ludziom przychodzi całkiem łatwo, a co dla komputerów było zawsze bardzo trudne – odkrywać wzory i schematy w potoku informacji.
Oczywiście to wszystko było dostępne od dobrych paru lat w wykorzystywanych na co dzień usługach internetowych. Podpowiedzi w wyszukiwarce, filtrowanie spamu w Gmailu, sortowanie fotografii w Zdjęciach – Google od lat przoduje w takich użytkowych zastosowaniach AI. Działo się to jednak na serwerach kosztem sporej mocy obliczeniowej. Mobilne procesory nawet ze wsparciem zintegrowanych GPU nie były w stanie unieść sztucznych sieci neuronowych niezbędnych do analizy mnóstwa informacji. Smartfon poprzez aplikację mobilną udostępnia tylko dane przetworzone w chmurze.
Na drugiej podstronie piszemy m.in. o wykorzystywaniu chmurowej SI w telefonach.
Z chmury do kieszeni
Zbudowanie wspomnianych na początku „akceleratorów AI” zmieniło sytuację. Nagle okazało się, że wykonywane dotychczas na zdalnych serwerach zadania można zrealizować bezpośrednio w smartfonie. Rozwiały się więc obawy związane z prywatnością, w końcu nie każdy chce, by jego zdjęcia czy wrażliwe dane były gromadzone gdzieś tam w chmurze.
I tak oto Apple mogło w nowej generacji iPhone’ów zastosować biometryczne logowanie za pomocą rozpoznawania twarzy, zajmuje się tym sieć neuronowa działająca w Neural Engine, odpowiadająca też za sterowanie animowanymi emoji przyjmującymi wyraz twarzy użytkownika. Idzie na to 600 GFLOPS-ów (miliardów operacji zmiennoprzecinkowych na sekundę) mocy obliczeniowej zapewniane przez akcelerator sztucznej inteligencji firmy z Cupertino. Twórcy aplikacji także mogą z niej skorzystać – Apple udostępniło bibliotekę Core ML, która choć działa też na starszym sprzęcie bez Neural Engine, dopiero na iPhone’ie X pokazuje pazury.
600 GFLOPS-ów to jednak wcale nie tak dużo. Amerykańska firma dała się prześcignąć Chińczykom, a konkretnie Huawei, które wyrasta w tej chwili na lidera badań nad mobilnym AI i ich zastosowaniem. Opracowany przez producenta moduł Neural Processing Unit (NPU) jest częścią procesora Kirin 970 zastosowanego w smarfonach Huawei Mate 10 i Honor View 10. Dzięki mocy obliczeniowej na poziomie 1,92 TFLOPS-a (bilionów operacji zmiennoprzecinkowych na sekundę) NPU w Kirinie 970 ma być w stanie przetwarzać do dwóch tysięcy obrazów na sekundę, dwudziestokrotnie więcej, niż byłoby możliwe za pomocą procesora głównego.
Dzięki integracji z CPU i ogromnej mocy obliczeniowej, działanie NPU Huawei nie jest ograniczone do jednej dziedziny, ale pojawia się w niemal każdym aspekcie działania smartfonu. Może ono rozpoznawać obiekty i kilkanaście rodzajów scen przed obiektywem, dostosowując do nich optymalne ustawienia aparatu. Układ pozwala też na wydłużenie czasu pracy baterii dzięki zmniejszeniu zużycia energii i zoptymalizowanemu wykorzystaniu sprzętowych zasobów. NPU wykorzystano również w preinstalowanej w smartfonach aplikacji tłumacza Microsoftu (aby przyśpieszyć translację) oraz w usuwaniu szumu z połączeń głosowych.
W siedzibie Huawei w Shenzhen pytaliśmy dyrektora zarządzającego produktami AI koncernu o kierunki rozwoju zastosowania elementów sztucznej inteligencji w telefonach. Specjalista powiedział CHIP-owi, że najważniejsze z nich to dążenie do naturalnej interakcji pomiędzy użytkownikiem a urządzeniem. Chodzi o jak najszersze wykorzystanie interfejsów głosowych i o budowę platformy przewidywania potrzeb użytkownika. Obecnie, kiedy pojawia się potrzeba, na przykład musimy znaleźć połączenie komunikacyjne w obcym mieście, szukamy aplikacji, które oferują potrzebne nam funkcje, wybieramy odpowiednią i instalujemy ją, a następnie uczymy się nią posługiwać. Wyposażony w AI system przyszłości na podstawie rozproszonych informacji, takich jak kupione bilety lotnicze, rezerwacje hoteli, wpisy w kalendarzu, tematy wyszukiwań czy korespondencja, przewidziałby naszą potrzebę, samodzielnie ściągnął potrzebne bazy danych i funkcje, a następnie sprawdził trasy między hotelem i miejscem, gdzie mamy umówione spotkanie. Co więcej, nie musielibyśmy uczyć się używania nowych funkcji, bo wystarczyłoby zadać pytanie AI dokładnie tak, jak pytamy osobę w informacji – w naturalnym języku.
W bliskiej perspektywie Huawei za najważniejsze uważa wykorzystanie twórczego potencjału społeczności, dlatego dało zewnętrznym developerom możliwość wykorzystania NPU Kirina 970 (i zapewne jego następców) do akceleracji operacji związanych z algorytmami SI, udostępniając biblioteki API HiAI. Podobnie sprawę widzi Google. Wraz z Androidem 8.1 zadebiutował interfejs Neural Networks API, który pozwala twórcom aplikacji korzystać z dowolnych modeli NPU.
Od inteligencji do świadomości
A wracając na smartfonowy rynek, myślę, że gdyby producenci smartfonów mówili w innych językach niż angielski czy chiński, pewnie odmienialiby już określenie „sztuczna inteligencja” przez wszystkie możliwe przypadki. Zamiast tego ewidentnie nadużywają pojęcia, doprowadzając do sytuacji, w której staje się to marketingową nowomową. Problem widać zwłaszcza w przypadku tańszych smartfonów, które wszystkie nagle nabrały „sztucznej inteligencji” tylko dlatego, że ich aplikacja kamery „inteligentnie” upiększa zdjęcia, zwykle przez nałożenie kilku prostych filtrów. Trudno jednak spodziewać się, by było inaczej. Na razie w tanich urządzeniach sprzętowej akceleracji AI nie ma, to przywilej dla tych z górnej półki.
[offers keywords=”huawei p20″]
Analitycy Gartnera przewidują, że do 2020 roku 80% sprzedawanych smartfonów będzie korzystało z procesorów wspomagających algorytmy sztucznej inteligencji. Można być niemal pewnym, że stanie się to przede wszystkim za sprawą projektu Trillium, czyli rozwijanej przez konsorcjum ARM platformy maszynowego i głębokiego uczenia. A że ARM licencjonuje później innym producentom swoje technologie w przystępnych cenach, takie rozwiązania będą mogły trafić nawet do tych tańszych smartfonów. Wtedy przyjdzie czas, żeby ponownie zastanowić się nad samą koncepcją mobilnych systemów operacyjnych, wciąż w dużym stopniu wymagających obsługi ze strony użytkownika.
A nie tak powinno być. Mając urządzenie „uzbrojone” w arsenał czujników, zdolne do uczenia się i wnioskowania, chcielibyśmy, by samo ustawiało się optymalnie do warunków, w jakich się znajduje. Innymi słowy, byłoby to urządzenie świadome swoich stanów, stosujące inteligencję do osiągania wyznaczonych mu celów. Taki świadomy i inteligentny smartfon powinien dobierać odpowiedni rodzaj połączenia sieciowego, jaki w danym momencie jest najlepszy, powinien sam wiedzieć, że po znalezieniu się w aucie należy połączyć się z pokładowym systemem multimedialnym. Chcielibyśmy też, aby sam wiedział, że trzeba wyciszyć dzwonek rozmów przychodzących, gdy idziemy do kina, i że trzeba odciąć interfejsy radiowe, kiedy rozsiedliśmy się w fotelu samolotu. Oczywiście taki inteligentny i świadomy smartfon byłby też platformą dla smart asystenta, pomagającego nam załatwiać codzienne sprawy – ale to już temat na zupełnie oddzielny tekst.
Jedno jest w tym wszystkim istotne: do tej pory smartfony kręciły się wokół aplikacji, jakie można na nich uruchomić. Wraz z pojawieniem się w naszych bystrych telefonach sztucznej inteligencji ciężar z coraz to nowych aplikacji może zostać przeniesiony na komunikację między człowiekiem a maszyną. Fascynujące, prawda? | CHIP
O autorach:
Jędrzej Fulara – architekt oprogramowania i lider zespołu programistów w firmie Sparkbit. Zajmował się projektami obejmującymi obszary przetwarzania języka naturalnego, sieci semantycznych i monitorowania danych w czasie rzeczywistym. Doktor informatyki Uniwersytetu Warszawskiego w dziedzinie analizy statycznej kodu oraz weryfikacji oprogramowania.
Konstanty Młynarczyk – redaktor naczelny portalu CHIP, z wcześniejszym magazynem związany od 2007 roku. Branżą sprzętu mobilnego zajmuje się od blisko 20 lat. Jego główne dziennikarskie specjalizacje to smartfony i technologie przyszłości.