Cara Meng-Dockerkan Proyek Sains Data Anda – Panduan Cepat – Menuju AI – Teknologi, Sains, dan Teknik Terbaik

Penulis: Yash Prakash

Ilmu Data

Bagaimana Melakukan Docker pada Proyek Sains Data Anda – Sebuah Panduan Cepat

Bagaimana saya melakukan penerapan setiap saat dalam langkah sederhana dan mudah ini!

Foto oleh Travel Sourced di Unsplash

Pada artikel sebelumnya, saya menjelaskan secara rinci semua langkah yang terlibat dalam membuat aplikasi web interaktif lengkap dari model klasifikasi gambar kami dengan fastai. Di sini, kami akan mempertimbangkan untuk membuat platform aplikasi-independen dan nyaman untuk dibagikan.

Pertama, perkenalan singkat…

Docker adalah alat pengembangan perangkat lunak yang dibuat untuk membuat hidup kita lebih mudah dengan mengelola kode aplikasi kita dan semua pustaka yang diperlukan serta dependensinya dalam paket rapi yang disebut wadah.

Artinya:

Anda cukup mengambil proyek Anda dan dengan bantuan satu Dockerfile, mengubahnya menjadi gambar buruh pelabuhan dengan satu baris kode, yang kemudian dapat dengan mudah dijalankan di mesin apa pun untuk menjalankan aplikasi dengan satu baris kode lain tanpa pusing menjalankan secara manual SETIAP perintah lain atau menginstal apa pun. Docker melakukan semuanya secara otomatis.

Langkah-langkah untuk menginstal Docker di komputer Anda tidak akan memakan waktu paling lama lima menit dan tersedia dalam langkah-langkah yang mudah diikuti di sini.

Untuk sebagian besar kasus penggunaan, Desktop Docker terbukti cukup, jadi lanjutkan dan instal itu.

preferensi untuk desktop buruh pelabuhan

Satu catatan penting: Setelah Anda memulai Docker Desktop untuk pertama kalinya, pastikan untuk mengklik preferensi dan pilih memori minimal 3GB untuk menjalankan Docker, jika tidak terkadang, ini mungkin memberikan masalah dengan pembelajaran mesin atau perpustakaan pembelajaran mendalam Anda. instal di masa mendatang yang akhirnya membutuhkan lebih banyak memori. Itu terjadi dengan saya dan saya menyertakan tip kecil ini di sini untuk memastikan Anda tidak menghadapinya juga. 🙂

Sekarang, mari kita lanjutkan ke cara membuat Dockerfile untuk aplikasi kita

Basis kode lengkap untuk aplikasi terletak di repositori GitHub ini. Jika Anda ingin melihat kode secara lengkap saat Anda mengikuti tutorial ini, selamat datang di.

Saya menjanjikan langkah-langkah sederhana dan mudah diikuti, jadi inilah saya. Ayo pergi:

Buat file persyaratan Anda

Saya secara religius menggunakan pipenv untuk mengelola semua proyek dan lingkungan python saya. Saya akui bahwa ini adalah alat yang nyaman dan memiliki kurva belajar minimal juga. Menyiapkan lingkungan ilmu data Anda harus semudah dan semudah mungkin dan saya membicarakannya secara mendetail di salah satu artikel saya juga.

Kami akan menggunakan perintah pip freeze untuk membuat file untuk aplikasi klasifikasi gambar kami. Di terminal, ketik dan masukkan:

pipenv run pip freeze> requirement.txt

Di direktori root project Anda, Anda akan melihat bahwa file baru telah dibuat. Ini adalah langkah penting karena mendefinisikan setiap pustaka dan dependensi yang akan disertakan saat kita membangun image buruh pelabuhan.

Langkah selanjutnya mencakup pembuatan Dockerfile.

Tulis Dockerfile Anda

Sebelum saya menunjukkan kepada Anda kode untuk membangunnya, izinkan saya mengulang kembali tentang pentingnya struktur proyek dan bagaimana tampilan saya selama proyek ini.

struktur proyek yang digunakan oleh saya

Pastikan untuk membuat file dok Anda saat berada di luar direktori aplikasi yang ditunjukkan di atas.

sentuh Dockerfile

Buka file di editor teks favorit Anda dan tempelkan cuplikan kode berikut ke dalamnya dan simpan file:

DARI python: 3.9.1
PAPARAN 8501
COPY ./requirements.txt /requirements.txt
WORKDIR /
JALANKAN pemasangan pip3 -r persyaratan.txt
SALIN. /
TITIK MASUK [“streamlit”, “run”]
CMD [“start.py”]
WORKDIR / aplikasi

Sekarang mari kita bahas petunjuk ini baris demi baris.

FROM adalah awal dari setiap Dockerfile. Ini menyatakan lingkungan di mana gambar kita akan dibangun dan dijalankan, yang dalam kasus kita adalah lingkungan Python. Ini juga bisa, dalam kasus lain, gambar buruh pelabuhan yang sudah ada seperti yang ada di sistem operasi seperti Ubuntu, server seperti nginx, dan sebagainya. EXPOSE menunjukkan port tempat aplikasi kita akan dijalankan. Di artikel sebelumnya, kami melihat bahwa aplikasi streamlit kami selalu berjalan di port 8501, oleh karena itu kami mengeksposnya di Dockerfile kami. Perintah COPY digunakan dua kali dalam file. Fungsi dasarnya adalah menyalin semua kode penting dan file lain ke dalam image buruh pelabuhan. Itu. (titik) menunjukkan bahwa kami ingin menyalin seluruh direktori aplikasi ke dalam gambar buruh pelabuhan. WORKDIR adalah, seperti yang mungkin sudah Anda duga, untuk menyatakan dari direktori mana aplikasi kita akan dijalankan. Kami mengubahnya terlebih dahulu ke luar direktori aplikasi untuk menjalankan baris berikutnya → pip3 install -r requirement.txt. Di baris terakhir, kami mengubahnya kembali ke direktori app karena file start.py yang akan digunakan aplikasi kami berada di sana. Terakhir, CMD dan ENTRYPOINT adalah dua kata kunci yang digunakan untuk mendeskripsikan perintah yang akan dijalankan di terminal untuk memulai aplikasi dari dalam penampung. Baris untuk menjalankan aplikasi kita adalah: streamlit run start.py. Ini juga dapat ditulis secara sederhana: CMD [“streamlit”, “run”, “start.py”]. Ada banyak situasi di mana menggabungkan CMD dan ENTRYPOINT akan menjadi solusi terbaik untuk container Docker Anda. Dalam kasus seperti itu, yang dapat dieksekusi ditentukan dengan ENTRYPOINT, sementara CMD menentukan parameter default, seperti yang kita lakukan di cuplikan kode di atas.

Kita hampir selesai! Langkah terakhir adalah membangun dan menjalankan Dockerfile ini.

Membangun dan menjalankan image buruh pelabuhan

Saya menjanjikan dua baris kode untuk langkah ini jadi ini dia!

Pertama, kami membangun gambar dengan perintah ini:

buruh pelabuhan membangun –tag rps: 1.0.

– tag hanya digunakan untuk memastikan kami memiliki nama dan versi yang dilampirkan ke gambar buruh pelabuhan kami. Ini hanyalah bentuk yang dapat dibaca manusia untuk gambar kita. Di sini, saya mengambil ‘rps’ yang melambangkan RockPaperScissors sebagai tag untuk gambar ini.

Saat menjalankan perintah, Anda pasti telah memperhatikan bahwa sejumlah ‘lapisan’ diunduh. Ini karena kami sedang membangun lingkungan python 3.9.1 dan menginstal semua dependensi yang ditentukan dengan perintah RUN di Dockerfile kami. Jadi image Python dasar kami akan diunduh dari hub buruh pelabuhan atau diambil dari mesin lokal kami jika tersedia. Selain itu, pustaka kami akan diinstal dari file persyaratan.

Itu. di akhir perintah pembangunan buruh pelabuhan menunjukkan bahwa Docker harus mencari Dockerfile di direktori kami saat ini.

Langkah terakhir adalah menjalankan gambar container yang kami buat

docker run –publish 8501: 8501 -it rps: 1.0

– digunakan untuk memastikan bahwa proses berulang lainnya seperti perintah terminal dapat dijalankan dari dalam kontainer buruh pelabuhan. Selain itu, —- publish membantu kami menjalankan aplikasi web streamlit kami di browser pada port 8501.

Arahkan ke: localhost: 8501 untuk melihat aplikasi beraksi!

Kita berhasil!

Foto oleh Anton Shuvalov di Unsplash

Menyimpulkan…

Membangun proyek sains data membutuhkan banyak upaya, dan membuat pekerjaan kami tersedia untuk orang luar adalah beberapa pekerjaan tambahan di atas segalanya. Dalam rangkaian artikel ini, kami melihat proses minimal dalam mengemas mesin klasifikasi gambar kami ke dalam aplikasi web dan kemudian memastikan bahwa mesin tersebut juga dapat dijalankan pada mesin yang berbeda dan oleh orang lain dengan sangat mudah.

Menurut pendapat saya, keserbagunaan Docker benar-benar luar biasa dan pantau terus jika Anda ingin menjelajahi lebih banyak lagi di proyek mendatang saya dan saat saya mendokumentasikan lebih banyak tentangnya.

Beberapa sumber bagi Anda untuk memperluas pengetahuan Anda dengan:

Terima kasih telah membaca! 😁

Jika Anda tertarik dengan rangkaian artikel ini untuk diikuti dari awal, semuanya dimulai di sini:

Pengantar Cepat ke FastAI – Pengalaman Saya

Basis kode github untuk seluruh proyek ini:

yashprakash13 / RockPaperScissorsFastAI

Saya sedang menulis kursus gratis tentang Cara Membangun Proyek Portofolio Sains Data yang Keren. Berlangganan di sini.

Terhubung dengan saya di Twitter.

Cara Meng-Dockerkan Proyek Sains Data Anda – Panduan Cepat pada awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Towards AI

Leave a Reply