Naukowcy z Massachusetts Institute of Technology (MIT) opracowali technikę, która umożliwia modelom sztucznej inteligencji ciągłe uczenie się na podstawie nowych danych z inteligentnych urządzeń brzegowych, takich jak smartfony i czujniki, zmniejszając koszty energii i ryzyko prywatności.
Mikrokontrolery, miniaturowe komputery, które mogą wykonywać proste polecenia, są podstawą miliardów podłączonych urządzeń, od urządzeń Internetu rzeczy (IoT) po czujniki w samochodach. Jednak tanie mikrokontrolery o niskim poborze mocy mają bardzo ograniczoną pamięć i nie posiadają systemu operacyjnego, co utrudnia trenowanie modeli sztucznej inteligencji na “urządzeniach brzegowych”, które działają niezależnie od centralnych zasobów obliczeniowych.
Trenowanie modelu uczenia maszynowego na inteligentnym urządzeniu brzegowym pozwala mu dostosowywać się do nowych danych i dokonywać lepszych prognoz. Na przykład, trenowanie modelu na inteligentnej klawiaturze może umożliwić klawiaturze ciągłe uczenie się na podstawie pisma użytkownika. Proces szkolenia wymaga jednak tak dużej ilości pamięci, że zazwyczaj odbywa się przy użyciu potężnych komputerów w centrum danych, zanim model zostanie wdrożony na urządzeniu. Jest to bardziej kosztowne i podnosi kwestie prywatności, ponieważ dane użytkownika muszą być przesyłane do centralnego serwera.
Aby rozwiązać ten problem, naukowcy z MIT i MIT-IBM Watson AI Lab opracowali nową technikę, która umożliwia szkolenie na urządzeniu przy użyciu mniej niż ćwierć megabajta pamięci. Inne rozwiązania szkoleniowe zaprojektowane dla podłączonych urządzeń mogą wykorzystywać ponad 500 MB pamięci, znacznie przekraczając pojemność 256 KB większości mikrokontrolerów (jeden megabajt to 1024 KB).
Inteligentne algorytmy i ramy opracowane przez naukowców zmniejszają ilość obliczeń wymaganych do wytrenowania modelu, co sprawia, że proces jest szybszy i bardziej wydajny pod względem pamięci. Ich technika może zostać wykorzystana do wytrenowania modelu uczenia maszynowego na mikrokontrolerze w ciągu kilku minut.
Technika ta chroni również prywatność poprzez przechowywanie danych na urządzeniu, co może być szczególnie korzystne, gdy dane są wrażliwe, na przykład w zastosowaniach medycznych. Może również umożliwić dostosowanie modelu w oparciu o potrzeby użytkowników. Co więcej, struktura zachowuje lub poprawia dokładność modelu w porównaniu z innymi podejściami szkoleniowymi.
“Nasze badanie umożliwia urządzeniom IoT nie tylko przeprowadzanie wnioskowania, ale także ciągłe aktualizowanie modeli sztucznej inteligencji do nowo zebranych danych, torując drogę do uczenia się przez całe życie na urządzeniu. Niskie wykorzystanie zasobów sprawia, że głębokie uczenie jest bardziej dostępne i może mieć szerszy zasięg, szczególnie w przypadku urządzeń brzegowych o niskim poborze mocy” – mówi Song Han, profesor nadzwyczajny na Wydziale Elektrotechniki i Informatyki (EECS), członek MIT-IBM Watson AI Lab.
Do Hana dołączają współautorzy i doktoranci EECS Ji Lin i Ligeng Zhu, a także podoktoranci z MIT Wei-Ming Chen i Wei-Chen Wang oraz Chuang Gan, główny pracownik naukowy w MIT-IBM Watson AI Lab. Badania zostaną zaprezentowane na konferencji poświęconej neuronowym systemom przetwarzania informacji.
Han i jego zespół już wcześniej zajmowali się wąskimi gardłami pamięciowymi i obliczeniowymi, które występują podczas próby uruchomienia modeli uczenia maszynowego na małych urządzeniach brzegowych, w ramach inicjatywy TinyML.

