1. Genel Bakış
Bu laboratuvarda, tablo verileriyle bir modeli eğitmek ve sunmak için Vertex AI'ı kullanacaksınız. Bu, Google Cloud'daki en yeni yapay zeka ürünüdür ve şu anda önizleme aşamasındadır.
Öğrenecekleriniz
Öğrenecekleriniz:
- Vertex AI'a yönetilen veri kümesi yükleme
- AutoML ile model eğitme
- Eğitilen AutoML modelinizi bir uç noktaya dağıtma ve bu uç noktayı kullanarak tahminler alma
Bu laboratuvarı Google Cloud'da çalıştırmanın toplam maliyeti yaklaşık 22 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, aşağıda vurgulanan ürünlere odaklanılacaktır: Tablo biçimindeki veriler için AutoML, Prediction ve Workbench.

3. 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. Not defteri örneğinizi oluşturmak için bu bilgiye ihtiyacınız vardır.
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:

Buradan Kullanıcı tarafından yönetilen not defterleri bölümünde Yeni not defteri'ni tıklayın:

Ardından, GPU'suz en son TensorFlow Enterprise (LTS özellikli) örnek türünü seçin:

Varsayılan seçenekleri kullanıp Oluştur'u tıklayın.
5. adım: Not defterinizi açın
Örnek oluşturulduktan sonra Open JupyterLab'i (JupyterLab'i aç) seçin:

Modelimizi eğitmek için kullanacağımız veriler, kredi kartı sahtekarlığı algılama veri setinden alınır. Bu veri kümesinin BigQuery'de herkese açık olarak sunulan bir sürümünü kullanacağız.
4. Yönetilen veri kümesi oluşturma
Vertex AI'da çeşitli veri türleri için yönetilen veri kümeleri oluşturabilirsiniz. Ardından bu veri kümeleriyle ilgili istatistikler oluşturabilir ve bunları AutoML ile modelleri eğitmek veya kendi özel model kodunuzla kullanabilirsiniz.
1. adım: Veri kümesi oluşturun
Konsolunuzdaki Vertex menüsünde Veri kümeleri'ni seçin:

Bu laboratuvarda, belirli bir kredi kartı işleminin sahtekarlık olarak sınıflandırılıp sınıflandırılmaması gerektiğini belirlemek için bir sahtekarlık algılama modeli oluşturacağız.
Veri kümeleri sayfasında veri kümesine bir ad verin, ardından Tablo ve Regresyon/sınıflandırma'yı seçin. Ardından veri kümesini oluşturun:

Vertex'teki Yönetilen Veri Kümelerine veri aktarmak için birkaç seçenek vardır:
- Bilgisayarınızdan yerel bir dosya yükleme
- Cloud Storage'dan dosya seçme
- BigQuery'den veri seçme
Burada, herkese açık bir BigQuery tablosundan veri yükleyeceğiz.
2. adım: BigQuery'den veri içe aktarma
İçe aktarma yöntemi olarak "BigQuery'den tablo veya görünüm seçin"i belirleyin ve ardından aşağıdakileri BigQuery tablosu kutusuna kopyalayın: bigquery-public-data.ml_datasets.ulb_fraud_detection. Ardından Devam'ı seçin:

Veri kümenizi içe aktardıktan sonra aşağıdakine benzer bir şey görmelisiniz:

İsterseniz bu veri kümesiyle ilgili ek bilgileri görmek için İstatistik oluştur'u tıklayabilirsiniz ancak bir sonraki adıma geçmeden önce bu işlem gerekli değildir. Bu veri kümesi gerçek kredi kartı işlemleri içeriyor. Sütun adlarının çoğu gizlendiği için V1, V2 vb. olarak adlandırılır.
5. AutoML ile model eğitme
Yönetilen bir veri kümesi yüklendiğinde bu verilerle bir modeli eğitmeye hazırız. Belirli bir işlemin sahtekarlık olup olmadığını tahmin etmek için sınıflandırma modeli eğiteceğiz. Vertex AI, modelleri eğitmek için iki seçenek sunar:
- AutoML: Minimum düzeyde çaba ve makine öğrenimi uzmanlığı ile yüksek kaliteli modeller eğitin.
- Özel eğitim: Google Cloud'un önceden oluşturulmuş container'larından birini kullanarak veya kendi container'ınızı kullanarak özel eğitim uygulamalarınızı bulutta çalıştırın.
Bu laboratuvarda eğitim için AutoML'i kullanacağız.
1. adım: Eğitim işini başlatın
Önceki adımda kaldığınız veri kümesi ayrıntıları sayfasında sağ üstteki Yeni modeli eğit'i seçin. Hedef olarak Sınıflandırma'yı seçin, model eğitimi için AutoML'yi seçili bırakın ve ardından Devam'ı tıklayın:

Modelinize bir ad verin veya varsayılan adı kullanabilirsiniz. Hedef sütun bölümünde Sınıf'ı seçin. Bu, belirli bir işlemin sahtekarlık içerip içermediğini gösteren bir tam sayıdır (sahtekarlık içermeyen işlemler için 0, sahtekarlık içeren işlemler için 1).
Ardından Devam'ı seçin:

Bu adımda aşağı kaydırın ve Gelişmiş seçenekler'i tıklayarak genişletin. Bu veri kümesi büyük ölçüde dengesiz olduğundan (verilerin% 1'inden azı sahtekarlık içeren işlemleri içerir) daha az yaygın olan sınıf için hassasiyet/geri çağırma değerini en üst düzeye çıkaracak AUC PRC seçeneğini belirleyin:

Devam'ı seçin ve ardından son adıma (işlem ve fiyatlandırma) geçin. Burada, bütçeniz için düğüm saati sayısı olarak 1 girin ve erken durdurma özelliğini etkin bırakın. AutoML modelinizi 1 işlem saati boyunca eğitmek, genellikle seçtiğiniz özellikler ve etiket arasında bir ilişki olup olmadığını anlamak için iyi bir başlangıçtır. Buradan özelliklerinizi değiştirebilir ve model performansını artırmak için daha uzun süre eğitim yapabilirsiniz. Ardından Eğitimi başlat'ı seçin.
Eğitim işiniz tamamlandığında bir e-posta alırsınız. Kaynakların başlatılması ve kapatılması için gereken süre de hesaba katıldığında eğitim bir saatten biraz daha uzun sürer.
6. Model değerlendirme metriklerini keşfetme
Bu adımda modelimizin nasıl performans gösterdiğini göreceğiz.
Model eğitimi işiniz tamamlandıktan sonra Vertex'teki Modeller sekmesine gidin. Eğitimini tamamladığınız modeli tıklayın ve Değerlendir sekmesine göz atın. Burada birçok değerlendirme metriği vardır. Biz Karışıklık Matrisi ve Özellik Önem Derecesi olmak üzere iki metriğe odaklanacağız.
1. adım: Karmaşıklık matrisini anlayın
Karışıklık matrisi, modelimizin test setimizdeki her sınıfa ait örneklerin yüzde kaçını doğru tahmin ettiğini gösterir. Ele aldığımız gibi dengesiz bir veri kümesi söz konusu olduğunda bu, modelimizin performansının genel doğruluktan daha iyi bir ölçüsüdür.
Veri setimizdeki örneklerin% 1'inden azının sahtekarlık amaçlı işlemler olduğunu unutmayın. Bu nedenle, model doğruluğumuz% 99 ise modelin% 99 oranında sahtekarlık içermeyen sınıfı rastgele tahmin etme olasılığı yüksektir. Bu nedenle, modelimizin her sınıf için doğruluğuna bakmak burada daha iyi bir metriktir.
Değerlendir sekmesinde aşağı kaydırdığınızda aşağıdaki gibi bir karmaşıklık matrisi görmeniz gerekir (kesin yüzdeler değişebilir):

Karışıklık matrisi, ilk modelimizin test setimizdeki sahtekarlık örneklerinin% 85'ini doğru şekilde sınıflandırabildiğini gösteriyor. Bu sonuç, özellikle önemli veri kümesi dengesizliğimiz göz önüne alındığında oldukça iyi. Ardından, bu %85'lik oranı iyileştirip iyileştiremeyeceğimizi görmek için modelimizi daha fazla işlem saati boyunca eğitmeyi deneyebiliriz.
2. adım: Özellik önemine bakma
Kafa karışıklığı matrisinin altında, aşağıdaki gibi bir özellik önem düzeyi grafiği görürsünüz:

Bu, tahmin yaparken modelimize en büyük sinyali sağlayan özellikleri gösterir. Özellik önemi, bir tür açıklanabilir yapay zekadır. Bu alan, bir makine öğrenimi modelinin tahmin yapmasıyla ilgili daha fazla bilgi edinmeye yönelik çeşitli yöntemleri içerir. Burada görülen özellik önem grafiği, test setimizdeki modelimizin tüm tahminlerine bakılarak toplu olarak hesaplanır. Bir grup örnekteki en önemli özellikleri gösterir.
Veri kümemizdeki özelliklerin çoğu gizlenmemiş olsaydı bu grafik daha ilgi çekici olurdu. Örneğin, bir işlemin türünün (transfer, mevduat vb.) sahtekarlığın en büyük göstergesi olduğunu öğrenebiliriz.
Gerçek hayattaki bir senaryoda, bu özellik önem değerleri modelimizi geliştirmemize ve tahminlerine daha fazla güvenmemize yardımcı olabilir. Bir modeli bir sonraki eğitme işlemimizde en az önemli özellikleri kaldırmaya veya model performansını iyileştirip iyileştirmediğini görmek için daha önemli iki özelliğimizi özellikler arası geçişte birleştirmeye karar verebiliriz.
Burada bir toplu iş genelinde özellik önemine bakıyoruz ancak Vertex AI'da tek tek tahminler için de özellik önemini elde edebiliriz. Modelimizi dağıttıktan sonra bunu nasıl yapacağımızı göreceğiz.
7. Modeli uç noktaya dağıtma
Eğitilmiş bir modelimiz olduğuna göre, bir sonraki adım Vertex'te bir uç nokta oluşturmaktır. Vertex'teki bir Model kaynağıyla birden fazla uç nokta ilişkilendirilebilir ve trafiği uç noktalar arasında bölebilirsiniz.
1. adım: Uç nokta oluşturma
Model sayfanızda Dağıt ve test et sekmesine gidin ve Uç noktaya dağıt'ı tıklayın:

Uç noktanıza fraud_v1 gibi bir ad verin, erişimi Standart olarak bırakın ve Devam'ı tıklayın.
Trafiği bölme ve makine türü ayarlarını varsayılan olarak bırakın, Bitti'yi ve ardından Devam'ı tıklayın.
Bu uç nokta için model izleme kullanmayacağız. Bu nedenle, ilgili seçeneğin işaretini kaldırabilir ve Dağıt'ı tıklayabilirsiniz. Uç noktanızın dağıtılması birkaç dakika sürer. İşlem tamamlandığında yanında yeşil bir onay işareti görürsünüz:

Yaklaşıyorsunuz. Artık dağıtılan modelinizle ilgili tahminler almaya hazırsınız.
8. Dağıtılmış modelimizde tahmin alma
Model tahminleri almanın birkaç yolu vardır:
- Vertex AI kullanıcı arayüzü
- Vertex AI API
İkisini de burada göstereceğiz.
1. adım: Kullanıcı arayüzünde model tahminleri alın
Uç noktanızın gösterildiği model sayfanızda (son adımda kaldığımız yer) Modelinizi test edin bölümüne gidin:

Burada Vertex AI, test tahmini almak için kullanabileceğimiz modelimizin her özelliği için rastgele değerler seçti. İsterseniz bu değerleri değiştirebilirsiniz. Sayfanın en altına gidin ve Tahmin'i seçin.
Sayfanın Tahmin sonucu bölümünde, modelinizin her sınıf için tahmin ettiği yüzdeyi görmeniz gerekir. Örneğin, 0 sınıfı için 0.99 güven puanı, modelinizin bu örneğin sahtekarlık içermeme olasılığının% 99 olduğunu düşündüğü anlamına gelir.
2. adım: Vertex AI API ile model tahminleri alma
Kullanıcı arayüzü, dağıtılan uç noktanızın beklendiği gibi çalıştığından emin olmanın harika bir yoludur ancak tahminleri dinamik olarak bir REST API çağrısı aracılığıyla almak isteyebilirsiniz. Burada model tahminlerini nasıl alacağınızı göstermek için bu laboratuvarın başında oluşturduğunuz Vertex Workbench örneğini kullanacağız.
Ardından, oluşturduğunuz not defteri örneğini açın ve Başlatıcı'dan bir Python 3 not defteri açın:

Vertex SDK'yı yüklemek için not defterinizdeki bir hücrede aşağıdakileri çalıştırın:
!pip3 install google-cloud-aiplatform --upgrade --user
Ardından, SDK'yı içe aktarmak ve yeni dağıttığınız uç nokta için bir referans oluşturmak üzere not defterinize bir hücre ekleyin:
from google.cloud import aiplatform
endpoint = aiplatform.Endpoint(
endpoint_name="projects/YOUR-PROJECT-NUMBER/locations/us-central1/endpoints/YOUR-ENDPOINT-ID"
)
Yukarıdaki endpoint_name dizesinde iki değeri proje numaranız ve uç noktanızla değiştirmeniz gerekir. Proje numaranızı bulmak için proje kontrol panelinize gidip Proje Numarası değerini alın.
Uç nokta kimliğinizi, konsolun uç noktalar bölümünde bulabilirsiniz:

Son olarak, aşağıdaki kodu yeni bir hücreye kopyalayıp çalıştırarak uç noktanız için bir tahminde bulunun:
test_instance={
'Time': 80422,
'Amount': 17.99,
'V1': -0.24,
'V2': -0.027,
'V3': 0.064,
'V4': -0.16,
'V5': -0.152,
'V6': -0.3,
'V7': -0.03,
'V8': -0.01,
'V9': -0.13,
'V10': -0.18,
'V11': -0.16,
'V12': 0.06,
'V13': -0.11,
'V14': 2.1,
'V15': -0.07,
'V16': -0.033,
'V17': -0.14,
'V18': -0.08,
'V19': -0.062,
'V20': -0.08,
'V21': -0.06,
'V22': -0.088,
'V23': -0.03,
'V24': 0.01,
'V25': -0.04,
'V26': -0.99,
'V27': -0.13,
'V28': 0.003
}
response = endpoint.predict([test_instance])
print('API response: ', response)
0 sınıfı için .67 civarında bir tahmin görmelisiniz. Bu, modelin bu işlemin sahtekarlık içermeme olasılığının% 67 olduğunu düşündüğü anlamına gelir.
🎉 Tebrikler! 🎉
Vertex AI'ı kullanarak şunları yapmayı öğrendiniz:
- Yönetilen veri kümesi yükleme
- AutoML'i kullanarak tablo biçimindeki veriler üzerinde bir modeli eğitme ve değerlendirme
- Modeli bir uç noktaya dağıtma
- Vertex için SDK'yı kullanarak model uç noktasında tahmin alma
Vertex AI'ın farklı bölümleri hakkında daha fazla bilgi edinmek için belgelere göz atın.
9. Temizleme
Bu laboratuvarda oluşturduğunuz not defterini kullanmaya devam etmek istiyorsanız kullanmadığınız zamanlarda kapatmanız önerilir. Cloud Console'daki Workbench kullanıcı arayüzünde not defterini ve ardından Durdur'u seçin.
Not defterini tamamen silmek isterseniz sağ üstteki Sil düğmesini tıklamanız yeterlidir.
Dağıttığınız uç noktayı silmek için Vertex AI konsolunuzun Uç Noktalar bölümüne gidin ve modelin dağıtımını uç noktanızdan kaldırın:

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