Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato část popisuje informace o načítání dat na výpočetních prostředcích GPU bez serveru speciálně pro aplikace ML a DL. V tomto kurzu se dozvíte více o tom, jak načíst a transformovat data pomocí rozhraní Spark Python API.
Načítání tabulkových dat
Použijte Spark Connect k načtení tabulkových dat strojového učení z tabulek Delta.
Pro trénování s jedním uzlem můžete datové rámce Apache Sparku převést na datové rámce pandas pomocí metody toPandas() a pak volitelně převést na formát NumPy pomocí metody to_numpy().
Poznámka:
Spark Connect odkládá analýzu a řešení názvů na dobu provádění, což může změnit chování vašeho kódu. Viz Porovnání Spark Connect s Klasickým Sparkem.
Spark Connect podporuje většinu rozhraní API PySpark, včetně Spark SQL, rozhraní Pandas API ve Sparku, strukturovaném streamování a knihovně MLlib (založené na datovém rámci). Nejnovější podporovaná rozhraní API najdete v referenční dokumentaci k rozhraní API PySpark .
Další omezení najdete v tématu Omezení výpočetních prostředků bez serveru.
Načtení dat uvnitř dekorátoru @distributed
Při použití Serverless GPU API pro distribuované trénování přesuňte kód načítání dat do dekorátoru @distributed. Velikost datové sady může překročit maximální velikost povolenou funkcí pickle, takže je doporučeno vygenerovat datovou sadu uvnitř dekorátoru, jak je znázorněno níže:
from serverless_gpu import distributed
# this may cause pickle error
dataset = get_dataset(file_path)
@distributed(gpus=8, remote=True)
def run_train():
# good practice
dataset = get_dataset(file_path)
....
Výkon načítání dat
/Workspace a /Volumes adresáře jsou hostované ve vzdáleném úložišti Katalogu Unity. Pokud je vaše datová sada uložená v katalogu Unity, rychlost načítání dat je omezená dostupnou šířkou pásma sítě. Pokud trénujete více epoch, doporučuje se nejprve zkopírovat data místně, konkrétně do /tmp adresáře, který je hostovaný na super rychlém úložišti (disky SSD NVMe).
Pokud je vaše datová sada velká, doporučujeme použít také následující techniky pro paralelizaci trénování a načítání dat:
- Při trénování více epoch aktualizujte datovou sadu tak, aby se soubory uložily místně v adresáři
/tmppřed čtením jednotlivých souborů. V dalších epochách použijte verzi uloženou v mezipaměti. - Provádějte paralelní načítání dat aktivací pracovníků v API torch DataLoader Nastavte
num_workersna alespoň 2. Ve výchozím nastavení každý pracovník předem načte dvě pracovní položky. Pokud chcete zvýšit výkon, zvyštenum_workers(což zvýší počet paralelních čtení) neboprefetch_factor(což zvýší počet položek, které každý pracovník předem načte).