BigQuery ile Yapay Zeka Destekli Veri Bilimi

1. Giriş

Genel Bakış

Bu laboratuvarda, BigQuery'de çok formatlı bir veri bilimi iş akışını keşfedeceksiniz. Bu iş akışı, emlak senaryosu üzerine kuruludur. Öncelikle ev listelemelerinin ve resimlerinin bulunduğu ham bir veri kümesiyle başlayacak, görsel özellikleri çıkarmak için bu verileri yapay zekayla zenginleştirecek, farklı pazar segmentlerini keşfetmek için bir kümeleme modeli oluşturacak ve son olarak vektör yerleştirmelerini kullanarak güçlü bir görsel arama aracı oluşturacaksınız.

Bu SQL tabanlı iş akışını, basit bir metin isteminden otomatik olarak Python tabanlı bir kümeleme modeli oluşturmak için Veri Bilimi Aracısı'nı kullanarak modern ve üretken yapay zeka yaklaşımıyla karşılaştıracaksınız.

Neler öğreneceksiniz?

  • Özellik mühendisliği aracılığıyla analiz için emlak listelemelerinin işlenmemiş bir veri kümesini hazırlayın.
  • BigQuery'nin yapay zeka işlevlerini kullanarak ev fotoğraflarını temel görsel özellikler açısından analiz ederek listelemeleri zenginleştirin.
  • Mülkleri farklı kümeler halinde segmentlere ayırmak için BigQuery Machine Learning (BQML) ile bir K-means modeli oluşturun ve değerlendirin.
  • Python ile kümeleme modeli oluşturmak için Veri Bilimi Aracısı'nı kullanarak model oluşturma sürecini otomatikleştirin.
  • Metin veya görsel sorgularıyla benzer evleri bulan bir görsel arama aracına güç vermek için ev görselleriyle ilgili gömümler oluşturun.

Ön koşullar

Bu laboratuvara başlamadan önce şunlar hakkında bilgi sahibi olmanız gerekir:

  • Temel SQL ve Python programlama
  • Jupyter not defterinde Python kodu çalıştırma

2. Başlamadan önce

Google Cloud projesi oluşturma

  1. Google Cloud Console'daki proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun.

Proje seç

  1. Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Bir projede faturalandırmanın etkin olup olmadığını kontrol etmeyi öğrenin.

Cloud Shell ile API'leri etkinleştirme

Cloud Shell, Google Cloud'da çalışan ve gerekli araçların önceden yüklendiği bir komut satırı ortamıdır.

  1. Google Cloud Console'un üst kısmından Cloud Shell'i etkinleştir'i tıklayın:

Cloud Shell'i etkinleştirme

  1. Cloud Shell'e bağlandıktan sonra Cloud Shell'deki kimlik doğrulamanızı doğrulamak için şu komutu çalıştırın:
gcloud auth list
  1. Projenizin gcloud ile kullanılacak şekilde yapılandırıldığını onaylamak için aşağıdaki komutu çalıştırın:
gcloud config list project
  1. Projeniz ayarlanmamışsa ayarlamak için aşağıdaki komutu kullanın:
export PROJECT_ID=<YOUR_PROJECT_ID>
gcloud config set project $PROJECT_ID

API'leri etkinleştir

  1. Gerekli tüm API'leri ve hizmetleri etkinleştirmek için bu komutu çalıştırın:
gcloud services enable bigquery.googleapis.com \
                       bigqueryunified.googleapis.com \
                       cloudaicompanion.googleapis.com \
                       aiplatform.googleapis.com
  1. Komut başarıyla yürütüldüğünde aşağıda gösterilene benzer bir mesaj görürsünüz:
Operation "operations/..." finished successfully.
  1. Cloud Shell'den çıkın.

3. BigQuery Studio'da Laboratuvar Not Defteri'ni açma

  1. Google Cloud Console'da Gezinme menüsü > BigQuery'ye gidin.

Açılır ok düğmesi

  1. BigQuery Studio bölmesinde açılır liste oku düğmesini tıklayın, Notebook'un üzerine gelin ve Yükle'yi seçin.

Açılır ok düğmesi

  1. URL radyo düğmesini seçin ve aşağıdaki URL'yi girin:

https://github.com/GoogleCloudPlatform/generative-ai/blob/main/gemini/use-cases/applying-llms-to-data/ai-assisted-data-science/ai-assisted-data-science.ipynb

  1. Bölgeyi us-central1 olarak ayarlayın ve Yükle'yi tıklayın.

GitHub&#39;dan not defteri yükleme

  1. Not defterini açmak için Gezgin bölmesinde proje kimliğinizi içeren açılır liste okunu tıklayın. Ardından Not Defterleri açılır menüsünü tıklayın. Not defterini ai-assisted-data-science tıklayın.

Not defterini aç

  1. (İsteğe bağlı) Daha fazla alan için BigQuery gezinme menüsünü ve not defterinin içindekiler tablosunu daraltın.

Bölmeleri daraltma

4. Çalışma zamanına bağlanma ve kurulum kodunu çalıştırma

  1. Bağlan'ı tıklayın. Bir pop-up gösterilirse Colab Enterprise'ı kullanıcınızla yetkilendirin. Not defteriniz otomatik olarak bir çalışma zamanına bağlanır. Bu işlemin tamamlanması birkaç dakika sürebilir.

Çalışma zamanına bağlanma

  1. Çalışma zamanı belirlendikten sonra aşağıdakileri görürsünüz:

Etkin çalışma zamanı

  1. Not defterinde Kurulum bölümüne gidin. Gizli hücrelerin yanındaki "Çalıştır" düğmesini tıklayın. Bu işlem, projenizde laboratuvar için gerekli olan birkaç kaynak oluşturur. Bu işlemin tamamlanması bir dakika sürebilir. Bu sırada Kurulum bölümündeki hücreleri inceleyebilirsiniz.

Kurulum kodunu çalıştırma

5. Veri Hazırlama ve Özellik Mühendisliği

Bu bölümde, veri bilimi projelerindeki ilk önemli adım olan verilerinizi hazırlama sürecini inceleyeceksiniz. Öncelikle çalışmanızı düzenlemek için bir BigQuery veri kümesi oluşturur, ardından Cloud Storage'daki bir CSV dosyasından alınan ham emlak / konut verilerini yeni bir tabloya yüklersiniz.

Ardından, bu ham verileri yeni özellikler içeren temizlenmiş bir tabloya dönüştüreceksiniz. Bu işlemde listelemeler filtrelenir, yeni bir property_age özelliği oluşturulur ve görüntü verileri çok formatlı analiz için hazırlanır.

6. Yapay Zeka İşlevleriyle Çok Formatlı Zenginleştirme

Artık üretken yapay zekanın gücünü kullanarak verilerinizi zenginleştirebilirsiniz. Bu bölümde, her bir ev listelemesindeki resimleri analiz etmek için BigQuery'nin yerleşik yapay zeka işlevlerini kullanacaksınız.

BigQuery'yi bir Gemini modeline bağlayarak doğrudan SQL ile resimlerden yeni ve değerli özellikler (ör. bir mülkün suya yakın olup olmadığı ve evin kısa bir açıklaması) çıkarabilirsiniz.

7. K-ortalama kümeleme ile model eğitimi

Yeni zenginleştirilmiş veri kümenizle makine öğrenimi modeli oluşturmaya hazırsınız. Amacınız, ev ilanlarını farklı gruplara ayırmaktır. Bunu yapmak için BigQuery Machine Learning'i (BQML) kullanarak doğrudan BigQuery'de bir K-means kümeleme modeli eğitirsiniz. Bu tek adımda modeli Vertex AI Model Registry'ye de kaydederek Google Cloud'daki daha geniş MLOps ekosisteminde anında kullanılabilir hale getirirsiniz.

Modelinizin başarıyla kaydedildiğini onaylamak için aşağıdaki adımları uygulayarak modeli Vertex AI Model Registry'de bulabilirsiniz:

  1. Google Cloud Console'da sol üst köşedeki Gezinme menüsünü (☰) tıklayın.
  2. Vertex AI bölümüne gidin ve Model Registry'yi tıklayın. Artık BQML modelinizin diğer tüm özel modellerinizle birlikte listelendiğini göreceksiniz.

Model Registry&#39;ye gitme

  1. Modeller listesinde housing_clustering adlı modeli bulun. Bir uç noktaya dağıtma adımına geçebilirsiniz. Bu işlem, modelinizin BigQuery ortamı dışında gerçek zamanlı ve online tahminler için kullanılabilir olmasını sağlar.

Model Registry&#39;ye gitme

