Optymalizacja głębokich sieci neuronowych na urządzenia IoT zima 2025/26

Język wykładowy Polski
Opiekun Filip Chudy
Liczba godzin 7 (wyk.) 7 (prac.)
Rodzaj K2 - kurs zaawansowany
ECTS 3
Polecany dla I roku Nie
Egzamin Nie

Opis przedmiotu:

** Przedmiot jest prowadzony przez Grzegorza Latosińskiego z Antmicro. ** Celem przedmiotu jest przedstawienie różnych aspektów optymalizacji sieci neuronowych pod urządzenia o ograniczonych zasobach obliczeniowych i pamięciowych, jak i wdrażanie ich w docelowe aplikacje z użyciem zoptymalizowanych bibliotek do inferencji sieci. W trakcie wykładów przedstawione będą: - Przykłady głębokich sieci neuronowych projektowanych pod kątem urządzeń wbudowanych. - Algorytmy optymalizujące sieci neuronowe pod względem pamięciowym i obliczeniowym, jak np. quantization, pruning, clustering czy knowledge distillation. W ramach analizy algorytmów będą również omawiane algorytmy optymalizacji dużych modeli językowych (LLM). - Biblioteki open source do optymalizacji sieci neuronowych i procesu ich wykonywania, jak na przykład TensorFlow Model Optimization Toolkit, NNI, LiteRT/TensorFlow Lite, CMSIS-NN - Biblioteki do wydajnego uruchamiania sieci neuronowych na docelowych platformach, jak TensorFlow Lite/LiteRT czy ONNXRuntime - Kompilatory sieci neuronowych do tworzenia zoptymalizowanych bibliotek dla danej platformy i modelu, jak TVM czy IREE - Przykłady niskopoziomowych technik optymalizacji najpopularniejszych operacji w sieciach neuronowych. - Przykłady sprzętowych akceleracji operacji występujących w sieciach neuronowych na CPU oraz GPU - Przykłady akceleratorów operacji sieci neuronowych, włącznie z akceleratorami open source - Symulatory/emulatory urządzeń wbudowanych i wybranych akceleratorów i ich wykorzystanie w testowaniu zoptymalizowanych sieci neuronowych Zajęcia na uczelni będą zajęciami wykładowo-ćwiczeniowymi. Dodatkowo, zagadnienia poruszane w trakcie wykładów będą realizowane w praktyce w ramach małych projektów laboratoryjnych do realizacji samodzielnej w trakcie i po wykładach - przeprowadzane będą różne optymalizacje sieci, a następnie weryfikowany będzie ich wpływ na szybkość wykonywania inferencji, zajętość pamięci, oraz jakość predykcji. Również w ramach zadań praktycznych będziemy weryfikować, jak należy przygotować odpowiednio model pod wybrane optymalizacje, i jak dobierać optymalizacje pod konkretną platformę sprzętową, i jak przetestować działanie sieci w symulacji. Wymagania: - Podstawowa znajomość Linuxa - wszystkie zadania są przystosowane pod pracę z Linuxem, podobnie jak wymienione wyżej narzędzia - Znajomość języków Python oraz C++ Podstawowe zagadnienia z zakresu uczenia maszynowego, sieci neuronowych i urządzeń wbudowanych potrzebne do rozumienia zagadnień poruszanych na wykładzie będą przedstawiane na zajęciach, aby ułatwić osobom zaznajomionym tylko z częścią zagadnień wdrożenie się do przedmiotu.

Wykłady

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Grzegorz Latosiński
śr 10:00-11:00 (s. 104) 15 4 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.

Pracownie

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Grzegorz Latosiński
śr 11:00-12:00 (s. 104) 15 4 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.


Konsultacje prowadzących:


Imię i nazwisko Pokój Konsultacje
Grzegorz Latosiński