1. Genel Bakış
Bu laboratuvarda, Vertex AI Workbench ile not defteri yürütmelerini nasıl yapılandırıp başlatacağınızı öğreneceksiniz.
Öğrenecekleriniz
Öğrenecekleriniz:
- Not defterinde parametreleri kullanma
- Vertex AI Workbench kullanıcı arayüzünden not defteri çalıştırma işlemlerini yapılandırma ve başlatma
Bu laboratuvarı Google Cloud'da çalıştırmanın toplam maliyeti yaklaşık 2 ABD dolarıdır.
2. Vertex AI'a giriş
Bu laboratuvarda, Google Cloud'da sunulan en yeni yapay zeka ürünü kullanılır. Vertex AI, Google Cloud'daki makine öğrenimi tekliflerini sorunsuz bir geliştirme deneyiminde birleştirir. Önceden, AutoML ve özel modellerle eğitilen modellere ayrı hizmetler üzerinden erişilebiliyordu. Yeni teklif, her ikisi de tek bir API'de ve diğer yeni ürünlerle birleştirilir. Dilerseniz mevcut projeleri Vertex AI'a taşıyabilirsiniz. Geri bildirimde bulunmak isterseniz lütfen destek sayfasını inceleyin.
Vertex AI, uçtan uca makine öğrenimi iş akışlarını destekleyen birçok farklı ürün içerir. Bu laboratuvarda Vertex AI Workbench'e odaklanılmıştır.
Vertex AI Workbench, kullanıcıların veri hizmetleri (ör. Dataproc, Dataflow, BigQuery ve Dataplex) ve Vertex AI'la kapsamlı entegrasyon üzerinden uçtan uca not defteri tabanlı iş akışlarını hızlıca oluşturmalarına yardımcı olur. Veri bilimcilerin GCP veri hizmetlerine bağlanmasına, veri kümelerini analiz etmesine, farklı modelleme teknikleriyle denemeler yapmasına, eğitilen modelleri üretime dağıtmasına ve model yaşam döngüsü boyunca MLOps'u yönetmesine olanak tanır.
3. Kullanım alanına genel bakış
Bu laboratuvarda, TensorFlow Veri Kümeleri'ndeki DeepWeeds veri kümesinde bir görüntü sınıflandırma modeli eğitmek için aktarma öğrenimini kullanacaksınız. Tümü ImageNet karşılaştırma veri kümesi üzerinde önceden eğitilmiş olan ResNet50, Inception ve MobileNet gibi farklı model mimarilerinden çıkarılan özellik vektörleriyle deneme yapmak için TensorFlow Hub'ı kullanacaksınız. Vertex AI Workbench kullanıcı arayüzü üzerinden not defteri yürütücüsünden yararlanarak Vertex AI Eğitimi'nde bu önceden eğitilmiş modelleri kullanan ve son katmanı DeepWeeds veri kümesindeki sınıfları tanıyacak şekilde yeniden eğiten işler başlatırsınız.
4. Ortamınızı ayarlama
Bu kod laboratuvarını çalıştırmak için faturalandırmanın etkin olduğu bir Google Cloud Platform projeniz olmalıdır. Proje oluşturmak için buradaki talimatları uygulayın.
1. Adım: Compute Engine API'yi etkinleştirin
Compute Engine'a gidin ve etkin değilse Etkinleştir'i seçin.
2. Adım: Vertex AI API'yi etkinleştirin
Cloud Console'unuzun Vertex AI bölümüne gidin ve Vertex AI API'yi etkinleştir'i tıklayın.
3. Adım: Vertex AI Workbench örneği oluşturun
Cloud Console'unuzun Vertex AI bölümünden Workbench'i tıklayın:
Henüz etkinleştirilmediyse Notebooks API'yi etkinleştirin.
Etkinleştirdikten sonra YÖNETİLEN NOT DEFTERİ'ni tıklayın:
Ardından YENİ NOT DEFTERİ'ni seçin.
Not defterinize bir ad verin ve Gelişmiş Ayarlar'ı tıklayın.
Gelişmiş ayarlar bölümünde, boştayken kapatma özelliğini etkinleştirin ve dakika sayısını 60 olarak ayarlayın. Bu sayede, gereksiz maliyetlere maruz kalmamak için dizüstü bilgisayarınız kullanılmadığında otomatik olarak kapanır.
Diğer gelişmiş ayarların tümünü olduğu gibi bırakabilirsiniz.
Ardından Oluştur'u tıklayın.
Örnek oluşturulduktan sonra JupyterLab'i aç'ı seçin.
Yeni bir örneği ilk kez kullandığınızda kimliğinizi doğrulamanız istenir.
Vertex AI Workbench, TensorFlow, PySpark, R vb. için çekirdekleri tek bir not defteri örneğinden başlatmanıza olanak tanıyan bir işlem uyumluluğu katmanına sahiptir. Kimlik doğrulamanın ardından, başlatıcıdan kullanmak istediğiniz not defteri türünü seçebilirsiniz.
Bu laboratuvar için TensorFlow 2 çekirdeğini seçin.
5. Eğitim kodu yazma
DeepWeeds veri kümesi, Avustralya'ya özgü sekiz farklı ot türünün yer aldığı 17.509 görüntüden oluşur. Bu bölümde, DeepWeeds veri kümesini önceden işlemek ve TensorFlow Hub'dan indirilen özellik vektörlerini kullanarak bir görüntü sınıflandırma modeli oluşturup eğitmek için kodu yazacaksınız.
Aşağıdaki kod snippet'lerini not defterinizin hücrelerine kopyalamanız gerekir. Hücreleri yürütmek isteğe bağlıdır.
1. adım: Veri kümesini indirip ön işleme alın
Öncelikle, DeepWeeds veri kümesinin en son sürümünü aldığımızdan emin olmak için TensorFlow veri kümelerinin gecelik sürümünü yükleyin.
!pip install tfds-nightly
Ardından, gerekli kitaplıkları içe aktarın:
import tensorflow as tf
import tensorflow_datasets as tfds
import tensorflow_hub as hub
TensorFlow Veri Kümeleri'ndeki verileri indirip sınıf sayısı ve veri kümesi boyutunu ayıklama.
data, info = tfds.load(name='deep_weeds', as_supervised=True, with_info=True)
NUM_CLASSES = info.features['label'].num_classes
DATASET_SIZE = info.splits['train'].num_examples
Resim verilerini 255 değerine göre ölçeklendirmek için bir ön işleme işlevi tanımlayın.
def preprocess_data(image, label):
image = tf.image.resize(image, (300,300))
return tf.cast(image, tf.float32) / 255., label
DeepWeeds veri kümesi, eğitim/doğrulama bölmeleriyle birlikte gelmez. Yalnızca bir eğitim veri kümesiyle birlikte gelir. Aşağıdaki kodda, bu verilerin %80'ini eğitim, kalan %20'sini ise doğrulama için kullanacaksınız.
# Create train/validation splits
# Shuffle dataset
dataset = data['train'].shuffle(1000)
train_split = 0.8
val_split = 0.2
train_size = int(train_split * DATASET_SIZE)
val_size = int(val_split * DATASET_SIZE)
train_data = dataset.take(train_size)
train_data = train_data.map(preprocess_data)
train_data = train_data.batch(64)
validation_data = dataset.skip(train_size)
validation_data = validation_data.map(preprocess_data)
validation_data = validation_data.batch(64)
2. Adım: Model oluşturun
Eğitim ve doğrulama veri kümelerini oluşturduğunuza göre modelinizi oluşturmaya hazırsınız. TensorFlow Hub, üst sınıflandırma katmanı olmayan önceden eğitilmiş modeller olan özellik vektörleri sağlar. Önceden eğitilmiş modeli hub.KerasLayer
ile sarmalayarak bir özellik ayıklayıcı oluşturacaksınız. Bu, TensorFlow SavedModel'i bir Keras katmanı olarak sarmalar. Ardından, bir sınıflandırma katmanı ekleyecek ve Keras Sequential API ile bir model oluşturacaksınız.
Öncelikle, modelinizin temeli olarak kullanacağınız TensorFlow Hub özellik vektörünün adı olan feature_extractor_model
parametresini tanımlayın.
feature_extractor_model = "inception_v3"
Daha sonra, bu hücreyi çalışma zamanında feature_extractor_model
için bir değer iletmenize olanak tanıyan bir parametre hücresi yapacaksınız.
İlk olarak hücreyi seçin ve sağ paneldeki özellik denetleyicisini tıklayın.
Etiketler, not defterinize meta veri eklemenin basit bir yoludur. "parameters" yazın yazıp Enter'a basın. Daha sonra, yürütmenizi yapılandırırken test etmek istediğiniz farklı değerleri (bu durumda TensorFlow Hub modelini) iletirsiniz. Not defteri yürütücüsü hangi hücrelerin parametrelendirileceğini bu şekilde bildiğinden, "parametreler" kelimesini (başka bir kelime değil) yazmanız gerektiğini unutmayın.
Çift dişli simgesini tekrar tıklayarak mülk denetçisini kapatabilirsiniz.
Yeni bir hücre oluşturun ve tf_hub_uri
değerini tanımlayın. Burada, not defterinizin belirli bir yürütmesi için temel model olarak kullanmak istediğiniz önceden eğitilmiş modelin adını değiştirmek üzere dize interpolasyonunu kullanırsınız. Varsayılan olarak, feature_extractor_model
değerini "inception_v3"
olarak ayarladınız, ancak diğer geçerli değerler "resnet_v2_50"
veya "mobilenet_v1_100_224"
'dir. TensorFlow Hub kataloğunda ek seçenekleri keşfedebilirsiniz.
tf_hub_uri = f"https://tfhub.dev/google/imagenet/{feature_extractor_model}/feature_vector/5"
Ardından, hub.KerasLayer
kullanarak ve yukarıda tanımladığınız tf_hub_uri
öğesini ileterek özellik çıkarıcıyı oluşturun. trainable=False
bağımsız değişkenini, değişkenleri donduracak şekilde ayarlayın. Böylece eğitim yalnızca en üstte ekleyeceğiniz yeni sınıflandırıcı katmanını değiştirir.
feature_extractor_layer = hub.KerasLayer(
tf_hub_uri,
trainable=False)
Modeli tamamlamak için özellik ayıklayıcı katmanını bir tf.keras.Sequential
modeliyle sarmalayın ve sınıflandırma için tamamen bağlı bir katman ekleyin. Bu sınıflandırma başlığındaki birim sayısı, veri kümesindeki sınıf sayısına eşit olmalıdır:
model = tf.keras.Sequential([
feature_extractor_layer,
tf.keras.layers.Dense(units=NUM_CLASSES)
])
Son olarak, modeli derleyin ve modele uygun verileri ekleyin.
model.compile(
optimizer=tf.keras.optimizers.Adam(),
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['acc'])
model.fit(train_data, validation_data=validation_data, epochs=3)
6. Not defteri yürütme
Not defterinin üst kısmındaki Yürütücü simgesini tıklayın.
1. adım: Eğitim işini yapılandırın
Yürütmenize bir ad verin ve projenizde bir depolama paketi sağlayın.
Makine türünü 4 CPU, 15 GB RAM olarak ayarlayın.
Ve 1 NVIDIA GPU ekleyin.
Ortamı TensorFlow Enterprise 2.6 (GPU) olarak ayarlayın.
Tek seferlik yürütme'yi seçin.
2. Adım: Parametreleri yapılandırın
Parametrenizi ayarlamak için GELİŞMİŞ SEÇENEKLER açılır menüsünü tıklayın. Kutuya feature_extractor_model=resnet_v2_50
yazın. Bu işlem, not defterinde bu parametre için ayarladığınız varsayılan değer olan inception_v3
değerini resnet_v2_50
ile geçersiz kılar.
Varsayılan hizmet hesabını kullan kutusunu işaretli bırakabilirsiniz.
Ardından GÖNDER'i tıklayın.
3. adım: Sonuçları inceleyin
Console kullanıcı arayüzündeki Çalıştırmalar sekmesinde, not defteri çalıştırma işleminizin durumunu görebilirsiniz.
Yürütme adını tıkladığınızda not defterinizin çalıştığı Vertex AI Training işine yönlendirilirsiniz.
İşiniz tamamlandığında SONUCU GÖSTER'i tıklayarak çıkış not defterini görebilirsiniz.
Çıkış not defterinde, çalışma zamanında iletilen değerin feature_extractor_model
değerinin üzerine yazıldığını görürsünüz.
🎉 Tebrikler! 🎉
Vertex AI Workbench'i kullanarak şunları yapmayı öğrendiniz:
- Not defterinde parametreleri kullanma
- Vertex AI Workbench kullanıcı arayüzünden not defteri yürütmelerini yapılandırma ve başlatma
Vertex AI'ın farklı bölümleri hakkında daha fazla bilgi edinmek için dokümanlara göz atın.
7. Temizleme
Varsayılan olarak, yönetilen not defterleri 180 dakika boyunca hiçbir işlem yapılmazsa otomatik olarak kapanır. Örneği manuel olarak kapatmak istiyorsanız konsolun Vertex AI Workbench bölümündeki Durdur düğmesini tıklayın. Not defterini tamamen silmek istiyorsanız Sil düğmesini tıklayın.
Storage Paketini silmek için Cloud Console'unuzdaki gezinme menüsünü kullanarak Storage'a gidin, paketinizi seçin ve Sil'i tıklayın: