Udostępnij za pośrednictwem


Co to jest Ray w usłudze Azure Databricks?

Ray to platforma typu open source do skalowania aplikacji języka Python. Obejmuje ona biblioteki specyficzne dla obciążeń sztucznej inteligencji, dzięki czemu jest szczególnie odpowiednia do tworzenia aplikacji sztucznej inteligencji. Usługa Ray w usłudze Azure Databricks umożliwia uruchamianie aplikacji Ray przy jednoczesnym uzyskaniu wszystkich korzyści i funkcji platformy usługi Azure Databricks.

Dzięki technologii Ray 2.3.0 lub nowszej można tworzyć klastry Ray i uruchamiać aplikacje Ray w klastrach Apache Spark za pomocą usługi Azure Databricks.

Aby uzyskać informacje na temat rozpoczynania pracy z uczeniem maszynowym na urządzeniu Ray, w tym samouczkami i przykładami, zobacz dokumentację raya. Aby uzyskać więcej informacji na temat integracji raya i platformy Apache Spark, zobacz dokumentację interfejsu API Ray on Spark.

Co to jest Ray?

Ray upraszcza systemy rozproszone, udostępniając podstawowe elementy pierwotne języka Python do tworzenia aplikacji rozproszonych od podstaw. Deweloperzy języka Python nowi w systemach rozproszonych oferują taką samą łatwość użycia jak standardowy język Python podczas zarządzania orkiestracją, planowaniem i odpornością na uszkodzenia.

Ray i Apache Spark to uzupełniające się struktury. Ray wyróżnia się w zakresie równoległości logicznej, obsługi dynamicznych, intensywnie korzystających z obliczeń zadań, takich jak uczenie maszynowe i uczenie wzmacniania. Platforma Apache Spark specjalizuje się w równoległości danych, efektywnie przetwarza duże zestawy danych pod kątem zadań, takich jak ETL i analiza danych. Razem zapewniają zaawansowaną kombinację zarówno przetwarzania danych, jak i złożonych obliczeń.

Dlaczego warto uruchomić usługę Ray w usłudze Azure Databricks?

Uruchamianie usługi Ray w usłudze Azure Databricks umożliwia wykorzystanie szerokiego zakresu ekosystemu usługi Azure Databricks, ulepszania przepływów pracy przetwarzania danych i uczenia maszynowego za pomocą usług i integracji, które nie są dostępne w usłudze Open Source Ray. Zalety uruchamiania raya w usłudze Azure Databricks obejmują:

  • Ujednolicona platforma: usługa Azure Databricks udostępnia ujednoliconą platformę, na której można uruchamiać aplikacje Ray obok platformy Apache Spark. Ta integracja obsługuje bezproblemowe operacje ETL danych, wydajne przesyłanie danych i zaawansowane przetwarzanie równoległe w tym samym środowisku obliczeniowym.
  • Ład i kontrola: Uzyskiwanie korzyści ze śledzenia pochodzenia, przechowywania wersji danych i kontroli dostępu za pomocą usługi Unity Catalog dla wszystkich zasobów danych, plików, modeli i nie tylko, zapewnienia zgodności i zabezpieczeń.
  • Zarządzanie infrastrukturą: korzystaj z narzędzi infrastruktury, takich jak dostawca programu Terraform usługi Azure Databricks i pakiety zasobów usługi Azure Databricks, aby zarządzać klastrami i zadaniami, zapewniając usprawnione operacje i skalowalność.
  • Zarządzane klastry Ray: klastry Ray są zarządzane w tym samym środowisku wykonywania co uruchomiony klaster Apache Spark. Zapewnia to skalowalność, niezawodność i łatwość użycia bez konieczności konfigurowania złożonej infrastruktury.
  • Obsługa modeli i monitorowanie: Łączenie modeli wytrenowanych za pomocą technologii Ray Train to Mosaic AI Model Serving na potrzeby wdrożeń o wysokiej dostępności i małych opóźnieniach. Ponadto użyj funkcji Monitorowania usługi Lakehouse, aby śledzić jakość i dryf przewidywania modelu, zapewniając spójną wydajność.
  • Ulepszone programowanie uczenia maszynowego: integracja z w pełni zarządzaną usługą Azure Databricks MLflow w celu śledzenia tworzenia modelu, ułatwiania zarządzania eksperymentami i powtarzalności w aplikacjach Ray.
  • Zautomatyzowane przepływy pracy: użyj zadań usługi Databricks, aby zautomatyzować procesy, tworząc potoki gotowe do produkcji, które usprawniają operacje i zmniejszają interwencję ręczną.
  • Zarządzanie kodem i współpraca: wydajnie zarządzaj kodem za pomocą folderów Git usługi Azure Databricks, umożliwiając bezproblemową integrację z usługą Git na potrzeby kontroli wersji i wspólnego tworzenia kodu aplikacji Ray.
  • Wydajny dostęp do danych: Łączenie aplikacji Ray z usługą Delta Lake przy użyciu szerokiego ekosystemu integracji danych usługi Azure Databricks w celu rozszerzenia możliwości raya do szerszego zakresu aplikacji i danych wyjściowych.

