Načtení dat pomocí streamingu mosaic
Tento článek popisuje, jak pomocí systému Mosaic Streaming převést data z Apache Sparku do formátu kompatibilního s PyTorchem.
Mosaic Streaming je opensourcová knihovna pro načítání dat. Umožňuje jednouzlu nebo distribuované trénování a hodnocení modelů hlubokého učení z datových sad, které jsou již načteny jako datové rámce Apache Spark. Puzzle Streaming primárně podporuje Puzzle Composer, ale také se integruje s nativní PyTorch, PyTorch Lightning a TorchDistributor. Streaming společnosti Mosaic poskytuje řadu výhod oproti tradičním datovýmloaderům PyTorch, mezi které patří:
- Kompatibilita s jakýmkoli datovým typem, včetně obrázků, textu, videa a multimodálních dat.
- Podpora hlavních poskytovatelů cloudového úložiště (AWS, OCI, GCS, Azure, Databricks UC Volume a libovolného úložiště objektů kompatibilních s S3, jako je Cloudflare R2, Coreweave, Backblaze b2 atd.)
- Maximalizace záruk správnosti, výkonu, flexibility a snadného použití Další informace najdete na stránce s klíčovými funkcemi .
Obecné informace o technologii Mosaic Streaming najdete v dokumentaci k rozhraní API pro streamování.
Poznámka:
Do všech verzí Databricks Runtime 15.2 ML a vyšších verzí je předinstalovaný systém Streaming systému Mosaic Streaming.
Načtení dat z datových rámců Sparku pomocí streamování Mosaic
Puzzle Streaming poskytuje jednoduchý pracovní postup pro převod z Apache Sparku do formátu MDS (Mosaic Data Shard), který se pak dá načíst pro použití v distribuovaném prostředí.
Doporučený pracovní postup je:
- K načtení a volitelnému předběžnému zpracování dat použijte Apache Spark.
- Slouží
streaming.base.converters.dataframe_to_mds
k uložení datového rámce na disk pro přechodné úložiště nebo na svazek katalogu Unity pro trvalé úložiště. Tato data budou uložena ve formátu MDS a dají se dále optimalizovat s podporou komprese a hashování. Pokročilé případy použití můžou zahrnovat také předběžné zpracování dat pomocí funkcí definovaných uživatelem. Další informace najdete v kurzu k datovému rámci Sparku do MDS. - Slouží
streaming.StreamingDataset
k načtení potřebných dat do paměti.StreamingDataset
je verze PyTorch iterableDataset, která obsahuje elasticky deterministické náhodné náhodné prohazování, což umožňuje rychlé obnovení střední epochy. Další informace najdete v dokumentaci ke streamovací saděDataset . - Slouží
streaming.StreamingDataLoader
k načtení potřebných dat pro trénování, vyhodnocení nebo testování.StreamingDataLoader
je verze dataloaderu PyTorch, která poskytuje další rozhraní kontrolních bodů/obnovení, pro které sleduje počet vzorků, které model v tomto pořadí viděl.
Kompletní příklad najdete v následujícím poznámkovém bloku: