HuggingFace: Ekosistem Open Source untuk Machine Learning

Apa itu HuggingFace 🤗

Bagi teman-teman yang aktif ngikutin perkembangan Machine Learning, khususnya Natural Language Processing, pasti pernah dengar HuggingFace. HuggingFace (HF) ini adalah perusahaan yang awalnya berfokus pada pengembangan aplikasi-aplikasi NLP, tapi sekarang sudah menjelma menjadi suatu “Ekosistem” machine learning yang sangat besar. Saya sebut ekosistem karena HF bukan seperti perusahaan yang hanya menyediakan jasa, atau produk komersil, tapi lebih dari itu!

HF telah berkontribusi banyak dalam perkembangan Machine Learning saat ini, tidak hanya NLP tapi Machine Learning secara umum. Dengan menyediakan Course; platform untuk saling berbagi model, dataset, atau demo; menyediakan library untuk NLP; membangun komunitas yang aktif; yang semua itu gratis!! (HF juga menulis buku tentang NLP di sini, tapi kalau ini berbayar 😁)

Beberapa waktu lalu ikut kegiatan HF yang mau buat platform untuk edukasi di kelas-kelas

Di artikel ini saya akan coba cerita sedikit gambaran umum tentang layanan-layanan HF yang teman-teman bisa gunakan.

HuggingFace Model Hub

Saya ingat beberapa tahun lalu pernah ada yang tanya, baik langsung ke saya atau via online, apakah ada layanan di mana orang-orang bisa upload model machine learning untuk digunakan orang lain, jadi orang lain tidak perlu melakukan train, test, dan sebagainya. HuggingFace Model menjawab itu! Di sini orang-orang bisa mengupload model hasil pelatihan mereka, lalu orang lain bisa tinggal download dan pakai model tersebut.

HuggingFace Model sangat terorganisir, kalian bisa sort berdasarkan task kebutuhan kalian, library yang digunakan, pembuatnya, atau bahasa (untuk NLP). Model-model tersebut nantinya bisa digunakan sebagai pre-trained model yang lalu ditrain ulang (finetuning) atau digunakan apa adanya. Beberapa waktu lalu istri saya pernah menulis tutorial membuat chatbot menggunakan salah satu model yang ada di HF ini.

Menggunakan model-model tersebut kerasa lebih mudah ketimbang harus cari-cari model di internet, karena sudah terintegrasi dengan library HF. Selain itu penjelasan pemakaian juga biasanya didokumentasikan dengan baik pada Model Card (“Readme” nya model di HF).

Oh ya, Jika tidak mau bersentuhan dengan modelnya sama sekali, kita juga bisa menggunakan HF inference API (berbayar) yang memungkinkan kita untuk memanfaatkan model-model secara langsung melalui API. Jadi kita bahkan bisa memanfaatkan model-model machine learning tanpa perlu paham Python!

HuggingFace Dataset

HF juga menyediakan repository dataset di mana semua orang bisa berkontribusi dengan mengupload dataset yang dimiliki ke sana sehingga bisa dipakai oleh orang lain. Sudah ada banyak repository dataset di luar sana, tapi HF punya beberapa keunggulan khususnya pada “terorganisirnya” dataset. Di HF, pengunggah atau pemilik dataset bisa melampirkan loader script di HF yang bisa bikin dataset jadi lebih rapi ketika akan digunakan, memiliki informasi yang lengkap, dan bisa diulik dengan mudah di web HF.

Sebagai contoh dataset IndoNLU. Di sana kita bisa lihat ada beberapa subdataset yang berbeda, kita bisa download tiap split yang berbeda dan itu semua bisa dilakukan hanya dengan script.

from datasets import load_dataset

# download IndoNLU dataset, subset emotion classification, split data train
data_train = load_dataset("indonlu", "emot", split="train")

# menampilkan data pertama pada data_train
# output berupa dictionary:
#     {'tweet': 'Ini adalah hal yang paling membahagiakan ...', 'label': 4}
print(data_train[0])

HF Dataset hub ini, akan sangat bermanfaat untuk kebutuhan benchmarking. Dengan split yang sama dan penyimpanan dataset yang rapi, kita bisa meminimalisir pembandingan model machine learning yang tidak apple-to-apple. Misalnya, membandingkan dua model yang menggunakan dataset yang sama tapi berbeda pemilihan data train dan testnya.

HuggingFace Space

Kita bisa memanfaatkan HuggingFace Space untuk “memamerkan” model machine learning yang sudah kita buat. Sesuai namanya, kita seakan diberi ruang / halaman untuk menampilkan hasil model machine learning kita. Kita bisa memanfaatkan package seperti Streamlit atau Gradio untuk pengaturan antarmuka dan controlnya, lalu menggunakan HF Space untuk wadah deployment. HF Space biasa digunakan untuk kebutuhan demo, visualisasi, portofolio, atau beberapa orang juga menggunakan HF space untuk membuat leaderboard/benchmark suatu dataset.

Kita bisa lihat-lihat Space yang orang lain bikin, salah satu space yang cukup populer akhir-akhir ini adalah Dall-E Mini. Di sana kita bisa menggenerate gambar suka-suka kita dari kalimat yang diberikan.

Masih banyak sebenarnya yang bisa dilakukan dengan HuggingFace, teman-teman bisa lanjut eksplorasi untuk mengulik lebih dalam. Bisa coba mulai dengan belajar menggunakan HF Model, lalu mencoba menggunakan public dataset dengan HF Dataset, lalu lanjut buat aplikasi sederhana dan upload di HF Space.

Semoga bermanfaat, selamat bereksplorasi menggunakan HuggingFace!

About the author

Rian Adam

Student at University of Central Florida; Lecturer at Universitas Islam Indonesia; Machine Learning Enthusiast;

View all posts

Leave a Reply