Setiap hari 2.5 quintillion byte data dibuat, berdasarkan studi IBM. Banyak data itu adalah data yang tidak terstruktur, seperti teks besar, rekaman audio, dan gambar. Untuk melakukan sesuatu yang berguna dengan data, pertama -tama kita harus mengonversinya menjadi data terstruktur.
Dalam pola kode ini kami akan menggunakan salah satu model dari Model Asset Exchange (MAX), pertukaran di mana pengembang dapat menemukan dan bereksperimen dengan model pembelajaran mendalam sumber terbuka. Secara khusus kami akan menggunakan generator caption gambar untuk membuat aplikasi web yang akan menulis gambar dan memungkinkan pengguna untuk memfilter melalui konten gambar berbasis gambar. Aplikasi Web menyediakan antarmuka pengguna interaktif yang didukung oleh server Python ringan menggunakan tornado. Server mengambil gambar melalui UI dan mengirimkannya ke titik akhir istirahat untuk model dan menampilkan teks yang dihasilkan pada UI. Titik akhir istirahat model diatur menggunakan gambar Docker yang disediakan pada maks. Web UI menampilkan keterangan yang dihasilkan untuk setiap gambar serta kata cloud interaktif untuk memfilter gambar berdasarkan keterangannya.
Ketika pembaca telah menyelesaikan pola kode ini, mereka akan memahami cara:

Berikut ini adalah pembicaraan di Spark+AI Summit 2018 tentang Max yang menyertakan demo pendek aplikasi web.
Cara menjalankan pola kode:
Ikuti penyebaran model dokumen untuk menggunakan model generator caption gambar ke IBM Cloud. Jika Anda sudah memiliki titik akhir model API yang tersedia, Anda dapat melewatkan proses ini.
Catatan: Menyebarkan model dapat memakan waktu, untuk pergi lebih cepat Anda dapat mencoba berjalan secara lokal.
Tekan tombol Deploy to IBM Cloud . Jika Anda belum memiliki akun IBM Cloud, Anda perlu membuatnya.
Klik Delivery Pipeline dan klik tombol Create + dalam formulir untuk menghasilkan IBM Cloud API Key untuk aplikasi Web.

Setelah kunci API dihasilkan, Region , Organization , dan bagian bentuk Space akan terisi. Isi bagian Image Caption Generator Model API Endpoint dengan titik akhir yang digunakan di atas, lalu klik Create .
Format untuk entri ini harus
http://170.0.0.1:5000

Di toolchains, klik Delivery Pipeline untuk ditonton saat aplikasi digunakan. Setelah digunakan, aplikasi dapat dilihat dengan mengklik View app .

