Vertex AI AutoML ile Film Derecelendirmesi tahmini

1. Giriş

Bu codelab'de, Vertex AI AutoML'yi kullanarak bir film puanı tahmin modeli oluşturacağız ve dağıtılan model uç noktası, Java Cloud Functions'dan tetiklenecek. Model, BigQuery'de depolanan ve Vertex AI'a kaydedilen verilerle eğitilir. Hizmet listesi iki bölümden oluşabilir:

  1. ML Modeli oluşturma ve dağıtma
  2. ML API kullanarak tahmin etmek için tetikleme

ML Modeli Oluşturma:

  1. CSV'den BigQuery'ye aktarılan veriler
  2. AutoML model oluşturmak için Vertex AI'a entegre edilmiş BigQuery verileri
  3. Uç nokta API'si oluşturmak için Vertex AI Model Registry'de dağıtılan model

ML API'yi kullanarak tahmin etmek için tetikleme:

  1. Java Cloud Functions, dağıtılan AutoML modelinin uç noktasının çağrılmasını tetikler ve kullanıcı arayüzünden istek olarak film ayrıntılarını alır, tahmini film SCORE değerini döndürür.

Aşağıda, uygulamanın üst düzey mimari genel bakışı verilmiştir:

5ae50607c0f2db20.png

Yukarıdaki mimarinin uygulaması, bu codelab'in kapsamı dışındadır ancak istemci uygulamasını da geliştirmek istiyorsanız blogu inceleyebilirsiniz.

Şimdi uygulama adımlarına göz atalım.

Neler oluşturacaksınız?

Verinin tamamını

  • Tablo ve model bileşenlerini içerecek bir BigQuery veri kümesi
  • Vertex AI AutoML Modeli (oluşturma ve dağıtma)
  • ML API kullanarak tahmin etmek için Java Cloud Functions tetikleyicisi

2. Şartlar

  • Chrome veya Firefox gibi bir tarayıcı
  • Faturalandırmanın etkin olduğu bir Google Cloud projesi

Şu ön koşullar şunlardır:

Projenizi oluşturma

  1. Google Cloud Console'daki proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun.
  2. Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Bir projede faturalandırmanın etkin olup olmadığını nasıl kontrol edeceğinizi öğrenin.
  3. API'yi etkinleştirmek için BigQuery'ye gidin. BigQuery web kullanıcı arayüzünü, tarayıcınıza aşağıdaki URL'yi girerek de doğrudan açabilirsiniz: https://console.cloud.google.com/bigquery

Cloud Shell'i etkinleştirme

  1. Google Cloud'da çalışan ve bq ile önceden yüklenmiş olarak gelen bir komut satırı ortamı olan Cloud Shell'i kullanacaksınız: Cloud Console'da sağ üst köşedeki Cloud Shell'i Etkinleştir'i tıklayın: 6757b2fb50ddcc2d.png
  2. Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin proje kimliğinize ayarlandığını görürsünüz. Kimlik doğrulamanızın tamamlandığını onaylamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
gcloud auth list
  1. gcloud komutunun projenizi bildiğini onaylamak için Cloud Shell'de aşağıdaki komutu çalıştırın
gcloud config list project
  1. Projeniz ayarlanmadıysa ayarlamak için aşağıdaki komutu kullanın:
gcloud config set project <PROJECT_ID>

gcloud komutları ve kullanımı için belgelere bakın.

3. Eğitim verilerini hazırlama

Bu, optimum bir veri kümesi hazırlayıp makine öğrenimi projenize hazır hale getirmek için gereken teknolojinin yanı sıra bolca alan uzmanlığı gerektiren veriyle ilgili tüm projeler, ürünler ve uygulamalarda önemli bir adımdır. Bu codelab'de, verilerin önceden hazırlandığını varsayıp işlenmiş bu veri dosyasını kullanacağız.

4. Veri kümesini oluşturma ve yükleme

BigQuery veri kümesi, tablo koleksiyonudur. Bir veri kümesindeki tüm tablolar aynı veri konumunda depolanır. Bir veri kümesi ve tablolarına erişimi sınırlamak için özel erişim denetimleri de ekleyebilirsiniz.

  1. Cloud Shell'de "movies" adlı bir veri kümesi oluşturmak için bq mk komutunu kullanın.
bq mk --location=<<LOCATION>> movies

Konumu bir bölge (asia-south1) olarak ayarlayın. Bunu VERTEX yapay zeka adımı için de bölge olarak ayarlamayı unutmayın (her iki örnek aynı bölgede olmalıdır).

  1. Veri dosyasının (.csv) hazır olduğundan emin olun. Depoyu klonlamak ve projeye gitmek için Cloud Shell'de aşağıdaki komutları yürütün:
git clone <<repository link>>

cd movie-score
  1. CSV dosyanızı bir BigQuery tablosuna yüklemek için bq load komutunu kullanın (Doğrudan BigQuery kullanıcı arayüzünden de yükleme yapabileceğinizi lütfen unutmayın):
bq load --source_format=CSV --skip_leading_rows=1 movies.movies_score \
./movies_bq_src.csv \ Id:numeric,name:string,rating:string,genre:string,year:numeric,released:string,score:string,director:string,writer:string,star:string,country:string,budget:numeric,company:string,runtime:numeric,data_cat:string
  1. Aşağıdaki 3 yöntemden birini kullanarak sorgu oluşturun:

BigQuery ile üç şekilde etkileşim kurabiliriz. Bunlardan ikisini deneyeceğiz: a. BigQuery web kullanıcı arayüzü b. bq komutu c. API

SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

Sorgu çalıştırmak için BigQuery Web SQL Çalışma Alanı'nı kullandım. SQL Workspace aşağıdaki gibi görünür:

109a0b2c7155e9b3.png

bq komutunu kullanarak:

bq query --use_legacy_sql=false \
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

5. Vertex AI AutoML'de BigQuery verilerini kullanma

Vertex AI ile doğrudan AutoML modeli oluşturmak için BigQuery'deki verilerinizi kullanın. AutoML'i BigQuery'nin kendisinden de gerçekleştirebileceğimizi ve modeli VertexAI'ya kaydedip uç noktayı kullanıma sunabileceğimizi unutmayın. BigQuery AutoML belgelerini inceleyin. Ancak bu örnekte, modelimizi oluşturmak için Vertex AI AutoML'yi kullanacağız.

Vertex AI Veri Kümesi oluşturma

Google Cloud Console'dan Vertex AI'a gidin, henüz yapmadıysanız Vertex AI API'yi etkinleştirin, verileri genişletin ve Veri Kümeleri'ni seçin, Veri kümesi oluştur'u tıklayın, TABLOLAR veri türünü ve "Regresyon / sınıflandırma"yı seçin. seçeneğini belirleyin ve Oluştur'u tıklayın:

4104c75c34cbd2d9.png

Veri Kaynağı Seçin

Sonraki sayfada bir veri kaynağı seçin. "BigQuery'den tablo veya görünüm seçin"i seçin seçeneğini tıklayın ve BigQuery yolu GÖZ ATMA alanında BigQuery'deki tabloyu seçin. Devam'ı tıklayın.

Hatırlatma: BigQuery tablosunun Vertex AI'da gösterilmesi için BigQuery örneği ile Vertex AI veri kümelerinin aynı bölgeye sahip olması gerekir.

b787ef18dbca4cff.png

Kaynak tablonuzu/görünümünüzü seçerken, göz atma listesinden aşağıdaki adımlara devam etmek için radyo düğmesini tıklamayı unutmayın. Yanlışlıkla tablonun/görünümün adını tıklarsanız Dataplex'e yönlendirilirsiniz. Böyle bir durumda Vertex AI'a geri dönmeniz yeterlidir.

Modeli Eğitme

  1. Veri kümesi oluşturulduktan sonra, yeni model eğitme seçeneğinin yer aldığı Analiz sayfasını görürsünüz. Bu seçeneği tıklayın:

bf095263d57106de.png

  1. Objective as Classification'ı (Hedefi Sınıflandırma) bırakın ve ilk sayfada AutoML seçeneğini belirleyip Devam'ı tıklayın: e50597bc3f29894c.png
  2. Modelinize bir ad verin ve "Puan" olarak Hedef Sütun adını seçin açılır menüden Devam'ı tıklayın.
  3. Ayrıca, "Test veri kümesini BigQuery'ye aktar" Bu seçenek, ek entegrasyon katmanı olmadan veya verileri hizmetler arasında taşımaya gerek kalmadan test kümesini veritabanındaki sonuçlarla verimli bir şekilde görmeyi kolaylaştırır.
  4. Sonraki sayfada, ihtiyaç duyduğunuz gelişmiş eğitim seçeneklerini ve modeli eğitilmesi için ayarlamak istediğiniz saatleri belirleme seçeneğiniz vardır. Eğitim için kullanmak istediğiniz düğüm saati sayısını artırmadan önce fiyatlandırmaya dikkat etmeniz önerilir.

Yeni modelinizi eğitmeye başlamak için Eğitimi Başlat'ı tıklayın.

e72b004a17849bd.png

Modeli Değerlendirme, Dağıtma ve Test Etme

Eğitim tamamlandığında, Training'i (sol taraftaki menüde, Model Geliştirme başlığının altında) tıklayarak Eğitim Ardışık Düzenleri bölümünde eğitiminizi görebilirsiniz. Model Registry sayfasına gitmek için bu bağlantıyı tıklayın. Şunları yapabileceksiniz:

  1. Eğitim sonuçlarını görüntüleme ve değerlendirme 4767b4bbd7cf93fa.png
  2. Modeli API uç noktanızla dağıtıp test edin

Modelinizi dağıttıktan sonra bir API uç noktası oluşturulur. Bu API uç noktası, uygulamanızda istek göndermek ve yanıtta model tahmini sonuçlarını almak için kullanılabilir.

95fb4495618174f0.png

Bu bölümden devam etmeden önce, dağıtılan modelin uç nokta kimliğini, konumunu ve Vertex AI uç nokta bölümünüzdeki diğer ayrıntıları not ettiğinizden emin olun.

6. Makine öğrenimi çağrısını tetiklemek için Java Cloud Functions işlevi

ML dağıtım adımından uç noktaya ve diğer ayrıntılara nasıl sahip olduğumuzu hatırlıyor musunuz? Burada onu kullanacağız. Java Cloud Functions'ı kullandığımızdan bağımlılıkları yönetmek için pom.xml kullanacağız. Vertex AI AutoML uç nokta API'sini kullanmak için google-cloud-aiplatform kitaplığını kullanıyoruz.

  1. Google Cloud Console'da Cloud Functions'ı arayın ve "İşlev Oluştur"u tıklayın.
  2. Ortam, İşlev adı, Bölge, Tetikleyici (bu durumda, HTTPS), Tercih ettiğiniz kimlik doğrulama gibi yapılandırma ayrıntılarını girin, "HTTPS'yi zorunlu kıl"ı etkinleştirin. ve İleri/Kaydet'i tıklayın.

a68272022df062f2.png

  1. Sonraki sayfada Çalışma Zamanı (Java 11), Kaynak Kodu (Satır içi veya yükleme) seçeneklerini belirleyin ve düzenlemeye başlayın

13df616369ca5951.png

  1. Java ve pom.xml dosyalarını kod deposundan kopyalayıp satır içi düzenleyicideki ilgili dosyaları yapıştırın. Yerel düzenleyicinizi kullanıyorsanız (önerilir) ardından kaynağı depodan klonlayın
  2. Bu örnek için .java kaynak dosyasındaki proje kimliğini, uç nokta kimliğini, konumu ve uç noktayı değiştirin. Ancak en iyi uygulamanın, kimlik bilgilerini depolamak için Secret Manager'ı kullanmak olduğunu lütfen unutmayın.
  3. Bu codelab'in kapsamı için, kopyalanan kaynak kodunuzda .java sınıfındaki MongoDB bölümlerini yorumlayın

Tüm değişiklikler tamamlandığında işlevi dağıtın. İstemci uygulamanızda bu Cloud Functions işlevine istek göndermek ve yanıt olarak film puanını almak için kullanılabilecek uç nokta URL'sini göreceksiniz.

7. Temizleme

Bu yayında kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız şu adımları uygulayın:

  1. Google Cloud konsolunda Kaynakları yönetin sayfasına gidin
  2. Proje listesinden silmek istediğiniz projeyi seçin ve ardından Sil’i tıklayın
  3. İletişim kutusuna proje kimliğini yazın ve projeyi silmek için Kapat'ı tıklayın

8. Tebrikler

Tebrikler! Vertex AI AutoML'de başarıyla bir Film Puanı Tahmin Modeli oluşturup dağıttınız ve Cloud Functions'dan dağıtılan modeli tetiklediniz.