Używanie kontroli źródła dla zasobów uczenia maszynowego

Ukończone

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.