🚿Praktikum 2

Deployment ke Hugging Face (Docker + Flask)

Deskripsi

Pada praktikum ini, mahasiswa akan melakukan siklus lengkap pengembangan Machine Learning (MLOps sederhana). Mahasiswa setelah melatih model klasifikasi gambar (Day vs Night) menggunakan ekstraksi fitur HOG dan Neural Network dan mengekspor model tersebut, selanjutnya pada praktikum 2 ini adalah melakukan deploy ke server cloud Hugging Face menggunakan Docker container.

Tujuan

Setelah menyelesaikan praktikum ini, mahasiswa diharapkan mampu:

  1. Membuat aplikasi web server menggunakan Flask.

  2. Mengkonfigurasi Docker container untuk lingkungan ML.

  3. Melakukan deployment aplikasi ke Hugging Face Spaces menggunakan Git CLI.

Langkah 1: Persiapan Environment

Langkah pertama adalah menyiapkan struktur direktori kerja dan memastikan file model tersedia.

  1. Buat folder baru di komputer Anda dengan nama daynight-project.

  2. Cari file model (day_night_model.h5) dan scaler (scaler.pkl) hasil training dari praktikum sebelumnya.

  3. Pindahkan kedua file tersebut ke dalam folder daynight-project.

  4. Buka terminal (Git Bash atau CMD), lalu arahkan direktori ke folder tersebut.

Langkah 2: Konfigurasi Server (app.py)

Diperlukan aplikasi web sederhana menggunakan Flask untuk menangani request gambar dari pengguna.

  1. Buat file baru bernama app.py di dalam folder proyek.

  2. Salin kode berikut ke dalamnya (kode ini memuat model dan melakukan preprocessing HOG yang sama persis dengan saat training):

Langkah 3: Konfigurasi Dependencies (requirements.txt)

Agar server cloud tahu library apa saja yang dibutuhkan, perlu membuat daftar dependencies.

  1. Buat file baru bernama requirements.txt.

  2. Isi file tersebut dengan daftar library berikut:

Langkah 4: Konfigurasi Docker (Dockerfile)

Dockerfile berisi instruksi untuk membangun image sistem operasi yang akan menjalankan aplikasi kita.

  1. Buat file bernama Dockerfile (tanpa ekstensi file apapun).

  2. Salin konfigurasi berikut:

Langkah 5: Setup Hugging Face Space

Sekarang perlu membuat wadah untuk aplikasi ini di Hugging Face.

  1. Klik foto profil di pojok kanan atas, lalu pilih New Space.

  2. Isi konfigurasi berikut:

    • Space Name: daynight-classifier-namaanda (ganti namaanda dengan nama/NIM anda).

    • License: Apache 2.0/ MIT.

    • Space SDK: Pilih Docker.

    • Template: kosongi

    • Visibility: Public.

  3. Klik tombol Create Space.

  4. Buat Access Token untuk izin upload.

    • Masuk ke Settings > Access Tokens.

    • Klik Create new token.

    • Pilih permission Write.

    • Salin token tersebut (simpan di notepad sementara).

Langkah 6: Upload ke Cloud (Hugging Face)

Pada langkah ini, akan dilakukan dengan cara men-download repository kosong dari Hugging Face ke komputer, mengisi file-nya, lalu mengunggahnya kembali.

1. Clone Repository

Buka terminal (Git Bash) di direktori tempat Anda ingin menyimpan proyek, lalu jalankan perintah berikut untuk mengambil repository dari Hugging Face:

Contoh format yang benar:

git clone https://huggingface.co/spaces/VAHFirdaus/daynight-classifier

2. Pindahkan File ke Folder Repository

Setelah perintah di atas selesai, akan muncul folder baru di perangkat anda dengan nama Space Anda.

  • Buka File Explorer.

  • Salin/Pindahkan semua file yang sudah Anda siapkan sebelumnya (app.py, Dockerfile, requirements.txt, day_night_model.h5, dan scaler.pkl) ke dalam folder baru hasil clone tersebut.

3. Upload File ke Hugging Face

Kembali ke terminal, masuk ke dalam folder yang baru saja di-clone, lalu lakukan proses upload:

4. Autentikasi (Password = Token)

Saat perintah git push dijalankan, terminal akan meminta kredensial:

  • Username: Masukkan username Hugging Face Anda (misal: VAHFirdaus).

  • Password: JANGAN masukkan password login akun, namun Copy dan Paste Access Token yang sudah Anda buat di Langkah 5 dan telah anda simpan di notepad tadi.

Langkah 7: Pengujian dan Hasil Akhir

Setelah proses git push selesai 100%:

  1. Kembali ke browser, buka halaman Space Anda.

  2. Klik tab App.

  3. Perhatikan status di bagian atas:

    • Akan berubah menjadi Building (Warna Biru).

    • Tunggu 3-5 menit hingga menjadi Running (Warna Hijau).

  4. Jika sudah Running, upload gambar tes (siang/malam) dan pastikan prediksi berjalan lancar.

Tampilan Hasil 1
Tampilan Hasil 2

Last updated