Model Kayıt Defteri'ni inceledikten sonra aşağıdaki adımları uygulayarak BigQuery'deki Colab not defterinize dönebilirsiniz:

  1. Gezinme menüsünde (☰) BigQuery > Studio'ya gidin.
  2. Not defterinizi bulup açmak için Keşfet bölmesindeki menüleri genişletin.

8. Model Değerlendirmesi ve Tahmin

Modelinizi eğittikten sonraki adım, oluşturduğu kümeleri anlamaktır. Burada, modelin kalitesini ve her segmentin tanımlayıcı özelliklerini analiz etmek için ML.EVALUATE ve ML.CENTROIDS gibi BigQuery makine öğrenimi işlevlerini kullanırsınız.

Ardından, her evi bir kümeye atamak için ML.PREDICT simgesini kullanırsınız. Bu sorguyu %%bigquery df sihirli komutuyla çalıştırarak sonuçları df adlı bir Pandas DataFrame'inde saklarsınız. Bu işlem, verilerin sonraki Python adımlarında hemen kullanılabilmesini sağlar. Bu, Colab Enterprise'da SQL ile Python arasındaki birlikte çalışabilirliği vurgular.

9. Kümeleri Görselleştirme ve Yorumlama

Tahminleriniz artık bir DataFrame'e yüklendiğinden verileri canlandırmak için görselleştirmeler oluşturabilirsiniz. Bu bölümde, konut segmentleri arasındaki farkları keşfetmek için Matplotlib gibi popüler Python kitaplıklarını kullanacaksınız.

Fiyat ve mülk yaşı gibi temel özellikleri görsel olarak karşılaştırmak için kutu grafikleri ve çubuk grafikler oluşturursunuz. Böylece her küme hakkında sezgisel bir anlayış geliştirmek kolaylaşır.

10. Gemini modelleriyle küme açıklamaları oluşturma

Sayısal merkezler ve grafikler güçlü olsa da üretken yapay zeka, bir adım daha ileri giderek her konut segmenti için zengin ve niteliksel karakterler oluşturmanıza olanak tanır. Bu sayede, kümelerin ne olduğunu değil, kimi temsil ettiğini de anlayabilirsiniz.

Bu bölümde, önce her küme için ortalama istatistikleri (ör. fiyat ve metrekare) toplarsınız. Ardından, bu verileri Gemini modeli için bir isteme aktaracaksınız. Ardından, modele emlak uzmanı gibi davranmasını ve her segment için temel özellikleri ve hedef alıcıyı içeren ayrıntılı bir özet oluşturmasını söylersiniz. Sonuç, kümeleri pazarlama ekibi için anında anlaşılır ve uygulanabilir hale getiren, kullanıcılar tarafından okunabilir net açıklamalardan oluşan bir settir.

İstemi istediğiniz gibi değiştirebilir ve sonuçlarla denemeler yapabilirsiniz.

11. Veri Bilimi Aracısı ile Modelleme İşlemlerini Otomatikleştirme

Şimdi güçlü bir alternatif iş akışını keşfedeceksiniz. Kodu manuel olarak yazmak yerine, tek bir doğal dil isteminden otomatik olarak eksiksiz bir kümeleme modeli iş akışı oluşturmak için entegre Veri Bilimi Aracısı'nı kullanacaksınız.

Aracı kullanarak modeli oluşturmak ve çalıştırmak için aşağıdaki adımları uygulayın:

  1. BigQuery Studio bölmesinde açılır liste oku düğmesini tıklayın, fareyle Notebook'un üzerine gelin ve Boş Notebook'u seçin. Böylece, aracının kodu orijinal laboratuvar not defterinize müdahale etmez.

Yeni not defteri açma

  1. Veri Bilimi Temsilcisi sohbet arayüzü, not defterinin en altında açılır. Sohbeti sağ tarafa sabitlemek için Panele taşı düğmesini tıklayın.

Yeni not defteri açma

  1. Sohbet bölmesinde @listing_multimodal yazmaya başlayın ve tabloyu tıklayın. Bu, listings_multimodal tablosunu açıkça bağlam olarak ayarlar.

Acenteye tablo bağlamı ekleme

  1. Aşağıdaki istemi kopyalayıp Agent Chat kutusuna girin. Ardından, istemi Ajan'a göndermek için Gönder'i tıklayın.
    Use the selected table to generate a k-means clustering model with 3 clusters for housing listings. Then, help me understand the characteristics of each cluster so I can market to them as a real estate professional. Use Python.
    

Temsilciye istem girip gönderin

  1. Temsilci, düşünerek bir plan oluşturur. Bu planı kabul ediyorsanız Kabul et ve çalıştır'ı tıklayın. Aracı, bir veya daha fazla yeni hücrede Python kodu oluşturur.

Temsilci planını kabul etme

  1. Aracı, oluşturduğu her kod bloğunu Kabul Et ve Çalıştır'manızı ister. Bu sayede uzmanlar sürece dahil olabilir. Kodu inceleyebilir veya düzenleyebilir ve bitirene kadar her adıma devam edebilirsiniz.

Temsilci kodunu çalıştırma

  1. İşiniz bittiğinde bu yeni not defteri sekmesini kapatıp laboratuvarın son bölümüne devam etmek için orijinal ai-assisted-data-science.ipynb sekmesine dönmeniz yeterlidir.

12. Yerleştirmeler ve Vector Search ile Çok Formatlı Arama

Bu son bölümde, çok formatlı aramayı doğrudan BigQuery'de uygulayacaksınız. Bu sayede, metin açıklamasına göre ev bulma veya örnek resme benzeyen evler bulma gibi sezgisel aramalar yapılabilir.

Bu işlemde önce her ev resmi, gömme adı verilen sayısal bir temsile dönüştürülür. Yerleştirme, bir resmin anlamsal anlamını yakalar. Böylece sayısal vektörlerini karşılaştırarak benzer öğeleri bulabilirsiniz.

Tüm listelemeleriniz için bu vektörleri oluşturmak üzere multimodalembedding modelini kullanacaksınız. Aramaları hızlandırmak için bir vektör dizini oluşturduktan sonra iki tür benzerlik araması yaparsınız: metinden resme (bir açıklamaya uyan evleri bulma) ve resimden resme (bir örnek resme benzeyen evleri bulma).

Tüm bu işlemleri BigQuery'de tamamlayacaksınız. Yerleştirmeler oluşturmak için ML.GENERATE_EMBEDDING veya benzerlik araması için VECTOR_SEARCH gibi işlevleri kullanacaksınız.

13. Temizleme

Bu projede kullanılan tüm Google Cloud kaynaklarını temizlemek için Google Cloud projesini silebilirsiniz.

Alternatif olarak, not defterinizdeki yeni bir hücrede aşağıdaki kodu çalıştırarak oluşturduğunuz kaynakları tek tek silebilirsiniz:

# Delete the BigQuery tables
!bq rm --table -f housing_dataset.listings
!bq rm --table -f housing_dataset.listings_multimodal
!bq rm --table -f housing_dataset.home_embeddings

# Delete the remote model
!bq rm --model -f housing_dataset.gemini
!bq rm --model -f housing_dataset.kmeans_clustering_model
!bq rm --model -f housing_dataset.multimodal_embedding_model

# Delete the remote connection
!bq rm --connection --project_id=$PROJECT_ID --location=us ai_connection

# Delete the BigQuery dataset
!bq rm -r -f $PROJECT_ID:housing_dataset

Son olarak, not defterini silebilirsiniz:

  1. BigQuery Studio'nun Gezgin bölmesinde projenizi ve Notebooks (Not Defterleri) düğümünü genişletin.
  2. ai-assisted-data-science not defterinin yanındaki üç dikey noktayı tıklayın.
  3. Sil'i seçin.

14. Tebrikler!

Codelab'i tamamladığınız için tebrikler.

İşlediğimiz konular

  • Özellik mühendisliği aracılığıyla analiz için emlak listelemelerinin işlenmemiş bir veri kümesini hazırlayın.
  • BigQuery'nin yapay zeka işlevlerini kullanarak ev fotoğraflarını temel görsel özellikler açısından analiz ederek listelemeleri zenginleştirin.
  • BigQuery Machine Learning (BQML) ile özellikleri farklı kümeler halinde segmentlere ayırmak için bir K-means modeli oluşturun ve değerlendirin.
  • Python ile kümeleme modeli oluşturmak için Veri Bilimi Aracısı'nı kullanarak model oluşturma sürecini otomatikleştirin.
  • Metin veya görsel sorgularıyla benzer evleri bulan bir görsel arama aracına güç vermek için ev görselleriyle ilgili gömümler oluşturun.