Sdílet prostřednictvím


Co je Ray v Azure Databricks?

Ray je opensourcová architektura pro škálování aplikací Pythonu. Zahrnuje knihovny specifické pro úlohy AI, které jsou zvláště vhodné pro vývoj aplikací AI. Ray v Azure Databricks umožňuje spouštět aplikace Ray a získávat všechny výhody a funkce platformy Azure Databricks.

S Rayem 2.3.0 a novějším můžete vytvářet clustery Ray a spouštět aplikace Ray v clusterech Apache Spark pomocí Azure Databricks.

Informace o tom, jak začít se strojovým učením na Rayi, včetně kurzů a příkladů, najdete v dokumentaci k Rayi. Další informace o integraci Ray a Apache Spark najdete v dokumentaci k rozhraní Ray on Spark API.

Podívejte se na další články v této části.

Co je Ray?

Ray zjednodušuje distribuované systémy tím, že poskytuje základní primitivy Pythonu pro vytváření distribuovaných aplikací od nuly. Pro vývojáře v Pythonu, kteří s distribuovanými systémy začíná, nabízí stejné snadné použití jako standardní Python při správě orchestrace, plánování a odolnosti proti chybám.

Ray a Apache Spark jsou doplňkové architektury. Ray exceluje na logickém paralelismu, zpracování dynamických úloh náročných na výpočetní výkon, jako je strojové učení a výztužné učení. Apache Spark se specializuje na paralelismus dat a efektivně zpracovává velké datové sady pro úlohy, jako jsou ETL a analýzy dat. Společně poskytují výkonnou kombinaci pro zpracování dat i komplexní výpočty.

Proč spustit Ray v Azure Databricks?

Spuštění Ray v Azure Databricks umožňuje využívat šířku ekosystému Azure Databricks, což zlepšuje zpracování dat a pracovní postupy strojového učení pomocí služeb a integrací, které nejsou dostupné v open source Rayu. Mezi výhody spuštění Rayu v Azure Databricks patří:

  • Jednotná platforma: Azure Databricks poskytuje jednotnou platformu, kde můžete spouštět aplikace Ray společně s Apache Sparkem. Tato integrace podporuje bezproblémové operace ETL dat, efektivní přenos dat a výkonné paralelní výpočty v rámci stejného výpočetního prostředí.
  • Zásady správného řízení a řízení: Získejte výhody sledování rodokmenu, správy verzí dat a řízení přístupu pomocí katalogu Unity pro všechny datové prostředky, soubory, modely a další možnosti, zajištění dodržování předpisů a zabezpečení.
  • Správa infrastruktury: Ke správě clusterů a úloh využijte nástroje infrastruktury, jako je poskytovatel Azure Databricks Terraform a sady prostředků Azure Databricks, a zajistěte tak zjednodušené operace a škálovatelnost.
  • Spravované clustery Ray: Clustery Ray se spravují ve stejném spouštěcím prostředí jako spuštěný cluster Apache Spark. To zajišťuje škálovatelnost, spolehlivost a snadné použití bez nutnosti komplexního nastavení infrastruktury.
  • Obsluha a monitorování modelů: Propojte modely natrénované pomocí Ray Train to Mosaic AI Model Serving pro nasazení s vysokou dostupností a nízkou latencí. Kromě toho pomocí monitorování Lakehouse sledujte kvalitu a odchylku předpovědí modelu, čímž zajistíte konzistentní výkon.
  • Vylepšený vývoj ML: Integrace s plně spravovanou službou Azure Databricks MLflow za účelem sledování vývoje modelů, usnadnění správy experimentů a reprodukovatelnosti napříč vašimi aplikacemi Ray.
  • Automatizované pracovní postupy: Pomocí úloh Databricks můžete automatizovat procesy a vytvářet kanály připravené pro produkční prostředí, které zjednodušují operace a snižují ruční zásah.
  • Správa kódu a spolupráce: Efektivně spravujte kód pomocí složek Git Azure Databricks, což umožňuje bezproblémovou integraci Gitu pro správu verzí a vývoj pro váš kód aplikace Ray.
  • Efektivní přístup k datům: Připojte aplikace Ray k Delta Lake s využitím širokého ekosystému integrací dat v Azure Databricks, abyste rozšířili možnosti Raye na širší škálu aplikací a výstupů.

Spuštěním Ray v Azure Databricks získáte přístup k integrovanému ekosystému, který vylepšuje zpracování dat, strojové učení a provozní pracovní postupy.

Případy použití – strojové učení a další

Ray je univerzální nástroj, který rozšiřuje možnosti Pythonu nad rámec omezení operací datového rámce, takže je ideální pro vysoce přizpůsobené a specializované distribuované algoritmy.

Strojové učení a hluboké učení

Využijte knihovny strojového učení Raye k vylepšení pracovních postupů ML:

  • Ladění hyperparametrů: Optimalizujte výkon modelu pomocí Ray Tune pro výkonné a škálovatelné vyhledávání hyperparametrů.
  • Distribuované trénování hlubokého učení: Škálování modelů hlubokého učení napříč několika uzly s podporou oblíbených architektur, jako jsou PyTorch, TensorFlow, HuggingFace a Keras. Ideální pro trénovací modely pro počítačové zpracování obrazu nebo velké jazykové modely (LLM).
  • Tradiční strojové učení: Pomocí Rayu můžete distribuovat trénování, hodnocení a dávkové odvozování pro tradiční modely ML vytvořené s oblíbenými knihovnami, jako jsou scikit-learn nebo XGBoost.

Vysokovýkonné výpočetní prostředí (HPC)

Ray exceluje při distribuci úloh PROSTŘEDÍ HPC, takže je vhodný pro:

  • Matematické výpočty: Provádění složitých výpočtů v polích, jako je fyzika, genomika nebo finance, pomocí Ray Core pro efektivní paralelní zpracování.
  • Prognózování časových řad: Škálování modelů prognózování a souběžné spouštění odhadů s balíčky prognóz, jako je Prorok nebo ARIMA.

Zpracování dat a příprava funkcí

Ray může také zpracovávat různé úlohy zpracování dat:

  • Počítané funkce: Složité výpočetní úlohy náročné na funkce můžou těžit z distribuované výpočetní architektury Raye.
  • Zpracování zvuku, obrázku a videa: Distribuce a zrychlení zpracování multimediálních dat, což je ideální pro aplikace v rozpoznávání řeči, klasifikaci obrázků a analýzu videa.

Omezení

  • Ray v Apache Sparku se podporuje jenom pro režim přístupu jednoho uživatele (přiřazeného), bez izolace režimu sdíleného přístupu a clusterů úloh. Cluster Ray nelze inicializován na clusterech pomocí bezserverových modulů runtime.
  • Vyhněte se spuštění %pip instalace balíčků do spuštěného clusteru Ray, protože se cluster vypne. Místo toho nainstalujte knihovny před inicializací clusteru.
  • Použití integrací, které přepíší konfiguraci, ray.util.spark.setup_ray_cluster může způsobit nestabilitu clusteru Ray. Vyhněte se nadměrnému odběru prostředků clusteru Ray v aplikacích třetích stran.
  • Pokud narazíte na ncclInternalError: Internal check failedpodobné chyby, znamená to problém se síťovým komunikacem mezi gpu ve vašem clusteru. Pokud chcete tuto chybu vyřešit, přidejte do trénovacího kódu následující fragment kódu pro použití primárního síťového rozhraní.
import os
os.environ["NCCL_SOCKET_IFNAME"] = "eth0"