Sdílet prostřednictvím


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:

  1. K načtení a volitelnému předběžnému zpracování dat použijte Apache Spark.
  2. 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.
  3. 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 .
  4. 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:

Zjednodušení načítání dat ze Sparku do PyTorchu s využitím poznámkového bloku Pro streamování aplikace Mosaic

Získat poznámkový blok