Apa itu autotune untuk konfigurasi Apache Spark di Fabric dan cara mengaktifkan dan menonaktifkannya?
Autotune secara otomatis menyetel konfigurasi Apache Spark untuk meminimalkan waktu eksekusi beban kerja dan mengoptimalkan beban kerja. Ini memberdayakan Anda untuk mencapai lebih banyak dengan lebih sedikit. Fitur ini mengurangi waktu eksekusi dan melampaui keuntungan yang dicapai oleh beban kerja yang disetel secara manual oleh para ahli, yang mengharuskan upaya dan eksperimen yang cukup besar.
Ini memanfaatkan eksekusi data historis dari beban kerja Anda untuk mempelajari konfigurasi optimal secara berulang untuk beban kerja tertentu dan waktu eksekusinya.
Penting
Microsoft Fabric saat ini dalam PRATINJAU. Informasi ini berkaitan dengan produk prarilis yang mungkin dimodifikasi secara substansial sebelum dirilis. Microsoft tidak memberikan jaminan, tersurat maupun tersirat, sehubungan dengan informasi yang diberikan di sini.
Penyetelan kueri
Saat ini, autotune mengonfigurasi tiga tingkat kueri konfigurasi Apache Spark:
spark.sql.shuffle.partitions
- mengonfigurasi jumlah partisi yang akan digunakan saat mengacak data untuk gabungan atau agregasi. Defaultnya adalah 200.spark.sql.autoBroadcastJoinThreshold
- mengonfigurasi ukuran maksimum dalam byte untuk tabel yang akan disiarkan ke semua simpul pekerja saat melakukan gabungan. Defaultnya adalah 10 MB.spark.sql.files.maxPartitionBytes
- jumlah maksimum byte untuk dikemas ke dalam satu partisi saat membaca file. Berfungsi untuk sumber berbasis file Parquet, JSON, dan ORC. Defaultnya adalah 128 MB.
Karena tidak ada data historis yang tersedia selama eksekusi autotune pertama, konfigurasi akan diatur berdasarkan model garis besar. Model ini bergantung pada heuristik yang terkait dengan konten dan struktur beban kerja itu sendiri. Namun, karena kueri atau beban kerja yang sama dijalankan berulang kali, kami akan mengamati peningkatan yang semakin signifikan dari autotune. Karena hasil eksekusi sebelumnya digunakan untuk menyempurnakan model dan menyesuaikannya dengan ruang kerja atau beban kerja tertentu.
Catatan
Saat algoritma menjelajahi berbagai konfigurasi, Anda mungkin melihat perbedaan kecil dalam hasil. Ini diharapkan, karena autotune beroperasi secara berulang dan meningkat dengan setiap pengulangan kueri yang sama.
Gambaran umum algoritma penyetelan konfigurasi
Untuk menjalankan kueri pertama, setelah pengiriman, model pembelajaran mesin (ML) awalnya dilatih menggunakan kueri tolok ukur sumber terbuka standar (misalnya, TPC-DS) akan memandu pencarian di sekitar tetangga pengaturan saat ini (mulai dari default). Di antara kandidat tetangga, model ML memilih konfigurasi terbaik dengan waktu eksekusi terpendek yang diprediksi. Dalam proses ini, "sentroid" adalah konfigurasi default, di mana autotune menghasilkan kandidat baru.
Berdasarkan performa eksekusi kedua per konfigurasi yang disarankan, kami melatih kembali model ML dengan menambahkan pengamatan baru dari kueri ini, dan memperbarui sentroid dengan membandingkan performa dua eksekusi terakhir. Jika eksekusi sebelumnya lebih baik, sentroid akan diperbarui ke arah terbalik dari pembaruan sebelumnya (mirip dengan pendekatan momentum dalam pelatihan DNN); jika eksekusi baru lebih baik, pengaturan konfigurasi terbaru menjadi sentroid baru. Secara berulang, algoritma akan secara bertahap mencari ke arah dengan performa yang lebih baik.
Mengaktifkan atau menonaktifkan penyetelan otomatis
Autotune dinonaktifkan secara default dan dikontrol oleh Pengaturan Konfigurasi Apache Spark. Aktifkan Autotune dengan mudah dalam sesi dengan menjalankan kode berikut di buku catatan Anda atau menambahkannya dalam kode definisi kerja spark Anda:
%%sql
SET spark.ms.autotune.queryTuning.enabled=TRUE
Untuk memverifikasi dan mengonfirmasi aktivasinya, gunakan perintah berikut:
%%sql
GET spark.ms.autotune.queryTuning.enabled
Untuk menonaktifkan Autotune, jalankan perintah berikut:
%%sql
SET spark.ms.autotune.queryTuning.enabled=FALSE
Catatan transparansi
Microsoft mengikuti Standar AI yang Bertanggung Jawab dan catatan transparansi ini bertujuan untuk memberikan dokumentasi yang jelas yang menentukan penggunaan Autotune yang dimaksudkan dan bukti bahwa fitur tersebut cocok untuk tujuan sebelum layanan tersedia secara eksternal. Kami memahami pentingnya transparansi dan memastikan bahwa pelanggan kami memiliki informasi yang diperlukan untuk membuat keputusan berdasarkan informasi saat menggunakan layanan kami.
Penggunaan Autotune yang dimaksudkan
Tujuan utama Autotune adalah untuk mengoptimalkan performa beban kerja Apache Spark dengan mengotomatiskan proses penyetelan konfigurasi Apache Spark. Sistem ini dirancang untuk digunakan oleh insinyur data, ilmuwan data, dan profesional lain yang terlibat dalam pengembangan dan penyebaran beban kerja Apache Spark. Penggunaan Autotune yang dimaksudkan meliputi:
- Penyetelan otomatis konfigurasi Apache Spark untuk meminimalkan waktu eksekusi beban kerja untuk mempercepat proses pengembangan
- Mengurangi upaya manual yang diperlukan untuk penyetelan konfigurasi Apache Spark
- Memanfaatkan eksekusi data historis dari beban kerja untuk mempelajari konfigurasi optimal secara berulang
Bukti bahwa Autotune cocok untuk tujuan
Untuk memastikan bahwa Autotune memenuhi standar performa yang diinginkan dan sesuai dengan penggunaan yang dimaksudkan, kami telah melakukan pengujian dan validasi yang ketat. Bukti meliputi:
- Pengujian dan validasi internal menyeluruh menggunakan berbagai beban kerja dan himpunan data Apache Spark untuk mengonfirmasi efektivitas algoritma penyetelan otomatis
- Perbandingan dengan teknik pengoptimalan konfigurasi Apache Spark alternatif, menunjukkan peningkatan performa dan perolehan efisiensi yang dicapai oleh Autotune
- Studi kasus pelanggan dan testimoni yang menunjukkan aplikasi Autotune yang sukses dalam proyek dunia nyata
- Kepatuhan terhadap persyaratan keamanan dan privasi standar industri, memastikan perlindungan data pelanggan dan kekayaan intelektual
Kami ingin memastikan bahwa kami memprioritaskan privasi dan keamanan data. Data Anda hanya akan digunakan untuk melatih model yang melayani beban kerja spesifik Anda. Kami mengambil langkah-langkah yang ketat untuk memastikan bahwa tidak ada informasi sensitif yang digunakan dalam proses penyimpanan atau pelatihan kami.