Jak zbudować system ML od zera - przewodnik Made With ML

W zeszłym tygodniu koleżanka z działu produktu zapytała mnie: "Mamy prototyp modelu, który działa na moim laptopie. Jak teraz wdrożyć to na produkcję?" Znam to. Model działa lokalnie, demo wygląda świetnie, a potem zaczyna się zderzenie z rzeczywistością. Między eksperymentem a systemem produkcyjnym jest spora luka. Made With ML pokazuje, jak ją przejść bez chaosu i bez przepisywania wszystkiego od nowa.

W tym przewodniku pokażę Ci, jak zbudować system ML od podstaw - od pierwszych eksperymentów po wdrożenie i ciągłe ulepszanie. Bez magii. Za to z konkretnymi krokami i narzędziami, które da się uruchomić w praktyce.

Na start - co dobrze wiedzieć przed kursem

Made With ML to otwarty kurs stworzony przez Goku Mohandasa, który zebrał ponad 40 tysięcy programistów na GitHubie. Materiały są dostępne za darmo na madewithml.com, a kod znajdziesz w repozytorium GokuMohandas/Made-With-ML.

Kurs zakłada, że:

Znasz podstawy Pythona (nie musisz być ekspertem)

Rozumiesz, czym jest machine learning (choćby z ChatGPT)

Chcesz nauczyć się budować systemy, a nie tylko trenować modele

Masz dostęp do środowiska Python - lokalnie albo w chmurze

GPU nie jest potrzebne. Większość przykładów działa na CPU. Jeśli chcesz przyspieszyć trening, kurs pokazuje też, jak wykorzystać Anyscale - platformę chmurową z gotowymi GPU.

Od eksperymentu na laptopie do systemu produkcyjnego - bez przepisywania kodu

Krok 1: Najpierw ogarnij architekturę systemu ML

Zanim otworzysz edytor, dobrze zrozumieć, z czego składa się kompletny system ML. Made With ML prowadzi przez to etapami. Nie wrzuca Cię od razu na głęboką wodę.

Cztery etapy budowy systemu

Kurs dzieli proces na cztery fazy:

Design (projektowanie) - definiujesz problem, zbierasz dane, wybierasz metryki sukcesu

Develop (rozwój) - kodujesz model, testujesz lokalnie, szybko iterujesz

Deploy (wdrożenie) - przenosisz model na produkcję i konfigurujesz serving

Iterate (iteracja) - monitorujesz wyniki, zbierasz feedback i poprawiasz model

Najważniejsza zasada jest prosta: każdy etap naturalnie prowadzi do następnego. Uczysz się MLOps wtedy, gdy widzisz konkretny problem do rozwiązania. To dużo lepsze niż wkuwanie narzędzi na sucho.

Jakie elementy zbudujesz po drodze

W trakcie kursu stworzysz:

Pipeline przetwarzania danych - czyszczenie, transformacje, walidacja

Kod treningowy z tracking eksperymentów

Testy jednostkowe i integracyjne dla modelu

API do servingu predykcji

Workflow CI/CD do automatycznego wdrażania

System monitoringu i alertów

Wszystko w Pythonie. Bez przeskakiwania między pięcioma językami (co samo w sobie bywa osobnym hobby).

Krok 2: Przygotuj środowisko pracy

Made With ML daje dwie opcje: pracę lokalnie na laptopie albo w chmurze przez Anyscale. Wybierz to, co pasuje do Twojego sprzętu i budżetu.

Opcja A: środowisko lokalne

Jeśli masz laptop z przynajmniej 8 GB RAM:

Sklonuj repozytorium: git clone https://github.com/GokuMohandas/Made-With-ML.git

Zainstaluj zależności: pip install -r requirements.txt

Uruchom Jupyter: jupyter notebook

Otwórz pierwszy notebook z folderu notebooks/

Twój laptop zadziała jak mini-cluster - jeden rdzeń CPU jako head node, reszta jako worker nodes. Do nauki i małych eksperymentów to w zupełności wystarczy.

Opcja B: Anyscale w chmurze

Jeśli chcesz więcej mocy i dostęp do GPU:

Zarejestruj się na Anyscale (dają trial)

Utwórz workspace z template Made With ML

Wybierz konfigurację GPU, którą podpowiada kurs

Uruchom notebooki bezpośrednio w przeglądarce

Anyscale automatycznie zarządza infrastrukturą, więc możesz skupić się na kodzie. Jeśli dołączysz do live cohort - płatnych warsztatów grupowych - dostaniesz gotowy setup.

Środowisko lokalne wystarczy do przejścia całego kursu - GPU jest opcjonalne

Krok 3: Ucz się od podstaw, nie z samych komend

Made With ML nie startuje od kodu. Najpierw buduje zrozumienie od podstaw - po co dany koncept istnieje, jaki problem rozwiązuje i kiedy go używać.

Przykład: po co tracking eksperymentów?

Zamiast podejścia typu "zainstaluj MLflow i loguj metryki", kurs pokazuje:

Problem: trenujesz 10 wersji modelu i za tydzień nie pamiętasz, która była najlepsza

Rozwiązanie: zapisujesz parametry, metryki i artefakty każdego treningu

Narzędzie: MLflow - ale najpierw wiesz, po co go używasz

Implementacja: konkretny kod z komentarzami

Ten schemat wraca przy każdym temacie - od data validation po CI/CD. Najpierw problem, potem rozwiązanie. Dzięki temu wszystko ma sens także poza kursem.

Tematy, przez które przejdziesz

Kurs obejmuje:

Data engineering - jak przetwarzać dane w skali (Ray Data)

Feature engineering - transformacje, normalizacja, encoding

Model training - od prostej regresji po deep learning

Hyperparameter tuning - jak skutecznie szukać najlepszych parametrów

Testing - unit testy, integration testy, data validation

Serving - FastAPI, load balancing, skalowanie

Monitoring - metryki produkcyjne, drift detection, alerty

CI/CD - automatyczne trenowanie i wdrażanie nowych wersji

Każdy temat to osobna lekcja z kodem do uruchomienia.

Krok 4: Wdrażaj dobre praktyki od pierwszego dnia

Made With ML uczy nie tylko machine learningu, ale też software engineering. Kod, który napiszesz, ma wyglądać jak coś, co spokojnie przejdzie code review w normalnej firmie.

Jak to wygląda w praktyce

Nauczysz się:

Strukturyzować projekt - gdzie co leży i jak organizować foldery

Pisać czytelny kod - naming conventions, docstringi, type hints

Testować wszystko - pytest, fixtures, mocking

Wersjonować dane i modele - DVC, Git LFS

Dokumentować decyzje - README, architecture decision records

Automatyzować powtarzalne zadania - Makefile, pre-commit hooks

Bez tych rzeczy system ML szybko zaczyna się sypać. Najczęściej już po pierwszym tygodniu na produkcji.

Przykład: sensowna struktura projektu

Zamiast chaotycznego folderu pełnego notebooków, stworzysz:

made-with-ml/
├── data/ # surowe i przetworzone dane
├── models/ # zapisane modele
├── notebooks/ # eksperymenty
├── src/ # kod produkcyjny
│ ├── data.py # data pipeline
│ ├── train.py # trening
│ ├── evaluate.py # ewaluacja
│ └── serve.py # API
├── tests/ # testy
├── config.yaml # konfiguracja
└── requirements.txt

Każdy plik ma jasną odpowiedzialność. Gdy do zespołu dołącza nowa osoba, od razu wie, gdzie czego szukać.

Struktura projektu, która tłumaczy się sama

Krok 5: Skaluj workloady bez przepisywania kodu

Kurs uczy skalowania w Pythonie - bez przerzucania się na Spark czy inne frameworki. Wykorzystuje Ray, bibliotekę, która pozwala rozproszyć obliczenia na wiele maszyn.

Co da się skalować

Przetwarzanie danych - zamiast pandas (1 rdzeń) używasz Ray Data (wszystkie rdzenie lub maszyny)

Trening modelu - Ray Train rozdziela trening na wiele GPU

Hyperparameter tuning - Ray Tune równolegle testuje setki konfiguracji

Serving - Ray Serve automatycznie skaluje API przy rosnącym ruchu

Największa zaleta? Ten sam kod działa lokalnie na laptopie i w chmurze na 100 GPU. Nie musisz utrzymywać osobnej wersji na dev i prod.

Przykład: przetwarzanie 1M wierszy

Pandas:

import pandas as pd
df = pd.read_csv("data.csv") # 1 rdzeń, 10 minut
df = df[df['price'] > 100]

Ray Data:

import ray
ds = ray.data.read_csv("data.csv") # wszystkie rdzenie, 2 minuty
ds = ds.filter(lambda row: row['price'] > 100)

API jest prawie identyczne, a Ray sam rozdziela pracę.

Krok 6: Zepnij narzędzia MLOps w jeden system

Made With ML pokazuje, jak połączyć narzędzia MLOps w spójną całość. Nie uczysz się każdego z nich osobno. Widzisz, jak współpracują.

Stack, który zbudujesz

Tracking: MLflow - parametry, metryki, artefakty

Testing: pytest - unit testy + Great Expectations - data validation

Serving: FastAPI - REST API + Ray Serve - skalowanie

Orchestration: Airflow lub Prefect - workflow automation

Monitoring: Prometheus + Grafana - metryki produkcyjne

CI/CD: GitHub Actions - automatyczne testy i deploy

Kurs wprowadza te narzędzia stopniowo. Każde pojawia się wtedy, gdy rozwiązuje konkretny problem.

Przykład: workflow CI/CD

Stworzysz pipeline, który:

Uruchamia testy przy każdym commicie

Trenuje nowy model, jeśli testy przeszły

Porównuje nowy model ze starym

Wdraża go automatycznie, jeśli nowy jest lepszy

Wysyła alert, jeśli coś poszło nie tak

Całość mieści się w jednym pliku YAML. Po pierwszym setupie ręcznej pracy zostaje naprawdę mało.

Krok 7: Przenieś kod z dev do prod bez zmian

To jedna z największych zalet Made With ML. Kod, który piszesz lokalnie, działa na produkcji bez modyfikacji. Nie ma osobnego "prototypu" i osobnej "wersji produkcyjnej".

Na czym to polega

Kurs uczy pisać kod, który jest:

Konfigurowalny - parametry trzymasz w pliku config.yaml, a nie na sztywno w kodzie

Testowalny - każda funkcja ma unit test

Skalowalny - Ray dopasowuje się do dostępnych zasobów

Monitorowalny - logi i metryki masz od pierwszej linii

Zmieniasz tylko config - liczba workerów, typ maszyny - a logika zostaje taka sama.

Przykład: ten sam kod w trzech środowiskach

Laptop (rozwój):

ray.init(num_cpus=2) # 2 rdzenie
train_model(config)

Staging (testy):

ray.init(address="ray://staging-cluster:10001") # 10 maszyn
train_model(config) # ten sam kod!

Produkcja (wdrożenie):

ray.init(address="ray://prod-cluster:10001") # 100 maszyn + GPU
train_model(config) # nadal ten sam kod!

Funkcja train_model() nie musi wiedzieć, gdzie działa. Ray zarządza infrastrukturą.

Ten sam kod na laptopie i w chmurze - zmienia się infrastruktura, nie logika

Krok 8: Zbuduj dojrzały workflow CI/CD

Ostatni etap kursu to automatyzacja. Nauczysz się tworzyć pipeline, który stale trenuje i wdraża lepsze modele - bez Twojego ciągłego udziału.

Co da się zautomatyzować

Walidacja danych - nowe dane przechodzą testy jakości

Retraining - model trenuje się co tydzień lub miesiąc na świeżych danych

Evaluation - nowy model jest porównywany z baseline

Deployment - lepszy model automatycznie zastępuje stary

Rollback - jeśli nowy model działa gorzej, system wraca do starego

Monitoring - alerty uruchamiają się, gdy metryki spadają poniżej progu

