Mengapa Anda harus menggunakan Spark untuk pembelajaran mesin

Saat organisasi membuat produk dan layanan data yang lebih beragam dan lebih berfokus pada pengguna, ada kebutuhan yang semakin besar akan pembelajaran mesin, yang dapat digunakan untuk mengembangkan personalisasi, rekomendasi, dan wawasan prediktif. Secara tradisional, data scientist dapat memecahkan masalah ini menggunakan alat yang sudah dikenal dan populer seperti R dan Python. Tetapi ketika organisasi mengumpulkan volume yang lebih besar dan variasi data yang lebih besar, para ilmuwan data menghabiskan sebagian besar waktu mereka untuk mendukung infrastruktur mereka alih-alih membangun model untuk memecahkan masalah data mereka.

Untuk membantu mengatasi masalah ini, Spark menyediakan pustaka pembelajaran mesin umum - MLlib - yang dirancang untuk kesederhanaan, skalabilitas, dan integrasi yang mudah dengan alat lain. Dengan skalabilitas, kompatibilitas bahasa, dan kecepatan Spark, data scientist dapat menyelesaikan dan mengatasi masalah data mereka dengan lebih cepat. Seperti yang dapat dilihat baik dalam keragaman kasus penggunaan yang semakin meluas dan banyaknya kontribusi pengembang, adopsi MLlib tumbuh dengan cepat.

Cara Spark meningkatkan pembelajaran mesin

Python dan R adalah bahasa populer untuk data scientist karena banyaknya modul atau paket yang tersedia untuk membantu mereka memecahkan masalah data mereka. Tetapi penggunaan tradisional alat-alat ini seringkali terbatas, karena mereka memproses data pada satu mesin di mana pergerakan data menjadi memakan waktu, analisis memerlukan pengambilan sampel (yang seringkali tidak secara akurat mewakili data), dan berpindah dari lingkungan pengembangan ke produksi membutuhkan rekayasa ulang ekstensif. 

Untuk membantu mengatasi masalah ini, Spark memberi insinyur data dan data scientist mesin yang kuat dan terpadu yang cepat (100x lebih cepat dari Hadoop untuk pemrosesan data skala besar) dan mudah digunakan. Hal ini memungkinkan praktisi data untuk memecahkan masalah pembelajaran mesin mereka (serta komputasi grafik, streaming, dan pemrosesan kueri interaktif waktu nyata) secara interaktif dan pada skala yang jauh lebih besar.

Spark juga menyediakan banyak pilihan bahasa, termasuk Scala, Java, Python, dan R. Survei Spark 2015 yang mensurvei komunitas Spark menunjukkan pertumbuhan yang sangat cepat pada Python dan R. Secara khusus, 58 persen responden menggunakan Python (peningkatan 49 persen dibandingkan 2014) dan 18 persen sudah menggunakan R API (yang dirilis hanya tiga bulan sebelum survei).

Dengan lebih dari 1.000 kontributor kode pada tahun 2015, Apache Spark adalah proyek open source yang paling aktif dikembangkan di antara alat data, besar atau kecil. Sebagian besar fokusnya adalah pada pustaka pembelajaran mesin Spark, MLlib, dengan lebih dari 200 individu dari 75 organisasi menyediakan lebih dari 2.000 tambalan untuk MLlib saja.

Pentingnya pembelajaran mesin tidak luput dari perhatian, dengan 64 persen responden Survei Spark 2015 menggunakan Spark untuk analitik tingkat lanjut dan 44 persen membuat sistem rekomendasi. Jelas, ini adalah pengguna yang canggih. Faktanya, 41 persen dari responden survei mengidentifikasi diri mereka sebagai insinyur data, sementara 22 persen mengidentifikasi diri mereka sebagai ilmuwan data.

Desain Spark untuk pembelajaran mesin

Sejak awal proyek Apache Spark, MLlib dianggap sebagai dasar kesuksesan Spark. Manfaat utama MLlib adalah memungkinkan data scientist untuk fokus pada masalah dan model data mereka alih-alih memecahkan kompleksitas seputar data terdistribusi (seperti infrastruktur, konfigurasi, dan sebagainya). Para insinyur data dapat fokus pada rekayasa sistem terdistribusi menggunakan API Spark yang mudah digunakan, sementara ilmuwan data dapat memanfaatkan skala dan kecepatan inti Spark. Sama pentingnya, Spark MLlib adalah pustaka tujuan umum, menyediakan algoritme untuk sebagian besar kasus penggunaan sementara pada saat yang sama memungkinkan komunitas untuk membangun dan memperluasnya untuk kasus penggunaan khusus.

Keunggulan desain MLlib antara lain:

  • Kesederhanaan: API sederhana yang dikenal oleh data scientist yang berasal dari alat seperti R dan Python. Para pemula dapat menjalankan algoritme di luar kotak sementara para ahli dapat dengan mudah menyesuaikan sistem dengan menyesuaikan kenop dan sakelar penting (parameter).
  • Skalabilitas: Kemampuan untuk menjalankan kode ML yang sama di laptop Anda dan di cluster yang besar dengan mulus tanpa mogok. Ini memungkinkan bisnis menggunakan alur kerja yang sama dengan pertumbuhan basis pengguna dan kumpulan data mereka.
  • Efisien ujung-ke-ujung: Mengembangkan model pembelajaran mesin adalah perjalanan multi-langkah dari penyerapan data melalui uji coba dan kesalahan hingga produksi. Membangun MLlib di atas Spark memungkinkan untuk menangani kebutuhan yang berbeda ini dengan satu alat, bukan banyak alat yang terputus-putus. Keuntungannya adalah kurva pembelajaran yang lebih rendah, lingkungan pengembangan dan produksi yang kurang kompleks, dan pada akhirnya waktu yang lebih singkat untuk menghadirkan model berperforma tinggi.
  • Kompatibilitas: Data scientist sering kali memiliki alur kerja yang dibangun di alat sains data umum, seperti R, Python pandas, dan scikit-learn. Spark DataFrames dan MLlib menyediakan perkakas yang memudahkan untuk mengintegrasikan alur kerja yang ada ini dengan Spark. Misalnya, SparkR memungkinkan pengguna untuk memanggil algoritme MLlib menggunakan sintaks R yang sudah dikenal, dan Databricks menulis paket Spark dengan Python untuk memungkinkan pengguna mendistribusikan bagian dari alur kerja scikit-learn.

Pada saat yang sama, Spark memungkinkan data scientist untuk memecahkan beberapa masalah data selain masalah machine learning mereka. Ekosistem Spark juga dapat menyelesaikan komputasi grafik (melalui GraphX), streaming (penghitungan waktu nyata), dan pemrosesan kueri interaktif waktu nyata dengan Spark SQL dan DataFrames. Kemampuan untuk menggunakan kerangka kerja yang sama untuk memecahkan banyak masalah dan kasus penggunaan yang berbeda memungkinkan para profesional data untuk fokus pada penyelesaian masalah data mereka daripada mempelajari dan memelihara alat yang berbeda untuk setiap skenario.

Spark kasus penggunaan MLlib

Ada sejumlah kasus penggunaan bisnis umum seputar Spark MLlib. Contohnya termasuk, tetapi tidak terbatas pada, berikut ini:

  • Pengoptimalan pemasaran dan periklanan
    • Produk apa yang harus kami rekomendasikan kepada setiap pengguna untuk memaksimalkan keterlibatan atau pendapatan?
    • Berdasarkan perilaku situs pengguna, seberapa besar kemungkinan pengguna akan mengklik iklan yang tersedia?
  • Pemantauan keamanan / deteksi penipuan, termasuk penilaian risiko dan pemantauan jaringan
    • Pengguna mana yang menunjukkan perilaku anomali, dan mana yang mungkin berbahaya?
  • Optimalisasi operasional seperti optimalisasi rantai pasokan dan pemeliharaan preventif
    • Di mana dalam sistem kami kegagalan mungkin terjadi, yang membutuhkan pemeriksaan pencegahan?

Banyak skenario bisnis dan solusi teknis yang menarik sedang diselesaikan hari ini dengan Spark MLlib, termasuk Huawei pada Penambangan Pola Sering, Rekomendasi Makan OpenTable, dan Faktorisasi Matriks berbasis ALS Spark MLlib dari Verizon. Beberapa contoh tambahan:

  • NBC Universal menyimpan ratusan terabyte media untuk TV kabel internasional. Untuk menghemat biaya, diperlukan media offline ketika tidak mungkin digunakan dalam waktu dekat. Perusahaan menggunakan Mesin Vektor Dukungan Spark MLlib untuk memprediksi file mana yang tidak akan digunakan.
  • Toyota Customer 360 Insights Platform dan Social Media Intelligence Center didukung oleh Spark MLlib. Toyota menggunakan MLlib untuk mengkategorikan dan memprioritaskan interaksi media sosial secara real-time.
  • Radius Intelligence menggunakan Spark MLlib untuk memproses miliaran poin data dari pelanggan dan sumber data eksternal, termasuk 25 juta bisnis kanonik dan ratusan juta listingan bisnis dari berbagai sumber.
  • ING menggunakan Spark dalam pipeline analitik datanya untuk deteksi anomali. Pipeline machine learning perusahaan menggunakan ansambel pohon keputusan Spark dan pengelompokan k-means.

Spark bukan hanya cara yang lebih cepat dan mudah untuk memahami data kami. Lebih mendasar lagi, Spark mengubah cara kami melakukan rekayasa data dan ilmu data, dengan memungkinkan kami menyelesaikan beragam masalah data - mulai dari pembelajaran mesin hingga streaming, kueri terstruktur hingga komputasi grafik - dalam bahasa pilihan kami.

Spark MLlib memungkinkan praktisi data pemula untuk dengan mudah bekerja dengan algoritme mereka di luar kotak sementara para ahli dapat menyetel sesuai keinginan. Insinyur data dapat fokus pada sistem terdistribusi, dan ilmuwan data dapat fokus pada model dan algoritme pembelajaran mesin mereka. Spark meningkatkan pembelajaran mesin karena data scientist dapat fokus pada masalah data yang benar-benar mereka pedulikan sambil secara transparan memanfaatkan kecepatan, kemudahan, dan integrasi platform terpadu Spark.

Joseph Bradley adalah seorang insinyur perangkat lunak dan pembuat Spark yang bekerja pada MLlib di Databricks. Sebelumnya, dia adalah seorang postdoc di UC Berkeley setelah menerima gelar doktor dalam Machine Learning dari Carnegie Mellon University pada tahun 2013. Penelitiannya meliputi model grafik probabilistik, regresi jarang paralel, dan mekanisme agregasi untuk penilaian sejawat di MOOC.

Xiangrui Meng adalah anggota Apache Spark PMC dan insinyur perangkat lunak di Databricks. Dia telah secara aktif terlibat dalam pengembangan dan pemeliharaan Spark MLlib sejak dia bergabung dengan Databricks.

Denny Lee adalah penginjil teknologi di Databricks. Dia adalah insinyur ilmu data dengan pengalaman lebih dari 15 tahun dalam mengembangkan infrastruktur berskala Internet, platform data, dan sistem terdistribusi baik untuk infrastruktur lokal maupun cloud. 

Forum Teknologi Baru menyediakan tempat untuk mengeksplorasi dan mendiskusikan teknologi perusahaan yang sedang berkembang secara mendalam dan luas. Pemilihannya subjektif, berdasarkan pilihan teknologi yang kami yakini penting dan paling menarik bagi pembaca. tidak menerima jaminan pemasaran untuk publikasi dan berhak untuk mengedit semua konten yang dikontribusikan. Kirim semua pertanyaan ke [email protected]