Uruchamiając usługę Ray w usłudze Azure Databricks, uzyskujesz dostęp do zintegrowanego ekosystemu, który usprawnia przetwarzanie danych, uczenie maszynowe i operacyjne przepływy pracy.

Przypadki użycia — uczenie maszynowe i nie tylko

Ray to uniwersalne narzędzie, które rozszerza możliwości języka Python poza ograniczenia operacji ramki danych, dzięki czemu idealnie nadaje się do wysoce dostosowanych i wyspecjalizowanych algorytmów rozproszonych.

Uczenie maszynowe i uczenie głębokie

Skorzystaj z bibliotek uczenia maszynowego Raya, aby ulepszyć przepływy pracy uczenia maszynowego:

  • Dostrajanie hiperparametryczne: optymalizowanie wydajności modelu za pomocą narzędzia Ray Tune w celu wydajnego i skalowalnego wyszukiwania hiperparametrów.
  • Trenowanie rozproszonego uczenia głębokiego: skalowanie modeli uczenia głębokiego w wielu węzłach z obsługą popularnych struktur, takich jak PyTorch, TensorFlow, HuggingFace i Keras. Idealny do trenowania modeli przetwarzania obrazów lub dużych modeli językowych (LLMs).
  • Tradycyjne uczenie maszynowe: użyj narzędzia Ray, aby dystrybuować trenowanie, ewaluację i wnioskowanie wsadowe dla tradycyjnych modeli uczenia maszynowego utworzonych przy użyciu popularnych bibliotek, takich jak scikit-learn lub XGBoost.

Obliczenia o wysokiej wydajności (HPC)

Ray wyróżnia się w dystrybucji obciążeń HPC, dzięki czemu jest odpowiedni dla:

  • Obliczenia matematyczne: wykonywanie złożonych obliczeń w polach, takich jak fizyka, genomiki lub finanse przy użyciu technologii Ray Core do wydajnego przetwarzania równoległego.
  • Prognozowanie szeregów czasowych: skaluj modele prognozowania, uruchamiając oszacowania jednocześnie z pakietami prognozowania, takimi jak Prorok lub ARIMA.

Przetwarzanie danych i inżynieria cech

Ray może również obsługiwać różne zadania przetwarzania danych:

  • Funkcje obliczeniowe: Złożone zadania inżynieryjne wymagające dużej mocy obliczeniowej mogą korzystać z architektury obliczeń rozproszonych firmy Ray.
  • Przetwarzanie audio, obrazów i wideo: dystrybuuj i przyspiesza przetwarzanie danych multimedialnych, co czyni je idealnym rozwiązaniem dla aplikacji w zakresie rozpoznawania mowy, klasyfikacji obrazów i analizy wideo.

Ograniczenia

  • Ray na platformie Apache Spark jest obsługiwany w trybie dostępu pojedynczego użytkownika (przypisanego), bez izolacji trybu dostępu współdzielonego i tylko klastrów zadań. Klastra Ray nie można zainicjować w klastrach przy użyciu bezserwerowych środowisk uruchomieniowych.
  • Unikaj uruchamiania %pip , aby zainstalować pakiety w uruchomionym klastrze Ray, ponieważ spowoduje to zamknięcie klastra. Zamiast tego należy zainstalować biblioteki przed zainicjowaniem klastra.
  • Użycie integracji, które zastępują konfigurację z ray.util.spark.setup_ray_cluster programu , może spowodować, że klaster Ray stanie się niestabilny. Unikaj nadmiernego subskrybowania zasobów klastra Ray w aplikacjach innych firm.
  • Jeśli wystąpią błędy takie jak ncclInternalError: Internal check failed, oznacza to problem z komunikacją sieciową między procesorami GPU w klastrze. Aby rozwiązać ten błąd, dodaj następujący fragment kodu szkoleniowego, aby użyć podstawowego interfejsu sieciowego.
import os
os.environ["NCCL_SOCKET_IFNAME"] = "eth0"

Zobacz inne artykuły w tej sekcji.