Uczenie maszynowe z wykorzystaniem sieci neuronowych
Powszechnym typem modelu uczenia maszynowego jest sieć neuronowa. Modele te, luźno oparte na ludzkim mózgu, zawierają warstwy połączonych ze sobą węzłów lub neuronów, które przetwarzają dane w celu wykonania zadania, takiego jak rozpoznawanie ludzi na zdjęciach. Model musi zostać najpierw wytrenowany, co obejmuje pokazanie mu milionów przykładów, aby mógł nauczyć się zadania. W miarę uczenia się, model zwiększa lub zmniejsza siłę połączeń między neuronami, które są znane jako wagi.
Model może przechodzić setki aktualizacji podczas nauki, a pośrednie aktywacje muszą być przechowywane podczas każdej rundy. W sieci neuronowej aktywacja jest pośrednim wynikiem warstwy środkowej. Ponieważ mogą istnieć miliony wag i aktywacji, trenowanie modelu wymaga znacznie więcej pamięci niż uruchomienie wstępnie wytrenowanego modelu – powiedział Han.
Han i jego współpracownicy zastosowali dwa rozwiązania algorytmiczne, aby proces uczenia był bardziej wydajny i wymagał mniej pamięci. Pierwsze z nich, znane jako sparse update, wykorzystuje algorytm, który identyfikuje najważniejsze wagi do aktualizacji w każdej rundzie szkolenia. Algorytm zaczyna zamrażać wagi pojedynczo, aż zobaczy, że dokładność spada do ustalonego progu, a następnie zatrzymuje się. Pozostałe wagi są aktualizowane, a aktywacje odpowiadające zamrożonym wagom nie muszą być przechowywane w pamięci.
“Aktualizacja całego modelu jest bardzo kosztowna, ponieważ istnieje wiele aktywacji, więc ludzie mają tendencję do aktualizowania tylko ostatniej warstwy, ale jak można sobie wyobrazić, szkodzi to dokładności. W naszej metodzie selektywnie aktualizujemy te ważne wagi i upewniamy się, że dokładność jest w pełni zachowana” – mówi Han.
Ich drugie rozwiązanie obejmuje kwantyzację treningu i uproszczenie wag, które zazwyczaj mają 32 bity. Algorytm zaokrągla wagi tak, aby miały tylko osiem bitów, w procesie znanym jako kwantyzacja, co zmniejsza ilość pamięci zarówno do uczenia, jak i wnioskowania. Wnioskowanie to proces stosowania modelu do zbioru danych i generowania prognozy. Następnie algorytm stosuje technikę zwaną skalowaniem z uwzględnieniem kwantyzacji (QAS), która działa jak mnożnik w celu dostosowania stosunku między wagą a gradientem, aby uniknąć spadku dokładności, który może wynikać z kwantyzacji szkolenia.
Naukowcy opracowali system, zwany maleńkim silnikiem treningowym, który może uruchamiać te innowacje algorytmiczne na prostym mikrokontrolerze, który nie ma systemu operacyjnego. System ten zmienia kolejność kroków w procesie szkolenia, dzięki czemu więcej pracy jest wykonywane na etapie kompilacji, zanim model zostanie wdrożony na urządzeniu brzegowym.
“Przesuwamy wiele obliczeń, takich jak automatyczne różnicowanie i optymalizacja wykresów, do czasu kompilacji. Agresywnie usuwamy również zbędne operatory, aby wspierać rzadkie aktualizacje. Po uruchomieniu mamy znacznie mniej pracy do wykonania na urządzeniu” – powiedział Han.
Udane przyspieszenie
Ich optymalizacja wymagała jedynie 157 kilobajtów pamięci do wytrenowania modelu uczenia maszynowego na mikrokontrolerze, podczas gdy inne techniki zaprojektowane do lekkiego treningu nadal wymagałyby od 300 do 600 megabajtów.
Przetestowali oni swoją strukturę, szkoląc komputerowy model wizyjny do wykrywania ludzi na obrazach. Po zaledwie 10 minutach szkolenia model nauczył się pomyślnie wykonywać zadanie. Ich metoda była w stanie wytrenować model ponad 20 razy szybciej niż inne podejścia.
Teraz, gdy zademonstrowali sukces tych technik w modelach widzenia komputerowego, naukowcy chcą zastosować je do modeli językowych i różnych typów danych, takich jak dane szeregów czasowych. Jednocześnie chcą wykorzystać to, czego się nauczyli, aby zmniejszyć rozmiar większych modeli bez poświęcania dokładności, co może pomóc zmniejszyć ślad węglowy związany ze szkoleniem modeli uczenia maszynowego na dużą skalę.
“Adaptacja/trening modeli sztucznej inteligencji na urządzeniu, zwłaszcza na wbudowanych kontrolerach, jest otwartym wyzwaniem. Badania przeprowadzone przez MIT nie tylko z powodzeniem zademonstrowały możliwości, ale także otworzyły nowe możliwości personalizacji urządzeń z zachowaniem prywatności w czasie rzeczywistym” – mówi Nilesh Jain, główny inżynier w firmie Intel, który nie był zaangażowany w tę pracę. “Innowacje zawarte w publikacji mają szersze zastosowanie i zapoczątkują nowe badania nad współprojektowaniem systemów i algorytmów”.

















































