Memublikasikan model Keras Anda di Kaggle dan Hugging Face

MEI 02, 2024
Martin Görner Product Manager Keras

Update dari Kaggle

Model Kaggle dibuka setahun yang lalu dan sudah menjadi rumah bagi ~4.000 model terlatih dari berbagai organisasi. Dan sekarang, Model Kaggle menerima kontribusi dari pengguna dengan upload model Keras. Jika Anda menyesuaikan model yang ingin Anda bagikan dengan dunia, berikut adalah cara kerjanya:

import keras
import keras_nlp
 
# Load the model
gemma = keras_nlp.models.CausalLM.from_preset("gemma_1.1_instruct_7b_en")
 
# Fine tune the model here. Example: Gemma fine-tuned to
# speak like a pirate. See bit.ly/gemma-pirate-demo
# ...
 
# Save the finetuned model as a KerasNLP preset.
gemma.save_to_preset("./gemma-pirate-instruct-7b")
 
# Upload the preset as a new model variant on Kaggle
kaggle_uri = "kaggle://my_kaggle_username/gemma-pirate/keras/gemma-pirate-instruct-7b"
keras_nlp.upload_preset(kaggle_uri, "./gemma-pirate-instruct-7b")

Setiap orang bisa memuat model Anda menggunakan panggilan .from_preset(url) yang sama persis seperti saat memuat Gemma asli, selama mereka mengarahkan URL ke versi khusus yang telah disesuaikan.

gemma = keras_nlp.models.CausalLM.from_preset("kaggle://my_kaggle_username/gemma-pirate/keras/gemma-pirate-instruct-7b")

Untuk mempermudah penemuan model yang diupload pengguna, Kaggle menyediakan halaman model untuk mereka, di sini Anda bisa menambahkan deskripsi, detail tentang set data yang digunakan untuk penyesuaian, dan lainnya. Halaman ini juga merupakan tempat yang dapat digunakan untuk memublikasikan model yang Anda upload (tab "Setelan" pada screenshot di bawah).

Kaggle-Keras

Sentuhan yang menarik di sini dari tim Kaggle adalah rating kegunaan. Ini membantu Anda melihat detail model mana yang kurang agar model Anda bisa dilihat dan diapresiasi oleh komunitas.


Mengapa Keras?

Anda dapat melihat bahwa panggilan model.save_to_preset() dan keras_nlp.upload_preset() dibangun langsung ke dalam Keras untuk memudahkan proses upload. Meskipun Anda bisa mengupload model dalam format apa pun, asalkan Anda memublikasikan petunjuk untuk memuatnya, Kaggle memilih Keras sebagai format model yang direkomendasikan karena konsistensi pengalaman pengguna yang disediakan Keras untuk model terlatih:

Namun, sebaiknya kita selalu memeriksa asumsi kita. Peluncuran model Gemma, Model Bahasa Besar (LLM) terbuka terbaru dari Google, merupakan sebuah ujian yang hebat. Model ini dirilis dalam tidak kurang dari 9 format (!) dan data download Kaggle sudah masuk: jumlah download keras lebih dari 2 kali lipat dibandingkan dengan gabungan semua format lainnya.

Gemma downloads on Kaggle since launch
Download Gemma di Kaggle, berdasarkan framework. Catatan 1: versi keras berjalan di JAX, PyTorch, dan Tensorflow. Jumlah "pytorch" adalah untuk versi pytorch murni. Catatan 2: Jumlah "transformers" menunjukkan download Gemma versi HF transformers dari Kaggle, bukan dari Hugging Face.

Kaggle telah menjalankan dua kompetisi Gemma dan notebook starter KerasNLP untuk mereka telah disalin lebih dari 950 kali di antara keduanya (tolok ukur internal kami adalah: >500 salinan = "wow, Kaggler merasa ini berguna", >1000 salinan = "luar biasa"):

Dan Kaggler melakukan beberapa hal yang sangat mengagumkan dengan model-model ini. Berikut adalah beberapa pilihannya:

Menyediakan notebook dulunya merupakan satu-satunya cara di Kaggle untuk membagikan model yang sudah dimodifikasi dengan komunitas. Namun dengan penyesuaian yang memakan waktu berjam-jam, memang jauh lebih baik bila membagikan hasil akhirnya secara langsung, sebagai Model Kaggle.


Tunggu, masih ada lagi: Hugging Face!

Dengan rilis ini, KerasNLP juga menjadi anggota kelas satu di Hugging Face. Model Keras bisa dimuat langsung dari Hugging Face menggunakan KerasNLP, yang sekarang menjadi salah satu library model terlatih yang didukung di Hugging Face, seperti halnya Transformers atau Diffusers. Berikut ini adalah halaman Keras Gemma di Hugging Face sebagai contohnya. Anda dapat memuat model dengan:

# Load the model
gemma = keras_nlp.models.CausalLM.from_preset("hf://google/gemma-7b-instruct-keras")

Dan beginilah cara Anda mengupload model ke Hugging Face. Satu-satunya hal yang berubah dibandingkan dengan upload Kaggle adalah "hf://", sebagai pengganti "kaggle://" dalam URL.

# Fine-tune model
# ...
# Then save it as a KerasNLP preset.
gemma.save_to_preset('./gemma-pirate-instruct-7b)
 
 
# Upload the preset to Hugging Face Hub
hf_uri = "hf://my_hf_username/gemma-pirate-instruct-7b"
keras_nlp.upload_preset(hf_uri, './gemma-pirate-instruct-7b)

Inilah hasilnya, kartu model yang sudah terisi pada Hugging Face. Anda bisa menambahkan lebih banyak informasi di sana dan memublikasikan model Anda melalui tab “setelan”.

Hugging-Face-Keras

Perhatikan bagaimana model ini secara otomatis dikenali pada Hugging Face dan ditandai secara otomatis dengan "KerasNLP" dan "Text Generation".


Giliran Anda untuk bermain di Kaggle atau Hugging Face

Sekarang adalah giliran Anda untuk bermain. Selamat mengupload model!

Untuk mencoba kode upload model secara langsung, cobalah upload Gemma 7B pirate ke Kaggle dan Hugging Face.

Temukan dokumentasi resmi untuk fitur ini di sini.