97 lines
4.9 KiB
Markdown
97 lines
4.9 KiB
Markdown
# 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ń:
|
|
|
|
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/)
|
|
|