Kurs pokazuje to modularnie - każdy krok jest osobnym jobem, który możesz podmienić albo wyłączyć.

Integracja z różnymi narzędziami CI/CD

Made With ML nie zamyka Cię w jednym narzędziu. Pokazuje wzorce, które działają z:

GitHub Actions - najpopularniejsze

GitLab CI

Jenkins

CircleCI

Dowolnym innym systemem CI/CD

Uczysz się zasad, a nie jednej konkretnej implementacji. Dzięki temu łatwiej przenieść tę wiedzę do własnego stacku.

Dla kogo ten kurs ma najwięcej sensu?

Made With ML celuje w trzy główne grupy:

Programiści (software/infra engineers)

Znasz backend, ale ML wydaje Ci się czarną magią? Ten kurs pokazuje, że to po prostu kolejny typ aplikacji - z danymi zamiast samych requestów HTTP. Jeśli umiesz zbudować API, zbudujesz też system ML.

Data scientists

Trenujesz modele w notebookach, ale nie wiesz, jak je wdrożyć? Ten kurs domyka lukę między eksperymentem a produkcją. Uczysz się software engineering bez porzucania Pythona.

Absolwenci uczelni

Na studiach było sporo teorii - backpropagation, gradient descent - a mało praktyki wdrożeniowej? Made With ML działa jak most między akademią a przemysłem. Dostajesz umiejętności, których firmy naprawdę potrzebują.

Product managerowie i liderzy techniczni

Zarządzasz zespołem ML, ale techniczne szczegóły są mgliste? Kurs daje solidne podstawy. Wystarczające, żeby oceniać propozycje zespołu i podejmować świadome decyzje. Nie zamieni Cię w data scientista, ale rozmowy techniczne przestaną być loterią.

Co odróżnia Made With ML od innych kursów?

Przeszedłem kilkanaście kursów ML. Made With ML wyróżnia się trzema rzeczami.

1. Perspektywa end-to-end

Większość kursów uczy albo ML - jak trenować model - albo MLOps - jak go wdrażać. Made With ML prowadzi przez cały cykl: od problemu biznesowego po monitoring na produkcji. Widzisz cały obraz, a nie tylko jeden fragment.

2. Pragmatyzm zamiast perfekcjonizmu

Kurs nie pcha Cię w budowę "idealnego systemu" od pierwszego dnia. Pokazuje, co zrobić najpierw jako MVP, co dołożyć później przy skalowaniu i co odpuścić, żeby nie ugrzęznąć w przedwczesnej optymalizacji.

3. Kod gotowy do pracy

To nie jest tutorialowy kod, który później trzeba przepisać od zera. Materiał z kursu wygląda jak coś, co mogłoby przejść code review w Google czy Airbnb. Struktura projektu, testy i dokumentacja są dopracowane.

Ile czasu trzeba na przejście kursu?

To zależy od Twojego tempa i wcześniejszej wiedzy:

Intensywnie (live cohort): 1 dzień (8 godzin) z grupą i mentorem

Samodzielnie part-time: 2-4 tygodnie po 5-10 godzin tygodniowo

Spokojnie weekendowo: 2-3 miesiące po kilka godzin w weekend

Kurs ma około 20 lekcji. Każda zajmuje 30-60 minut czytania i 1-2 godziny kodowania. Łącznie daje to około 40-60 godzin materiału.

Jeśli znasz już Pythona i podstawy ML, możesz przeskoczyć pierwsze lekcje i skrócić ten czas mniej więcej o połowę.

Czy do kursu potrzebujesz GPU?

Nie. Większość przykładów działa na CPU. Kurs używa małych datasetsów - tysięcy wierszy, nie milionów - żeby trening trwał minuty, a nie godziny.

GPU przyspieszy niektóre etapy, zwłaszcza deep learning i hyperparameter tuning, ale nie jest wymagane. Jeśli chcesz, Anyscale daje dostęp do GPU w chmurze i trial wystarcza na przejście kursu.

Co robić po ukończeniu Made With ML?

Ten kurs daje mocne fundamenty, ale to dopiero początek. Dalsze kroki są dość naturalne:

Zbuduj własny projekt - weź problem z pracy albo hobby i przejdź przez cały pipeline

Wejdź głębiej w specjalizację - NLP, computer vision albo recommender systems

Poznaj konkretne narzędzia - Kubernetes, Terraform, chmury typu AWS, GCP, Azure

Dołącz do społeczności - Made With ML ma Slacka, GitHub Discussions i live cohorts

Możesz też sprawdzić jak wdrożyć RAG w swoim projekcie - to naturalny kolejny krok, jeśli chcesz budować aplikacje AI z wykorzystaniem LLM.

Made With ML daje fundament, a specjalizacje przychodzą później

Najprostszy sposób, żeby sprawdzić ten kurs

Nie musisz od razu rezerwować całego tygodnia. Otwórz madewithml.com, przejdź pierwszą lekcję - Overview - i uruchom pierwszy notebook lokalnie. To zajmie około 30 minut.

Po tym czasie od razu zobaczysz, czy ten styl nauki Ci odpowiada. Jeśli po pierwszej lekcji pomyślisz: "OK, to ma sens", idź dalej. Jeśli nie, stracisz tylko pół godziny, a nie cały tydzień.

Chcesz zbudować system ML w praktyce?

Made With ML pokazuje, jak przejść od eksperymentu do produkcji. Jeśli jednak wolisz zacząć od podstaw AI, na darmowym webinarze pokazuję krok po kroku, jak oszczędzać 10 godzin tygodniowo dzięki AI bez wiedzy technicznej.
Zapisz się na darmowy webinar →
Wolisz uczyć się we własnym tempie? Sprawdź kurs AI Evolution

Werdykt: czy Made With ML jest warte Twojego czasu?

Made With ML to kompletny przewodnik po budowie systemów ML - od pierwszego eksperymentu po automatyczne wdrożenia. Uczysz się tu nie tylko technik ML, ale też zasad software engineering i MLOps. Kod, który napiszesz, nadaje się do sensownego code review.

Kurs jest darmowy, otwarty i utrzymywany przez społeczność 40 tysięcy programistów. Jeśli chcesz przejść od prototypów w notebooku do działających systemów produkcyjnych, to bardzo dobry punkt startu.

Najczęstsze pytania

Czy Made With ML jest darmowy?

Tak. Wszystkie materiały - lekcje, kod i notebooki - są dostępne za darmo na madewithml.com i GitHubie. Płatne są tylko live cohorty, czyli warsztaty grupowe z mentorem i dostępem do GPU, ale nie są potrzebne do przejścia kursu.

Jaki poziom Pythona jest wymagany?

Wystarczą podstawy: zmienne, funkcje, pętle i klasy. Nie musisz być ekspertem. Kurs tłumaczy bardziej zaawansowane konstrukcje, takie jak dekoratory czy context managery, gdy się pojawiają. Jeśli masz za sobą dowolny kurs Pythona, dasz radę.

Czy mogę używać Made With ML w pracy komercyjnej?

Tak. Kod jest na licencji MIT, więc możesz go używać, modyfikować i wdrażać w projektach komercyjnych bez ograniczeń. Wiele firm, w tym startupy z Y Combinator, używa Made With ML jako fundamentu swoich systemów ML.

Czym ten kurs różni się od Coursera czy Fast.ai?

Coursera i Fast.ai skupiają się głównie na ML - czyli na trenowaniu modeli. Made With ML obejmuje cały system: od danych po monitoring produkcyjny. Jeśli znasz już podstawy ML i chcesz nauczyć się wdrażania, ten kurs dobrze domyka temat. Jeśli dopiero zaczynasz, możesz najpierw sprawdzić podstawy jak działają duże modele językowe.

Czy Ray to jedyna opcja skalowania?

Nie. Kurs używa Ray, bo działa w czystym Pythonie i nie wymaga nauki Spark czy Scali. Same zasady, które tu poznasz - data parallelism i distributed training - przydadzą się też w innych frameworkach. Później możesz przenieść tę wiedzę na Spark, Dask czy Kubernetes.

Na podstawie: SukcesAI Course Material