Mengembangkan antarmuka web untuk berinteraksi dengan model pembelajaran mesin (ML) adalah tugas yang membosankan. Dengan merampingkan, mengembangkan aplikasi demo untuk solusi ML Anda itu mudah. merampingkan adalah pustaka Python sumber terbuka yang memudahkan pembuatan dan berbagi aplikasi web untuk ML dan ilmu data. Sebagai ilmuwan data, Anda mungkin ingin memamerkan temuan Anda untuk kumpulan data, atau menggunakan model terlatih. Aplikasi Streamlit berguna untuk mempresentasikan kemajuan proyek kepada tim Anda, mendapatkan dan membagikan wawasan kepada manajer Anda, dan bahkan mendapatkan umpan balik dari pelanggan.
Dengan lingkungan pengembangan terintegrasi (IDE) dari Studio Amazon SageMaker dengan Lab Jupyter 3, kami dapat membuat, menjalankan, dan menyajikan aplikasi web Streamlit dari dalam lingkungan yang sama untuk tujuan pengembangan. Posting ini menguraikan cara membuat dan menghosting aplikasi Streamlit di Studio dengan cara yang aman dan dapat direproduksi tanpa pengembangan front-end yang memakan waktu. Sebagai contoh, kami menggunakan kebiasaan Rekognisi Amazon demo, yang akan membubuhi keterangan dan melabeli gambar yang diunggah. Ini akan berfungsi sebagai titik awal, dan dapat digeneralisasi untuk mendemonstrasikan model ML kustom apa pun. Kode untuk blog ini dapat ditemukan di sini Repositori GitHub.
Ikhtisar solusi
Berikut ini adalah diagram arsitektur dari solusi kami.
Seorang pengguna pertama kali mengakses Studio melalui browser. Server Jupyter yang terkait dengan profil pengguna berjalan di dalam instance Studio Amazon Elastic Compute Cloud (Amazon EC2). Di dalam instance Studio EC2 terdapat kode contoh dan daftar dependensi. Pengguna dapat menjalankan aplikasi Streamlit, app.py, di terminal sistem. Studio menjalankan UI JupyterLab di Server Jupyter, dipisahkan dari kernel notebook. Server Jupyter dilengkapi dengan proxy dan memungkinkan kami mengakses aplikasi Streamlit kami. Setelah aplikasi berjalan, pengguna dapat memulai sesi terpisah melalui AWS Jupyter Proxy dengan menyesuaikan URL.
Dari aspek keamanan, AWS Jupyter Proxy diperluas dengan autentikasi AWS. Selama pengguna memiliki akses ke akun AWS, ID domain Studio, dan profil pengguna, mereka dapat mengakses tautan tersebut.
Buat Studio menggunakan JupyterLab 3.0
Studio dengan JupyterLab 3 harus diinstal agar solusi ini berfungsi. Versi lama mungkin tidak mendukung fitur yang diuraikan dalam postingan ini. Untuk informasi lebih lanjut, lihat Instans Notebook Amazon SageMaker Studio dan SageMaker kini hadir dengan notebook JupyterLab 3 untuk meningkatkan produktivitas pengembang. Secara default, Studio hadir dengan JupyterLab 3. Anda harus memeriksa versinya dan mengubahnya jika menjalankan versi yang lebih lama. Untuk informasi lebih lanjut, lihat Versi JupyterLab.
Anda dapat mengatur Studio menggunakan Kit Pengembangan AWS Cloud (AWS CDK); untuk informasi lebih lanjut, lihat Siapkan Amazon SageMaker Studio dengan Jupyter Lab 3 menggunakan AWS CDK. Sebagai alternatif, Anda dapat menggunakan konsol SageMaker untuk mengubah pengaturan domain. Selesaikan langkah-langkah berikut:
- Di konsol SageMaker, pilih Domain di panel navigasi.
- Pilih domain Anda dan pilih Edit.
- Untuk Versi Lab Jupyter default, pastikan versi disetel ke Lab Jupyter 3.0.
(Opsional) Buat Ruang Bersama
Kita dapat menggunakan konsol SageMaker atau AWS CLI untuk menambahkan dukungan ruang bersama ke Domain yang ada dengan mengikuti langkah-langkah di dokumen atau di blog ini. Membuat ruang bersama di AWS memiliki keuntungan sebagai berikut:
- Kolaborasi: Ruang bersama memungkinkan banyak pengguna atau tim untuk berkolaborasi dalam proyek atau kumpulan sumber daya, tanpa harus menduplikasi data atau infrastruktur.
- Penghematan biaya: Alih-alih setiap pengguna atau tim membuat dan mengelola sumber daya mereka sendiri, ruang bersama bisa lebih hemat biaya, karena sumber daya dapat dikumpulkan dan dibagikan ke banyak pengguna.
- Manajemen yang disederhanakan: Dengan ruang bersama, administrator dapat mengelola sumber daya secara terpusat, daripada harus mengelola beberapa contoh sumber daya yang sama untuk setiap pengguna atau tim.
- Peningkatan skalabilitas: Ruang bersama dapat lebih mudah ditingkatkan atau diturunkan untuk memenuhi permintaan yang berubah, karena sumber daya dapat dialokasikan secara dinamis untuk memenuhi kebutuhan pengguna atau tim yang berbeda.
- Keamanan yang ditingkatkan: Dengan memusatkan sumber daya di ruang bersama, keamanan dapat ditingkatkan, karena kontrol akses dan pemantauan dapat diterapkan dengan lebih mudah dan konsisten.
Instal dependensi dan tiru contoh di Studio
Selanjutnya, kami meluncurkan Studio dan membuka terminal sistem. Kami menggunakan SageMaker IDE untuk mengkloning contoh kami dan terminal sistem untuk meluncurkan aplikasi kami. Kode untuk blog ini dapat ditemukan di sini Repositori GitHub. Kami mulai dengan mengkloning repositori:
Selanjutnya, kita buka System Terminal.
Setelah dikloning, di terminal sistem instal dependensi untuk menjalankan kode contoh kami dengan menjalankan perintah berikut. Ini pertama-tama akan menginstal dependensi dengan menjalankan pip install --no-cache-dir -r requirements.txt
. itu no-cache-dir
bendera akan menonaktifkan cache. Caching membantu menyimpan file instalasi (.whl
) dari modul yang Anda instal melalui pip. Itu juga menyimpan file sumber (.tar.gz
) untuk menghindari pengunduhan ulang jika belum kedaluwarsa. Jika tidak ada ruang di hard drive kita atau jika kita ingin menyimpan image Docker sekecil mungkin, kita dapat menggunakan flag ini agar perintah berjalan hingga selesai dengan penggunaan memori minimal. Selanjutnya skrip akan menginstal paket iproute
dan jq
, yang akan digunakan pada langkah berikutnya.sh setup.sh
Jalankan Demo Streamlit dan Buat Tautan yang Dapat Dibagikan
Untuk memverifikasi semua dependensi berhasil diinstal dan untuk melihat demo Amazon Rekognition, jalankan perintah berikut:
Nomor port yang menghosting aplikasi akan ditampilkan.
Perhatikan bahwa saat mengembangkan, mungkin berguna untuk menjalankan ulang skrip secara otomatis saat app.py
dimodifikasi pada disk. Untuk melakukannya, agar kita dapat memodifikasi runOnSave opsi konfigurasi dengan menambahkan --server.runOnSave true
tandai ke perintah kami:
Tangkapan layar berikut menunjukkan contoh apa yang harus ditampilkan di terminal.
Dari contoh di atas kita melihat nomor port, ID domain, dan URL studio tempat kita menjalankan aplikasi kita. Terakhir, kita dapat melihat URL yang perlu kita gunakan untuk mengakses aplikasi streamlit kita. Skrip ini memodifikasi URL Studio, menggantikan lab?
dengan proxy/[PORT NUMBER]/
. Demo Deteksi Objek Rekognisi akan ditampilkan, seperti yang ditunjukkan pada tangkapan layar berikut.
Sekarang setelah aplikasi Streamlit berfungsi, kami dapat membagikan URL ini dengan siapa saja yang memiliki akses ke ID domain Studio dan profil pengguna ini. Untuk mempermudah berbagi demo ini, kami dapat memeriksa status dan mencantumkan semua aplikasi streamlit yang berjalan dengan menjalankan perintah berikut: sh status.sh
Kami dapat menggunakan skrip siklus hidup atau ruang bersama untuk memperluas pekerjaan ini. Alih-alih menjalankan skrip shell secara manual dan menginstal dependensi, gunakan skrip siklus hidup untuk merampingkan proses ini. Untuk mengembangkan dan memperluas aplikasi ini dengan tim dan berbagi dasbor dengan rekan kerja, gunakan ruang bersama. Dengan membuat ruang bersama di Studio, pengguna dapat berkolaborasi di ruang bersama untuk mengembangkan aplikasi Streamlit secara real time. Semua sumber daya di ruang bersama difilter dan diberi tag, sehingga lebih mudah untuk berfokus pada proyek ML dan mengelola biaya. Lihat kode berikut untuk membuat aplikasi Anda sendiri di Studio.
Membersihkan
Setelah kami selesai menggunakan aplikasi, kami ingin membebaskan port mendengarkan. Agar semua proses berjalan streamlit dan membebaskannya untuk digunakan, kami dapat menjalankan skrip pembersihan kami: sh cleanup.sh
Kesimpulan
Dalam postingan ini, kami menunjukkan contoh end-to-end hosting demo Streamlit untuk tugas deteksi objek menggunakan Amazon Rekognition. Kami merinci motivasi untuk membuat aplikasi web cepat, pertimbangan keamanan, dan penyiapan yang diperlukan untuk menjalankan aplikasi Streamlit kami sendiri di Studio. Terakhir, kami memodifikasi pola URL di browser web kami untuk memulai sesi terpisah melalui AWS Jupyter Proxy.
Demo ini memungkinkan Anda mengunggah gambar apa pun dan memvisualisasikan output dari Amazon Rekognition. Hasilnya juga diproses, dan Anda dapat mengunduh file CSV dengan semua kotak pembatas melalui aplikasi. Anda dapat memperluas pekerjaan ini untuk memberi anotasi dan melabeli kumpulan data Anda sendiri, atau memodifikasi kode untuk menampilkan model kustom Anda!
Tentang Penulis
Dipika Khular adalah Insinyur ML di Lab Solusi Amazon ML. Dia membantu pelanggan mengintegrasikan solusi ML untuk menyelesaikan masalah bisnis mereka. Baru-baru ini, dia telah membangun jalur pelatihan dan inferensi untuk pelanggan media dan model prediktif untuk pemasaran.
Marcelo Aberle adalah Insinyur ML di organisasi AWS AI. Dia memimpin upaya MLOps di Lab Solusi Amazon ML, membantu pelanggan merancang dan mengimplementasikan sistem ML yang dapat diskalakan. Misinya adalah memandu pelanggan dalam perjalanan ML perusahaan mereka dan mempercepat jalur ML mereka menuju produksi.
Yash Shah adalah Manajer Sains di Lab Solusi Amazon ML. Dia dan timnya yang terdiri dari ilmuwan terapan dan teknisi ML mengerjakan berbagai kasus penggunaan ML mulai dari perawatan kesehatan, olahraga, otomotif, dan manufaktur.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- Platoblockchain. Intelijen Metaverse Web3. Pengetahuan Diperkuat. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/machine-learning/build-streamlit-apps-in-amazon-sagemaker-studio/
- :adalah
- $NAIK
- 100
- 7
- a
- atas
- mempercepat
- mengakses
- Akun
- di seluruh
- administrator
- AI
- Semua
- dialokasikan
- memungkinkan
- Amazon
- Amazon EC2
- Rekognisi Amazon
- Amazon SageMaker
- Studio Amazon SageMaker
- dan
- siapapun
- aplikasi
- aplikasi
- terapan
- aplikasi
- arsitektur
- ADALAH
- AS
- penampilan
- terkait
- At
- Otentikasi
- secara otomatis
- otomotif
- AWS
- BE
- Manfaat
- Blog
- mendorong
- kotak
- Browser
- membangun
- Bangunan
- dibangun di
- bisnis
- by
- Cache
- CAN
- kasus
- perubahan
- mengubah
- memeriksa
- Pilih
- awan
- kode
- Berkolaborasi
- bagaimana
- lengkap
- penyelesaian
- menghitung
- pertimbangan
- konsul
- kontrol
- hemat biaya
- Biaya
- membuat
- membuat
- adat
- pelanggan
- data
- ilmu data
- ilmuwan data
- Default
- tuntutan
- Demo
- menyebarkan
- Mendesain
- terperinci
- Deteksi
- mengembangkan
- Pengembang
- berkembang
- Pengembangan
- berbeda
- Buruh pelabuhan
- domain
- turun
- Download
- mendorong
- dinamis
- setiap
- mudah
- mudah
- upaya
- ujung ke ujung
- insinyur
- Insinyur
- Enterprise
- Lingkungan Hidup
- Bahkan
- contoh
- ada
- ada
- memperpanjang
- Fitur
- umpan balik
- File
- File
- Akhirnya
- Pertama
- Fokus
- berikut
- Untuk
- ditemukan
- Gratis
- dari
- mendapatkan
- mendapatkan
- mendapatkan
- membimbing
- Sulit
- hard drive
- Memiliki
- memiliki
- kesehatan
- bermanfaat
- membantu
- membantu
- tuan rumah
- tuan
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- HTML
- HTTPS
- ID
- gambar
- melaksanakan
- ditingkatkan
- in
- informasi
- Infrastruktur
- memulai
- wawasan
- install
- diinstal
- Instalasi
- contoh
- sebagai gantinya
- mengintegrasikan
- terpadu
- berinteraksi
- interface
- IT
- perjalanan
- jpg
- Menjaga
- laboratorium
- label
- jalankan
- terkemuka
- pengetahuan
- Perpustakaan
- siklus hidup
- LINK
- Daftar
- Listening
- Panjang
- mesin
- Mesin belajar
- membuat
- MEMBUAT
- Membuat
- mengelola
- pengelolaan
- manajer
- Manajer
- pelaksana
- cara
- manual
- pabrik
- Marketing
- Mungkin..
- Media
- Pelajari
- Memori
- mungkin
- minimal
- Misi
- ML
- MLOps
- model
- model
- dimodifikasi
- memodifikasi
- Modul
- pemantauan
- lebih
- paling
- motivasi
- beberapa
- Navigasi
- Perlu
- kebutuhan
- berikutnya
- buku catatan
- jumlah
- obyek
- Deteksi Objek
- of
- on
- Buka
- open source
- organisasi
- diuraikan
- menguraikan
- sendiri
- paket
- pane
- path
- pola
- plato
- Kecerdasan Data Plato
- Data Plato
- Titik
- mungkin
- Pos
- masalah
- proses
- Diproses
- proses
- Produksi
- Profil
- Kemajuan
- proyek
- memprojeksikan
- wakil
- tujuan
- Ular sanca
- Cepat
- jarak
- agak
- nyata
- real-time
- baru-baru ini
- gudang
- wajib
- Persyaratan
- Sumber
- Hasil
- Run
- berjalan
- pembuat bijak
- sama
- Tabungan
- Skalabilitas
- terukur
- Ilmu
- ilmuwan
- ilmuwan
- script
- aman
- keamanan
- terpisah
- melayani
- Sidang
- set
- pengaturan
- penyiapan
- Share
- berbagi
- berbagi
- Kulit
- harus
- menampilkan
- ditunjukkan
- Pertunjukkan
- kecil
- So
- larutan
- Solusi
- MEMECAHKAN
- sumber
- Space
- spasi
- Olahraga
- awal
- Mulai
- Status
- Langkah
- Tangga
- menyimpan
- toko
- mempersingkat
- studio
- berhasil
- mendukung
- sistem
- sistem
- tugas
- tim
- tim
- terminal
- bahwa
- Grafik
- Sumber
- mereka
- Mereka
- Ini
- Melalui
- waktu
- membuang-buang waktu
- untuk
- terlatih
- Pelatihan
- ui
- upload
- URL
- us
- penggunaan
- menggunakan
- Pengguna
- Pengguna
- memeriksa
- versi
- View
- jaringan
- aplikasi web
- web browser
- Apa
- yang
- sementara
- SIAPA
- akan
- dengan
- dalam
- tanpa
- Kerja
- kerja
- Kamu
- Anda
- zephyrnet.dll