AnalyticDB Ray adalah layanan Ray sepenuhnya terkelola dari AnalyticDB for MySQL. Layanan ini meningkatkan dan mengoptimalkan Ray open source dengan memperbaiki kinerja kernel serta menyederhanakan manajemen operasional. AnalyticDB Ray dirancang untuk skenario AI kompleks, seperti pemrosesan multimodal, pencarian dan rekomendasi, serta pengendalian risiko keuangan. Layanan ini membantu perusahaan membangun arsitektur Data + AI terpadu secara efisien dan menerapkan aplikasi AI dalam skala besar.
Prasyarat
Kluster Enterprise Edition, Basic Edition, atau Data Lakehouse Edition AnalyticDB for MySQL telah dibuat.
Apa itu AnalyticDB Ray
Ray open source adalah framework komputasi terdistribusi yang dirancang untuk pembelajaran mesin dan komputasi kinerja tinggi (HPC). Ray menggunakan abstraksi API sederhana untuk penjadwalan terdistribusi yang efisien. Anda dapat menskalakan tugas dari satu mesin ke kluster ribuan node hanya dengan beberapa baris kode, serta menjadwalkan resource remote seolah-olah memanggil fungsi lokal. Modul bawaannya, seperti Ray Tune, Ray Train, dan Ray Serve, kompatibel secara mulus dengan framework seperti TensorFlow dan PyTorch. Didorong oleh komunitas open source yang aktif dan perusahaan seperti Anyscale, Ray telah menjadi alat penting dalam membangun aplikasi AI.
Meskipun Ray open source menyediakan kemampuan komputasi terdistribusi yang sangat fleksibel, perusahaan tetap menghadapi tantangan di lingkungan produksi. Tantangan tersebut mencakup optimasi pekerjaan terdistribusi, penjadwalan resource detail halus, operasi dan maintenance (O&M) kluster yang kompleks, serta menjamin stabilitas sistem dan ketersediaan tinggi.
Untuk mengatasi tantangan tersebut, AnalyticDB for MySQL memperkenalkan layanan Ray sepenuhnya terkelola: AnalyticDB Ray (ADB Ray). ADB Ray dibangun di atas ekosistem kaya Ray open source dan telah terbukti dalam skenario seperti pemrosesan multimodal, embodied intelligence, pencarian dan rekomendasi, serta pengendalian risiko keuangan. ADB Ray meningkatkan kernel Ray beserta kemampuan layanannya, mengoptimalkan kinerja kernel, dan menyederhanakan O&M kluster. Layanan ini juga terintegrasi secara mulus dengan platform danau data terpadu AnalyticDB for MySQL. Integrasi ini membantu perusahaan membangun arsitektur Data + AI dan mempercepat penerapan AI perusahaan dalam skala besar.
Rincian Penagihan
Pembuatan kelompok sumber daya Ray Cluster dikenai biaya sebagai berikut:
-
Worker Disk Storage ditagih berdasarkan kapasitas penyimpanan yang dikonfigurasi.
-
Jika Worker Resource Type diatur ke CPU, Anda akan ditagih berdasarkan jumlah ACU kelompok sumber daya elastis yang digunakan.
-
Jika Worker Resource Type diatur ke GPU, Anda akan ditagih berdasarkan spesifikasi dan jumlah GPU.
Perhatian
-
Menghapus atau merestart node pekerja memiliki dampak berikut. Untuk mencegah kehilangan data tak terduga dan kegagalan pekerjaan, ubah konfigurasi pekerja pada kelompok sumber daya Ray Cluster selama jam sepi dan hindari menjadwalkan pekerjaan ke node pekerja yang dijadwalkan untuk restart.
-
Driver, Actor, dan Task yang berjalan pada node pekerja akan gagal. Namun, Ray secara otomatis mengirim ulang Actor dan Task tersebut.
-
Data di Ray distributed object store hilang. Jika Task lain bergantung pada data di node pekerja yang direstart, Task tersebut juga akan gagal.
-
-
Perubahan kelompok sumber daya:
-
Menghapus kelompok sumber daya: Jika task sedang berjalan di kelompok sumber daya tersebut, penghapusan akan menginterupsi task tersebut.
-
Menghapus Worker Group: Menghapus Worker Group dalam kelompok sumber daya Ray Cluster menyebabkan node pekerja dihapus. Untuk informasi lebih lanjut, lihat dampak menghapus node pekerja.
-
Mengubah jumlah pekerja: Jika jumlah maksimum pekerja baru lebih kecil daripada jumlah minimum pekerja sebelumnya, node pekerja akan dihapus. Untuk informasi lebih lanjut, lihat dampak menghapus node pekerja.
-
Mengubah konfigurasi lainnya: Perubahan parameter selain Minimum number of workers dan Maximum number of workers, seperti Head resource type atau Worker resource type, menyebabkan head node atau node pekerja di Worker Group terkait melakukan restart. Untuk informasi lebih lanjut, lihat dampak merestart node pekerja.
-
-
Auto scaling:
-
Kluster Ray melakukan scale out berdasarkan permintaan resource logika, bukan pemanfaatan resource fisik. Oleh karena itu, Kluster Ray mungkin memicu auto scaling meskipun pemanfaatan resource fisik rendah.
-
Beberapa aplikasi pihak ketiga membuat sebanyak mungkin Task untuk memanfaatkan resource secara penuh. Jika auto scaling diaktifkan, banyak Task dibuat sehingga Ray cepat melakukan scale out hingga ukuran maksimumnya. Oleh karena itu, sebelum menjalankan program pihak ketiga, pahami logika internalnya dalam membuat Task untuk menghindari konsumsi resource yang tidak perlu.
-
-
Disaster recovery: ADB Ray menggunakan mekanisme disaster recovery berbasis Redis. Mekanisme ini memastikan bahwa status Ray Cluster, status Actor, dan status Task dapat dipulihkan jika head node direstart.
Buat layanan Ray
Masuk ke Konsol AnalyticDB for MySQL. Di pojok kiri atas konsol, pilih wilayah. Di panel navigasi sebelah kiri, klik Clusters. Temukan kluster yang ingin Anda kelola dan klik ID kluster tersebut.
-
Di panel navigasi sebelah kiri, pilih Cluster Management > Resource Management. Klik tab Resource Groups. Lalu, di pojok kanan atas daftar kelompok sumber daya, klik Create Resource Group.
-
Beri nama kelompok sumber daya, atur Job Type ke AI, lalu konfigurasikan parameter berikut:
Parameter
Deskripsi
Deployment Mode
Mode penyebaran kelompok sumber daya. Pilih RayCluster.
Head Resource Specifications
Head node bertanggung jawab mengelola metadata Ray, menjalankan layanan Global Control Store (GCS), dan menjadwalkan task, tetapi tidak mengeksekusi task.
Spesifikasi resource head mengacu pada jumlah core CPU. Anda dapat memilih spesifikasi seperti small, m.xlarge, dan m.2xlarge. Jumlah core CPU sama antara spesifikasi resource head dan spesifikasi resource Spark. Untuk informasi lebih lanjut, lihat Spark resource specifications.
PentingHead node bertanggung jawab atas penjadwalan pekerjaan. Pilih spesifikasi resource head berdasarkan skala keseluruhan kluster Ray.
Worker Group Name
Nama worker group. Anda dapat mengonfigurasi beberapa worker group dengan nama berbeda dalam satu kelompok sumber daya AI.
Worker Resource Type
Jenis worker group. Nilai yang valid: CPU dan GPU.
-
Jika bisnis Anda melibatkan tugas komputasi harian, multitasking, atau operasi logika kompleks, kami merekomendasikan memilih CPU.
-
Jika bisnis Anda melibatkan pemrosesan paralel data skala besar, pembelajaran mesin, atau pelatihan pembelajaran mendalam, kami merekomendasikan memilih GPU.
Worker Resource Specifications
-
Jika Anda mengatur parameter Worker Resource Type ke CPU, Anda dapat memilih spesifikasi seperti small, m.xlarge, dan m.2xlarge. Jumlah core CPU sama antara spesifikasi resource head dan spesifikasi resource Spark. Untuk informasi lebih lanjut, lihat Spark resource specifications.
-
Jika Anda mengatur parameter Worker Resource Type ke GPU, submit a ticket untuk bantuan teknis karena spesifikasi terkait model GPU dan stok tersedia.
Worker Disk Storage
Storage disk digunakan untuk menyimpan log Ray, data temporary, dan data overflow dari Ray distributed object storage. Satuan: GB. Nilai yang valid: 30 hingga 2000. Nilai default: 100.
PentingDisk digunakan untuk penyimpanan data sementara dan tidak dapat digunakan untuk penyimpanan jangka panjang.
Minimum Workers
Maximum Workers
Minimum Workers: jumlah minimum node pekerja yang diperlukan dalam worker group, dengan nilai minimum 1.
Maximum Workers: jumlah maksimum node pekerja yang diizinkan dalam worker group, dengan nilai maksimum 8.
Setiap worker group dapat diskalakan secara otomatis. Jika jumlah minimum dan maksimum node pekerja dalam worker group berbeda, AnalyticDB for MySQL secara dinamis menyesuaikan jumlah node pekerja berdasarkan jumlah task saat ini. Jika terdapat beberapa worker group, AnalyticDB for MySQL melakukan pencocokan otomatis untuk mencegah overload atau underutilisasi pada satu worker group.
Distribution Unit
Jumlah GPU yang dialokasikan ke setiap node pekerja. Contoh: 1/3.
PentingParameter ini wajib diisi hanya jika Anda mengatur parameter Worker Resource Type ke GPU.
-
-
Klik OK.
Hubungkan dan gunakan layanan Ray
Langkah 1: Dapatkan endpoint
-
Di panel navigasi sebelah kiri, pilih lalu klik tab Resource Groups.
-
Di kolom Actions untuk kelompok sumber daya, klik untuk melihat endpoint.
-
Ray Grafana: Endpoint untuk tool visualisasi Grafana. Klik endpoint untuk membuka halaman visualisasi Grafana.
-
Ray cluster endpoint: Titik akhir internal.
-
Ray Dashboard: Titik akhir publik dan alamat Dasbor. Klik endpoint untuk membuka antarmuka visualisasi Ray, tempat Anda dapat melihat status kelompok sumber daya Ray Cluster dan pekerjaan.
-
Langkah 2: Kirim pekerjaan
Prasyarat
Python 3.7 atau versi yang lebih baru telah diinstal.
Prosedur
Anda dapat mengirim pekerjaan dengan salah satu dari dua cara berikut:
-
Kirim pekerjaan menggunakan CTL (Direkomendasikan): Gunakan CTL untuk memaketkan dan mengunggah file skrip ke Ray Cluster untuk dieksekusi. Program entri berjalan di Ray Cluster dan mengonsumsi resource dari kelompok sumber daya Ray Cluster.
-
Hubungkan ke Ray Cluster menggunakan ray.init untuk menjalankan pekerjaan: Gunakan metode ray.init untuk terhubung ke Ray Cluster. Program entri berjalan secara lokal dan tidak mengonsumsi resource dari kelompok sumber daya Ray Cluster. Versi Ray dan Python lokal harus konsisten dengan versi di Ray Cluster. Jika versi Ray Cluster berubah, Anda harus memperbarui konfigurasi lingkungan lokal Anda sesuai.
Kirim pekerjaan menggunakan CTL
-
Jalankan perintah berikut untuk menginstal Ray.
pip3 install ray[default] -
(Opsional) Konfigurasikan variabel lingkungan.
CatatanAnda dapat mengonfigurasi variabel lingkungan global untuk menentukan endpoint, atau tentukan endpoint saat mengirim pekerjaan.
export RAY_ADDRESS="RAY_URL"Deskripsi parameter:
RAY_URL: Alamat koneksi Ray. Atur parameter ini ke alamat koneksi yang Anda peroleh pada langkah "Dapatkan endpoint". -
Kirim pekerjaan.
PentingSaat Anda mengirim pekerjaan, sistem memaketkan dan mengunggah semua file dari direktori yang ditentukan oleh parameter
working-dirke head Ray untuk dieksekusi. Oleh karena itu, perhatikan hal berikut:-
Usahakan direktori yang ditentukan oleh parameter
working-dirsekecil mungkin. Jika direktori terlalu besar, proses unggah mungkin gagal. -
Semua file skrip dependensi harus berada di direktori yang ditentukan oleh parameter
working-dir. Jika tidak, pekerjaan mungkin gagal karena dependensi tidak ditemukan.
-
Jika Anda telah mengonfigurasi variabel lingkungan, jalankan pernyataan berikut untuk mengirim pekerjaan.
ray job submit --working-dir your_working_directory -- python your_python.pyDeskripsi parameter:
-
your_working_directory: Jalur tempat file skrip berada. Dalam topik ini, contoh jalurnya adalah/root/Ray. -
your_python.py: File skrip. Dalam topik ini, contoh file skripnya adalahscripts.py.
Contoh:
ray job submit --working-dir /root/Ray -- python scripts.py -
-
Jika Anda belum mengonfigurasi variabel lingkungan, jalankan pernyataan berikut untuk mengirim pekerjaan.
ray job submit --address ray_url --working-dir your_working_directory -- python your_python.pyDeskripsi parameter:
-
ray_url: Alamat koneksi Ray. Masukkan alamat koneksi yang Anda peroleh pada langkah "Dapatkan endpoint". -
your_working_directory: Jalur tempat file skrip berada. -
your_python.py: File skrip. Dalam topik ini, contoh file skripnya adalahscripts.py.
Contoh:
ray job submit --address http://amv-uf64gwe14****-rayo.ads.aliyuncs.com:8265 --working-dir /root/Ray -- python scripts.py -
-
-
Periksa status pekerjaan.
Anda dapat memeriksa status pekerjaan dengan salah satu dari dua cara berikut:
-
Gunakan perintah:
ray job list -
Gunakan antarmuka visualisasi:
-
Di tab Resource Groups, di kolom Actions untuk kelompok sumber daya, klik .
-
Klik alamat Ray Dashboard untuk membuka antarmuka visualisasi.
-
-
Hubungkan ke Ray Cluster menggunakan ray.init untuk menjalankan pekerjaan
-
Jalankan perintah berikut untuk menginstal Ray.
pip3 install ray -
(Opsional) Konfigurasikan variabel lingkungan global.
CatatanAnda dapat mengonfigurasi variabel lingkungan global untuk menentukan endpoint, atau tentukan endpoint di file skrip.
export RAY_ADDRESS="RAY_URL"Deskripsi parameter:
RAY_URL: Alamat koneksi Ray. Alamat yang Anda peroleh pada langkah "Dapatkan endpoint" adalah alamat dashboard yang menggunakan port 8265. Untuk terhubung menggunakan `ray.init()`, Anda harus mengubah protokol menjadi `ray` dan port menjadi 10001.Sebagai contoh, jika alamat dashboard adalah
http://amv-uf64gwe14****-rayo.ads.aliyuncs.com:8265, Anda harus mengubahnya menjadiray://amv-uf64gwe14****-rayo.ads.aliyuncs.com:10001. -
Jalankan program.
-
Jika Anda telah mengonfigurasi variabel lingkungan global, jalankan perintah berikut untuk menjalankan program.
python scripts.py -
Jika Anda belum mengonfigurasi variabel lingkungan global, jalankan perintah berikut untuk menjalankan program.
-
Ubah file skrip untuk menentukan endpoint.
ray.init(address="RAY_URL")Deskripsi parameter:
RAY_URL: Alamat koneksi Ray. Alamat yang Anda peroleh pada langkah "Dapatkan endpoint" adalah alamat dashboard yang menggunakan port 8265. Untuk terhubung menggunakan `ray.init()`, Anda harus mengubah protokol menjadi `ray` dan port menjadi 10001.Sebagai contoh, jika alamat dashboard adalah
http://amv-uf64gwe14****-rayo.ads.aliyuncs.com:8265, Anda harus mengubahnya menjadiray://amv-uf64gwe14****-rayo.ads.aliyuncs.com:10001.PentingJika endpoint Ray dikonfigurasi salah, ray.init() akan memulai kluster lokal untuk menjalankan program. Periksa log output untuk memastikan Anda terhubung dengan benar ke kluster Ray.
-
Jalankan perintah berikut untuk menjalankan program:
python scripts.py
-
-