Profesjonalna struktura katalogów projektu AI
Układ data/, notebooks/, src/, models/, tests/ i wzorzec cookiecutter-data-science.
Profesjonalna struktura katalogów projektu AI to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Dlaczego struktura ma znaczenie
Stos notatników o nazwach final.ipynb, final2.ipynb i really_final.ipynb to sposób na uśmiercenie projektu AI. Spójna struktura katalogów sprawia, że projekty są czytelne, odtwarzalne i przyjazne we współpracy.
W tej lekcji omówiono szeroko stosowany układ Cookiecutter Data Science.
Folder data
Dane należy rozdzielić według etapu przetwarzania, aby surowe dane wejściowe nigdy nie były nadpisywane:
data/raw/— oryginalne, niezmienne dane źródłowedata/processed/— oczyszczone dane gotowe dla modeludata/interim/— dane pośredniego etapu przekształceń
Folder data/raw należy traktować jako przeznaczony tylko do odczytu — zawsze powinni Państwo móc odtworzyć z niego wszystkie pozostałe dane.
Dlaczego dane surowe są niezmienne
Jeśli błąd podczas czyszczenia uszkodzi jedyną kopię danych, projekt jest stracony. Pozostawienie data/raw bez zmian oznacza, że każdy przetworzony plik można odtworzyć, ponownie uruchamiając potok.
Przetworzone wyniki można usunąć; dane surowe są nienaruszalne.
Folder notebooks
Folder notebooks/ zawiera notatniki służące do eksploracji i raportowania. Często numeruje się je według etapu i dodaje inicjały, np. 1.0-mk-eda.ipynb.
Notatniki służą do eksploracji, a logika wielokrotnego użytku powinna trafić do src/.
Pakiet src
Folder src/ zawiera importowalny kod Pythona, podzielony według odpowiedzialności:
src/data/— skrypty do wczytywania i przetwarzania danychsrc/features/— inżynieria cechsrc/models/— kod do trenowania i predykcjisrc/visualization/— wykresy i raporty
src/features i src/models
Rozdzielenie inżynierii cech i modelowania na osobne moduły przynosi wiele korzyści: mogą Państwo testować kod cech za pomocą testów jednostkowych, używać go ponownie w różnych notatnikach i wymieniać modele bez przepisywania przygotowania danych.
from src.features.build_features import make_features
from src.models.train import train_model
X = make_features(df)
model = train_model(X, y)Folder models
Folder models/ przechowuje serializowane wytrenowane artefakty (np. model.pkl, model.joblib). Są to wyniki, a nie kod źródłowy.
Duże pliki modeli zwykle nie powinny trafiać do Git — zamiast tego należy śledzić je za pomocą DVC lub magazynu obiektów (co zostanie omówione w następnej lekcji).
Folder reports
Folder reports/ zawiera generowane wyniki przeznaczone dla ludzi: reports/figures/ służy do przechowywania wykresów, a w głównym katalogu znajduje się dokument raportu. Wyniki te są tworzone przez kod, więc można je ponownie wygenerować.
Pliki konfiguracji i środowiska
Projekt należy uzupełnić o pliki znajdujące się na jego głównym poziomie:
requirements.txtlubenvironment.yml— zależnościconfig.yaml— hiperparametry i ścieżkiREADME.md— opis projektu i sposób jego uruchomienia.gitignore— elementy, które Git powinien pomijać
Pełny układ
Po złożeniu wszystkich elementów przejrzysty projekt AI wygląda tak:
project/
data/
raw/
interim/
processed/
notebooks/
src/
data/
features/
models/
visualization/
models/
reports/
figures/
config.yaml
requirements.txt
README.mdGenerowanie za pomocą Cookiecutter
Nie trzeba za każdym razem tworzyć tej struktury ręcznie. Szablon cookiecutter-data-science tworzy cały szkielet za pomocą jednego polecenia.
# pip install cookiecutter
# cookiecutter -c v1 https://github.com/drivendata/cookiecutter-data-science
# Answer a few prompts -> full project tree createdSzybkie sprawdzenie: gdzie trafiają dane surowe?
Pobierają Państwo oryginalny plik CSV od dostawcy danych.
Podsumowanie: struktura projektu
Poznali Państwo profesjonalny układ projektu AI:
data/raw(niezmienne),data/processeddla kolejnych etapównotebooks/do eksploracji,src/featuresisrc/modelsdla kodu wielokrotnego użytkumodels/dla artefaktów,reports/dla wyników- Konfiguracja, zależności, README i .gitignore w katalogu głównym
- cookiecutter-data-science do natychmiastowego utworzenia szkieletu
Dalej: efektywne korzystanie z Git w projektach AI.
Często zadawane pytania
Czy lekcja „Profesjonalna struktura katalogów projektu AI” jest bezpłatna?
Tak — pełny tekst „Profesjonalna struktura katalogów projektu AI” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Co nauczysz się w „Profesjonalna struktura katalogów projektu AI”?
Układ data/, notebooks/, src/, models/, tests/ i wzorzec cookiecutter-data-science. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Profesjonalna struktura katalogów projektu AI”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?
Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Profesjonalna struktura katalogów projektu AI
- Git w projektach AI
- Powtarzalność: ziarna, konfiguracje i środowiska
- Najlepsze praktyki dotyczące notatników Jupyter