FraudFinder: Vertex AI ve BigQuery ile ham verilerden yapay zekaya.

1. Genel Bakış

Bu laboratuvarda, Google Cloud'da gerçek zamanlı sahtekarlık algılama için uçtan uca veri-yapay zeka sistemi oluşturmayı öğreneceksiniz. Amaç, ham verilerden Google Cloud'da çalışan üretime hazır bir makine öğrenimi ardışık düzenine nasıl geçileceğini anlamaktır. Bu laboratuvarda aşağıdaki Google Cloud ürünleri kullanılmaktadır:

Öğrenecekleriniz

Uçtan uca ML ardışık düzeni oluşturmak zor olabilir. Bu laboratuvarda, BigQuery ve Vertex AI gibi Google Cloud hizmetlerini kullanarak uçtan uca bir makine öğrenimi ardışık düzeni oluşturmayı ve ölçeklendirmeyi öğreneceksiniz. Sizi ham verilerden üretimde yapay zekaya geçiş yolculuğuna çıkaracağız. Bu laboratuvarın üst düzey öğrenme hedefleri şunlardır:

  • Google Cloud'da yapay zeka sistemleri için veri oluşturmayla ilgili en iyi uygulamaları öğrenin.
  • SQL (toplu işleme için) kullanarak BigQuery ile ve Dataflow (gerçek zamanlı işleme) kullanarak Apache Beam ile özellik mühendisliği yapmayı ve Vertex AI Feature Store'u kullanmayı öğrenin.
  • BigQuery ile Pandas ve Plotly gibi Python kitaplıklarını kullanarak veri analizi yapma
  • SQL aracılığıyla BigQuery ML ile makine öğrenimi modeli eğitme
  • Modelinizi depolamak, dağıtmak ve izlemek için Vertex AI'dan nasıl yararlanacağınız.
  • Vertex AI Pipelines'ı kullanarak verilerinizi yapay zeka iş akışınıza nasıl dahil edeceğinizi öğrenin.

ÖNEMLİ: Bu laboratuvarı Google Cloud'da çalıştırmanın maliyeti yaklaşık 100 ABD dolarıdır.

2. Vertex AI ve BigQuery ile ham verilerden yapay zekaya

Bu laboratuvarda, Google Cloud'da bulunan en yeni veri analizi ve yapay zeka ürünleri (ör. Vertex AI ve BigQuery ML) ele alınmaktadır. Vertex AI ve BigQuery, ham verilerden yapay zekaya geçişi kolaylaştırır ve modellerinizi üretime geçirirken daha üretken olmanıza yardımcı olacak sorunsuz bir geliştirme deneyimi sunar. Desteğe ihtiyacınız olursa lütfen destek sayfasını ziyaret edin.

Vertex AI, uçtan uca veri-yapay zeka iş akışlarını desteklemek için birçok farklı ürün içerir. Aşağıda, tüm Vertex AI özelliklerinin bir özetini bulabilirsiniz:

Vertex ürününe genel bakış

3. FraudFinder kullanım alanı ve verileri

FraudFinder, Google Cloud'da kapsamlı verilerden yapay zekaya yolculuğu gerçek zamanlı sahtekarlık algılama kullanım alanı üzerinden öğreten bir dizi not defteridir. Not defterlerinde, bir veri ambarında depolanan geçmiş ödeme işlemleri verilerini okuma, yeni işlemlerin canlı yayınından okuma, keşifsel veri analizi (EDA) yapma, özellik mühendisliği yapma, özellikleri bir Feature Store'a aktarma, Feature Store'u kullanarak bir modeli eğitme, modelinizi bir model kayıt defterine kaydetme, modelinizi değerlendirme, modelinizi bir uç noktaya dağıtma, Feature Store ile modelinizde gerçek zamanlı çıkarım yapma ve modelinizi izleme konularını öğreneceksiniz.

Sahtekarlık tespiti, makine öğrenimi alanında kapsamlı olarak değerlendirilebilecek sınıflandırma ve anormallik tespitini kapsar. Bu nedenle, sahtekarlık algılama, anlaşılması kolay gerçek bir hikaye için iyi bir kullanım alanıdır ve Google Cloud'daki yapay zeka mimarisine uçtan uca verileri göstermenin harika bir yoludur. Uçtan uca mimariyi anlamak için sahtekarlık uzmanı olmanız gerekmez. Mimari kalıbı, diğer kullanım alanlarına da uygulanabilir.

FraudFinder mimarisine genel bakışı aşağıda bulabilirsiniz:

FraudFinder Mimarisi

Veri kümesi

Veri kümesi, Kaggle'daki Machine Learning for Credit Card Fraud Detection - Practical Handbook projesindeki kod kullanılarak sentezlenir. Gerçek zamanlı sahtekarlık tespiti, mimari olarak toplu iş tabanlı sahtekarlık tespitinden farklıdır ve aşağıdaki özelliklere sahiptir:

  • Yüksek sıklıkta (ör.saniyede 1.000) tahmin isteği
  • Tahmin isteği → yanıt için düşük gecikme süresi (ör. < 1 sn)
  • Tahmin genellikle tahmin isteği başına 1 örnek şeklindedir veya "mikro toplu işlemler" halinde olabilir (ör. neredeyse gerçek zamanlı çıkarım için toplu olarak gönderilen 1.000 işlem).
  • Yayınlama için özellik mühendisliği önceden hesaplanmalı veya gerçek zamanlı olarak hesaplanmalıdır.

FraudFinder geçmiş veri kümesi

Geçmiş ödeme işlemlerini içeren herkese açık BigQuery tabloları vardır. Bu tablolar, kullanıcıların modellerini eğitmesine ve BigQuery'deki verileri kullanarak özellik mühendisliği yapmasına olanak tanır.

cymbal-fraudfinder (project)
|-`tx` (dataset)  
  |-`tx` (table: transactions without labels)  
  |-`txlabels` (table: transactions with fraud labels (1 or 0))  
|-demographics  
  |-`customers` (table: profiles of customers)  
  |-`terminals` (table: profiles of terminals)  
  |-`customersterminals` (table: profiles of customers and terminals within their radius)  

Neden gerçek zamanlı?

Bu laboratuvarda, gerçek zamanlı verilerden nasıl yararlanacağınızı ve gerçek zamanlı özellik mühendisliği ile çıkarım işlemlerini nasıl uygulayacağınızı öğreneceksiniz. Gerçek zamanlı özellikler, çıkarım sırasında kullanamayacağınız sinyallerden yararlanarak modelinizi iyileştirmeye yardımcı olabilir.

FraudFinder canlı yayın verileri

FraudFinder laboratuvarı kapsamında, kullanıcıların model uç noktalarını ve akış özelliklerini rahatça test edebileceği canlı yayın ödeme işlemleri içeren herkese açık Pub/Sub konuları bulunur. Pub/Sub, eşzamansız ve ölçeklenebilir bir mesajlaşma hizmetidir. Bu konuları, özellikleri yayınlamak ve online çıkarım gerçekleştirmek için kullanacaksınız. Kullanıcılar, model izlemeyi görüntülemek için temel dolandırıcılık oranlarına sahip konular ile daha yüksek dolandırıcılık oranlarına sahip konular arasında da geçiş yapabilir. Aşağıdaki herkese açık Pub/Sub konuları kullanılabilir:

  • ff-tx
  • ff-txlabels

4. Projenizi ve not defteri örneğinizi oluşturma

Bu laboratuvarı ç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 talimatları uygulayın.

ÖNEMLİ: Bu laboratuvarı yeni bir projede çalıştırmanızı öneririz. Bu laboratuvarda birçok farklı ürün ele alınmaktadır. Laboratuvarı tamamladıktan sonra projenin tamamını silmeniz en kolay yöntemdir.

Projeniz varsa lütfen aşağıdaki adımlarla devam edin. Aşağıdaki adımları, depoda bulunan README.md dosyasında da bulabilirsiniz.

1. adım: API'leri etkinleştirin

Öncelikle, yeni oluşturduğunuz projeye gidin ve Cloud Shell'i açın. Daha önce etkinleştirmediyseniz bu adımda yeni bir Cloud Shell sağlanacağından birkaç dakika sürebilir.

Cloud Shell

Ardından, kopyalayıp yapıştırarak Cloud Shell'inizde aşağıdaki kodu çalıştırın. Komut dosyası, gerekli API'leri etkinleştirir ve herkese açık Pub/Sub konularından akış işlemleri okumak için Pub/Sub abonelikleri oluşturur. Lütfen tüm komutların yürütülmesi için biraz zaman tanıyın.

gcloud services enable notebooks.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable pubsub.googleapis.com
gcloud services enable run.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable dataflow.googleapis.com
gcloud services enable bigquery.googleapis.com

gcloud pubsub subscriptions create "ff-tx-sub" --topic="ff-tx" --topic-project="cymbal-fraudfinder"
gcloud pubsub subscriptions create "ff-txlabels-sub" --topic="ff-txlabels" --topic-project="cymbal-fraudfinder"

# Run the following command to grant the Compute Engine default service account access to read and write pipeline artifacts in Google Cloud Storage.
PROJECT_ID=$(gcloud config get-value project)
PROJECT_NUM=$(gcloud projects list --filter="$PROJECT_ID" --format="value(PROJECT_NUMBER)")
gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member="serviceAccount:${PROJECT_NUM}-compute@developer.gserviceaccount.com"\
      --role='roles/storage.admin'

2. adım: Vertex AI Workbench örneği oluşturma

Ardından, Cloud Console'unuzun Vertex AI bölümüne gidin. Ardından Workbench'e gidin:

Vertex AI menüsü

Etkin değilse Vertex AI Workbench (notebook API) API'yi etkinleştirin.

Notebook_api

Etkinleştirildikten sonra USER-MANAGED NOTEBOOKS'u (Kullanıcı tarafından yönetilen not defterleri) seçin:

Notebooks_UI

Ardından YENİ NOT DEFTERİ'ni seçin. Python 3'ü seçebilirsiniz.

new_notebook

Not defterinize fraudfinder gibi bir ad verin ve Gelişmiş Ayarlar'ı tıklayın.

create_notebook

Önemli: Permissions bölümünde Service Account'ı seçtiğinizden emin olun.

Hizmet Hesabı

Önemli: Güvenlik bölümünde, henüz etkinleştirilmemişse "Terminali etkinleştir"i seçin.

enable_terminal

Diğer tüm gelişmiş ayarları olduğu gibi bırakabilirsiniz.

Ardından Oluştur'u tıklayın. Örneğin sağlanması birkaç dakika sürer.

Örnek oluşturulduktan sonra Open JupyterLab'i (JupyterLab'i aç) seçin.

open_jupyterlab

3. adım: IAM rollerini ayarlayın

Basitlik açısından, Compute Engine varsayılan hizmet hesabını kullanacağınızı varsayalım. Bu, üretim iş yükleri için en iyi uygulama değildir. En iyi uygulama, her uygulama için özel hizmet hesapları oluşturmak ve varsayılan hizmet hesaplarını kullanmaktan kaçınmaktır. Hizmet hesabı en iyi uygulamaları hakkında daha fazla bilgiyi belgelerimizde bulabilirsiniz. Varsayılan Compute hizmet hesabı şu şekilde görünür: 123456789123-compute@developer.gserviceaccount.com. IAM yöneticisine gidin ve ADD simgesini tıklayın. Görünümde Compute Engine varsayılan hizmet hesabını arayıp seçin ve ardından aşağıdaki rolleri atayın:

  • BigQuery Admin
  • Storage Admin
  • Storage Object Admin
  • Vertex AI Administrator
  • Pub/Sub Admin

Bu, aşağıdaki gibi görünmelidir. Yeni ayarları kaydetmeyi unutmayın.

iam-roles.png

4. adım: GitHub deposunu klonlayın

Not defteri örneğinizi oluşturup eriştiğinizde ortamınızı ayarlamanın zamanı gelmiş demektir. Önce bir terminal penceresi açın.

Terminali aç

Aşağıdaki komutu kopyalayıp not defteri terminalinize yapıştırın ve çalıştırın:

git clone https://github.com/GoogleCloudPlatform/fraudfinder.git

Bu komutu çalıştırdığınızda FraudFinder deposu, not defteri örneğinize klonlanır. git clone komutunu çalıştırdıktan sonra sol taraftaki not defteri örneğinizde fraudfinder klasörünü görürsünüz. Şimdi fraudfinder klasörüne gidin. Laboratuvar için gereken not defterlerini burada bulabilirsiniz.

Sonraki bölümlerde not defterlerindeki talimatları uygulamanız beklenir. Lütfen ortam kurulumuna devam edin.

5. Ortam Kurulumu

Bu bölümde, proje ortamınızı ayarlamanıza yardımcı olacak adımlar açıklanmaktadır. Bu bölümde aşağıdaki öğrenme hedeflerini ele alacaksınız:

  • Paketler de dahil olmak üzere ortamınızı ayarlayın.
  • BigQuery'ye veri yükleme
  • Herkese açık Pub/Sub konularından veri okuma

Lütfen aşağıdaki not defterine geçin ve talimatları adım adım uygulayın:

  • 00_environment_setup.ipynb

6. Keşfedici Veri Analizi

Bu bölümde, sahtekarlık verilerini daha iyi anlamak için keşif amaçlı veri analizinin nasıl yapılacağı açıklanmaktadır. Bu bölümde aşağıdaki öğrenme hedeflerini ele alacaksınız:

  • SQL kullanarak BigQuery'den veri ayıklama ve verileri keşfetme
  • BigQuery ve Plotly kullanarak işlem verilerini çizme
  • Veri toplamaları uygulama ve dağılım grafiği oluşturma

Lütfen bir sonraki not defterine geçin ve talimatları adım adım uygulayın:

  • 01_exploratory_data_analysis.ipynb

7. Toplu ve Akış Halinde Özellik Mühendisliği

Bu bölümde, ham verilerden model eğitimi için özellikler oluşturmak üzere özellik mühendisliği üzerinde çalışacaksınız. Batch ve akış kullanacağız. Her iki kullanım alanı da sahtekarlık tespiti için önemlidir. Bu bölümde aşağıdaki öğrenme hedeflerini ele alacaksınız:

  • BigQuery ve SQL kullanarak özellik oluşturma
  • Vertex AI Feature Store oluşturma ve veri ekleme
  • Akış verileriyle çalışma ve bunları Feature Store'a aktarma

Lütfen aşağıdaki iki not defterini bu sırayla kullanmaya devam edin ve not defterlerindeki talimatları uygulayın:

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

8. Model Eğitimi, Tahmin, Biçimlendirme ve İzleme

Bu bölümde, olası sahtekarlık durumlarını tespit etmek için ilk BigQuery Model modelinizi eğitecek ve dağıtacaksınız. Ayrıca eğitim ve dağıtım kodunuzu alıp otomatik bir ardışık düzene dönüştürmeyi de öğreneceksiniz. Ayrıca online tahminler yapmayı ve üretimdeki modelinizi izlemeyi de öğreneceksiniz. Bu bölümde aşağıdaki öğrenme hedeflerini ele alacaksınız:

  • BigQuery ML modelini eğitme ve Vertex AI Model Registry'ye kaydetme
  • Modeli Vertex AI'da uç nokta olarak dağıtma
  • Vertex AI SDK'yı kullanma
  • BigQuery ML modelini nasıl alıp uçtan uca bir makine öğrenimi ardışık düzeni oluşturabileceğiniz
  • Vertex AI Model Monitoring'i kullanma

Lütfen aşağıdaki not defterlerini bu sırayla kullanmaya devam edin ve not defterlerindeki talimatları uygulayın. Not defterlerini BQML klasöründe bulabilirsiniz. Not defterindeki adımları uygulayın:

  • 04_model_training_and_prediction.ipynb
  • 05_model_training_pipeline_formalization.ipynb
  • 06_model_monitoring.ipynb
  • 07_model_inference.ipynb
🎉 Congratulations! 🎉

Google Cloud'da veriden yapay zekaya mimarisi oluşturmayı öğrendiniz.

9. Temizleme

Bu laboratuvarı yeni bir projede çalıştırmanızı öneririz. Bu laboratuvarda birçok farklı ürün ele alınmaktadır. Bu nedenle, laboratuvarı tamamladıktan sonra projenin tamamını silmeniz en kolay yöntemdir. Projeyi silme hakkında daha fazla bilgiyi dokümanlarımızda bulabilirsiniz.

Hizmetleri silmek istiyorsanız lütfen Notebooks'taki talimatları uygulayın veya oluşturulan kaynakları silin.