Udostępnij za pośrednictwem


Gdzie zapisywać i zapisywać pliki dla eksperymentów usługi Azure Machine Edukacja

DOTYCZY: Zestaw SDK języka Python azureml w wersji 1

W tym artykule dowiesz się, gdzie zapisywać pliki wejściowe i gdzie zapisywać pliki wyjściowe z eksperymentów, aby zapobiec błędom limitu magazynu i opóźnieniu eksperymentu.

Po uruchomieniu zadań szkoleniowych na docelowym obiekcie obliczeniowym są one odizolowane od środowisk zewnętrznych. Celem tego projektu jest zapewnienie powtarzalności i przenośności eksperymentu. Jeśli uruchomisz ten sam skrypt dwa razy, w tym samym lub innym obiekcie docelowym obliczeniowym, otrzymasz te same wyniki. W tym projekcie można traktować cele obliczeniowe jako zasoby obliczeniowe bezstanowe, z których każda nie ma koligacji z zadaniami uruchomionymi po zakończeniu.

Gdzie zapisać pliki wejściowe

Przed zainicjowaniem eksperymentu na docelowym obiekcie obliczeniowym lub komputerze lokalnym należy upewnić się, że niezbędne pliki są dostępne dla tego docelowego obiektu obliczeniowego. Na przykład pliki zależności i pliki danych, które należy uruchomić.

Skrypty szkoleniowe zadań usługi Azure Machine Edukacja przez skopiowanie całego katalogu źródłowego. Jeśli masz poufne dane, które nie chcesz przekazywać, użyj pliku .ignore lub nie dołącz go do katalogu źródłowego. Zamiast tego uzyskaj dostęp do danych przy użyciu magazynu danych.

Limit magazynu dla migawek eksperymentu wynosi 300 MB i/lub 2000 plików.

Z tego powodu zalecamy:

  • Przechowywanie plików w zestawie danych usługi Azure Machine Edukacja. Korzystanie z zestawów danych zapobiega problemom z opóźnieniami eksperymentów i ma zalety uzyskiwania dostępu do danych ze zdalnego celu obliczeniowego. Usługa Azure Machine Edukacja obsługuje uwierzytelnianie i instalowanie zestawu danych. Dowiedz się więcej o sposobie określania zestawu danych jako wejściowego źródła danych w skry skrycie szkoleniowym za pomocą funkcji Trenowanie przy użyciu zestawów danych.

  • Jeśli potrzebujesz tylko kilku plików danych i skryptów zależności i nie możesz użyć magazynu danych, umieść pliki w tym samym katalogu folderów co skrypt trenowania. Określ ten folder jako plik source_directory bezpośrednio w skrycie szkoleniowym lub w kodzie, który wywołuje skrypt trenowania.

Limity magazynu migawek eksperymentu

W przypadku eksperymentów usługa Azure Machine Edukacja automatycznie tworzy migawkę eksperymentu kodu na podstawie katalogu sugerowanego podczas konfigurowania zadania. W przypadku potoku katalog jest skonfigurowany dla każdego kroku.

Ma to całkowity limit 300 MB i/lub 2000 plików. Jeśli przekroczysz ten limit, zostanie wyświetlony następujący błąd:

While attempting to take snapshot of .
Your total snapshot size exceeds the limit of 300.0 MB

Aby rozwiązać ten błąd, zapisz pliki eksperymentów w magazynie danych. Jeśli nie możesz użyć magazynu danych, poniższa tabela oferuje możliwe alternatywne rozwiązania.

Opis eksperymentu Rozwiązanie limitu magazynu
Mniej niż 2000 plików i nie można użyć magazynu danych Zastąpij limit rozmiaru migawki za pomocą polecenia
azureml._restclient.snapshots_client.SNAPSHOT_MAX_SIZE_BYTES = 'insert_desired_size' i azureml._restclient.constants.SNAPSHOT_MAX_SIZE_BYTES = 'insert_desired_size'
Może to potrwać kilka minut w zależności od liczby i rozmiaru plików.
Musi używać określonego katalogu skryptów Aby zapobiec dołączaniu niepotrzebnych plików do migawki, utwórz plik ignoruj (.gitignore lub .amlignore) w katalogu. Dodaj do tego pliku katalogi i pliki do wykluczenia. Aby uzyskać więcej informacji na temat składni używanej w tym pliku, zobacz składnię i wzorce dla programu .gitignore. Plik .amlignore używa tej samej składni. Jeśli oba pliki istnieją, .amlignore zostanie użyty plik, a .gitignore plik jest nieużywany.
Potok Użyj innego podkatalogu dla każdego kroku
Notesy programu Jupyter .amlignore Utwórz plik lub przenieś notes do nowego, pustego, podkatalogu i ponownie uruchom kod.

Gdzie zapisywać pliki

Ze względu na izolację eksperymentów szkoleniowych zmiany plików, które występują podczas wykonywania zadań, nie muszą być utrwalane poza środowiskiem. Jeśli skrypt modyfikuje pliki lokalne do obliczeń, zmiany nie są utrwalane dla następnego zadania eksperymentu i nie są propagowane automatycznie do komputera klienckiego. W związku z tym zmiany wprowadzone w pierwszym zadaniu eksperymentu nie powinny mieć wpływu na te w drugim.

Podczas pisania zmian zalecamy zapisywanie plików w magazynie za pośrednictwem zestawu danych usługi Azure Machine Edukacja z obiektem OutputFileDatasetConfig. Zobacz , jak utworzyć element OutputFileDatasetConfig.

W przeciwnym razie zapisz pliki w folderze ./outputs i/lub ./logs .

Ważne

Dwa foldery, dane wyjściowe i dzienniki otrzymują specjalne traktowanie przez usługę Azure Machine Edukacja. Podczas trenowania podczas zapisywania plików w./outputs folderach i./logs plikach pliki zostaną automatycznie przekazane do historii zadań, aby mieć do nich dostęp po zakończeniu zadania.

  • W przypadku danych wyjściowych, takich jak komunikaty o stanie lub wyniki oceniania, zapisz pliki w ./outputs folderze, aby były one utrwalane jako artefakty w historii zadań. Należy pamiętać o liczbie i rozmiarze plików zapisanych w tym folderze, ponieważ opóźnienie może wystąpić, gdy zawartość zostanie przekazana do historii zadań. Jeśli opóźnienie jest problemem, zalecane jest zapisywanie plików w magazynie danych.

  • Aby zapisać zapisany plik jako dzienniki w historii zadań, zapisz pliki w ./logs folderze. Dzienniki są przekazywane w czasie rzeczywistym, więc ta metoda jest odpowiednia do przesyłania strumieniowego aktualizacji na żywo z zadania zdalnego.

Następne kroki