1. Genel Bakış
Bu laboratuvarda, tablo verileriyle bir model eğitmek ve sunmak için Vertex AI'ı kullanacaksınız. Google Cloud'daki en yeni yapay zeka ürün teklifi olan bu ürün şu anda önizleme sürümündedir.
Öğ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 tahmin almak için bu uç noktayı kullanma
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ılır. Vertex AI, Google Cloud'daki makine öğrenimi tekliflerini sorunsuz bir geliştirme deneyiminde birleştirir. Önceden, AutoML ve özel modellerle eğitilen modellere ayrı hizmetler üzerinden erişilebiliyordu. Yeni teklif, diğer yeni ürünlerle birlikte her ikisini de tek bir API'de birleştirir. Mevcut projeleri Vertex AI'a da taşıyabilirsiniz. Geri bildirimde bulunmak isterseniz lütfen destek sayfasını inceleyin.
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ğıdaki ürünlere odaklanacağız: Tablo biçimindeki veriler için AutoML, Tahmin ve Workbench.
3. Ortamınızı ayarlama
Bu kod laboratuvarını çalıştırmak için faturalandırmanın etkin olduğu bir Google Cloud Platform projeniz olmalıdır. Proje oluşturmak için buradaki talimatları uygulayın.
1. Adım: Compute Engine API'yi etkinleştirin
Compute Engine'a gidin ve etkin değilse Etkinleştir'i seçin. Not defteri örneğinizi oluşturmak için bu anahtara ihtiyacınız vardır.
2. Adım: Vertex AI API'yi etkinleştirin
Cloud Console'un Vertex AI bölümüne gidip Enable Vertex AI API'yi (Vertex AI API'yi etkinleştir) tıklayın.
3. Adım: Vertex AI Workbench örneği oluşturun
Cloud Console'unuzun Vertex AI bölümünden 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, TensorFlow Enterprise (LTS özellikli) örnek türünün GPU'suz en son sürümünü seçin:
Varsayılan seçenekleri kullanın ve Oluştur'u tıklayın.
5. Adım: Not defterinizi açın
Örnek oluşturulduktan sonra JupyterLab'i aç'ı seçin:
Modelimizi eğitmek için kullanacağımız veriler bu kredi kartı sahtekarlığı algılama veri kümesinden alınmıştı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 veya kendi özel model kodunuzla model eğitmek için 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ılmayacağını belirlemek için bir sahtekarlık algılama modeli oluşturacağız.
Veri kümeleri sayfasından veri kümesine bir ad verin, ardından Tablo ve ardından 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ızdaki yerel bir dosyayı 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önteminiz olarak "BigQuery'den tablo veya görünüm seçin"i seçtikten sonra aşağıdaki kodu 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 görünüm görürsünüz:
İsterseniz bu veri kümesiyle ilgili ek bilgi görmek için İstatistik oluştur'u tıklayabilirsiniz ancak sonraki adıma geçmeden önce bunu yapmanız gerekmez. Bu veri kümesi gerçek kredi kartı işlemlerini içerir. 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 veri kümesi yüklendikten sonra bu verilerle bir model eğitmeye hazırız. Belirli bir işlemin sahtekarlık içerip içermediğini tahmin etmek için bir sınıflandırma modeli eğiteceğiz. Vertex AI, model eğitimi için size iki seçenek sunar:
- AutoML: Minimum düzeyde çaba ve makine öğrenimi uzmanlığıyla yüksek kaliteli modeller eğitin.
- Özel eğitim: Özel eğitim uygulamalarınızı Google Cloud'un önceden oluşturulmuş kapsayıcılarından birini veya kendi kapsayıcınızı kullanarak 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 bıraktığınız veri kümesi ayrıntıları sayfasında, sağ üstteki Yeni model oluştur'u seçin. Hedef olarak Sınıflandırma'yı seçin, model eğitimi için AutoML'yi seçili bırakın ve Devam'ı tıklayın:
Modelinize bir ad verin veya varsayılan adı kullanın. Hedef sütun bölümünde Sınıf'ı seçin. Bu, belirli bir işlemin sahtekarlık içerip içermediğini belirten 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şlemler içerdiğinden) daha seyrek kullanılan sınıf için hassas geri çağırmayı en üst düzeye çıkaracak AUC PRC seçeneğini tercih edin:
Devam'ı seçin ve ardından son adıma (İşlem ve fiyatlandırma) geçin. Burada, bütçeniz için düğüm saati sayısı olarak 1 girin ve erken durdurma seçeneğini etkin durumda bırakın. AutoML modelinizi 1 işlem saati boyunca eğitmek, genellikle seçtiğiniz özellikler ile etiket arasında bir ilişki olup olmadığını anlamak için iyi bir başlangıçtır. Buradan, model performansını artırmak için özelliklerinizi değiştirebilir ve daha uzun süre eğitim verebilirsiniz. Ardından Eğitimi başlat'ı seçin.
Eğitim işiniz tamamlandığında bir e-posta alırsınız. Kaynakları oluşturma ve kaldırma süresi 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ğitim işiniz tamamlandıktan sonra Vertex'teki Modeller sekmesine gidin. Eğittiğiniz modeli tıklayın ve Değerlendir sekmesine göz atın. Burada çok sayıda değerlendirme metriği vardır. Bunlardan ikisine odaklanacağız: Karışıklık Matrisi ve Özellik Önemi.
1. adım: Karıştırma matrisini anlayın
Karışıklık matrisi, test veri kümemizdeki her sınıf için modelimizin doğru tahmin ettiği örneklerin yüzdesini gösterir. Üzerinde çalıştığımız veri kümesi gibi dengesiz bir veri kümesi söz konusu olduğunda bu, modelimizin performansını genel doğruluktan daha iyi bir şekilde ölçer.
Veri kümemizdeki ö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 çoğu zaman sahtekarlık amaçlı olmayan sınıfı rastgele tahmin etme olasılığı yüksektir. Bu nedenle, modelimizin her sınıf için doğruluğunu incelemek daha iyi bir metriktir.
Değerlendir sekmesini aşağı kaydırırsanız, aşağıdakine benzer bir karışıklık matrisi görürsünüz (tam yüzdeler değişiklik gösterebilir):
Karışıklık matrisi, ilk modelimizin test setimizdeki sahte örneklerin% 85'ini doğru şekilde sınıflandırabildiğini göstermektedir. Bu, özellikle veri kümesi dengesizliğimizin önemli olduğu göz önüne alındığında oldukça iyi bir sonuçtur. Ardından, bu %85'ten daha iyi performans gösterip gösteremeyeceğimizi görmek için modelimizi daha fazla işlem saati boyunca eğitmeyi deneyebiliriz.
2. adım: Özellik önemine bakma
Karıştırma matrisinin altında, aşağıdaki gibi görünen bir özellik önem düzeyi grafiği görürsünüz:
Bu veriler, tahminde bulunurken modelimize en büyük sinyali sağlayan özellikleri gösterir. Özelliğin önemi, Explainable AI türlerinden biridir. Makine öğrenimi modeli hakkında daha fazla bilgi edinmek için çeşitli yöntemlerin yer aldığı bir alan olan tahminde bulunur. Burada gösterilen özellik önemi grafiği, modelimizin test veri kümemizdeki tüm tahminlerine bakılarak toplu olarak hesaplanır. Bir dizi örnekle en önemli özellikleri gösterir.
Veri kümemizdeki özelliklerin çoğu gizlenmeseydi bu grafik daha heyecan verici olurdu. Örneğin, bir işlemin türü (aktarımı, para yatırma vb.) sahtekarlığın en büyük göstergesi olduğunu öğrenebiliriz.
Gerçek bir senaryoda bu özellik önem değerleri, modelimizi iyileştirmemize ve tahminlerine daha fazla güvenmemize yardımcı olmak için kullanılabilir. Bir sonraki model eğitimimizde en az önemli özellikleri kaldırmaya veya en önemli iki özelliğimizi bir özellik çaprazlama işlemiyle birleştirerek model performansını iyileştirip iyileştirmediğini görmeye karar verebiliriz.
Burada bir gruptaki özellik önemine bakıyoruz ancak Vertex AI'da tek tek tahminler için özellik önemini de alabiliriz. 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ğının birden fazla uç noktası olabilir ve trafiği uç noktalar arasında bölebilirsiniz.
1. Adım: Uç nokta oluşturma
Model sayfanızda Yayınla ve test et sekmesine gidin ve Bitiş noktasına dağıt'ı tıklayın:
Bitiş noktanıza fraud_v1
gibi bir ad verin, Erişim'i Standart olarak ayarlayın ve Devam'ı tıklayın.
Trafik bölme ve makine türünü varsayılan ayarlar olarak bırakın, Bitti'yi ve ardından Devam'ı tıklayın.
Bu uç nokta için model izlemeyi kullanmayacağız. Bu nedenle, bu seçeneği işaretli bırakmadan Dağıt'ı tıklayabilirsiniz. Uç noktanızın dağıtılması birkaç dakika sürer. İşlem tamamlandığında, işlemin yanında yeşil bir onay işareti görürsünüz:
Yaklaşıyorsunuz. Artık dağıtılan modeliniz hakkında tahmin almaya hazırsınız.
8. Dağıtılmış modelimizle ilgili tahminler alma
Model tahminleri almak için birkaç seçenek vardır:
- Vertex AI kullanıcı arayüzü
- Vertex AI API'si
Her ikisini de burada göstereceğiz.
1. Adım: Kullanıcı arayüzünde model tahminlerini 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, modelimizin her bir özelliği için test tahmini almak üzere kullanabileceğimiz rastgele değerler seçmiştir. Dilerseniz bu değerleri değiştirebilirsiniz. Sayfanın en altına gidip Tahmin et'i seçin.
Sayfanın Tahmin sonucu bölümünde, modelinizin her sınıf için tahmin ettiği yüzdeyi görürsünüz. Örneğin, 0
sınıfı için 0.99
güven puanı, modelinizin bu örneğin sahtekarlık içerme olasılığının% 99 olduğunu düşündüğü anlamına gelir.
2. Adım: Vertex AI API ile model tahminleri alın
Kullanıcı arayüzü, dağıtılan uç noktanızın beklendiği gibi çalıştığından emin olmanın mükemmel bir yoludur ancak tahminleri REST API çağrısı üzerinden dinamik olarak almak isteyebilirsiniz. Size burada model tahminlerinin nasıl alınacağını göstermek için bu laboratuvarın başında oluşturduğunuz Vertex Workbench örneğini kullanacağız.
Daha sonra, oluşturduğunuz not defteri örneğini açın ve Başlatıcı'dan bir Python 3 not defterini açın:
Vertex SDK'sını yüklemek için not defterinizde 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 az önce dağıttığınız uç noktaya bir referans oluşturmak için 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 bulunan iki değeri proje numaranız ve uç noktanızla değiştirmeniz gerekir. Proje numaranızı proje kontrol panelinize gidip Proje Numarası değerini alarak bulabilirsiniz.
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 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örürsünüz. Bu, modelin bu işlemin sahtekarlık içerme olasılığının% 67 olduğunu düşündüğü anlamına gelir.
🎉 Tebrikler! 🎉
Aşağıdakiler için Vertex AI'ı nasıl kullanacağınızı öğrendiniz:
- Yönetilen veri kümesi yükleme
- AutoML'i kullanarak tablo biçimindeki verilerde model eğitme ve değerlendirme
- Modeli bir uç noktaya dağıtma
- Vertex için SDK'yı kullanarak bir model uç noktasında tahminler 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ızda kapatmanız önerilir. Cloud Console'unuzdaki Workbench kullanıcı arayüzünde not defterini, ardından Durdur'u seçin.
Not defterini tamamen silmek isterseniz sağ üstte bulunan 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 modeli uç noktanızdan kaldırın:
Depolama paketini silmek için Cloud Console'daki Gezinme menüsünü kullanarak Depolama'ya gidin, paketinizi seçin ve Sil'i tıklayın: