Ide dan pertemuan tentang proses lain apa yang dapat diotomatisasi muncul dalam bisnis dengan berbagai ukuran setiap hari. Namun selain fakta bahwa banyak waktu dapat dihabiskan untuk membuat model, Anda juga perlu menghabiskannya untuk mengevaluasinya dan memeriksa bahwa hasil yang diperoleh tidak acak. Setelah implementasi, model apa pun harus dipantau dan diperiksa secara berkala.
Dan ini semua adalah tahapan yang harus diselesaikan di perusahaan mana pun, berapa pun ukurannya. Jika kita berbicara tentang skala dan warisan Bank Tabungan, maka jumlah penyesuaian meningkat secara signifikan. Hingga akhir tahun 2019, Sber telah menggunakan lebih dari 2000 model. Tidak cukup hanya mengembangkan model saja; diperlukan integrasi dengan sistem industri, mengembangkan data mart untuk membangun model, dan memastikan kendali operasinya pada cluster.
Tim kami sedang mengembangkan platform Sber.DS. Ini memungkinkan Anda memecahkan masalah pembelajaran mesin, mempercepat proses pengujian hipotesis, pada prinsipnya menyederhanakan proses pengembangan dan validasi model, dan juga mengontrol hasil model di PROM.
Agar tidak menipu harapan Anda, saya ingin mengatakan sebelumnya bahwa posting ini adalah posting pengantar, dan sebagai permulaan, kita berbicara tentang apa, pada prinsipnya, yang ada di balik platform Sber.DS. Kami akan menceritakan kisah tentang siklus hidup model mulai dari pembuatan hingga implementasi secara terpisah.
Sber.DS terdiri dari beberapa komponen, yang utama adalah perpustakaan, sistem pengembangan, dan sistem eksekusi model.
Perpustakaan mengontrol siklus hidup model dari saat ide pengembangannya muncul hingga implementasinya dalam PROM, pemantauan, dan dekomisioning. Banyak kemampuan perpustakaan ditentukan oleh peraturan regulator, misalnya, pelaporan dan penyimpanan sampel pelatihan dan validasi. Faktanya, ini adalah daftar semua model kami.
Sistem pengembangan dirancang untuk pengembangan visual model dan teknik validasi. Model yang dikembangkan menjalani validasi awal dan dipasok ke sistem eksekusi untuk menjalankan fungsi bisnisnya. Selain itu, dalam sistem runtime, model dapat ditempatkan pada monitor dengan tujuan meluncurkan teknik validasi secara berkala untuk memantau operasinya.
Ada beberapa jenis node dalam sistem. Beberapa dirancang untuk terhubung ke berbagai sumber data, yang lain dirancang untuk mengubah data sumber dan memperkayanya (markup). Ada banyak node untuk membangun model yang berbeda dan node untuk memvalidasinya. Pengembang dapat memuat data dari sumber mana pun, mengubah, memfilter, memvisualisasikan data perantara, dan memecahnya menjadi beberapa bagian.
Platform ini juga berisi modul siap pakai yang dapat diseret dan dilepas ke area desain. Semua tindakan dilakukan menggunakan antarmuka yang divisualisasikan. Faktanya, Anda dapat menyelesaikan masalah tanpa satu baris kode pun.
Jika kemampuan bawaan tidak cukup, sistem menyediakan kemampuan untuk membuat modul Anda sendiri dengan cepat. Kami membuat mode pengembangan terintegrasi berdasarkan
Arsitektur Sber.DS dibangun di atas layanan mikro. Ada banyak pendapat tentang apa itu layanan mikro. Beberapa orang berpikir bahwa membagi kode monolitik menjadi beberapa bagian saja sudah cukup, tetapi pada saat yang sama mereka masih masuk ke database yang sama. Layanan mikro kami harus berkomunikasi dengan layanan mikro lain hanya melalui REST API. Tidak ada solusi untuk mengakses database secara langsung.
Kami mencoba memastikan bahwa layanan tidak menjadi terlalu besar dan kikuk: satu instance tidak boleh menggunakan lebih dari 4-8 gigabyte RAM dan harus menyediakan kemampuan untuk menskalakan permintaan secara horizontal dengan meluncurkan instance baru. Setiap layanan berkomunikasi dengan layanan lain hanya melalui REST API (
Inti dari aplikasi ini ditulis dalam Java menggunakan Spring Framework. Solusi ini awalnya dirancang untuk penerapan cepat di infrastruktur cloud, sehingga aplikasi dibangun menggunakan sistem containerisasi
Salah satu fitur platform kami adalah kami dapat menjalankan kode yang dikembangkan dalam antarmuka visual pada sistem eksekusi model Sberbank apa pun. Sekarang sudah ada dua di antaranya: satu di Hadoop, yang lain di OpenShift (Docker). Kami tidak berhenti di situ dan membuat modul integrasi untuk menjalankan kode pada infrastruktur apa pun, termasuk di lokasi dan di cloud. Mengenai kemungkinan integrasi yang efektif ke dalam ekosistem Bank Tabungan, kami juga berencana untuk mendukung pekerjaan dengan lingkungan eksekusi yang ada. Di masa depan, solusi ini dapat diintegrasikan secara fleksibel βout of the boxβ ke dalam lanskap organisasi mana pun.
Mereka yang pernah mencoba mendukung solusi yang menjalankan Python di Hadoop di PROM tahu bahwa mempersiapkan dan mengirimkan lingkungan pengguna Python ke setiap datanode saja tidak cukup. Banyaknya pustaka C/C++ untuk pembelajaran mesin yang menggunakan modul Python tidak akan membuat Anda tenang. Kita harus ingat untuk memperbarui paket ketika menambahkan perpustakaan atau server baru, sambil menjaga kompatibilitas dengan kode model yang sudah diimplementasikan.
Ada beberapa pendekatan untuk melakukan hal ini. Misalnya, persiapkan terlebih dahulu beberapa perpustakaan yang sering digunakan dan implementasikan di PROM. Dalam distribusi Hadoop Cloudera, mereka biasanya menggunakan
Bank memperhatikan keamanan menjalankan kode pihak ketiga dengan sangat serius, jadi kami memanfaatkan fitur-fitur baru dari kernel Linux, di mana proses berjalan di lingkungan yang terisolasi
Tahun ini kami berencana menyelesaikan MVP peluncuran model yang ditulis dengan Python/R/Java di Hadoop. Kami telah menetapkan tugas ambisius untuk mempelajari cara menjalankan lingkungan khusus apa pun di Hadoop, agar tidak membatasi pengguna platform kami dengan cara apa pun.
Selain itu, ternyata banyak spesialis DS yang ahli dalam matematika dan statistik, membuat model yang keren, tetapi tidak terlalu berpengalaman dalam transformasi data besar, dan mereka memerlukan bantuan teknisi data kami untuk menyiapkan sampel pelatihan. Kami memutuskan untuk membantu kolega kami dan membuat modul yang mudah digunakan untuk transformasi standar dan persiapan fitur untuk model pada mesin Spark. Hal ini akan memungkinkan Anda menghabiskan lebih banyak waktu untuk mengembangkan model dan tidak menunggu teknisi data menyiapkan kumpulan data baru.
Kami mempekerjakan orang-orang dengan pengetahuan di berbagai bidang: Linux dan DevOps, Hadoop dan Spark, Java dan Spring, Scala dan Akka, OpenShift dan Kubernetes. Lain kali kita akan membahas tentang perpustakaan model, bagaimana model melewati siklus hidup dalam perusahaan, bagaimana validasi dan implementasi terjadi.
Sumber: www.habr.com