Pertanyaan Opsi untuk menerapkan model R dalam produksi


Sepertinya tidak ada terlalu banyak pilihan untuk menyebarkan model prediktif dalam produksi yang mengejutkan mengingat ledakan dalam Big Data.

Saya memahami bahwa PMML open-source dapat digunakan untuk mengekspor model sebagai spesifikasi XML. Ini kemudian dapat digunakan untuk penilaian / prediksi dalam basis data. Namun tampaknya untuk membuat karya ini Anda perlu menggunakan plugin PMML oleh Zementis yang berarti solusinya tidak benar-benar open source. Apakah ada cara terbuka yang lebih mudah untuk memetakan PMML ke SQL untuk penilaian?

Pilihan lain adalah menggunakan JSON daripada XML untuk menghasilkan prediksi model. Tetapi dalam kasus ini, di mana model R akan duduk? Saya berasumsi itu akan selalu perlu dipetakan ke SQL ... kecuali model R bisa duduk di server yang sama dengan data dan kemudian dijalankan terhadap data yang masuk menggunakan skrip R?

Ada pilihan lain di luar sana?


32
2018-03-10 19:15


asal


Jawaban:


Jawabannya sangat tergantung pada apa lingkungan produksi Anda.

Jika "big data" Anda berada di Hadoop, Anda dapat mencoba open source PMML "scoring engine" yang relatif baru ini Pola.

Jika tidak, Anda tidak punya pilihan (singkat menulis kode khusus-model khusus) tetapi untuk menjalankan R di server Anda. Anda akan menggunakan save untuk menyimpan model pas Anda di file .RData lalu load dan jalankan yang sesuai predict di server. (Itu pasti lambat tetapi Anda selalu dapat mencoba dan melemparkan lebih banyak perangkat keras ke dalamnya.)

Bagaimana Anda melakukannya sangat tergantung pada platform Anda. Biasanya ada cara untuk menambahkan fungsi "kebiasaan" yang ditulis dalam R. Istilahnya adalah UDF (fungsi yang ditentukan pengguna). Di Hadoop Anda dapat menambahkan fungsi seperti itu ke Babi (mis. https://github.com/cd-wood/pigaddons) atau Anda dapat menggunakan RHadoop untuk menulis kode pengurangan peta sederhana yang akan memuat model dan panggilan predict di R. Jika data Anda di Hive, Anda dapat menggunakan Hive TRANSFORM untuk memanggil skrip R eksternal.

Ada juga cara khusus vendor untuk menambahkan fungsi yang ditulis dalam R ke berbagai basis data SQL. Sekali lagi mencari UDF dalam dokumentasi. Misalnya, PostgreSQL memiliki PL / R.


13
2018-03-11 01:09



Berikut ini adalah daftar alternatif yang saya temukan sejauh ini untuk menerapkan model R dalam produksi. Harap perhatikan bahwa alur kerja untuk menggunakan produk ini bervariasi secara signifikan antara satu sama lain, tetapi semuanya berorientasi untuk memfasilitasi proses memaparkan model R terlatih sebagai layanan:


19
2017-11-23 19:59



Anda dapat membuat API RESTful untuk skrip R Anda menggunakan tukang ledeng (https://github.com/trestletech/plumber).

Saya menulis posting blog tentang itu (http://www.knowru.com/blog/how-create-restful-api-for-machine-learning-credit-model-in-r/) menggunakan penyebaran model kredit sebagai contoh.

Secara umum, saya tidak merekomendasikan PMML karena paket yang Anda gunakan mungkin tidak mendukung terjemahan ke PMML.


6
2018-03-02 21:25



Praktik yang umum adalah mencetak dataset baru / diperbarui dalam R dan hanya memindahkan hasil (ID, skor, probabilitas, bidang lain yang diperlukan) ke dalam lingkungan produksi / gudang data.

Saya tahu ini memiliki keterbatasan (penyegaran yang jarang, ketergantungan pada TI, ukuran kumpulan data / pembatasan daya komputasi) dan mungkin bukan jawaban terdepan yang banyak (dari atasan Anda) cari; tetapi untuk banyak use-cases ini bekerja dengan baik (dan biaya ramah!).


1
2017-11-16 14:57



Elise dari Yhat di sini.

Seperti @Ramnath dan @ leo9r disebutkan, perangkat lunak kami memungkinkan Anda menempatkan model R (atau Python, dalam hal ini) langsung ke dalam produksi melalui titik akhir REST API.

Kami menangani real-time atau batch, serta semua pengujian model dan manajemen versi + sistem yang terkait dengan proses.

Ini studi kasus kami turut menulis dengan VIA SMS mungkin berguna jika Anda berpikir tentang bagaimana membuat model R menjadi produksi (tim sci data mereka melakukan pengodean ulang ke dalam PHP sebelum menggunakan Yhat).

Tepuk tangan!


0
2017-10-06 17:08