Apa itu Ray di Azure Databricks?
Ray adalah kerangka kerja sumber terbuka untuk menskalakan aplikasi Python. Ini termasuk pustaka khusus untuk beban kerja AI, membuatnya sangat cocok untuk mengembangkan aplikasi AI. Ray di Azure Databricks memungkinkan Anda menjalankan aplikasi Ray sambil mendapatkan semua manfaat platform dan fitur Azure Databricks.
Dengan Ray 2.3.0 ke atas, Anda dapat membuat kluster Ray dan menjalankan aplikasi Ray pada kluster Apache Spark dengan Azure Databricks.
Untuk informasi tentang memulai pembelajaran mesin di Ray, termasuk tutorial dan contoh, lihat dokumentasi Ray. Untuk informasi selengkapnya tentang integrasi Ray dan Apache Spark, lihat dokumentasi Ray on Spark API.
Lihat artikel lain di bagian ini.
Apa itu Ray?
Ray menyederhanakan sistem terdistribusi dengan menyediakan primitif Python dasar untuk membuat aplikasi terdistribusi dari awal. Untuk pengembang Python yang baru menggunakan sistem terdistribusi, ia menawarkan kemudahan penggunaan yang sama dengan Python standar saat mengelola orkestrasi, penjadwalan, dan toleransi kesalahan.
Ray dan Apache Spark adalah kerangka kerja pelengkap. Ray unggul pada paralelisme logis, menangani tugas dinamis dan intensif komputasi seperti pembelajaran mesin dan pembelajaran penguatan. Apache Spark mengkhususkan paralelisme data, memproses himpunan data besar secara efisien untuk tugas seperti ETL dan analitik data. Bersama-sama, mereka memberikan kombinasi yang kuat untuk pemrosesan data dan komputasi yang kompleks.
Mengapa menjalankan Ray di Azure Databricks?
Menjalankan Ray di Azure Databricks memungkinkan Anda memanfaatkan luasnya ekosistem Azure Databricks, meningkatkan alur kerja pemrosesan data dan pembelajaran mesin dengan layanan dan integrasi yang tidak tersedia di sumber terbuka Ray. Manfaat menjalankan Ray dalam Azure Databricks meliputi:
- Platform terpadu: Azure Databricks menyediakan platform terpadu tempat Anda dapat menjalankan aplikasi Ray bersama Apache Spark. Integrasi ini mendukung operasi ETL data yang mulus, transfer data yang efisien, dan komputasi paralel yang kuat dalam lingkungan komputasi yang sama.
- Tata kelola dan kontrol: Dapatkan manfaat pelacakan silsilah data, penerapan versi data, dan kontrol akses dengan Unity Catalog untuk semua aset data, file, model, dan lainnya, memastikan kepatuhan dan keamanan.
- Manajemen infrastruktur: Gunakan alat infrastruktur seperti Penyedia Terraform Azure Databricks dan Bundel Aset Azure Databricks untuk mengelola kluster dan pekerjaan Anda, memastikan operasi dan skalabilitas yang disederhanakan.
- Kluster Managed Ray: Kluster Ray dikelola di lingkungan eksekusi yang sama dengan kluster Apache Spark yang sedang berjalan. Ini memastikan skalabilitas, keandalan, dan kemudahan penggunaan tanpa perlu penyiapan infrastruktur yang kompleks.
- Penyajian dan pemantauan Model: Hubungkan model yang dilatih dengan Ray Train ke Model AI Mosaic Melayani untuk penyebaran dengan ketersediaan tinggi dan latensi rendah. Selain itu, gunakan Lakehouse Monitoring untuk melacak kualitas dan penyimpangan prediksi model, memastikan performa yang konsisten.
- Pengembangan ML yang ditingkatkan: Integrasikan dengan layanan Azure Databricks MLflow yang dikelola sepenuhnya untuk melacak pengembangan model Anda, memfasilitasi manajemen eksperimen dan reproduksi di seluruh aplikasi Ray Anda.
- Alur kerja otomatis: Gunakan Pekerjaan Databricks untuk mengotomatiskan proses Anda, membuat alur siap produksi yang menyederhanakan operasi Anda dan mengurangi intervensi manual.
- Manajemen dan kolaborasi kode: Kelola kode Anda secara efisien dengan folder Azure Databricks Git, memungkinkan integrasi Git yang mulus untuk kontrol versi dan pengembangan kolaboratif untuk kode aplikasi Ray Anda.
- Akses data yang efisien: Hubungkan aplikasi Ray ke Delta Lake, memanfaatkan ekosistem integrasi data Azure Databricks yang luas untuk memperluas kemampuan Ray ke berbagai aplikasi dan output yang lebih luas.
Dengan menjalankan Ray di Azure Databricks, Anda mendapatkan akses ke ekosistem terintegrasi yang meningkatkan pemrosesan data, pembelajaran mesin, dan alur kerja operasional Anda.
Kasus penggunaan - pembelajaran mesin dan seterusnya
Ray adalah alat serbaguna yang memperluas kemampuan Python di luar batasan operasi DataFrame, menjadikannya ideal untuk algoritma terdistribusi yang sangat disesuaikan dan khusus.
Pembelajaran mesin dan pembelajaran mendalam
Manfaatkan pustaka pembelajaran mesin Ray untuk meningkatkan alur kerja ML Anda:
- Penyetelan hyperparameter: Optimalkan performa model dengan Ray Tune untuk pencarian hyperparameter berkinerja dan dapat diskalakan.
- Pelatihan pembelajaran mendalam terdistribusi: Menskalakan model pembelajaran mendalam di beberapa simpul dengan dukungan untuk kerangka kerja populer seperti PyTorch, TensorFlow, HuggingFace, dan Keras. Ideal untuk model pelatihan untuk visi komputer atau model bahasa besar (LLM).
- Pembelajaran mesin tradisional: Gunakan Ray untuk mendistribusikan pelatihan, evaluasi, dan inferensi batch untuk model ML tradisional yang dibangun dengan pustaka populer seperti scikit-learn atau XGBoost.
Komputasi Performa Tinggi (HPC)
Ray unggul dalam mendistribusikan beban kerja HPC, sehingga cocok untuk:
- Komputasi matematika: Lakukan perhitungan kompleks di bidang seperti fisika, genomika, atau keuangan menggunakan Ray Core untuk pemrosesan paralel yang efisien.
- Prakiraan rangkaian waktu: Skalakan model prakiraan Anda, menjalankan perkiraan secara bersamaan dengan paket prakiraan seperti Nabi atau ARIMA.
Pemrosesan data dan rekayasa fitur
Ray juga dapat menangani berbagai tugas pemrosesan data:
- Fitur komputasi: Tugas rekayasa fitur intensif komputasi yang kompleks dapat memperoleh manfaat dari arsitektur komputasi terdistribusi Ray.
- Pemrosesan audio, gambar, dan video: Mendistribusikan dan mempercepat pemrosesan data multimedia, membuatnya ideal untuk aplikasi dalam pengenalan ucapan, klasifikasi gambar, dan analisis video.
Batasan
- Ray di Apache Spark didukung untuk mode akses pengguna tunggal (ditetapkan), tidak ada mode akses bersama isolasi, dan kluster pekerjaan saja. Kluster Ray tidak dapat dimulai pada kluster menggunakan runtime berbasis tanpa server.
- Hindari menjalankan
%pip
untuk menginstal paket pada kluster Ray yang sedang berjalan, karena akan mematikan kluster. Sebagai gantinya, instal pustaka sebelum menginisialisasi kluster. - Menggunakan integrasi yang mengambil alih konfigurasi dari
ray.util.spark.setup_ray_cluster
dapat menyebabkan kluster Ray menjadi tidak stabil. Hindari berlangganan sumber daya kluster Ray secara berlebihan dalam aplikasi pihak ke-3. - Jika Anda mengalami kesalahan seperti
ncclInternalError: Internal check failed
, ini menunjukkan masalah dengan komunikasi jaringan di antara GPU di kluster Anda. Untuk mengatasi kesalahan ini, tambahkan cuplikan berikut dalam kode pelatihan Anda untuk menggunakan antarmuka jaringan utama.
import os
os.environ["NCCL_SOCKET_IFNAME"] = "eth0"