← Všechny projekty
Strojové učení

Bakalářská práce: Distribuovaný vývoj AI modelů

Bakalářská práce zaměřená na distribuované strojové učení. Za tuto práci jsem obdržel Cenu děkana.

KategorieStrojové učení
Aktualizováno21. 10. 2025
Repozitářhttps://gitlab.fit.cvut.cz/ledlmart/bachelor-project
Technologie
AIMachine LearningDistributed TrainingPyTorchFlask API

Přehled

Ve své bakalářské práci jsem zkoumal oblast distribuovaného strojového učení, konkrétně techniky umožňující trénování AI modelů napříč více zařízeními nebo uzly. Cílem bylo pochopit, jak efektivně distribuovat různé části procesu vývoje modelu (trénink, ladění hyperparametrů, inference) za účelem lepšího využití výpočetních zdrojů.

Zadání práce

Vývoj modelů strojového učení probíhá převážně na jednotlivých strojích s více výpočetními jednotkami. Práce zkoumá, jak lze trénink, ladění hyperparametrů a inferenci rozdělit mezi více strojů propojených přes internet. Hlavní důraz klade na metody a algoritmy pro optimalizaci hyperparametrů.

Hlavní cíle práce:

  1. Studium využití distribuovaných výpočtů ve strojovém učení, včetně tréninku a inference modelů, s primárním zaměřením na ladění hyperparametrů.
  2. Analýza existujících metod a algoritmů optimalizace hyperparametrů s ohledem na jejich použitelnost v distribuovaných prostředích.
  3. Návrh a implementace API pro kolaborativní ladění hyperparametrů napříč více stroji.
  4. Praktická demonstrace API propojením alespoň tří strojů pro kolaborativní ladění hyperparametrů modelu strojového učení.

Projekt

Projekt zahrnoval návrh a implementaci systému, který umožňuje více strojům spolupracovat na ladění hyperparametrů modelů. Systém tvoří centrální server koordinující tuning a klientské stroje, které provádějí samotný trénink a vyhodnocení modelů s různými konfiguracemi hyperparametrů.

Server poskytuje RESTful API postavené na Flasku, s nímž klienti komunikují, aby dostali přidělené hyperparametrické konfigurace. Pro komunikaci během tréninku jsem využil WebSockety, které umožňují aktualizace v reálném čase.

Klienti se připojí k serveru, obdrží konfiguraci hyperparametrů, natrénují model s danými parametry a odešlou výsledky zpět. Server výsledky sbírá a využívá je pro další analýzu a optimalizaci.

Výsledky

Systém byl otestován na více strojích a prokázal schopnost efektivně distribuovat proces ladění hyperparametrů. Přestože je implementace poměrně jednoduchá, ukázala potenciál distribuovaného strojového učení a přinesla cenné poznatky o výzvách spojených s takovými systémy.

Systém úspěšně propojil i klienty s nestabilním internetovým připojením.

Použité technologie

  • Python
  • Flask (RESTful API)
  • WebSockety (komunikace v reálném čase)
  • Scikit-learn (trénink modelů strojového učení)