Posting ini merangkum beberapa pembelajaran saat bekerja dengan implementasi Word2Vec Spark. Anda mungkin juga tertarik dengan postingan sebelumnya “Masalah yang dihadapi dengan Spark ml Wod2Vec

Pelajaran 1: GetVectors Word2Vec Spark mengembalikan penyematan unik

Seperti disebutkan di bagian 2, fungsi transformasi bertujuan untuk mengembalikan vektor kata-kata dalam kalimat tertentu. Jika Anda menginginkan model terlatih yang sebenarnya, dan oleh karena itu kata unik untuk representasi vektor, Anda harus menggunakan fungsi getVectors

Pelajaran 2: Lebih banyak partisi == lebih cepat == lebih sedikit kualitas

Ada keseimbangan yang perlu Anda tentukan antara implementasi yang cepat vs implementasi yang berkualitas baik. Memiliki lebih banyak partisi Word2Vec berarti data dipisahkan ke dalam banyak keranjang yang lebih kecil, sehingga kehilangan konteks kata di keranjang lain. Data hanya dikumpulkan pada akhir iterasi. Oleh karena itu, Anda tidak ingin membagi data Anda menjadi terlalu banyak partisi. Namun, Anda juga tidak ingin kehilangan paralelisme — lagipula Anda menggunakan spark karena Anda ingin komputasi terdistribusi. Bermain-main dengan total partisi — nilai yang tepat untuk parameter ini akan berbeda tergantung masalahnya. Ingat juga bahwa lebih sedikit partisi berarti lebih sedikit paralelisme dan karenanya algoritma lebih lambat.

Pelajaran 3: Lebih banyak iterasi == lebih sedikit kecepatan == lebih banyak kualitas

Seperti disebutkan dalam pelajaran 2, data dari berbagai partisi dikumpulkan pada akhir setiap iterasi. Memiliki lebih banyak iterasi berarti lebih banyak konteks dari berbagai wadah dan lebih banyak waktu pelatihan. Artinya, semakin banyak iterasi dapat memberikan hasil yang lebih baik, namun berdampak pada waktu berjalannya algoritme.

Pelajaran 4: Algoritme pembelajaran mesin memerlukan banyak perangkat keras

Ini mungkin tidak mengejutkan, tetapi tetap layak untuk disebutkan. Anda menggunakan algoritme pembelajaran mesin pada kluster terdistribusi dan Anda tetap harus memberikan 1 hal lebih banyak memori, yaitu driver Anda.

Pelajaran 5: Simpan sesuatu ke parket

Mengapa? kompresi data efisien yang dibuat untuk menangani data massal menyebabkan lebih sedikit masalah memori.

Pelajaran 6: Spark ml Word2Vec tidak dapat diolok-olok

Jika Anda menulis tes untuk pekerjaan Spark Anda, yang seharusnya Anda lakukan, Anda mungkin akan mencoba meniru penerapan Word2Vec Spark karena tidak bersifat deterministik. Anda akan segera disambut oleh pesan kesalahan yang menyatakan bahwa Word2Vec tidak dapat ditiru. Anda kemudian akan segera mengetahui bahwa ini adalah kelas terakhir di perpustakaan ml. Untuk menyiasatinya, Anda dapat menggabungkan panggilan Anda ke Word2Vec dalam suatu fungsi dan memasukkannya ke dalam fungsi yang Anda uji.

Awalnya diterbitkan di intothe depthsofdataengineering.wordpress.com pada 26 Juni 2017.