1. Genel Bakış
Bu laboratuvarda, BigQuery Machine Learning ile bir model eğitecek, ardından bu modeli Vertex AI'a aktarıp dağıtacaksınız. Bu, Google Cloud'daki en yeni yapay zeka ürünüdür.
Öğrenecekleriniz
Öğrenecekleriniz:
- BigQuery Machine Learning (BQML) ile model eğitme
- BQML modelinizi Cloud Storage'a aktarma
- Eğitilmiş BQML modelinizi Vertex AI'a dağıtma
- Dağıtılmış modelinizle ilgili tahminler alma
Bu laboratuvarı Google Cloud'da çalıştırmanın toplam maliyeti yaklaşık 2 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 (Tahmin ve Not Defterleri) odaklanılacaktır.

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: Notebooks örneği oluşturun
Modelimizi dağıttıktan sonra tahmin almak için Notebooks'u kullanacağız. Cloud Console'unuzun Vertex AI bölümünde Not Defterleri'ni tıklayın:

Buradan Yeni örnek'i seçin. Ardından, GPU'suz TensorFlow Enterprise 2.3 örnek türünü seçin:

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

4. BigQuery ML modelini eğitme
BigQuery ML, BigQuery'de depolanan verileri kullanarak özel makine öğrenimi modelleri eğitmenize olanak tanır. Modelleri eğitip tahminler alabilirsiniz. Tüm bu işlemler SQL ile yapılabilir. Bu laboratuvarda, kredi kartı ödemesinde temerrüde düşme olasılığını tahmin etmek için BigQuery'de herkese açık bir veri kümesi kullanacağız.
1. adım: Projenizde bir BigQuery veri kümesi oluşturun
BigQuery ML'de bir modeli eğitmek için projenizde bu modeli depolayacak bir veri kümesi oluşturmanız gerekir. Sol menü çubuğunda projenizi tıklayın ve Veri Kümesi Oluştur'u seçin:

Veri kümesi kimliği alanına cc_default girin. Diğer alanları olduğu gibi bırakıp Veri kümesi oluştur'u tıklayın.
2. adım: CREATE MODEL sorgusu çalıştırın
BigQuery Sorgu düzenleyicisinde, kullanacağımız herkese açık veri kümesinde BigQuery ML modeli oluşturup eğitmek için aşağıdaki CREATE MODEL sorgusunu çalıştırın. your-project yerine Cloud projenizin adını yazdığınızdan emin olun:
CREATE OR REPLACE MODEL
`your-project.cc_default.logistic_model` OPTIONS(model_type='LOGISTIC_REG',
input_label_cols=['default_payment_next_month']) AS
SELECT
limit_balance,
sex,
education_level,
marital_status,
age,
pay_0,
pay_2,
pay_3,
pay_4,
pay_5,
pay_6,
bill_amt_1,
bill_amt_2,
bill_amt_3,
bill_amt_4,
bill_amt_5,
bill_amt_6,
pay_amt_1,
pay_amt_2,
pay_amt_3,
pay_amt_4,
pay_amt_5,
pay_amt_6,
default_payment_next_month
FROM
`bigquery-public-data.ml_datasets.credit_card_default`
Bu işlem, yaklaşık bir dakika sürecek bir çalıştırma süresini belirten 0 ile 1 arasında bir sayısal değer çıkışı veren bir lojistik regresyon modeli oluşturur. İşlem tamamlandığında model, veri kümenizin altında görünür:

Eğitim ve değerlendirme metriklerine bakmak için modeli tıklayabilirsiniz.
5. BigQuery ML modelinizi dışa aktarma
Eğitilmiş bir BQML modeliyle tahmin almak için BQML SQL söz dizimini kullanabilir veya modeli başka bir yerde dağıtmak üzere dışa aktarabiliriz. Burada, modeli ölçeklenebilir şekilde sunmak ve tahminler almak için Vertex AI'a dağıtabilmek üzere modelimizi dışa aktaracağız.
1. adım: Modeliniz için Cloud Storage paketi oluşturun
Model ayrıntılarında Modeli Dışa Aktar'ı tıklayın:

Bu işlem, modelinizin öğelerinin dışa aktarılmasını istediğiniz Google Cloud Storage (GCS) konumunu girmenizi ister. Henüz bir GCS paketiniz yoksa endişelenmeyin. Şimdi bir tane oluşturacağız. Öncelikle Göz at'ı tıklayın:

Ardından yeni bir paket oluşturmak için + simgesini tıklayın:

Pakete benzersiz bir ad verin (Storage paketi adları genel olarak benzersiz olmalıdır). Devam'ı tıklayın. Sonraki adımda, Konum türü bölümünde Bölge'yi seçin ve açılır listeden bölgelerden birini belirleyin:

Varsayılan depolama sınıfını kullanın ve erişim denetimi bölümünde Tek tip'in seçili olduğundan emin olun:

Devam'ı tıklayın ve diğer seçenekler için varsayılan değerleri kullanın. Ardından Oluştur'u tıklayın.
2. adım: BQML modelini dışa aktarın
Yeni paketiniz oluşturulduktan sonra model-assets (veya istediğiniz herhangi bir şeyi) Ad alanına girip Seç'i tıklayın:

Ardından Dışa aktar'ı tıklayın. Bu işlem, TensorFlow'un SavedModel biçimindeki modelinizi belirttiğiniz yeni oluşturulan GCS paketine aktarmak için BigQuery'de bir iş oluşturur. Bu işlemin dışa aktarılması yaklaşık bir dakika sürer.
Modeliniz dışa aktarılırken Cloud Console'unuzun Storage bölümüne gidin. İşiniz tamamlandığında, model öğelerinizin az önce oluşturduğunuz pakete model-assets alt dizini altında aktarıldığını görürsünüz:

6. Modeli Vertex AI'a aktarma
Bu adımda, modeli Vertex AI'da oluşturup içe aktarmak için model öğelerimizi dışa aktardığımız GCS depolama konumuna başvuracağız.
1. adım: Modeli içe aktarın
Cloud Console'unuzda Vertex AI Modeller bölümüne gidin. Buradan İçe aktar'ı seçin:

İlk adımda modelinize predict_default adını verin. Paketinizi oluşturduğunuz bölgeyi (us-central1, europe-west4 veya asia-east1) seçin. Ardından Devam'ı tıklayın. Model ayarları'nda "Model yapılarını yeni bir önceden oluşturulmuş container'a aktar" seçeneğini işaretli tutun.
Model framework açılır listesinde TensorFlow'u seçin. Ardından, çerçeve sürümü olarak 2.3'ü seçin.
Model yapay nesne konumu alanında Göz at'ı tıklayın, yeni oluşturduğunuz GCS paketini tıklayın ve model-assets dizinini tıklayın:

Ardından İçe aktar'ı tıklayın. Modelinizin içe aktarılması birkaç dakika sürer. Oluşturulduktan sonra Cloud Console'unuzun modeller bölümünde görebilirsiniz:

7. Modeli bir uç noktaya dağıtma
Modelimizi yüklediğimize 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 default_pred_v1 gibi bir ad verin, trafik bölme ayarlarını olduğu gibi bırakın ve ardından model dağıtımınız için bir makine türü seçin. Burada n1-highcpu-2 kullandık ancak istediğiniz makine türünü seçebilirsiniz.
Ardından Bitti'yi seçin ve Devam'ı tıklayın. Seçili konum ayarlarını olduğu gibi bırakıp Dağıt'ı tıklayın. 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
API aracılığıyla nasıl tahmin alacağınızı burada açıklayacağız.
1. adım: Vertex AI API ile model tahminleri alın
Burada model tahminlerini nasıl alacağınızı göstermek için bu laboratuvarın başında oluşturduğunuz Vertex Notebook ö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:

Not defterinizde, default-pred.json adlı bir JSON dosyasına test örneği yazmak için bir hücrede aşağıdakileri çalıştırın. Bu örneği tahmin için modelimize gönderelim:
%%writefile default-pred.json
{
"instances": [
{"age": 39,
"bill_amt_1": 47174,
"bill_amt_2": 47974,
"bill_amt_3": 48630,
"bill_amt_4": 50803,
"bill_amt_5": 30789,
"bill_amt_6": 15874,
"education_level": "1",
"limit_balance": 50000,
"marital_status": "2",
"pay_0": 0,
"pay_2":0,
"pay_3": 0,
"pay_4": 0,
"pay_5": "0",
"pay_6": "0",
"pay_amt_1": 1800,
"pay_amt_2": 2000,
"pay_amt_3": 3000,
"pay_amt_4": 2000,
"pay_amt_5": 2000,
"pay_amt_6": 2000,
"sex": "1"}
]
}
Ardından, Vertex kullanıcı arayüzünde, az önce dağıttığınız uç nokta için Örnek İstek'i tıklayın:

REST sekmesindeki 4. Adım'da yer alan kodu kopyalayıp not defterinize yapıştırın ve hücreyi çalıştırın:

Ardından, paketinizi ve modelinizi oluşturduğunuz bölge için bir değişken ekleyin. Aşağıdaki dizede your-region yerine kendi değerinizi girin:
REGION="your-region" # either us-central1, europe-west4, or asia-east1
Son olarak, aşağıdaki kodu not defterinize kopyalayarak curl ile uç noktanıza bir tahmin isteği gönderin:
!curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-prediction-aiplatform.googleapis.com/v1alpha1/projects/$PROJECT_ID/locations/$REGION/endpoints/$ENDPOINT_ID:predict \
-d "@default-pred.json"
Aşağıdakine benzer bir sonuç görmelisiniz (tam tahmin değerleri biraz farklılık gösterebilir):
{
"predictions": [
{
"default_payment_next_month_values": [
"1",
"0"
],
"default_payment_next_month_probs": [
0.180815295299778,
0.819184704700222
],
"predicted_default_payment_next_month": [
"0"
]
}
],
"deployedModelId": "your-model-id"
}
default_payment_next_month_probs içindeki değerler, her sınıfın olasılığını gösterir. Bu örnekte modelimiz, söz konusu kişinin bir sonraki ödemesini aksatmayacağı ihtimalinin% 81 olduğunu tahmin ediyor. .819 değeri, 0 sınıfıyla (varsayılan değil) eşleşiyor.
🎉 Tebrikler! 🎉
Öğrendikleriniz:
- BQML'de model eğitme
- BQML modelinizi Cloud Storage'a aktarma
- Tahmin için BQML modelini Vertex AI'a aktarma
- Vertex AI modeli oluşturma ve modeli bir uç noktaya dağıtma
- Vertex Notebooks ve curl aracılığıyla dağıtılan uç noktanızda 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ız zamanlarda kapatmanız önerilir. Cloud Console'unuzdaki Notebooks 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 silme simgesini tıklayın:

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