Używanie kontroli źródła dla zasobów uczenia maszynowego
Model klasyfikacji cukrzycy firmy Proseware powstał w notatniku Jupyter na jednym laptopie. Gdy zespół rośnie — analitycy danych, inżynierowie uczenia maszynowego i recenzenci — to podejście się rozpada. Potrzebujesz miejsca, w którym wszyscy pracują na tej samej bazie kodu, mogą nawzajem przeglądać swoje zmiany i prześledzić pochodzenie każdego modelu do kodu, który go wygenerował.
Co należy do usługi Git
Repozytorium Git jest właściwym domem dla zasobów definiujących model i jego proces trenowania:
- Skrypty trenowania i przetwarzania wstępnego — pliki Python, które uruchamiają przygotowywanie danych i trenowanie modelu
- Definicje zadań i komponentów — pliki YAML opisujące zadania polecenia Azure Machine Learning i komponenty potoku
-
Pliki środowiskowe i pliki zależności —
requirements.txt,conda.yml, lub definicje środowiska Azure Machine Learning - Pliki konfiguracji — nazwy obszarów roboczych, nazwy grup zasobów, nazwy obliczeniowe i inne odwołania używane przez automatyzację
Co nie należy do usługi Git
Niektóre zasoby powinny znajdować się w wyspecjalizowanych usługach, a nie w repozytorium:
- Zestawy danych i dane pierwotne — używaj Azure Machine Learning zasobów danych lub Azure Data Lake Storage; pliki danych są duże i wersjonowane oddzielnie od kodu
- Artefakty wytrenowanego modelu — rejestrowanie nazwanych i wersjonowanych zasobów modelu w Azure Machine Learning
- Dane wyjściowe i dzienniki przebiegu trenowania — Azure Machine Learning przechowuje je za pomocą zadania
- Sekrety i poświadczenia — używaj sekretów GitHub lub usługi Azure Key Vault; umieszczanie poświadczeń w repozytorium naraża je na dostęp wszystkich osób mających uprawnienia do odczytu
Wskazówka
Przydatny test: jeśli plik jest oparty na tekście i definiuje sposób tworzenia modelu, należy do usługi Git. Jeśli jest to duży obiekt binarny lub wartość wrażliwa, jego miejsce jest w specjalnie przeznaczonym do tego magazynie danych.
Dlaczego kontrola źródła ma znaczenie dla uczenia maszynowego
Gdy każda definicja trenowania znajduje się w usłudze Git, twój zespół pracuje z tej samej wersji kodu. Recenzent widzi dokładnie to, co zmieniło się między przebiegami. Jeśli zmiana pogarsza wydajność modelu, możesz wrócić do poprzedniego commitu. Zarejestrowane definicje kodu i środowiska ułatwiają również odtworzenie przebiegu trenowania.
Ta możliwość śledzenia jest podstawą wszystkiego, co następuje — opracowywanie oparte na gałęziach, automatyczne sprawdzanie poprawności i dziennik inspekcji, który łączy każdą wersję modelu ze zmianą, która ją wygenerowała.
Wskazówka
Wybierz jeden zasób projektu. Czy przechowywałbyś to w repozytorium Git, usłudze Azure Machine Learning czy w magazynie sekretów? Wyjaśnij, dlaczego.