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 yürütmelerini 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ılmaktadır. Vertex AI, Google Cloud'daki makine öğrenimi tekliflerini sorunsuz bir geliştirme deneyimi için entegre eder. Daha önce, AutoML ile eğitilmiş modeller ve özel modeller ayrı hizmetler üzerinden erişilebiliyordu. Yeni teklif, diğer yeni ürünlerle birlikte bu iki ürünü tek bir API'de birleştirir. Mevcut projeleri de Vertex AI'a taşıyabilirsiniz. Geri bildiriminiz varsa lütfen destek sayfasına göz atın.
Vertex AI, uçtan uca makine öğrenimi iş akışlarını desteklemek için birçok farklı ürün içerir. Bu laboratuvarda Vertex AI Workbench'e odaklanılacaktır.
Vertex AI Workbench, veri hizmetleriyle (ör. Dataproc, Dataflow, BigQuery ve Dataplex) ve Vertex AI ile derin entegrasyon sayesinde kullanıcıların uçtan uca not defteri tabanlı iş akışlarını hızlı bir şekilde oluşturmasına yardımcı olur. Bu hizmet, veri bilimcilerin GCP veri hizmetlerine bağlanmasına, veri kümelerini analiz etmesine, farklı modelleme teknikleriyle denemeler yapmasına, eğitilmiş modelleri üretimde 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 Datasets'teki DeepWeeds veri kümesinde görüntü sınıflandırma modelini eğitmek için transfer öğrenimini kullanacaksınız. TensorFlow Hub'ı kullanarak ImageNet karşılaştırma veri kümesi üzerinde önceden eğitilmiş ResNet50, Inception ve MobileNet gibi farklı model mimarilerinden çıkarılan özellik vektörleriyle denemeler yapacaksınız. Vertex AI Workbench kullanıcı arayüzü üzerinden not defteri yürütücüsünden yararlanarak Vertex AI Training'de bu önceden eğitilmiş modelleri kullanan işler başlatacak ve son katmanı DeepWeeds veri kümesindeki sınıfları tanıyacak şekilde yeniden eğiteceksiniz.
4. Ortamınızı ayarlama
Bu codelab'i çalıştırmak için faturalandırmanın etkin olduğu bir Google Cloud Platform projesine ihtiyacınız vardır. Proje oluşturmak için buradaki talimatları uygulayın.
1. adım: Compute Engine API'yi etkinleştirin
Compute Engine'e gidin ve henüz etkinleştirilmemişse 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şturma
Cloud Console'unuzun Vertex AI bölümünde Workbench'i tıklayın:

Henüz etkinleştirilmemişse Notebooks API'yi etkinleştirin.

Etkinleştirildikten sonra YÖNETİLEN NOT DEFTERLERİ'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'da boşta kalma durumunda kapatma özelliğini etkinleştirin ve süreyi 60 dakika olarak ayarlayın. Bu sayede, gereksiz maliyetlere yol açmamak için not defteriniz kullanılmadığında otomatik olarak kapatılır.

Diğer tüm gelişmiş ayarları olduğu gibi bırakabilirsiniz.
Ardından Oluştur'u tıklayın.
Örnek oluşturulduktan sonra Open JupyterLab'i (JupyterLab'i aç) seçin.

Yeni bir örneği ilk kez kullandığınızda kimlik doğrulamanız istenir.

Vertex AI Workbench'te, 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ı bulunur. 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ı yabani ot türünü yakalayan 17.509 resimden oluşur. Bu bölümde, DeepWeeds veri kümesine ön işlem uygulamak için kodu yazacak ve TensorFlow Hub'dan indirilen özellik vektörlerini kullanarak bir görüntü sınıflandırma modeli oluşturup eğiteceksiniz.
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 önceden işleyin
DeepWeeds veri kümesinin en son sürümünü aldığımızdan emin olmak için önce TensorFlow veri kümelerinin gece 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
Verileri TensorFlow Datasets'ten indirin ve sınıf sayısını ile veri kümesi boyutunu çıkarın.
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
Görüntü verilerini 255 ile ö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ölümleriyle birlikte gelmez. Yalnızca bir eğitim veri kümesiyle birlikte gelir. Aşağıdaki kodda, bu verilerin% 80'ini eğitim için, 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 artık 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 çıkarıcı oluşturacaksınız. hub.KerasLayer, TensorFlow SavedModel'i Keras katmanı olarak sarmalar. Ardından bir sınıflandırma katmanı ekleyip 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"
Ardından, bu hücreyi bir parametre hücresi haline getirirsiniz. Bu, çalışma zamanında feature_extractor_model için bir değer iletmenize olanak tanır.
Önce hücreyi seçin ve sağ paneldeki özellik denetçisini tıklayın.

Etiketler, not defterinize meta veri eklemenin basit bir yoludur. Etiket Ekle kutusuna "parameters" yazıp Enter tuşuna basın. Daha sonra yürütmenizi yapılandırırken, bu durumda test etmek istediğiniz TensorFlow Hub modeli olan farklı değerleri ileteceksiniz. Not defteri yürütücüsünün hangi hücrelere parametre uygulayacağını bilmesi için "parameters" kelimesini (başka bir kelime değil) yazmanız gerektiğini unutmayın.

Çift dişli simgesini tekrar tıklayarak özellik 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ütülmesinde temel model olarak kullanmak istediğiniz önceden eğitilmiş modelin adını yerine koymak için dize enterpolasyonu kullanacaksınız. Varsayılan olarak feature_extractor_model değerini "inception_v3" olarak ayarladınız ancak geçerli diğer değerler "resnet_v2_50" veya "mobilenet_v1_100_224"'dir. TensorFlow Hub kataloğunda ek seçenekleri inceleyebilirsiniz.
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'ı ileterek özellik çıkarıcıyı oluşturun. Eğitimin yalnızca üstüne ekleyeceğiniz yeni sınıflandırıcı katmanını değiştirmesi için trainable=False bağımsız değişkenini değişkenleri donduracak şekilde ayarlayın.
feature_extractor_layer = hub.KerasLayer(
tf_hub_uri,
trainable=False)
Modeli tamamlamak için özellik çıkarıcı katmanı bir tf.keras.Sequential modeline 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 derleyip yerleştirin.
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 defterini 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.
Ayrıca 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 listesini 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 yerine resnet_v2_50 değerini kullanır.

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 Executions (Yürütmeler) sekmesinde not defteri yürütmenizin 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ÖRÜNTÜLE'yi tıklayarak çıkış not defterini görebilirsiniz.

Çıkış not defterinde, feature_extractor_model değerinin çalışma zamanında ilettiğiniz değerle ü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 belgelere göz atın.
7. Temizleme
Varsayılan olarak, yönetilen not defterleri 180 dakika boyunca işlem yapılmadığında otomatik olarak kapatılı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 isterseniz Sil düğmesini tıklayın.

Cloud Console'unuzdaki gezinme menüsünü kullanarak Storage paketini silmek için Storage'a gidin, paketinizi seçin ve Sil'i tıklayın:
