Go to file
2024-05-02 23:29:00 +02:00
.gitignore Add dataManager 2024-05-02 23:29:00 +02:00
DataManager.py Add dataManager 2024-05-02 23:29:00 +02:00
README.md Dodano szczegolowy harmonogram prac 2024-04-30 14:42:55 +02:00
testing.ipynb Testowanie WanDB job agents 2024-04-16 23:34:27 +02:00

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