README.md | ||
testing.ipynb |
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 <osoba/osoby> (<numer_zadania>)
.
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ń:
-
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.
-
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.
-
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ł.
-
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.
-
Eksperymenty, dobieranie hiperparametrów, rozkładu danych, testowanie różnych strategii. Jeżeli konieczne, dodanie nowych modeli.
-
Dodać Heatmap'ę do modelu (CAM).
-
Przygotowanie frontu do projektu (https://www.gradio.app/)
- Uruchomienie lokalne Frontu do testów.
- Obsługa wyświetlania Heatmap.
- Deploy frontu na środowisko (lokalne/zdalne, do wyboru).
-
Wybór najlepszego modelu.
-
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