Ray on AI için Çalışma Zamanı

Uyarı

Eğer Ray'i Databricks Classic compute ile Databricks Runtime ML ile kullanıyorsanız, Ray on Databricks sayfasına bakınız.

Ray, Python iş yüklerini ölçeklendirmek için açık kaynak bir çerçevedir. Ray ile AI Runtime'da GPU altyapısını sağlamadan veya yönetmeden çalıştırabilirsiniz.

Neden Ray AI Runtime'da Kullanılıyor

Ray, model eğitimi, toplu çıkarım, veri işleme ve hiperparametre ayarlaması gibi Python iş yüklerinin dağıtımında yaygın olarak kullanılır. AI Runtime üzerinde Ray, Unity Catalog ciltlerindeki verilere erişebilir, MLflow ile yapılan deneyleri takip edebilir ve üretim iş akışlarının bir parçası olarak çalıştırabilir.

AI Runtime'da Ray Core, Ray Data, Ray Train ve Ray Tune gibi yaygın Ray kütüphanelerini kullanabilirsiniz. Mevcut Ray iş yükleri, kütüphanelerin standart API'lerini kullanmaya devam edebilir.

Ray, AI Runtime ile nasıl çalışır

Her Ray uygulaması, bir veya daha fazla düğüm içeren bir Ray kümesi üzerinde çalışır. AI Çalışma Zamanı, düğümleri sağlar ve Ray, mevcut CPU ve GPU kaynakları boyunca görevleri ve aktörleri planlar. Ray'i nasıl başlatacağınız uygulama arayüzüne bağlıdır:

Arayüz Nodes Ray'i başlatma
Notebook Not defterine ekli tek düğüm AI Runtime SDK'sından ray_init() çağrısı yapın (databricks.air)
Databricks Komut Satırı Arayüzü (CLI) Bir veya daha fazla düğümden oluşan sabit bir küme Ana düğümü 0 numaralı düğümde başlatın ve kalan düğümleri yeniden kullanılabilir bir önyükleme betiği kullanarak çalışan düğümler olarak kümeye dahil edin

Notebook'larda Ray kullanın

Notebookunuz AI Runtime GPU hesaplama kaynağına bağlandığında, ekli düğümde Ray'i başlatmak için Databricks AI Runtime SDK'dan ray_init() öğesini kullanın:

from databricks.air import ray_init

ray_init()

ray_init() standart API'yi ray.init() çağırır, Ray dashboard'u Databricks sürücü proxy üzerinden erişim için yapılandırır ve notebook çıktısında dashboard URL'sini yazdırır. Kodunuz çalışırken Ray işlerini, görevlerini, aktörlerini, loglarını ve kaynak kullanımını kontrol etmek için paneli kullanın.

Uyarı

ray_init() 5 ve üzeri ortam sürümlerini gerektirir. Sürüm 5'te, databricks.air yerine serverless_gpu'den içe aktarın. Databricks AI v6 Ray'i içeriyor. Eğer Standard v6 kullanıyorsanız, aramadan ray_init()önce Ray kurun. Bkz . Ortamınızı ayarlama.

Not defteri örnekleri

Example Description
Ray Core Merhaba Dünya Ekli hesaplamada asenkron GPU görevleri gönderin, Ray panelinde zamanlamayı inceleyin ve sonuçları alın.
Ray Tune ile CIFAR-10 hiperparametre ayarı PyTorch görüntü sınıflandırıcısı için eşzamanlı kesirli GPU denemeleri çalıştırın ve düşük performans gösteren yapılandırmaları erken durdurmak için eşzamansız ardışık yarılama algoritmasını (ASHA) kullanın.
Qwen2.5-32B Ray Data ve vLLM ile toplu çıkarım 8 H100 GPU'da sekiz kalıcı vLLM replikası ile çok dilli toplu çıkarım çalıştırın ve sonuçları Unity Kataloğu ciltinde Parquet olarak kaydedin.

Ray'i Databricks CLI'si ile kullanın

AI Çalışma Zamanı için Databricks CLI komutları tek düğümlü Ray iş yüklerini destekler. İş yükü yapılandırmasında, sabit bir accelerator_type ve num_accelerators belirtin. Qwen2.5-3B Ray Train recipe, yeniden kullanılabilir bir bootstrap betiği içerir. İş yükünün command bölümünde, RAY_ENTRYPOINT değerini Python dosyanızın yoluna ayarlayın ve bootstrap betiğini çalıştırın. Önyükleme betiği aşağıdakileri yapar:

  • Düğümde Ray head başlatılır ve yapılandırılmış giriş noktası çalıştırılır.
  • Giriş noktası bittikten sonra Ray süreçleri durur.

Uygulamada, kümeye ray.init(address="auto") ile bağlanın.

Standart ortamda, iş yükü bağımlılıklarına ray veya gerekli ek öğeyi, örneğin ray[data], ray[train] veya ray[tune] ekleyin. Databricks AI v6 Ray'i içeriyor.

CLI örnekleri

Example Description
Qwen2.5-3B Ray Train ile ince ayar Qwen2.5-3B'yi her GPU için bir dağıtık veri paralel çalışanı ile 8x H100 düğümünde ince ayar edin.
Ray Data ve vLLM ile toplu çıkarım Qwen2.5-7B-Instruct ile yanıtlar oluşturun ve sonuçları Parquet olarak bir Unity Catalog volume içine yazın.

Veriler ve Databricks özellikleriyle çalışma

Ray iş yükleri, Unity Catalog birimlerindeki verilere erişebilir, MLflow ile çalıştırmaları kaydedebilir ve Bildirimsel Otomasyon Paketleri ile tanımlanan Lakeflow Jobs görevleri olarak çalıştırılabilir.

Unity Kataloğunda verilere erişim

Unity Catalog tablosundaki tablo verileri için, bir tabloyu okumak veya bir SQL sorgusu çalıştırmak üzere Databricks SQL ambarı üzerinden ray.data.read_databricks_tables() kullanın. Depo kimliğini, kataloğunu ve şemasını belirtin çünkü AI Çalışma Zamanı yerel bir Spark oturumu sağlamaz. Ray sonuçları işlemeden önce SQL kullanarak birleştirmeler, toplamalar ve filtreler yapabilirsiniz.

Dosya tabanlı ve yapılandırılmamış veriler için Unity Kataloğu hacmi kullanın. Ray çalışanları, dosyalara kendi /Volumes/<catalog>/<schema>/<volume>/... yollarını kullanarak erişebilir. Örneğin, Ray Data ray.data.read_parquet() ile Parquet dosyalarını okuyabilir ve Dataset.write_parquet() ile sonuçları yazabilir.

İş yüklerini izleyin ve orkestre edin

Ray iş yükünden parametreleri, metrikleri ve artefaktları kaydetmek için MLflow kullanın. Bkz. Deney takibi ve gözlemlenebilirlik.

İş yükünü zamanlamak veya onu CPU için veri hazırlama görevleriyle birleştirmek için Lakeflow Jobs ve Bildirimsel Otomasyon Paketlerini kullanın. Bkz. GPU iş yüklerini planlayın ve görevleri oluşturun

Mevcut bir Ray iş yükünü taşın

Kendi kendine yönetilen bir Ray iş yükünü taşımak, altyapı yapılandırması ve hizmet entegrasyonlarını AI Çalışma Zamanı yürütme modeliyle değiştirmeyi gerektirir.

İş yükünüzü değerlendirme

Taşınmadan önce sınırlamaları gözden geçirin. İş yükünün, sabit boyutta bir kümede tek bir hızlandırıcı tipiyle çalışabildiğini doğrulayın.

İş yükünü taşıma

Kendi kendine yönetilen bir Ray iş yükünü taşımak için:

  1. Etkileşimli geliştirme için bir notebook veya çalıştırılmak üzere gönderilen işler için Databricks CLI'yı seçin.
  2. Mevcut küme kaynaklarını bir AI Çalışma Zamanı hızlandırıcı türü ve hızlandırıcı sayısına eşleyin. Bkz. Donanım.
  3. Mevcut küme başlatmasını, bir notebookta ray_init() ile veya Databricks CLI iş yükünde belgelenmiş bootstrap script ile değiştirin.
  4. İş yükünün Python bağımlılıklarını bildirin ve verisini, kontrol noktasını, modelini ve çıktı yollarını güncelledin.
  5. En küçük uygulanabilir yapılandırmada iş yükünü doğrulayın. Belirlenen sabit topolojiyi test etmeden önce veri erişimini, kaynak taleplerini ve çıktılarını doğrulayın.

Limitations

Ray on AI Runtime'da aşağıdaki sınırlamalara sahiptir:

  • Işın kümesi, iş yükü süresince sabit bir düğüm sayısına sahiptir. Işın kümesi otomatik ölçeklendirme desteklenmiyor.
  • Bir iş yükündeki tüm düğümler aynı accelerator_type kullanır. Bir Ray kümesi, ayrı ayrı CPU ve GPU işçi grupları içermez veya CPU ile GPU kapasitesini bağımsız ölçekleyemez.
  • Azure Databricks sürücü proxy'si üzerinden Ray dashboard erişimi yalnızca notebook iş yükleri için mevcuttur.
  • Ray, hem notebooklarda hem de Databricks CLI iş yüklerinde tek bir düğümde çalışır.

Tip

Eğer CPU hazırlığı ve GPU işlemesi ayrı aşamalar olarak çalışabiliyorsa, çoklu görevli bir Lakeflow İşi kullanın ve verileri görevler arasında bir Unity Kataloğu hacmi üzerinden aktarın.