Kecerdasan Data Generatif

Bagaimana Booking.com memodernisasi kerangka eksperimen ML-nya dengan Amazon SageMaker | Layanan Web Amazon

Tanggal:

Postingan ini ditulis bersama Kostia Kofman dan Jenny Tokar dari Booking.com.

Sebagai pemimpin global dalam industri perjalanan online, Booking.com selalu mencari cara inovatif untuk meningkatkan layanannya dan memberikan pengalaman yang disesuaikan dan lancar kepada pelanggan. Tim Pemeringkatan di Booking.com memainkan peran penting dalam memastikan algoritma pencarian dan rekomendasi dioptimalkan untuk memberikan hasil terbaik bagi penggunanya.

Berbagi sumber daya internal dengan tim internal lainnya, para ilmuwan pembelajaran mesin (ML) tim Pemeringkatan sering kali mengalami waktu tunggu yang lama untuk mengakses sumber daya untuk pelatihan dan eksperimen model โ€“ yang menantang kemampuan mereka untuk bereksperimen dan berinovasi dengan cepat. Menyadari kebutuhan akan infrastruktur ML yang dimodernisasi, tim Pemeringkatan memulai perjalanan untuk menggunakan kekuatan Amazon SageMaker untuk membangun, melatih, dan menerapkan model ML dalam skala besar.

Booking.com berkolaborasi dengan Layanan Profesional AWS untuk membangun solusi guna mempercepat waktu pemasaran model ML yang lebih baik melalui peningkatan berikut:

  • Mengurangi waktu tunggu sumber daya untuk pelatihan dan eksperimen
  • Integrasi kemampuan ML yang penting seperti penyetelan hyperparameter
  • Pengurangan siklus pengembangan untuk model ML

Mengurangi waktu tunggu berarti tim dapat dengan cepat melakukan iterasi dan bereksperimen dengan model, sehingga memperoleh wawasan dengan lebih cepat. Menggunakan instans SageMaker yang tersedia sesuai permintaan memungkinkan pengurangan waktu tunggu sepuluh kali lipat. Kemampuan ML yang penting seperti penyetelan hyperparameter dan kemampuan menjelaskan model masih kurang di lokasi. Perjalanan modernisasi tim memperkenalkan fitur-fitur ini melalui Penyetelan Model Otomatis Amazon SageMaker dan Memperjelas Amazon SageMaker. Terakhir, aspirasi tim adalah menerima umpan balik segera pada setiap perubahan yang dibuat dalam kode, mengurangi putaran umpan balik dari hitungan menit menjadi sekejap, dan dengan demikian mengurangi siklus pengembangan model ML.

Dalam postingan ini, kami mempelajari perjalanan yang dilakukan oleh tim Ranking di Booking.com saat mereka memanfaatkan kemampuan SageMaker untuk memodernisasi kerangka eksperimen ML mereka. Dengan melakukan hal ini, mereka tidak hanya mengatasi tantangan yang ada, namun juga meningkatkan pengalaman pencarian mereka, sehingga pada akhirnya memberikan manfaat bagi jutaan wisatawan di seluruh dunia.

Pendekatan modernisasi

Tim Pemeringkatan terdiri dari beberapa ilmuwan ML yang masing-masing perlu mengembangkan dan menguji model mereka sendiri secara offline. Ketika suatu model dianggap berhasil menurut evaluasi offline, model tersebut dapat dipindahkan ke pengujian A/B produksi. Jika menunjukkan peningkatan online, maka dapat diterapkan ke semua pengguna.

Tujuan dari proyek ini adalah untuk menciptakan lingkungan yang ramah pengguna agar para ilmuwan ML dapat menjalankannya dengan mudah dan dapat disesuaikan Pipa Pembuatan Model Amazon SageMaker untuk menguji hipotesis mereka tanpa perlu membuat kode modul yang panjang dan rumit.

