Ubuntu/Python-2.7 | Ubuntu/Python-3.6 |
---|---|
Multi Model Server (MMS) adalah alat yang fleksibel dan mudah digunakan untuk menyajikan model pembelajaran dalam yang dilatih menggunakan kerangka kerja ML/DL apa pun.
Gunakan MMS Server CLI, atau gambar Docker yang telah dikonfigurasi sebelumnya, untuk memulai layanan yang mengatur titik akhir HTTP untuk menangani permintaan inferensi model.
Tinjauan cepat dan contoh untuk melayani dan kemasan disediakan di bawah ini. Dokumentasi dan contoh terperinci disediakan di folder Docs.
Bergabunglah dengan kami Slack Channel untuk menghubungi tim pengembangan, ajukan pertanyaan, cari tahu apa yang memasak dan banyak lagi!
Sebelum melanjutkan dokumen ini, pastikan Anda memiliki prasyarat berikut.
Ubuntu, Centos, atau MacOS. Dukungan Windows bersifat eksperimental. Instruksi berikut hanya akan fokus pada Linux dan MacOS.
Python - Multi Model Server membutuhkan Python untuk menjalankan pekerja.
PIP - PIP adalah sistem manajemen paket Python.
Java 8 - Multi Model Server membutuhkan Java 8 untuk memulai. Anda memiliki opsi berikut untuk menginstal Java 8:
Untuk Ubuntu:
sudo apt-get install openjdk-8-jre-headless
Untuk centos:
sudo yum install java-1.8.0-openjdk
Untuk macOS:
brew tap homebrew/cask-versions
brew update
brew cask install adoptopenjdk8
Langkah 1: Siapkan lingkungan virtual
Kami merekomendasikan menginstal dan menjalankan server multi model di lingkungan virtual. Ini adalah praktik yang baik untuk menjalankan dan menginstal semua dependensi Python di lingkungan virtual. Ini akan memberikan isolasi ketergantungan dan memudahkan manajemen ketergantungan.
Salah satu opsi adalah menggunakan VirtualEnv. Ini digunakan untuk membuat lingkungan Python virtual. Anda dapat menginstal dan mengaktifkan VirtualEnv untuk Python 2.7 sebagai berikut:
pip install virtualenv
Kemudian buat lingkungan virtual:
# Assuming we want to run python2.7 in /usr/local/bin/python2.7
virtualenv -p /usr/local/bin/python2.7 /tmp/pyenv2
# Enter this virtual environment as follows
source /tmp/pyenv2/bin/activate
Lihat dokumentasi VirtualEnv untuk informasi lebih lanjut.
Langkah 2: Instal MXNET MMS tidak akan menginstal mesin MXNET secara default. Jika belum diinstal di lingkungan virtual Anda, Anda harus menginstal salah satu paket PIP MXNET.
Untuk inferensi CPU, mxnet-mkl
direkomendasikan. Instal sebagai berikut:
# Recommended for running Multi Model Server on CPU hosts
pip install mxnet-mkl
Untuk inferensi GPU, mxnet-cu92mkl
direkomendasikan. Instal sebagai berikut:
# Recommended for running Multi Model Server on GPU hosts
pip install mxnet-cu92mkl
Langkah 3: Instal atau Tingkatkan MMS sebagai berikut:
# Install latest released version of multi-model-server
pip install multi-model-server
Untuk meningkatkan dari versi sebelumnya dari multi-model-server
, silakan merujuk dokumen referensi migrasi.
Catatan:
model-archiver
akan diinstal dengan MMS sebagai ketergantungan. Lihat Model-Archiver untuk lebih banyak opsi dan detail. Setelah diinstal, Anda bisa mendapatkan server model MMS dan berjalan dengan sangat cepat. Cobalah --help
untuk melihat semua opsi CLI yang tersedia.
multi-model-server --help
Untuk awal yang cepat ini, kami akan melewatkan sebagian besar fitur, tetapi pastikan untuk melihat dokumen server lengkap saat Anda siap.
Berikut adalah contoh yang mudah untuk melayani model klasifikasi objek:
multi-model-server --start --models squeezenet=https://s3.amazonaws.com/model-server/model_archive_1.0/squeezenet_v1.1.mar
Dengan perintah di atas yang dieksekusi, Anda memiliki MMS berjalan di host Anda, mendengarkan permintaan inferensi. Harap dicatat, bahwa jika Anda menentukan model selama MMS mulai - itu akan secara otomatis mengukur backend pekerja ke angka yang sama dengan VCPU yang tersedia (jika Anda menjalankan pada instance CPU) atau dengan jumlah GPU yang tersedia (jika Anda menjalankan pada instance GPU ). Dalam hal host yang kuat dengan banyak sumber daya komputasi (VCPU atau GPU) ini mulai dan proses autoscaling ini mungkin memakan waktu yang cukup lama. Jika Anda ingin meminimalkan waktu pemula MMS, Anda dapat mencoba menghindari mendaftar dan meningkatkan model selama waktu pemula dan memindahkannya ke titik selanjutnya dengan menggunakan panggilan API manajemen yang sesuai (ini memungkinkan kontrol biji -bijian yang lebih baik untuk berapa banyak sumber daya yang dialokasikan untuk model tertentu).
Untuk mengujinya, Anda dapat membuka jendela terminal baru di sebelah yang menjalankan MMS. Kemudian Anda dapat menggunakan curl
untuk mengunduh salah satu gambar lucu dari bendera anak kucing dan -o
akan menamakannya kitten.jpg
untuk Anda. Kemudian Anda akan curl
POST
ke MMS memprediksi titik akhir dengan gambar kucing.
Dalam contoh di bawah ini, kami menyediakan jalan pintas untuk langkah -langkah ini.
curl -O https://s3.amazonaws.com/model-server/inputs/kitten.jpg
curl -X POST http://127.0.0.1:8080/predictions/squeezenet -T kitten.jpg
Titik akhir prediksi akan mengembalikan respons prediksi di JSON. Ini akan terlihat seperti hasil berikut:
[
{
"probability" : 0.8582232594490051 ,
"class" : " n02124075 Egyptian cat "
},
{
"probability" : 0.09159987419843674 ,
"class" : " n02123045 tabby, tabby cat "
},
{
"probability" : 0.0374876894056797 ,
"class" : " n02123159 tiger cat "
},
{
"probability" : 0.006165083032101393 ,
"class" : " n02128385 leopard, Panthera pardus "
},
{
"probability" : 0.0031716004014015198 ,
"class" : " n02127052 lynx, catamount "
}
]
Anda akan melihat hasil ini dalam respons terhadap panggilan curl
Anda ke titik akhir prediksi, dan di log server di jendela terminal yang menjalankan MMS. Itu juga sedang dicatat secara lokal dengan metrik.
Model lain dapat diunduh dari Model Zoo, jadi cobalah beberapa di antaranya juga.
Sekarang Anda telah melihat betapa mudahnya melayani model pembelajaran yang mendalam dengan MMS! Apakah Anda ingin tahu lebih banyak?
Untuk menghentikan instance model-server saat ini, jalankan perintah berikut:
$ multi-model-server --stop
Anda akan melihat output yang menetapkan bahwa multi-model-server telah berhenti.
MMS memungkinkan Anda untuk mengemas semua artefak model Anda ke dalam arsip model tunggal. Ini membuatnya mudah untuk berbagi dan menggunakan model Anda. Untuk mengemas model, periksa dokumentasi Model Archiver
Jelajahi ke Docs Readme untuk indeks dokumentasi lengkap. Ini termasuk lebih banyak contoh, cara menyesuaikan layanan API, detail titik akhir API, dan banyak lagi.
Berikut adalah beberapa contoh demo aplikasi pembelajaran yang mendalam, didukung oleh MMS:
Klasifikasi Tinjauan Produk ![]() | Pencarian Visual ![]() |
Pengenalan emosi wajah ![]() | Transfer gaya saraf ![]() |
Kami menyambut semua kontribusi!
Untuk mengajukan bug atau meminta fitur, silakan mengajukan masalah GitHub. Permintaan tarik dipersilakan.