1. Genel Bakış
Bu laboratuvarda, BigQuery Makine Öğrenimi ile bir model eğitecek ve ardından bu modeli Vertex AI'a aktarıp dağıtacaksınız. Bu, Google Cloud'daki en yeni AI ürün teklifidir.
Öğrenecekleriniz
Öğrenecekleriniz:
- BigQuery Makine Öğrenimi (BQML) ile model eğitme
- BQML modelinizi Cloud Storage'a aktarma
- Eğitilen BQML'nizi Vertex AI'a dağıtma
- Dağıtılmış modeliniz hakkında tahmin alın
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'daki en yeni AI ürün teklifi kullanılmaktadır. Vertex AI, Google Cloud'daki makine öğrenimi tekliflerini sorunsuz bir geliştirme deneyimiyle entegre eder. Önceden, AutoML ve özel modellerle eğitilen modellere ayrı hizmetler üzerinden erişilebiliyordu. Yeni teklif, her ikisi de tek bir API'de ve diğer yeni ürünlerle birleştirilir. Dilerseniz mevcut projeleri Vertex AI'a taşıyabilirsiniz. Geri bildiriminiz varsa lütfen destek sayfasını inceleyin.
Vertex AI, uçtan uca makine öğrenimi iş akışlarını destekleyen birçok farklı ürün içerir. Bu laboratuvar, aşağıda vurgulanan ürünlere odaklanacaktır: Tahmin ve Not defterleri.
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 var. Proje oluşturmak için buradaki talimatları uygulayın.
1. Adım: Compute Engine API'yi etkinleştirin
Compute Engine'e gidin ve zaten etkinleştirilmemişse Etkinleştir'i seçin. Not defteri örneğinizi oluşturmak için buna ihtiyacınız olacaktı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: Not defterleri örneği oluşturun
Modelimizi dağıttıktan sonra tahmin almak için Notebooks'u kullanacağız. Cloud Console'un Vertex AI bölümünde Notebooks'u tıklayın:
Burada, Yeni Örnek'i seçin. Ardından GPU'suz TensorFlow Enterprise 2.3 örnek türünü seçin:
Varsayılan seçenekleri kullanın ve ardından Oluştur'u tıklayın. Örnek oluşturulduktan sonra JupyterLab'i aç'ı seçin:
4. BigQuery ML modelini eğitme
BigQuery ML, BigQuery'de depolanan verileri kullanarak özel makine öğrenimi modellerini eğitmenize olanak tanır. SQL'de modelleri eğitebilir ve modellerden tahmin alabilirsiniz. Bu laboratuvarda, kredi kartı ödemelerinin varsayılan olarak yapılma 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 model eğitmek için projenizde bu modeli depolayacak bir veri kümesi oluşturmanız gerekir. Soldaki menü çubuğunda projenizi tıklayın, ardından Veri Kümesi Oluştur'u seçin:
Veri Kümesi Kimliği alanına cc_default
yazın. Diğer alanları olduğu gibi bırakın ve Veri kümesi oluştur'u tıklayın.
2. Adım: CREATE MODEL sorgusu çalıştırın
Kullanacağımız herkese açık veri kümesinde BigQuery ML modeli oluşturmak ve eğitmek için BigQuery Sorgu düzenleyici'de aşağıdaki CREATE MODEL
sorgusunu çalıştırın. your-project
kısmını Cloud projenizin adıyla değiştirdiğinizden 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, 0 ile 1 arasında sayısal bir değer üreten bir mantıksal regresyon modeli oluşturur. Bu model, çalıştırılmanın yaklaşık bir dakika süreceğini gösterir. İşlem tamamlandığında modeli veri kümenizin altında görürsünüz:
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 yere dağıtmak için dışa aktarabiliriz. Burada modelimizi dışa aktaracağız. Böylece, modeli Vertex AI'a dağıtarak modeli ölçeklenebilir bir şekilde sunabilir ve tahminler alabiliriz.
1. Adım: Modeliniz için bir 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 GCS paketiniz yoksa endişelenmeyin. Bir tane oluşturmak üzereyiz. İlk olarak Göz at'ı tıklayın:
Ardından yeni bir paket oluşturmak için + simgesini tıklayın:
Pakete benzersiz bir ad verin (Depolama paketi adlarının küresel olarak benzersiz olması gerekir). Devam'ı tıklayın. Sonraki adımda, Konum türü'nün altında Bölge'yi ve açılır listeden herhangi bir bölgeyi seçin:
Varsayılan depolama sınıfını kullanın ve erişim denetimi altında Tek tip'in seçili olduğundan emin olun:
Devam'ı tıklayın ve diğer seçenekler için varsayılanları kullanın. Ardından Oluştur'u tıklayın.
2. Adım: BQML modelini dışa aktarın
Yeni paketiniz oluşturulduğunda, Ad alanına model-assets
değerini (veya istediğiniz bir şeyi) girin ve Seç'i tıklayın:
Ardından Dışa aktar'ı tıklayın. Bu işlem, modelinizi TensorFlow'un SavedModel biçiminde, belirttiğiniz yeni oluşturulan GCS paketine aktarmak için BigQuery'de bir iş oluşturur. Dışa aktarma işlemi yaklaşık bir dakika sürer.
Modeliniz dışa aktarılırken Cloud Console'un Depolama bölümüne gidin. İşiniz tamamlandığında model öğelerinizin az önce oluşturduğunuz pakete aktarıldığını bir model-assets
alt dizininde göreceksiniz:
6. Modeli Vertex AI'a aktarma
Bu adımda, modeli oluşturmak ve Vertex AI'a aktarmak için model öğelerimizi dışa aktardığımız GCS depolama konumunu referans alacağız.
1. Adım: Modeli içe aktarın
Cloud Console'da Vertex AI Models (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 seçin (us-central1, europe-west4 veya asia-east1). Ardından Devam'ı tıklayın. Model ayarları bölümünde "Model yapılarını önceden oluşturulmuş yeni bir container'a içe aktar" seçeneğini koruyun. seçili.
Model çerçevesi açılır listesinde TensorFlow'u seçin. Ardından çerçeve sürümü olarak 2.3'ü seçin.
Model yapı konumu alanında Browse'u (Göz at) tıklayın, az önce oluşturduğunuz GCS paketini ve model-assets dizinini tıklayın:
Ardından İçe aktar'ı tıklayın. Modelinizin içe aktarılması birkaç dakika sürer. Modelinizi oluşturduktan sonra Cloud konsolunuzun 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ğı, kendisiyle ilişkilendirilmiş birden fazla uç noktaya sahip olabilir ve trafiği uç noktalar arasında bölebilirsiniz.
1. Adım: Uç nokta oluşturma
Model sayfanızda Dağıtma ve test etme sekmesine gidin ve Uç noktaya dağıt'ı tıklayın:
Uç noktanıza default_pred_v1
gibi bir ad verin, trafiği bölme ayarlarını olduğu gibi bırakın ve model dağıtımınız için 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ın ve 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ılmış modelinizde tahmin almaya hazırsınız.
8. Dağıtılmış modelimiz hakkında tahmin alma
Model tahminleri almak için birkaç seçenek vardır:
- Vertex AI kullanıcı arayüzü
- Vertex AI API'si
Burada, API aracılığıyla nasıl tahmin alabileceğinizi göstereceğiz.
1. adım: Vertex AI API ile model tahminleri alın
Model tahminlerini burada nasıl alacağınızı göstermek için bu laboratuvarın başında oluşturduğunuz Vertex Notebook ö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:
Not defterinizde, default-pred.json
adlı bir JSON dosyasına test örneği yazmak için bir hücrede aşağıdakini çalıştırın. Tahmin için modelimize şu örneği göndereceğiz:
%%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, yeni dağıttığınız uç nokta için Örnek İstek'i tıklayın:
REST sekmesindeki 4. adımdaki kodu not defterinize kopyalayı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
değerini değiştirin:
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ğinde bulunun:
!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örürsünüz (tam tahmin değerleri biraz farklılık gösterir):
{
"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
alanındaki değerler, her bir sınıf için olasılığı gösterir. Bu örnekte, modelimiz bu kişinin bir sonraki ödemesinde varsayılan olarak yapılmama olasılığının% 81 olduğunu tahmin etmektedir. .819
değeri, 0
sınıfına karşılık gelir (varsayılan değildir).
🎉 Tebrikler! 🎉
Şu konuları öğrendiniz:
- 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 tahmin alın
Vertex AI'ın farklı bölümleri hakkında daha fazla bilgi edinmek için belgeleri inceleyin.
9. Temizleme
Bu laboratuvarda oluşturduğunuz not defterini kullanmaya devam etmek istiyorsanız, kullanmadığınız not defterini kapatmanız önerilir. Cloud Console'daki Not Defteri kullanıcı arayüzünden not defterini ve 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 gidip sil simgesini tıklayın:
Storage Paketini silmek için Cloud Console'unuzdaki gezinme menüsünü kullanarak Storage'a gidin, paketinizi seçin ve Sil'i tıklayın: