Dunia deep learning berkembang begitu cepat, dengan model yang sudah terlatih menjadi semakin penting untuk berbagai macam tugas. Keras, yang dikenal dengan API-nya yang mudah digunakan dan berfokus pada aksesibilitas, berada di posisi terdepan dalam gerakan ini dengan library khusus seperti KerasNLP untuk model berbasis teks dan KerasCV untuk model computer vision.
Namun, karena model-model tersebut semakin mengaburkan batasan antar modalitas – bayangkan LLM chat yang kuat dengan input gambar atau tugas visi yang memanfaatkan encoder teks – mempertahankan domain yang terpisah ini semakin tidak praktis. Pemisahan antara NLP dan CV bisa menghambat pengembangan dan deployment model yang benar-benar multimodal, yang mengarah pada upaya yang berlebihan dan pengalaman pengguna yang terfragmentasi.
Untuk mengatasi hal ini, kami sangat senang dapat mengumumkan evolusi besar dalam ekosistem Keras: KerasHub, sebuah library terpadu dan komprehensif untuk model yang sudah terlatih, yang akan mempermudah akses ke arsitektur NLP dan CV terbaru. KerasHub adalah repositori pusat, di sini Anda bisa mengeksplorasi dan memanfaatkan model-model termutakhir seperti BERT untuk analisis teks dan EfficientNet untuk klasifikasi gambar, semuanya dalam framework Keras yang konsisten dan familier.
Penggabungan ini tidak hanya menyederhanakan penemuan dan penggunaan model, tetapi juga mendorong ekosistem yang lebih kohesif. Dengan KerasHub, Anda bisa memanfaatkan fitur-fitur canggih, seperti publikasi dan berbagi model secara mudah, penyempurnaan LoRA untuk adaptasi yang hemat sumber daya, kuantisasi untuk performa yang dioptimalkan, dan pelatihan multi-host yang tangguh untuk menangani set data berskala besar, semuanya bisa diterapkan di berbagai macam modalitas. Ini menandai langkah signifikan menuju demokratisasi akses ke alat AI yang kuat dan mempercepat pengembangan aplikasi multimodal yang inovatif.
Mari kita mulai dengan menginstal KerasHub pada sistem Anda. Dari sana, Anda bisa menjelajahi banyak koleksi model yang sudah tersedia dan berbagai implementasi arsitektur populer. Kemudian, Anda dapat dengan mudah memuat dan menggabungkan model-model yang sudah terlatih ini ke dalam project Anda sendiri dan menyempurnakannya untuk performa yang optimal sesuai dengan kebutuhan spesifik Anda.
Untuk menginstal rilis KerasHub terbaru dengan Keras 3, cukup jalankan:
$ pip install --upgrade keras-hub
Sekarang Anda bisa mulai menjelajahi model-model yang tersedia. Penyiapan lingkungan standar untuk mulai bekerja dengan Keras 3 tidak berubah sama sekali untuk mulai menggunakan KerasHub:
import os
# Define the Keras 3 backend you want to use - "jax", "tensorflow" or "torch"
os.environ["KERAS_BACKEND"] = "jax"
# Import Keras 3 and KerasHub modules
import keras
import keras_hub
Sekarang Anda siap memulai KerasHub untuk mengakses dan menggunakan model-model yang tersedia di ekosistem Keras 3. Di bawah ini adalah beberapa contohnya:
Gemma adalah kumpulan model terbuka yang canggih, tetapi mudah diakses, yang dikembangkan oleh Google. Dengan memanfaatkan penelitian dan teknologi yang sama di balik model Gemini, model dasar Gemma unggul dalam berbagai tugas pembuatan teks. Ini termasuk menjawab pertanyaan, meringkas informasi, dan terlibat dalam penalaran logis. Selain itu, model ini bisa disesuaikan untuk memenuhi kebutuhan khusus.
Dalam contoh ini Anda menggunakan Keras dan KerasHub untuk memuat dan mulai membuat konten menggunakan parameter Gemma2 2B. Untuk detail selengkapnya tentang varian Gemma, lihat kartu model Gemma di Kaggle.
# Load Gemma 2 2B preset from Kaggle models
gemma_lm = keras_hub.models.GemmaCausalLM.from_preset("gemma_2b_en")
# Start generating contents with Gemma 2 2B
gemma_lm.generate("Keras is a", max_length=32)
PaliGemma adalah model ringkas dan terbuka yang mampu memahami gambar dan teks. Mengambil inspirasi dari PaLI-3 dan dibangun di atas komponen open source, seperti model visi SigLIP dan model bahasa Gemma, PaliGemma bisa memberikan jawaban yang detail dan mendalam untuk pertanyaan-pertanyaan mengenai gambar. Ini memungkinkan pemahaman konten visual yang lebih mendalam, yang memungkinkan kemampuan seperti pembuatan teks untuk gambar dan video pendek, mengidentifikasi objek, dan bahkan membaca teks di dalam gambar.
import os
# Define the Keras 3 backend you want to use - "jax", "tensorflow" or "torch"
os.environ["KERAS_BACKEND"] = "jax"
# Import Keras 3 and KerasHub modules
import keras
import keras_hub
from keras.utils import get_file, load_img, img_to_array
# Import PaliGemma 3B fine tuned with 224x224 images
pali_gemma_lm = keras_hub.models.PaliGemmaCausalLM.from_preset(
"pali_gemma_3b_mix_224"
)
# Download a test image and prepare it for usage with KerasHub
url = 'https://storage.googleapis.com/keras-cv/models/paligemma/cow_beach_1.png'
img_path = get_file(origin=url)
img = img_to_array(load_img(image_path))
# Create the prompt with the question about the image
prompt = 'answer where is the cow standing?'
# Generate the contents with PaliGemma
output = pali_gemma_lm.generate(
inputs={
"images": img,
"prompts": prompt,
}
)
Untuk detail selengkapnya mengenai model yang sudah terlatih yang tersedia di Keras 3, lihat daftar model di Keras pada Kaggle.
Anda juga memiliki model computer vision yang tersedia dan dapat digunakan. Sebagai contoh, Anda bisa menggunakan stability.ai Stable Diffusion 3 dengan KerasHub:
from PIL import Image
from keras.utils import array_to_img
from keras_hub.models import StableDiffusion3TextToImage
text_to_image = StableDiffusion3TextToImage.from_preset(
"stable_diffusion_3_medium",
height=1024,
width=1024,
dtype="float16",
)
# Generate images with SD3
image = text_to_image.generate(
"photograph of an astronaut riding a horse, detailed, 8k",
)
# Display the generated image
img = array_to_img(image)
img
Untuk detail selengkapnya tentang model computer vision yang sudah terlatih yang tersedia di Keras 3, silakan lihat daftar model di Keras.
Transisi dari KerasNLP ke KerasHub adalah proses yang mudah. Proses ini hanya membutuhkan pembaruan pernyataan import dari keras_nlp
ke keras_hub
.
Contoh: Sebelumnya jika Anda mengimpor keras_nlp untuk menggunakan model BERT seperti di bawah ini
import keras_nlp
# Load a BERT model
classifier = keras_nlp.models.BertClassifier.from_preset(
"bert_base_en_uncased",
num_classes=2,
)
Sesuaikan import, dan Anda siap menggunakan KerasHub:
import keras_hub
# Load a BERT model
classifier = keras_hub.models.BertClassifier.from_preset(
"bert_base_en_uncased",
num_classes=2,
)
Jika saat ini Anda adalah pengguna KerasCV, melakukan update ke KerasHub akan memberi Anda manfaat berikut:
Model-model KerasCV saat ini sedang dipindahkan ke KerasHub. Meskipun sebagian besar sudah tersedia, beberapa masih dalam proses. Harap perhatikan bahwa model Centerpillar tidak akan dipindahkan. Anda semestinya dapat menggunakan model visi apa pun di KerasHub:
import keras_hub
# Load a model using preset
Model = keras_hub.models.<model_name>.from_preset('preset_name`)
# or load a custom model by specifying the backbone and preprocessor
Model = keras_hub.models.<model_name>(backbone=backbone, preprocessor=preprocessor)
KerasHub memperkenalkan fitur-fitur baru yang menarik untuk developer KerasCV, menawarkan fleksibilitas yang lebih besar dan kemampuan yang semakin luas. Ini termasuk:
Setiap model disertai dengan praprosesor khusus yang menangani tugas-tugas rutin termasuk mengubah ukuran, mengubah skala, dan lainnya, sehingga mempermudah alur kerja Anda.
Sebelumnya, prapemrosesan input dilakukan secara manual sebelum memberikan input ke model.
# Preprocess inputs for example
def preprocess_inputs(image, label):
# Resize rescale or do more preprocessing on inputs
return preprocessed_inputs
backbone = keras_cv.models.ResNet50V2Backbone.from_preset(
"resnet50_v2_imagenet",
)
model = keras_cv.models.ImageClassifier(
backbone=backbone,
num_classes=4,
)
output = model(preprocessed_input)
Saat ini, prapemrosesan model tugas terintegrasi di dalam preset yang sudah ditetapkan. Input menjalani prapemrosesan, di sini gambar contoh mengalami pengubahan ukuran dan penskalaan ulang dalam praprosesor. Praprosesor adalah komponen intrinsik model tugas. Meskipun demikian, Anda memiliki opsi untuk menggunakan praprosesor yang dipersonalisasi.
classifier = keras_hub.models.ImageClassifier.from_preset('resnet_18_imagenet')
classifier.predict(inputs)
Mirip dengan lapisan augmentasi, fungsi loss yang sebelumnya ada di KerasCV sekarang tersedia di Keras melalui keras.losses.<loss_function>
. Sebagai contoh, jika saat ini Anda menggunakan fungsi FocalLoss:
import keras
import keras_cv
keras_cv.losses.FocalLoss(
alpha=0.25, gamma=2, from_logits=False, label_smoothing=0, **kwargs
)
Anda hanya perlu menyesuaikan kode definisi fungsi loss Anda agar menggunakan keras.losses
sebagai ganti keras_cv.losses
:
import keras
keras.losses.FocalLoss(
alpha=0.25, gamma=2, from_logits=False, label_smoothing=0, **kwargs
)
Masuki dunia KerasHub sekarang juga:
Bergabunglah dengan komunitas Keras dan buka kekuatan model deep learning yang terpadu, mudah diakses, dan efisien. Masa depan AI adalah multimodal, dan KerasHub adalah pintu gerbang Anda menuju masa depan tersebut!