Anda juga dapat menggunakan model dan aplikasi web di Kubernetes menggunakan gambar Docker terbaru di Quay.
Di kluster Kubernetes Anda, jalankan perintah berikut:
kubectl apply -f https://raw.githubusercontent.com/IBM/MAX-Image-Caption-Generator/master/max-image-caption-generator.yaml
kubectl apply -f https://raw.githubusercontent.com/IBM/MAX-Image-Caption-Generator-Web-App/master/max-image-caption-generator-web-app.yaml Aplikasi Web akan tersedia di port 8088 dari cluster Anda. Model ini hanya akan tersedia secara internal, tetapi dapat diakses secara eksternal melalui NodePort .
Catatan: Untuk menggunakan aplikasi web di IBM Cloud, disarankan untuk mengikuti instruksi Cloud IBM di atas daripada menggunakan layanan IBM Cloud Kubernetes.
Catatan: Langkah -langkah ini hanya diperlukan saat berjalan secara lokal alih -alih menggunakan tombol
Deploy to IBM Cloud.
Catatan: Set instruksi di bagian ini adalah versi yang dimodifikasi dari yang ditemukan di halaman Proyek Generator Keterangan Gambar Gambar
Untuk menjalankan gambar Docker, yang secara otomatis memulai model yang melayani API, jalankan:
docker run -it -p 5000:5000 quay.io/codait/max-image-caption-generator
Ini akan menarik gambar yang sudah dibangun dari Quay (atau menggunakan gambar yang sudah ada jika sudah di-cache secara lokal) dan menjalankannya. Jika Anda lebih suka membangun model secara lokal, Anda dapat mengikuti langkah -langkah dalam model readme.
Perhatikan bahwa saat ini gambar Docker ini hanya CPU (kami akan menambahkan dukungan untuk gambar GPU nanti).
Server API secara otomatis menghasilkan halaman dokumentasi kesombongan interaktif. Pergi ke http://localhost:5000 untuk memuatnya. Dari sana Anda dapat menjelajahi API dan juga membuat permintaan tes.
Gunakan titik akhir model/predict untuk memuat file uji dan dapatkan teks untuk gambar dari API.
Folder sampel model berisi beberapa gambar yang dapat Anda gunakan untuk menguji API, atau Anda dapat menggunakan sendiri.
Anda juga dapat mengujinya pada baris perintah, misalnya:
curl -F " image=@path/to/image.jpg " -X POST http://localhost:5000/model/predict{
"status" : " ok " ,
"predictions" : [
{
"index" : " 0 " ,
"caption" : " a man riding a wave on top of a surfboard . " ,
"probability" : 0.038827644239537
},
{
"index" : " 1 " ,
"caption" : " a person riding a surf board on a wave " ,
"probability" : 0.017933410519265
},
{
"index" : " 2 " ,
"caption" : " a man riding a wave on a surfboard in the ocean . " ,
"probability" : 0.0056628732021868
}
]
}Kloning Repositori Aplikasi Web Caption Generator Gambar secara lokal dengan menjalankan perintah berikut:
git clone https://github.com/IBM/MAX-Image-Caption-Generator-Web-App
Catatan: Anda mungkin perlu
cd ..di luar direktori max-caption-generator terlebih dahulu
Kemudian ubah direktori menjadi repositori lokal
cd MAX-Image-Caption-Generator-Web-App
Sebelum menjalankan aplikasi web ini, Anda harus menginstal ketergantungannya:
pip install -r requirements.txt
Anda kemudian memulai aplikasi web dengan menjalankan:
python app.py
Setelah selesai memproses gambar default (<1 menit) Anda kemudian dapat mengakses aplikasi web di: http://localhost:8088
Titik akhir generator caption gambar harus tersedia di http://localhost:5000 agar aplikasi web berhasil dimulai.
Jika Anda ingin menggunakan port yang berbeda atau menjalankan titik akhir ML di lokasi yang berbeda, Anda dapat mengubahnya dengan opsi baris perintah:
python app.py --port=[new port] --ml-endpoint=[endpoint url including protocol and port]
Untuk menjalankan aplikasi web dengan Docker, wadah yang menjalankan server web dan titik akhir istirahat perlu berbagi tumpukan jaringan yang sama. Ini dilakukan dalam langkah -langkah berikut:
Ubah perintah yang menjalankan titik akhir generator caption gambar untuk memetakan port tambahan di wadah ke port pada mesin host. Dalam contoh di bawah ini dipetakan ke port 8088 pada host tetapi port lain juga dapat digunakan.
docker run -it -p 5000:5000 -p 8088:8088 --name max-image-caption-generator quay.io/codait/max-image-caption-generator
Bangun gambar aplikasi web dengan menjalankan:
docker build -t max-image-caption-generator-web-app .
Jalankan wadah aplikasi web menggunakan:
docker run --net='container:max-image-caption-generator' -it max-image-caption-generator-web-app
Anda juga dapat menggunakan aplikasi web dengan gambar Docker terbaru yang tersedia di quay.io dengan menjalankan:
docker run --net='container:max-image-caption-generator' -it quay.io/codait/max-image-caption-generator-web-app
Ini akan menggunakan wadah Model Docker yang dijalankan di atas dan dapat dijalankan tanpa mengkloning repo aplikasi web secara lokal.

Ada sejumlah besar gambar yang diunggah pengguna dalam aplikasi web yang sudah berjalan lama
Saat menjalankan aplikasi web di
http://localhost:8088Halaman admin tersedia dihttp://localhost:8088/cleanupyang memungkinkan pengguna untuk menghapus semua file yang diunggah pengguna dari server.[Catatan: Ini menghapus semua gambar yang diunggah pengguna]

Pola kode ini dilisensikan di bawah lisensi perangkat lunak Apache, versi 2. Objek kode pihak ketiga terpisah yang dipanggil dalam pola kode ini dilisensikan oleh penyedia masing -masing sesuai dengan lisensi terpisah mereka sendiri. Kontribusi tunduk pada Sertifikat Asal Pengembang, Versi 1.1 (DCO) dan Lisensi Perangkat Lunak Apache, versi 2.
FAQ Lisensi Perangkat Lunak Apache (ASL)