Salah satu dari beberapa tantangan yang dihadapi adalah mengadaptasi solusi pipeline lokal yang ada untuk digunakan di AWS. Solusinya melibatkan dua komponen utama:

  • Memodifikasi dan memperluas kode yang ada โ€“ Bagian pertama dari solusi kami melibatkan modifikasi dan perluasan kode yang ada agar kompatibel dengan infrastruktur AWS. Hal ini penting untuk memastikan kelancaran transisi dari pemrosesan lokal ke pemrosesan berbasis cloud.
  • Pengembangan paket klien โ€“ Paket klien dikembangkan yang bertindak sebagai pembungkus API SageMaker dan kode yang sudah ada sebelumnya. Paket ini menggabungkan keduanya, memungkinkan ilmuwan ML dengan mudah mengonfigurasi dan menerapkan pipeline ML tanpa coding.

Konfigurasi saluran SageMaker

Kemampuan penyesuaian adalah kunci dalam alur pembuatan model, dan hal itu dicapai melalui config.ini, file konfigurasi yang luas. File ini berfungsi sebagai pusat kendali untuk semua masukan dan perilaku pipeline.

Konfigurasi yang tersedia di dalamnya config.ini meliputi:

  • Detail saluran pipa โ€“ Praktisi dapat menentukan nama alur, menentukan langkah mana yang harus dijalankan, menentukan di mana keluaran harus disimpan Layanan Penyimpanan Sederhana Amazon (Amazon S3), dan pilih kumpulan data mana yang akan digunakan
  • Detail akun AWS โ€“ Anda dapat memutuskan di Wilayah mana pipeline harus dijalankan dan peran mana yang harus digunakan
  • Konfigurasi khusus langkah โ€“ Untuk setiap langkah dalam pipeline, Anda dapat menentukan detail seperti jumlah dan jenis instans yang akan digunakan, beserta parameter yang relevan

Kode berikut menunjukkan contoh file konfigurasi:

[BUILD]
pipeline_name = ranking-pipeline
steps = DATA_TRANFORM, TRAIN, PREDICT, EVALUATE, EXPLAIN, REGISTER, UPLOAD
train_data_s3_path = s3://...
...
[AWS_ACCOUNT]
region = eu-central-1
...
[DATA_TRANSFORM_PARAMS]
input_data_s3_path = s3://...
compression_type = GZIP
....
[TRAIN_PARAMS]
instance_count = 3
instance_type = ml.g5.4xlarge
epochs = 1
enable_sagemaker_debugger = True
...
[PREDICT_PARAMS]
instance_count = 3
instance_type = ml.g5.4xlarge
...
[EVALUATE_PARAMS]
instance_type = ml.m5.8xlarge
batch_size = 2048
...
[EXPLAIN_PARAMS]
check_job_instance_type = ml.c5.xlarge
generate_baseline_with_clarify = False
....

config.ini adalah file dengan kontrol versi yang dikelola oleh Git, mewakili konfigurasi minimal yang diperlukan agar pipeline pelatihan berhasil dijalankan. Selama pengembangan, file konfigurasi lokal yang tidak dikontrol versinya dapat dimanfaatkan. File konfigurasi lokal ini hanya perlu berisi pengaturan yang relevan dengan proses tertentu, sehingga memberikan fleksibilitas tanpa kerumitan. Klien pembuatan alur dirancang untuk menangani beberapa file konfigurasi, dengan yang terbaru lebih diutamakan daripada pengaturan sebelumnya.

Langkah-langkah saluran SageMaker

Jalur pipa dibagi menjadi beberapa langkah berikut:

  • Melatih dan menguji persiapan data โ€“ Data mentah berukuran terabyte disalin ke bucket S3, diproses menggunakan Lem AWS pekerjaan untuk pemrosesan Spark, menghasilkan data terstruktur dan diformat untuk kompatibilitas.
  • Pelatihan VE โ€“ Langkah pelatihan menggunakan estimator TensorFlow untuk tugas pelatihan SageMaker. Pelatihan terjadi secara terdistribusi menggunakan Horovod, dan artefak model yang dihasilkan disimpan di Amazon S3. Untuk penyetelan hyperparameter, tugas optimasi hyperparameter (HPO) dapat dimulai, memilih model terbaik berdasarkan metrik tujuan.
  • Meramalkan โ€“ Pada langkah ini, tugas Pemrosesan SageMaker menggunakan artefak model yang disimpan untuk membuat prediksi. Proses ini berjalan secara paralel pada mesin yang tersedia, dan hasil prediksi disimpan di Amazon S3.
  • Mengevaluasi โ€“ Pekerjaan pemrosesan PySpark mengevaluasi model menggunakan skrip Spark kustom. Laporan evaluasi kemudian disimpan di Amazon S3.
  • Kondisi โ€“ Setelah evaluasi, keputusan dibuat mengenai kualitas model. Keputusan ini didasarkan pada metrik kondisi yang ditentukan dalam file konfigurasi. Jika evaluasinya positif, model tersebut terdaftar sebagai disetujui; jika tidak, itu terdaftar sebagai ditolak. Dalam kedua kasus tersebut, laporan evaluasi dan penjelasan, jika dihasilkan, dicatat dalam registri model.
  • Model paket untuk inferensi โ€“ Dengan menggunakan tugas pemrosesan, jika hasil evaluasi positif, model dikemas, disimpan di Amazon S3, dan siap untuk diunggah ke portal ML internal.
  • Menjelaskan โ€“ SageMaker Clarify menghasilkan laporan yang dapat dijelaskan.

Dua repositori berbeda digunakan. Repositori pertama berisi definisi dan kode build untuk pipeline ML, dan repositori kedua berisi kode yang dijalankan dalam setiap langkah, seperti pemrosesan, pelatihan, prediksi, dan evaluasi. Pendekatan repositori ganda ini memungkinkan modularitas yang lebih besar, dan memungkinkan tim sains dan teknik melakukan iterasi secara independen pada kode ML dan komponen pipeline ML.

Diagram berikut mengilustrasikan alur kerja solusi.

Model tuning otomatis

Pelatihan model ML memerlukan pendekatan berulang dari beberapa eksperimen pelatihan untuk membangun model akhir yang kuat dan berperforma tinggi untuk penggunaan bisnis. Ilmuwan ML harus memilih jenis model yang sesuai, membuat kumpulan data masukan yang benar, dan menyesuaikan kumpulan hyperparameter yang mengontrol proses pembelajaran model selama pelatihan.

Pemilihan nilai hyperparameter yang sesuai untuk proses pelatihan model dapat memengaruhi performa akhir model secara signifikan. Namun, tidak ada cara unik atau pasti untuk menentukan nilai mana yang sesuai untuk kasus penggunaan tertentu. Seringkali, ilmuwan ML perlu menjalankan beberapa tugas pelatihan dengan kumpulan hyperparameter yang sedikit berbeda, mengamati metrik pelatihan model, lalu mencoba memilih nilai yang lebih menjanjikan untuk iterasi berikutnya. Proses penyetelan performa model ini juga dikenal sebagai optimasi hyperparameter (HPO), dan terkadang memerlukan ratusan eksperimen.

Tim Pemeringkatan biasanya melakukan HPO secara manual di lingkungan lokal mereka karena mereka hanya dapat meluncurkan pekerjaan pelatihan dalam jumlah yang sangat terbatas secara paralel. Oleh karena itu, mereka harus menjalankan HPO secara berurutan, menguji dan memilih kombinasi nilai hyperparameter yang berbeda secara manual, dan memantau kemajuan secara teratur. Hal ini memperpanjang proses pengembangan dan penyetelan model serta membatasi jumlah keseluruhan eksperimen HPO yang dapat dijalankan dalam jangka waktu yang memungkinkan.

Dengan perpindahan ke AWS, tim Pemeringkatan dapat menggunakan fitur penyetelan model otomatis (AMT) dari SageMaker. AMT memungkinkan ilmuwan Ranking ML untuk secara otomatis meluncurkan ratusan tugas pelatihan dalam rentang hyperparameter yang diminati untuk menemukan versi model akhir dengan performa terbaik sesuai dengan metrik yang dipilih. Tim Pemeringkatan kini dapat memilih di antara empat strategi penyetelan otomatis yang berbeda untuk pemilihan hyperparameternya:

  • Pencarian kotak โ€“ AMT mengharapkan semua hyperparameter menjadi nilai kategoris, dan akan meluncurkan tugas pelatihan untuk setiap kombinasi kategoris yang berbeda, menjelajahi seluruh ruang hyperparameter.
  • Pencarian acak โ€“ AMT akan secara acak memilih kombinasi nilai hyperparameter dalam rentang yang disediakan. Karena tidak ada ketergantungan antara tugas pelatihan yang berbeda dan pemilihan nilai parameter, beberapa tugas pelatihan paralel dapat diluncurkan dengan metode ini, sehingga mempercepat proses pemilihan parameter yang optimal.
  • Optimasi Bayesian โ€“ AMT menggunakan implementasi pengoptimalan Bayesian untuk menebak kumpulan nilai hyperparameter terbaik, dan memperlakukannya sebagai masalah regresi. Ini akan mempertimbangkan kombinasi hyperparameter yang diuji sebelumnya dan dampaknya pada tugas pelatihan model dengan pemilihan parameter baru, mengoptimalkan pemilihan parameter yang lebih cerdas dengan eksperimen yang lebih sedikit, tetapi juga akan meluncurkan tugas pelatihan hanya secara berurutan untuk selalu dapat belajar dari pelatihan sebelumnya.
  • hiperband โ€“ AMT akan menggunakan hasil antara dan akhir dari tugas pelatihan yang dijalankannya untuk mengalokasikan ulang sumber daya secara dinamis ke tugas pelatihan dengan konfigurasi hyperparameter yang menunjukkan hasil yang lebih menjanjikan sekaligus secara otomatis menghentikan hasil yang berkinerja buruk.

AMT di SageMaker memungkinkan tim Pemeringkatan mengurangi waktu yang dihabiskan pada proses penyetelan hyperparameter untuk pengembangan model mereka dengan memungkinkan mereka untuk pertama kalinya menjalankan beberapa eksperimen paralel, menggunakan strategi penyetelan otomatis, dan melakukan tugas pelatihan dua digit yang dijalankan dalam beberapa hari, sesuatu yang tidak mungkin dilakukan di lokasi.

Keterjelasan model dengan SageMaker Clarify

Penjelasan model memungkinkan praktisi ML untuk memahami sifat dan perilaku model ML mereka dengan memberikan wawasan berharga untuk rekayasa fitur dan keputusan pemilihan, yang pada gilirannya meningkatkan kualitas prediksi model. Tim Pemeringkatan ingin mengevaluasi wawasan kemampuan menjelaskan mereka dengan dua cara: memahami bagaimana masukan fitur memengaruhi keluaran model di seluruh kumpulan datanya (interpretabilitas global), dan juga dapat menemukan pengaruh fitur masukan untuk prediksi model tertentu pada titik data yang menarik ( interpretasi lokal). Dengan data ini, ilmuwan Ranking ML dapat membuat keputusan yang tepat tentang cara meningkatkan performa model mereka lebih lanjut dan memperhitungkan hasil prediksi menantang yang terkadang diberikan oleh model tersebut.

SageMaker Clarify memungkinkan Anda membuat laporan penjelasan model menggunakan Penjelasan Aditif Shapley (SHAP) saat melatih model Anda di SageMaker, mendukung interpretasi model global dan lokal. Selain laporan model yang dapat dijelaskan, SageMaker Clarify mendukung analisis yang berjalan untuk metrik bias pra-pelatihan, metrik bias pasca-pelatihan, dan plot ketergantungan parsial. Tugas tersebut akan dijalankan sebagai tugas Pemrosesan SageMaker dalam akun AWS dan terintegrasi langsung dengan alur SageMaker.

Laporan interpretasi global akan secara otomatis dihasilkan dalam keluaran pekerjaan dan ditampilkan di Studio Amazon SageMaker lingkungan sebagai bagian dari percobaan pelatihan yang dijalankan. Jika model ini kemudian didaftarkan di registri model SageMaker, laporan tersebut juga akan ditautkan ke artefak model. Dengan menggunakan kedua opsi ini, tim Pemeringkatan dapat dengan mudah melacak versi model yang berbeda dan perubahan perilakunya.

Untuk mengeksplorasi dampak fitur masukan pada prediksi tunggal (nilai interpretasi lokal), tim Pemeringkatan mengaktifkan parameter tersebut save_local_shap_values dalam pekerjaan SageMaker Clarify dan dapat memuatnya dari bucket S3 untuk analisis lebih lanjut di notebook Jupyter di SageMaker Studio.

Gambar sebelumnya menunjukkan contoh tampilan model yang dapat dijelaskan untuk model ML arbitrer.

Pengoptimalan pelatihan

Maraknya deep learning (DL) telah menyebabkan ML semakin bergantung pada kekuatan komputasi dan data dalam jumlah besar. Praktisi ML biasanya menghadapi kendala dalam menggunakan sumber daya secara efisien saat melatih model kompleks ini. Saat Anda menjalankan pelatihan pada klaster komputasi besar, berbagai tantangan muncul dalam mengoptimalkan pemanfaatan sumber daya, termasuk masalah seperti kemacetan I/O, penundaan peluncuran kernel, kendala memori, dan sumber daya yang kurang dimanfaatkan. Jika konfigurasi tugas pelatihan tidak disesuaikan untuk efisiensi, hambatan ini dapat mengakibatkan penggunaan perangkat keras yang tidak optimal, durasi pelatihan yang berkepanjangan, atau bahkan proses pelatihan yang tidak lengkap. Faktor-faktor ini meningkatkan biaya proyek dan menunda jadwal.

Pembuatan profil penggunaan CPU dan GPU membantu memahami inefisiensi ini, menentukan konsumsi sumber daya perangkat keras (waktu dan memori) dari berbagai operasi TensorFlow dalam model Anda, mengatasi hambatan performa, dan, pada akhirnya, membuat model berjalan lebih cepat.

Tim pemeringkatan menggunakan fitur pembuatan profil kerangka kerja Debugger Amazon SageMaker (sekarang tidak digunakan lagi dan digantikan oleh Profiler Amazon SageMaker) untuk mengoptimalkan pekerjaan pelatihan ini. Hal ini memungkinkan Anda melacak semua aktivitas pada CPU dan GPU, seperti penggunaan CPU dan GPU, kernel yang berjalan pada GPU, peluncuran kernel pada CPU, operasi sinkronisasi, operasi memori pada GPU, latensi antara peluncuran kernel dan proses yang terkait, serta transfer data antar CPU. dan GPU.

Tim pemeringkat juga menggunakan Profil TensorFlow fitur dari Papan Tensor, yang selanjutnya membantu membuat profil pelatihan model TensorFlow. SageMaker sekarang lebih terintegrasi dengan TensorBoard dan menghadirkan alat visualisasi TensorBoard ke SageMaker, terintegrasi dengan pelatihan dan domain SageMaker. TensorBoard memungkinkan Anda melakukan tugas debug model menggunakan plugin visualisasi TensorBoard.

Dengan bantuan kedua alat ini, tim Pemeringkatan mengoptimalkan model TensorFlow mereka dan mampu mengidentifikasi kemacetan serta mengurangi waktu langkah pelatihan rata-rata dari 350 milidetik menjadi 140 milidetik pada CPU dan dari 170 milidetik menjadi 70 milidetik pada GPU, peningkatan kecepatan sebesar 60% dan 59%, masing-masing.

Hasil bisnis

Upaya migrasi berpusat pada peningkatan ketersediaan, skalabilitas, dan elastisitas, yang secara kolektif membawa lingkungan ML menuju tingkat keunggulan operasional baru, yang dicontohkan dengan peningkatan frekuensi pelatihan model dan penurunan kegagalan, waktu pelatihan yang dioptimalkan, dan kemampuan ML tingkat lanjut.

Frekuensi dan kegagalan pelatihan model

Jumlah pekerjaan pelatihan model bulanan meningkat lima kali lipat, sehingga menghasilkan pengoptimalan model yang jauh lebih sering. Selain itu, lingkungan ML baru menyebabkan penurunan tingkat kegagalan proses pipeline, turun dari sekitar 50% menjadi 20%. Waktu pemrosesan tugas yang gagal berkurang secara drastis, dari rata-rata lebih dari satu jam menjadi 5 detik yang dapat diabaikan. Hal ini telah meningkatkan efisiensi operasional dan mengurangi pemborosan sumber daya.

Waktu pelatihan yang dioptimalkan

Migrasi ini membawa peningkatan efisiensi melalui pelatihan GPU berbasis SageMaker. Pergeseran ini mengurangi waktu pelatihan model hingga seperlima dari durasi sebelumnya. Sebelumnya, proses pelatihan untuk model pembelajaran mendalam memakan waktu sekitar 60 jam pada CPU; ini disederhanakan menjadi sekitar 12 jam pada GPU. Peningkatan ini tidak hanya menghemat waktu tetapi juga mempercepat siklus pengembangan, memungkinkan iterasi dan peningkatan model yang lebih cepat.

