# Harmonogram | Data | Działanie |----------------------------:|:------------------------------------------------------------| | 19.04.2024 | Prezentacja problemu i zbioru danych | | Prezentacja technologii wykorzystywanych w projekcie | | Wstępny szkic MLOps pipeline | | Szkic aplikacji (backend + frontend) | 08.06.2024 | Prezentacja MLOps pipeline | | Prezentacja aplikacji | | Prezentacja wyników eksperymentów | 15.06.2024 | Prezentacja działania systemu | | Prezentacja wyników i skuteczności wybranego modelu # Szczegółowy harmonogram Spotkania dot. progresu prac - każda niedziela, godzina 18:00-20:00. Poniżej, kolumna "działanie" jest w formacie ` ()`. Brak osoby oznacza, że zadanie nie zostało jeszcze przypisane. | Data | Działanie |----------------------------:|:------------------------------------------------------------| | 05.05.2024 | Sergiusz (1), Mateusz (3), Krzysztof (2) | 12.05.2024 | Wszyscy (5), (4), (6), (7.1) | 19.05.2024 | Wszyscy (5), (7.2) | 26.05.2024 | Wszyscy (5), (7.3), (9) | 02.06.2024 | (8) | 09.06.2024 | Feedback, ewentualne poprawki | 15.06.2024 | Finalna prezentacja Szczegóły działań: 1) Przygotowanie danych i modułu do ich przetwarzania - Napisanie skryptu, który pobiera dane oraz rozpakowuje je lokalnie. - Napisanie szablonu skryptu do przetwarzania danych. Skrypt powinien tworzyć katalogi (struktura katalogowa) z danymi po transformacji. Każda transformacja na oryginalnych danych będzie commit'owana do repozytorium, tak aby reszta zeszpołu mogła ją uruchomić. - Napisać jedną przykładową transformację, np. resize i kontury, korzystając z szablonu. - Utworzyć README.md z instrukcją tworzenia nowego modułu do przetwarzania. 2) Modele do przygotowania: - Przygotować wstępnie 3 modele w formacie WanDB, np. MobileNet, ResNet, ew. custom CNN z klasyfikacją wielozadaniową. - Uruchomić modele na WanDB żeby zobaczyć czy się uruchamiają i generują poprawne wykresy. - Utworzyć README.md z instrukcją tworzenia nowych modeli. 3) Moduł do ładowania plików - Napisać moduł, który ładuje dane po transformacji. Dane będą wykorzystywane do uczenia i walidacji modelu. - Moduł powinien dokonywać podziału zbioru danych na 3 czesci - train, valid, test. - Powinno być możliwe zdefiniowanie rozmiaru batch'a, rozmiaru validation set'a, scieżki skąd załadować dane. - Dodać możliwość definiowania seed'a, tak aby każdy mógł uzyskać podobne rezultaty w razie potrzeby. Seed powinien być przekierowany na stdout podczas uruchamiania skryptu. - Dodać możliwość wyboru rozkładu danych. - Dane wyjściowe powinny być w formacie pozwalającym na załadowanie ich bezpośrednio do modelu (binarne, tf record, lub inne). - README.md opisujący w jaki sposób parametryzować moduł. 4) Moduł do obslugi i uruchaminia WanDB Job's - Napisać skrypt do ściągania danych z kolejki aby obejść problem uruchamiania agenta na Colab/Kaggle. - Napisać skrypt, który uruchamia job'y i wysyła go na kolejkę. Powinien obsługiwać przyjmowanie hiperparamterów, oraz nazwę kolejki, do której zostanie job przesłany. - Napisać skrypt, który uruchamia agenta na danej maszynie. - Napisać skrypt do tworzenia jobów - powinna być sprecyzowana struktura katalogowa, pozwalająca na zarządzanie nimi i obsługę różnych modeli. Ewentualnie synchronizacja job'ów, między WanDB i środowiskiem lokalnym. - README.md opisujący powyższe. 5) Eksperymenty, dobieranie hiperparametrów, rozkładu danych, testowanie różnych strategii. Jeżeli konieczne, dodanie nowych modeli. 6) Dodać Heatmap'ę do modelu (CAM). 7) Przygotowanie frontu do projektu (https://www.gradio.app/) 1. Uruchomienie lokalne Frontu do testów. 2. Obsługa wyświetlania Heatmap. 3. Deploy frontu na środowisko (lokalne/zdalne, do wyboru). 8) Wybór najlepszego modelu. 9) Modul do obslugi Sweeps - automatycznego dobierania hiperparametrów (opcjonalnie). # Źródło danych https://www.kaggle.com/datasets/vipoooool/new-plant-diseases-dataset # Technologie ## WanDB WanDB built-in features: - Experiments Tracking - Predictions Visualization - Scheduling runs through queues & connected agents - Model Registry - Hyperparamter optimization via Sweeps ## Moc obliczeniowa - Radeon 7800XT - GeForce RTX 3060TI - GeForce RTX 3070 - GeForce RTX 4050M - [zasoby uczelniane](https://laboratoria.wmi.amu.edu.pl/uslugi/zasoby-dla-projektow/maszyna-gpu/)