Bagaimana Amazon Search menjalankan proyek pembelajaran mesin berskala besar dan tangguh dengan Amazon SageMaker PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Bagaimana Amazon Search menjalankan proyek pembelajaran mesin yang tangguh dan berskala besar dengan Amazon SageMaker

Jika Anda telah mencari item untuk dibeli di amazon.com, Anda telah menggunakan layanan Amazon Search. Di Amazon Search, kami bertanggung jawab atas pengalaman pencarian dan penemuan bagi pelanggan kami di seluruh dunia. Di latar belakang, kami mengindeks katalog produk kami di seluruh dunia, menerapkan armada AWS yang sangat skalabel, dan menggunakan pembelajaran mesin (ML) tingkat lanjut untuk mencocokkan produk yang relevan dan menarik dengan setiap permintaan pelanggan.

Ilmuwan kami secara rutin melatih ribuan model ML untuk meningkatkan kualitas hasil penelusuran. Mendukung eksperimen skala besar menghadirkan tantangannya sendiri, terutama dalam hal meningkatkan produktivitas para ilmuwan yang melatih model ML ini.

Dalam posting ini, kami membagikan bagaimana kami membangun sistem manajemen di sekitar Amazon SageMaker pekerjaan pelatihan, memungkinkan para ilmuwan kami untuk menembak-dan-melupakan ribuan eksperimen dan diberitahu bila diperlukan. Mereka sekarang dapat fokus pada tugas bernilai tinggi dan menyelesaikan kesalahan algoritme, menghemat 60% waktu mereka.

Tantangan

Di Amazon Search, ilmuwan kami memecahkan masalah pengambilan informasi dengan bereksperimen dan menjalankan berbagai tugas pelatihan model ML di SageMaker. Untuk mengikuti inovasi tim kami, kompleksitas model kami dan jumlah pekerjaan pelatihan telah meningkat dari waktu ke waktu. Pekerjaan pelatihan SageMaker memungkinkan kami mengurangi waktu dan biaya untuk melatih dan menyesuaikan model tersebut dalam skala besar, tanpa perlu mengelola infrastruktur.

Seperti semua yang ada dalam proyek ML berskala besar, tugas pelatihan dapat gagal karena berbagai faktor. Posting ini berfokus pada kekurangan kapasitas dan kegagalan karena kesalahan algoritma.

Kami merancang arsitektur dengan sistem manajemen pekerjaan untuk menoleransi dan mengurangi kemungkinan kegagalan pekerjaan karena ketidaktersediaan kapasitas atau kesalahan algoritme. Hal ini memungkinkan para ilmuwan untuk memecat dan melupakan ribuan pekerjaan pelatihan, secara otomatis mencobanya kembali pada kegagalan sementara, dan mendapatkan pemberitahuan tentang keberhasilan atau kegagalan jika diperlukan.

Ikhtisar solusi

Dalam diagram solusi berikut, kami menggunakan tugas pelatihan SageMaker sebagai unit dasar dari solusi kami. Artinya, pekerjaan mewakili pelatihan ujung ke ujung dari model ML.

Alur kerja tingkat tinggi dari solusi ini adalah sebagai berikut:

  1. Para ilmuwan meminta API untuk mengirimkan pekerjaan baru ke sistem.
  2. Pekerjaan terdaftar dengan New status di penyimpanan metadata.
  3. Penjadwal pekerjaan secara asinkron mengambil New pekerjaan dari penyimpanan metadata, mem-parsing inputnya, dan mencoba meluncurkan pekerjaan pelatihan SageMaker untuk masing-masing pekerjaan. Status mereka berubah menjadi Launched or Failed tergantung pada kesuksesan.
  4. Monitor memeriksa kemajuan pekerjaan secara berkala, dan melaporkan Completed, Failed, atau InProgress status di penyimpanan metadata.
  5. Pemberitahu dipicu untuk melaporkan Completed dan Failed pekerjaan kepada para ilmuwan.

Mempertahankan riwayat pekerjaan di penyimpanan metadata juga memungkinkan tim kami melakukan analisis tren dan memantau kemajuan proyek.

Solusi penjadwalan pekerjaan ini menggunakan komponen tanpa server yang digabungkan secara longgar berdasarkan: AWS Lambda, Amazon DynamoDB, Layanan Pemberitahuan Sederhana Amazon (Amazon SNS), dan Jembatan Acara Amazon. Ini memastikan skalabilitas horizontal, memungkinkan ilmuwan kami meluncurkan ribuan pekerjaan dengan upaya operasi minimal. Diagram berikut mengilustrasikan arsitektur tanpa server.

Ikhtisar arsitektur dari solusi kami

Di bagian berikut, kita akan membahas lebih detail tentang setiap layanan dan komponennya.

DynamoDB sebagai penyimpanan metadata untuk menjalankan pekerjaan

Kemudahan penggunaan dan skalabilitas DynamoDB menjadikannya pilihan yang wajar untuk mempertahankan metadata pekerjaan dalam tabel DynamoDB. Solusi ini menyimpan beberapa atribut pekerjaan yang diajukan oleh para ilmuwan, sehingga membantu pelacakan kemajuan dan orkestrasi alur kerja. Atribut yang paling penting adalah sebagai berikut:

  • IDPekerjaan โ€“ ID pekerjaan yang unik. Ini dapat dibuat secara otomatis atau disediakan oleh ilmuwan.
  • Status pekerjaan - Status pekerjaan.
  • Arg Pekerjaan โ€“ Argumen lain yang diperlukan untuk membuat tugas pelatihan, seperti jalur input di Amazon S3, URI gambar pelatihan, dan banyak lagi. Untuk daftar lengkap parameter yang diperlukan untuk membuat pekerjaan pelatihan, lihat BuatPelatihanPekerjaan.

Lambda untuk logika inti

Kami menggunakan tiga berbasis kontainer Lambda berfungsi untuk mengatur alur kerja pekerjaan:

  • Kirimkan Pekerjaan โ€“ Fungsi ini dipanggil oleh para ilmuwan ketika mereka perlu meluncurkan pekerjaan baru. Ini bertindak sebagai API untuk kesederhanaan. Anda juga dapat mengatasinya dengan Gerbang API Amazon, jika diperlukan. Fungsi ini mendaftarkan pekerjaan di tabel DynamoDB.
  • Luncurkan Pekerjaan โ€“ Fungsi ini secara berkala mengambil New pekerjaan dari tabel DynamoDB dan meluncurkannya menggunakan SageMaker BuatPelatihanPekerjaan memerintah. Ini mencoba lagi pada kegagalan sementara, seperti ResourceLimitExceeded dan CapacityError, untuk memasukkan ketahanan ke dalam sistem. Itu kemudian memperbarui status pekerjaan sebagai Launched or Failed tergantung pada kesuksesan.
  • Pantau Pekerjaan โ€“ Fungsi ini secara berkala melacak kemajuan pekerjaan menggunakan JelaskanPelatihanPekerjaan perintah, dan memperbarui tabel DynamoDB sesuai dengan itu. Ini polling Failed pekerjaan dari metadata dan menilai apakah mereka harus dikirim ulang atau ditandai sebagai gagal total. Itu juga menerbitkan pesan pemberitahuan kepada para ilmuwan ketika pekerjaan mereka mencapai keadaan terminal.

EventBridge untuk penjadwalan

Kami menggunakan EventBridge untuk menjalankan fungsi Launch Jobs dan Monitor Jobs Lambda sesuai jadwal. Untuk informasi lebih lanjut, lihat Tutorial: Menjadwalkan fungsi AWS Lambda menggunakan EventBridge.

Atau, Anda dapat menggunakan Aliran Amazon DynamoDB untuk pemicu. Untuk informasi lebih lanjut, lihat Pemicu DynamoDB Streams dan AWS Lambda.

Notifikasi dengan Amazon SNS

Ilmuwan kami adalah diberi tahu melalui email menggunakan Amazon SNS ketika pekerjaan mereka mencapai keadaan terminal (Failed setelah jumlah percobaan ulang maksimum), Completed, atau Stopped.

Kesimpulan

Dalam posting ini, kami membagikan bagaimana Amazon Search menambahkan ketahanan ke beban kerja pelatihan model ML dengan menjadwalkannya, dan mencobanya kembali pada kekurangan kapasitas atau kesalahan algoritme. Kami menggunakan fungsi Lambda bersama dengan tabel DynamoDB sebagai penyimpanan metadata pusat untuk mengatur seluruh alur kerja.

Sistem penjadwalan seperti itu memungkinkan para ilmuwan untuk menyerahkan pekerjaan mereka dan melupakannya. Ini menghemat waktu dan memungkinkan mereka untuk fokus menulis model yang lebih baik.

Untuk melangkah lebih jauh dalam pembelajaran Anda, Anda dapat mengunjungi Pembuat Sage yang Luar Biasa dan temukan di satu tempat, semua sumber daya yang relevan dan terkini yang diperlukan untuk bekerja dengan SageMaker.


Tentang Penulis

Bagaimana Amazon Search menjalankan proyek pembelajaran mesin berskala besar dan tangguh dengan Amazon SageMaker PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Luochao Wang adalah Insinyur Perangkat Lunak di Amazon Search. Dia berfokus pada sistem terdistribusi yang dapat diskalakan dan alat otomatisasi di cloud untuk mempercepat laju inovasi ilmiah untuk aplikasi Machine Learning.

Bagaimana Amazon Search menjalankan proyek pembelajaran mesin berskala besar dan tangguh dengan Amazon SageMaker PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Ishan Bhatt adalah Insinyur Perangkat Lunak di tim Amazon Prime Video. Dia terutama bekerja di ruang MLOps dan memiliki pengalaman membangun produk MLOps selama 4 tahun terakhir menggunakan Amazon SageMaker.

Bagaimana Amazon Search menjalankan proyek pembelajaran mesin berskala besar dan tangguh dengan Amazon SageMaker PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Abhinandan Patni adalah Insinyur Perangkat Lunak Senior di Amazon Search. Dia berfokus pada membangun sistem dan alat untuk pelatihan pembelajaran mendalam terdistribusi yang skalabel dan inferensi waktu nyata.

Bagaimana Amazon Search menjalankan proyek pembelajaran mesin berskala besar dan tangguh dengan Amazon SageMaker PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Eiman Elnahrawy adalah Insinyur Perangkat Lunak Utama di Amazon Search yang memimpin upaya percepatan, penskalaan, dan otomatisasi Pembelajaran Mesin. Keahliannya mencakup berbagai bidang, termasuk Pembelajaran Mesin, Sistem Terdistribusi, dan Personalisasi.

Bagaimana Amazon Search menjalankan proyek pembelajaran mesin berskala besar dan tangguh dengan Amazon SageMaker PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Sofian Hamiti adalah Arsitek Solusi spesialis AI / ML di AWS. Dia membantu pelanggan di seluruh industri untuk mempercepat perjalanan AI / ML mereka dengan membantu mereka membangun dan mengoperasionalkan solusi pembelajaran mesin ujung ke ujung.

Romi Dattadr. Romi Datta  adalah Manajer Senior Manajemen Produk di tim Amazon SageMaker yang bertanggung jawab untuk pelatihan, pemrosesan, dan penyimpanan fitur. Dia telah berada di AWS selama lebih dari 4 tahun, memegang beberapa peran kepemimpinan manajemen produk di SageMaker, S3 dan IoT. Sebelum di AWS, ia bekerja di berbagai peran manajemen produk, teknik, dan kepemimpinan operasional di IBM, Texas Instruments, dan Nvidia. Dia memiliki gelar MS dan Ph.D. dalam Teknik Elektro dan Komputer dari University of Texas di Austin, dan MBA dari University of Chicago Booth School of Business.

Bagaimana Amazon Search menjalankan proyek pembelajaran mesin berskala besar dan tangguh dengan Amazon SageMaker PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.RJ adalah seorang insinyur di tim Search M5 yang memimpin upaya membangun sistem pembelajaran mendalam skala besar untuk pelatihan dan inferensi. Di luar pekerjaan ia menjelajahi berbagai masakan makanan dan bermain olahraga raket.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS