Jednym z bardziej ciekawych wzorców architektonicznych jest architektura zwana Pipe And Filters.
Co nam daje?
Polega ona na utworzeniu za pomocą modułów w kodzie idempotentych przepływów danych.
Przykład na ML flow:
Dane => Mapowanie danych => Analiza danych => Imputacja danych => Transformacja danych (np scalowanie) => Uczenie na danych => Weryfikacja modelu => Deploy modelu
Co nam daje P&F?
Możemy bez problemu każdą z tych części zrównoleglić od siebie i użyć tak zwanych collectors do zbierania wyników i przekazania ich do kolejnego modułu.
Dane => 1..N osobnych procesów => Mapowanie danych => Analiza danych => Imputacja danych => Transformacja danych => Kolektor => Uczenie na danych => weryfikacja modelu => Deploy modelu
P. S. Co to podziału analizy statystycznej na mniejsze batche opieram się na Centralnym Twierdzeniu Granicznym, dlatego mogę robić na zatomizowanych ilościach
Z ciekawości czy ktoś chciałby coś o ML/DS ?
chusteczka_haftowana

@hackerman a teraz tłumaczenie w wersji dla blondynki, co to są:


idempotente przepływy danych


?

lubieplackijohn

@hackerman O! Widzę #qualitycontent! Może jakaś seria wpisów?

hackerman

@chusteczka_haftowana To słowo jest bardzo fajne. Po prostu chodzi o to, że każdy krok tworzy nowy obiekt. W podejściu obiektowym pracuje się często i gęsto na jednych danych i je się manipuluje, zmienia. Chodzi tutaj o to, że pierwotne dane zostają skopiowane. Daje to możliwość odcięcia się od problemów z wielowątkowością jak wyścigiem do zasobu Dałem radę?

chusteczka_haftowana

@hackerman czyli taki jakby lejek tak?


wyciągam dane > wrzucam do nowej tabeli (czyli ucinam im wcześniejsze powiązania z innymi danymi) > manipulacja 1 > nowa tabela 1 > ... >manipulacja n > nowa tabela n z ostatecznym wynikiem


coś w ten deseń?

hackerman

@chusteczka_haftowana Dokładnie tak Ogólnie nie wiem czy używasz Pythona.

Ale w pandas jest coś takiego jak inplace=True/False

Czyli ma nadpisać dane, albo zwrócić obiekt po transformacji. Czyli przykład.


def fill_nan_by_zero(df: DataFrame) -> DataFrame:

return df.fillna(0)


Nie dość, że jest zyskywiana atomowość, to łatwo tworzyć klocki, które potem można przemiennie używać

hackerman

Btw uzupełnianie NaN 0 to jest przykład Żeby dane brakujące uzupełnić warto dane zbadać pod kątem rozkładu, statystycznych testów...

chusteczka_haftowana

@hackerman zrobiłam jedno podejście, ale szybko odpuściłam, może dlatego, że kurs był nastawiony pod AI. Za to swojego czasu fajnie mi szła zabawa na danych SQLem, a potem zostałam w piaskownicy - Excel, ale za to coś tam z VBA chwilę romansowałam, jak było mi to potrzebne

chusteczka_haftowana

@hackerman brzmi jak fajna optymalizacja

hackerman

@chusteczka_haftowana Yeap myślę, że temat fajny ale bardzo szeroki

chusteczka_haftowana

@hackerman takie są najlepsze, ale trzeba mieć o tym większe pojęcie, niż wydzierganie prostego programiku w konsoli

pyXelr

@hackerman Z chęcią poczytam. Sam ostatnio raczkuję w pracy w tematyce MLOps, dlatego też przyda się poszerzyć wiedzę

Zaloguj się aby komentować