Melatih model kecerdasan buatan (AI) adalah proses penting dalam pengembangan sistem AI. Proses ini memerlukan waktu dan sumber daya yang signifikan. Fase pelatihan ini sangat penting karena di sinilah model belajar mengenali pola, membuat prediksi, dan melakukan tugas berdasarkan data yang diberikan.
Red Hat OpenShift AI menyediakan platform yang kuat untuk melakukan pelatihan model AI. Platform ini memungkinkan kita melakukan iterasi pengembangan model, menyempurnakan parameter, dan memvalidasi kinerja, yang pada akhirnya memfasilitasi pembuatan solusi AI berkualitas tinggi. Dalam artikel ini, kita akan menggunakan platform ini untuk melatih algoritma YOLO berdasarkan data yang telah diproses sebelumnya.
Catatan Penting
Red Hat OpenShift AI saat ini belum didukung secara resmi pada OpenShift node tunggal. Silakan merujuk ke dokumentasi resmi OpenShift AI untuk mendapatkan informasi lebih lanjut tentang platform dan konfigurasi yang didukung.
Pengaturan Proyek
Setelah masuk ke dashboard OpenShift AI, langkah pertama adalah membuat proyek di mana semua sumber daya terkait proyek kita akan berada. Praktik terbaik adalah membuat proyek terpisah setiap kali untuk memastikan isolasi komponen dan kontrol akses yang lebih baik. Berikut adalah langkah-langkah untuk membuat proyek baru:
- Di menu sebelah kiri dashboard, navigasikan ke tab “Data Science Projects”.
- Klik tombol “Create data science project”.
- Masukkan nama proyek yang diinginkan. Dalam kasus ini, kita akan menggunakan nama “safari”.
- Klik “Create”.
Itu saja! Mudah sekali, bukan? Ini adalah tempat di mana semua sumber daya yang disesuaikan untuk demo ini akan ditempatkan.
Membuat Workbench
Setelah proyek “safari” dibuat, kita dapat mengonfigurasi workbench:
- Klik “Create workbench”.
- Di halaman konfigurasi workbench, lengkapi kolom sesuai spesifikasi berikut:
- Nama: safari (atau nama pilihan Anda).
- Pemilihan gambar: PyTorch.
- Pemilihan versi: 2023.2 (direkomendasikan).
- Ukuran kontainer: Medium (sesuaikan dengan sumber daya node Anda).
- Accelerator: NVIDIA GPU.
- Jumlah akselerator: 2 (sesuaikan dengan jumlah GPU yang Anda miliki).
- Centang kotak “Create new persistent storage”.
- Nama: safari (atau nama pilihan Anda).
- Ukuran penyimpanan: 80 GiB (bisa diperpanjang nanti jika diperlukan).
Setelah formulir selesai, klik “Create workbench”. Anda akan diarahkan ke dashboard proyek, di mana workbench sedang memulai. Proses ini mungkin memakan waktu beberapa menit sebelum status berubah menjadi “Running”. Proyek Anda sekarang seharusnya terlihat seperti pada Gambar 1 di bawah ini:
Pelatihan Model
Saatnya bekerja langsung dengan model AI. Ketika Anda membuka workbench, Anda akan diarahkan ke lingkungan Jupyter, platform komputasi interaktif yang serbaguna untuk analisis data dan penelitian ilmiah. Jupyter menyediakan antarmuka berbasis web yang memungkinkan pengguna membuat file dengan kode dalam berbagai bahasa pemrograman.
Langkah-langkah Pelatihan
- Di sisi kiri layar, klik ikon Git.
- Klik “Clone a Repository” dan tempelkan URL repositori Safari GitHub: https://github.com/OpenShiftDemos/safari-demo
- Setelah beberapa saat, Anda akan melihat direktori safari-demo diklon di lingkungan Jupyter Anda.
Repositori ini berisi beberapa folder penting:
- notebooks: Menyimpan berbagai notebook. Kita akan menggunakan: Safari_YOLOv8.ipynb.
- dataset: Berisi gambar dan anotasi untuk gambar hewan.
- weights: Menyimpan bobot yang dihasilkan dari pelatihan. Anda dapat menggunakannya jika tidak ingin melatih model sendiri.
Jika Anda ingin membangun model Anda sendiri, Anda dapat menggunakan notebook dalam safari-demo sebagai referensi. Sesuaikan langkah-langkah berikut untuk menunjuk model ke dataset kustom Anda.
- Navigasikan ke safari-demo > notebooks > Safari_YOLOv8.ipynb untuk membuka notebook. File ini berisi sel kode yang dapat dijalankan dengan mengklik tombol Play di atas. Anda dapat melanjutkan pelatihan dengan membaca notebook atau melalui artikel ini, karena kita akan meninjau beberapa sel kode terpenting.
Memeriksa Dataset
Pertama, pastikan gambar dan label untuk pelatihan berada di jalur yang benar. Jika Anda menggunakan dataset Anda sendiri, gantilah informasi ini dengan jalur tempat gambar dataset Anda disimpan.
ls /opt/app-root/src/safari-demo/dataset/*
Output akan menunjukkan folder pelatihan, uji, dan validasi dengan subfolder gambar dan label. Juga, file data.yaml akan terdaftar. Berikut informasi yang terkandung dalam file ini:
train: /opt/app-root/src/safari-demo/dataset/train/images
val: /opt/app-root/src/safari-demo/dataset/test/images
nc: 80
names: ['Hippopotamus', 'Sparrow', 'Magpie', 'Rhinoceros', 'Seahorse', 'Butterfly', 'Ladybug', 'Raccoon', 'Crab', 'Pig', 'Bull', 'Snail', 'Lynx', 'Turtle', 'Canary', 'Moths and butterflies', 'Fox', 'Cattle', 'Turkey', 'Scorpion', 'Goldfish', 'Giraffe', 'Bear', 'Penguin', 'Squid', 'Zebra', 'Brown bear', 'Leopard', 'Sheep', 'Hamster', 'Panda', 'Duck', 'Camel', 'Owl', 'Tiger', 'Whale', 'Crocodile', 'Eagle', 'Otter', 'Starfish', 'Goat', 'Jellyfish', 'Mule', 'Red panda', 'Raven', 'Mouse', 'Centipede', 'Lizard', 'Cheetah', 'Woodpecker', 'Sea lion', 'Shrimp', 'Polar bear', 'Parrot', 'Kangaroo', 'Worm', 'Caterpillar', 'Spider', 'Chicken', 'Monkey', 'Rabbit', 'Koala', 'Jaguar', 'Swan', 'Frog', 'Hedgehog', 'Sea turtle', 'Horse', 'Ostrich', 'Harbor seal', 'Fish', 'Squirrel', 'Deer', 'Lion', 'Goose', 'Shark', 'Tortoise', 'Snake', 'Elephant', 'Tick']
Pelatihan Model YOLO
Sekarang kita akan melatih model. Pertama, kita memuat model pretrained yang disediakan oleh tim YOLO Ultralytics. Bobot ini akan digunakan sebagai titik awal untuk pelatihan dengan data hewan baru. Selanjutnya, kita hanya perlu memanggil fungsi train dan mengisi beberapa parameter:
- data: jalur ke file data.yaml.
- epochs: jumlah iterasi maksimum selama pelatihan.
- imgsz: ukuran gambar yang digunakan untuk pelatihan.
- batch: jumlah gambar yang digunakan selama setiap iterasi pelatihan.
from ultralytics import YOLO
model = YOLO("yolov8m.pt")
model.train(data='/opt/app-root/src/safari-demo/dataset/data.yaml', epochs=100, imgsz=640, batch=16)
Pelatihan model YOLOv8 dimulai menggunakan dataset kita. Pada baris pertama output, Anda akan melihat kartu GPU yang digunakan untuk mempercepat proses. Dalam kasus saya, itu adalah kartu GPU Tesla M60:
Ultralytics YOLOv8.0.221 🚀 Python-3.9.16 torch-1.13.1+cu117 CUDA:0 (Tesla M60, 15102MiB)
Tunggu hingga proses pelatihan selesai. Ini akan dilakukan secara otomatis ketika fungsi mencapai jumlah iterasi yang ditentukan dalam parameter epoch atau jika pada suatu titik tidak ada peningkatan akurasi yang signifikan antara iterasi. Waktu pelatihan akan tergantung pada berbagai faktor, termasuk ukuran gambar dan GPU yang digunakan. Setelah selesai, file bobot akan secara otomatis disimpan di folder berikut:
Results saved to runs/detect/train
Pada titik ini, model yang baru dilatih seharusnya dapat mendeteksi hewan pada gambar. Mari kita coba dengan melewati gambar sampel. Kita hanya perlu memuat file bobot ke model dan menentukan jalur gambar yang digunakan sebagai contoh.
model = YOLO('/opt/app-root/src/safari-demo/notebooks/ultralytics/runs/detect/train/weights/best.pt')
results = model('/opt/app-root/src/safari-demo/dataset/validation/sample.png', save=True)
Model yang dilatih dengan benar mengidentifikasi beruang coklat dalam gambar, yang berarti model ini bekerja dengan baik. Sekarang kita tahu bahwa model kita bekerja, kita hanya perlu menyimpan model dalam format onnx sehingga kita bisa menggunakannya dalam gambar kontainer nanti:
model.export(format='onnx')
File disimpan di folder berikut. Navigasikan ke direktori tersebut dan unduh ke komputer Anda. Kita akan menggunakannya nanti sebagai bagian dari aplikasi Safari kita:
Results saved to /opt/app-root/src/safari-demo/notebooks/ultralytics/runs/detect/train/weights/best.onnx
Kesimpulan
Itulah semua yang kita butuhkan untuk pelatihan. Kita siap melanjutkan ke episode terakhir: penyebaran model di Red Hat build of MicroShift. Dengan panduan ini, Anda tidak hanya belajar cara melatih model AI menggunakan Red Hat OpenShift AI tetapi juga memahami setiap langkah penting dalam proses tersebut. Selamat mencoba!