Kde ukládat a zapisovat soubory pro experimenty azure machine Učení

PLATÍ PRO:Python SDK azureml v1

V tomto článku se dozvíte, kam ukládat vstupní soubory a kam zapisovat výstupní soubory z experimentů, abyste zabránili chybám limitu úložiště a latenci experimentu.

Při spouštění trénovacích úloh v cílovém výpočetním objektu jsou izolované od vnějších prostředí. Účelem tohoto návrhu je zajistit reprodukovatelnost a přenositelnost experimentu. Pokud stejný skript spustíte dvakrát, na stejném nebo jiném cílovém výpočetním objektu obdržíte stejné výsledky. S tímto návrhem můžete s výpočetními cíli zacházet jako s bezstavovými výpočetními prostředky, přičemž každá nemá spřažení s úlohami, které jsou spuštěné po dokončení.

Kam ukládat vstupní soubory

Než budete moct zahájit experiment na cílovém výpočetním objektu nebo na místním počítači, musíte zajistit, aby byly pro tento výpočetní cíl k dispozici potřebné soubory, jako jsou soubory závislostí a datové soubory, které váš kód potřebuje spustit.

Azure Machine Učení úlohy trénovací skripty zkopírováním celého zdrojového adresáře. Pokud máte citlivá data, která nechcete nahrát, použijte soubor .ignore nebo je nezahrňte do zdrojového adresáře. Místo toho přistupovat k datům pomocí úložiště dat.

Limit úložiště pro snímky experimentů je 300 MB nebo 2 000 souborů.

Z tohoto důvodu doporučujeme:

  • Ukládání souborů do datové sady Azure Machine Učení To brání problémům s latencí experimentů a má výhody přístupu k datům ze vzdáleného cílového výpočetního objektu, což znamená, že služba Azure Machine Učení spravuje ověřování a připojení. Přečtěte si další informace o tom, jak zadat datovou sadu jako vstupní zdroj dat v trénovacím skriptu pomocí trénování s datovými sadami.

  • Pokud potřebujete jenom několik datových souborů a skriptů závislostí a nemůžete použít úložiště dat, umístěte soubory do stejného adresáře složek jako trénovací skript. Tuto složku zadejte přímo source_directory ve svém trénovacím skriptu nebo v kódu, který volá trénovací skript.

Limity úložiště snímků experimentů

U experimentů azure Machine Učení automaticky vytvoří snímek experimentu kódu na základě adresáře, který navrhujete při konfiguraci úlohy. Pro kanál je adresář nakonfigurovaný pro každý krok.

To má celkový limit 300 MB a/nebo 2000 souborů. Pokud tento limit překročíte, zobrazí se následující chyba:

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

Pokud chcete tuto chybu vyřešit, uložte soubory experimentů do úložiště dat. Pokud úložiště dat nemůžete použít, nabízí následující tabulka možná alternativní řešení.

Popis experimentu Řešení limitu úložiště
Méně než 2000 souborů a nejde použít úložiště dat Přepsání limitu velikosti snímku pomocí
azureml._restclient.snapshots_client.SNAPSHOT_MAX_SIZE_BYTES = 'insert_desired_size' a azureml._restclient.constants.SNAPSHOT_MAX_SIZE_BYTES = 'insert_desired_size'
V závislosti na počtu a velikosti souborů to může trvat několik minut.
Musí používat konkrétní adresář skriptů. Chcete-li zabránit zahrnutí nepotřebných souborů do snímku, proveďte v adresáři ignorovaný soubor (.gitignore nebo .amlignore). Do tohoto souboru přidejte soubory a adresáře, které se mají vyloučit. Další informace o syntaxi pro použití v tomto souboru naleznete v syntaxi a vzory pro .gitignore. Soubor .amlignore používá stejnou syntaxi. Pokud existují oba soubory, .amlignore použije se soubor a .gitignore soubor se nepoužívá.
Kanál Pro každý krok použijte jiný podadresář.
Poznámkové bloky Jupyter Vytvořte .amlignore soubor nebo přesuňte poznámkový blok do nového, prázdného podadresáře a spusťte kód znovu.

Kde zapisovat soubory

Kvůli izolaci trénovacích experimentů se změny souborů, ke kterým dochází během úloh, nemusí nutně uchovávat mimo vaše prostředí. Pokud váš skript upraví místní soubory na výpočetní výkon, změny se pro vaši další úlohu experimentu nezachovají a automaticky se nerozšírují zpět do klientského počítače. Změny provedené během první úlohy experimentu proto nemají a neměly by mít vliv na změny v sekundách.

Při zápisu změn doporučujeme zapisovat soubory do úložiště prostřednictvím datové sady Azure Machine Učení s objektem OutputFileDatasetConfig. Podívejte se, jak vytvořit OutputFileDatasetConfig.

V opačném případě zapište soubory do ./outputs složky nebo složky ./logs .

Důležité

Dvě složky, výstupy a protokoly, přijímají zvláštní zacházení se službou Azure Machine Učení. Při trénování se při zápisu souborů do./outputs a./logs složek automaticky nahrají do historie úloh, abyste k nim měli přístup po dokončení úlohy.

  • Pro výstup, jako jsou stavové zprávy nebo výsledky vyhodnocování, zapište soubory do ./outputs složky, aby se zachovaly jako artefakty v historii úloh. Mějte na paměti počet a velikost souborů zapsaných do této složky, protože latence může nastat, když se obsah nahraje do historie úloh. Pokud je latence problém, doporučuje se zápis souborů do úložiště dat.

  • Pokud chcete zapsaný soubor uložit jako protokoly v historii úloh, zapište soubory do ./logs složky. Protokoly se nahrají v reálném čase, takže tato metoda je vhodná pro streamování živých aktualizací ze vzdálené úlohy.

Další kroky