Kemampuan ML tingkat lanjut

Inti dari keberhasilan migrasi ini adalah penggunaan rangkaian fitur SageMaker, yang mencakup penyesuaian hyperparameter dan kemampuan menjelaskan model. Selain itu, migrasi memungkinkan penggunaan pelacakan eksperimen yang lancar Eksperimen Amazon SageMaker, memungkinkan eksperimen yang lebih mendalam dan produktif.

Yang terpenting, lingkungan eksperimen ML baru mendukung keberhasilan pengembangan model baru yang kini dalam produksi. Model ini merupakan pembelajaran mendalam, bukan berbasis pohon, dan telah memperkenalkan peningkatan nyata dalam performa model online.

Kesimpulan

Postingan ini memberikan gambaran umum tentang kolaborasi Layanan Profesional AWS dan Booking.com yang menghasilkan penerapan kerangka kerja ML yang dapat diskalakan dan berhasil mengurangi waktu pemasaran model ML tim Pemeringkatan mereka.

Tim Pemeringkatan di Booking.com mengetahui bahwa migrasi ke cloud dan SageMaker terbukti bermanfaat, dan mengadaptasi praktik operasi pembelajaran mesin (MLOps) memungkinkan teknisi dan ilmuwan ML mereka untuk fokus pada keahlian mereka dan meningkatkan kecepatan pengembangan. Tim ini berbagi pembelajaran dan pekerjaan yang dilakukan dengan seluruh komunitas ML di Booking.com, melalui diskusi dan sesi khusus dengan praktisi ML tempat mereka berbagi kode dan kemampuan. Kami berharap postingan ini dapat menjadi cara lain untuk berbagi ilmu.

AWS Professional Services siap membantu tim Anda mengembangkan ML yang skalabel dan siap produksi di AWS. Untuk informasi lebih lanjut, lihat Layanan Profesional AWS atau hubungi manajer akun Anda untuk menghubungi.


Tentang Penulis

Laurens van der Maas adalah Insinyur Pembelajaran Mesin di AWS Professional Services. Dia bekerja erat dengan pelanggan yang membangun solusi pembelajaran mesin mereka di AWS, berspesialisasi dalam pelatihan terdistribusi, eksperimen, dan AI yang bertanggung jawab, dan sangat tertarik dengan bagaimana pembelajaran mesin mengubah dunia seperti yang kita ketahui.

Daniel Zagyva adalah Ilmuwan Data di AWS Professional Services. Ia berspesialisasi dalam mengembangkan solusi pembelajaran mesin tingkat produksi yang skalabel untuk pelanggan AWS. Pengalamannya mencakup berbagai bidang, termasuk pemrosesan bahasa alami, AI generatif, dan operasi pembelajaran mesin.

Kostia Kofman adalah Manajer Pembelajaran Mesin Senior di Booking.com, memimpin tim Search Ranking ML, mengawasi sistem ML paling ekstensif di Booking.com. Dengan keahlian dalam Personalisasi dan Pemeringkatan, dia berkembang dalam memanfaatkan teknologi mutakhir untuk meningkatkan pengalaman pelanggan.

Jenny Tokar adalah Senior Machine Learning Engineer di tim Search Ranking Booking.com. Dia berspesialisasi dalam mengembangkan pipeline ML end-to-end yang ditandai dengan efisiensi, keandalan, skalabilitas, dan inovasi. Keahlian Jenny memberdayakan timnya untuk menciptakan model peringkat mutakhir yang melayani jutaan pengguna setiap hari.

Aleksandra Dokic adalah Ilmuwan Data Senior di AWS Professional Services. Dia senang mendukung pelanggan untuk membangun solusi AI/ML yang inovatif di AWS dan dia bersemangat dengan transformasi bisnis melalui kekuatan data.

Luba Protsiva adalah Manajer Keterlibatan di AWS Professional Services. Spesialisasinya adalah memberikan solusi Data dan GenAI/ML yang memungkinkan pelanggan AWS memaksimalkan nilai bisnis mereka dan mempercepat kecepatan inovasi.

tempat_img

Intelijen Terbaru

tempat_img