Menggunakan ML dan AI dengan BigQuery DataFrames
BigQuery DataFrames menyediakan kemampuan ML dan AI untuk
BigQuery DataFrames menggunakan library bigframes.ml.
Anda dapat memproses data, membuat estimator untuk melatih model di BigQuery DataFrames, membuat pipeline ML, dan memisahkan set data pelatihan dan pengujian.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan tugas dalam dokumen ini, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:
-
Menggunakan model jarak jauh atau fungsi AI:
BigQuery Connection Admin (
roles/bigquery.connectionAdmin) -
Menggunakan BigQuery DataFrames di notebook BigQuery:
-
Pengguna BigQuery (
roles/bigquery.user) -
Pengguna Runtime Notebook (
roles/aiplatform.notebookRuntimeUser) -
Pembuat Kode (
roles/dataform.codeCreator)
-
Pengguna BigQuery (
-
Gunakan koneksi BigQuery default:
-
BigQuery Data Editor (
roles/bigquery.dataEditor) -
BigQuery Connection Admin (
roles/bigquery.connectionAdmin) -
Cloud Functions Developer (
roles/cloudfunctions.developer) -
Pengguna Akun Layanan (
roles/iam.serviceAccountUser) -
Storage Object Viewer (
roles/storage.objectViewer)
-
BigQuery Data Editor (
-
Menggunakan model jarak jauh ML BigQuery DataFrames:
BigQuery Connection Admin (
roles/bigquery.connectionAdmin)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Lokasi ML
Library bigframes.ml mendukung lokasi yang sama dengan BigQuery ML. Prediksi model ML BigQuery dan fungsi ML lainnya didukung di semua region BigQuery. Dukungan untuk pelatihan model bervariasi menurut wilayah. Untuk mengetahui informasi selengkapnya, lihat
Lokasi BigQuery ML.
Melakukan pra-pemrosesan data
Buat transformer untuk menyiapkan data yang akan digunakan dalam estimator (model) dengan
menggunakan
modul bigframes.ml.preprocessing
dan
modul bigframes.ml.compose.
BigQuery DataFrames menawarkan transformasi berikut:
Untuk mengelompokkan data berkelanjutan ke dalam interval, gunakan class
KBinsDiscretizerdalam modulbigframes.ml.preprocessing.Untuk menormalisasi label target sebagai nilai bilangan bulat, gunakan class
LabelEncoderdalam modulbigframes.ml.preprocessing.Untuk menskalakan setiap fitur ke rentang
[-1, 1]berdasarkan nilai absolut maksimumnya, gunakan classMaxAbsScalerdalam modulbigframes.ml.preprocessing.Untuk menstandardisasi fitur dengan menskalakan setiap fitur ke rentang
[0, 1], gunakan classMinMaxScalerdi modulbigframes.ml.preprocessing.Untuk menstandardisasi fitur dengan menghapus rata-rata dan menskalakan ke varians unit, gunakan class
StandardScalerdalam modulbigframes.ml.preprocessing.Untuk mengubah nilai kategoris menjadi format numerik, gunakan class
OneHotEncoderdalam modulbigframes.ml.preprocessing.Untuk menerapkan transformer ke kolom DataFrame, gunakan class
ColumnTransformerdalam modulbigframes.ml.compose.
Melatih model
Anda dapat membuat estimator untuk melatih model di BigQuery DataFrames.
Model pengelompokan
Anda dapat membuat estimator untuk model pengelompokan menggunakan
modul bigframes.ml.cluster.
Untuk membuat model pengelompokan K-means, gunakan
class KMeans. Gunakan model ini untuk segmentasi data. Misalnya, mengidentifikasi segmen pelanggan. K-means adalah
teknik unsupervised learning, sehingga pelatihan model tidak
memerlukan label atau data terpisah untuk pelatihan atau evaluasi.
Anda dapat menggunakan modul bigframes.ml.cluster untuk membuat estimator bagi model pengelompokan.
Contoh kode berikut menunjukkan penggunaan class bigframes.ml.cluster KMeans
untuk membuat model pengelompokan k-means untuk segmentasi data:
Model dekomposisi
Anda dapat membuat estimator untuk model dekomposisi menggunakan
modul bigframes.ml.decomposition.
Untuk membuat model analisis komponen utama (PCA), gunakan class PCA. Gunakan model ini untuk menghitung komponen utama dan menggunakannya untuk melakukan perubahan dasar pada data. Penggunaan class PCA memberikan pengurangan dimensi dengan memproyeksikan setiap titik data ke hanya beberapa komponen utama pertama untuk mendapatkan data dimensi yang lebih rendah sekaligus mempertahankan variasi data sebanyak mungkin.
Model ansambel
Anda dapat membuat estimator untuk model ansambel menggunakan
modul bigframes.ml.ensemble.
Untuk membuat model klasifikasi random forest, gunakan
RandomForestClassifierclass. Gunakan model ini untuk membuat beberapa pohon keputusan metode pembelajaran untuk klasifikasi.Untuk membuat model regresi hutan acak, gunakan class
RandomForestRegressor. Gunakan model ini untuk membuat beberapa pohon keputusan metode pembelajaran untuk regresi.Untuk membuat model pengklasifikasi pohon yang ditingkatkan gradien, gunakan
XGBClassifierclass. Gunakan model ini untuk membuat beberapa pohon keputusan metode pembelajaran secara aditif untuk klasifikasi.Untuk membuat model regresi pohon yang ditingkatkan gradien, gunakan class
XGBRegressor. Gunakan model ini untuk membuat beberapa pohon keputusan metode pembelajaran secara aditif untuk regresi.
Model prakiraan
Anda dapat membuat estimator untuk model perkiraan menggunakan
modul bigframes.ml.forecasting.
Untuk membuat model perkiraan deret waktu, gunakan
class ARIMAPlus.
Model yang diimpor
Anda dapat membuat estimator untuk model yang diimpor menggunakan
modul bigframes.ml.imported.
Untuk mengimpor model Open Neural Network Exchange (ONNX), gunakan class
ONNXModel.Untuk mengimpor model TensorFlow, gunakan class
TensorFlowModel.Untuk mengimpor model XGBoostModel, gunakan class
XGBoostModel.
Model linear
Buat estimator untuk model linear menggunakan
modul bigframes.ml.linear_model.
Untuk membuat model regresi linear, gunakan class
LinearRegression. Gunakan model ini untuk perkiraan, seperti memperkirakan penjualan suatu item pada hari tertentu.Untuk membuat model regresi logistik, gunakan class
LogisticRegression. Gunakan model ini untuk klasifikasi dua atau beberapa nilai yang mungkin, seperti apakah inputnyalow-value,medium-value, atauhigh-value.
Contoh kode berikut menunjukkan penggunaan bigframes.ml untuk melakukan hal berikut:
- Memuat data dari BigQuery.
- Bersihkan dan siapkan data pelatihan.
- Buat dan terapkan model regresi bigframes.ml.LinearRegression.
Model Bahasa Besar
Anda dapat membuat estimator untuk LLM menggunakan
modul bigframes.ml.llm.
Untuk membuat model generator teks Gemini, gunakan class
GeminiTextGenerator. Gunakan model ini untuk tugas pembuatan teks.Untuk membuat estimator bagi model bahasa besar (LLM) jarak jauh, gunakan modul
bigframes.ml.llm.
Contoh kode berikut menunjukkan penggunaan class bigframes.ml.llm
GeminiTextGenerator
untuk membuat model Gemini untuk pembuatan kode:
Model jarak jauh
Untuk menggunakan model jarak jauh ML BigQuery DataFrames (bigframes.ml.remote
atau bigframes.ml.llm), Anda harus mengaktifkan API berikut:
Saat menggunakan model jarak jauh ML BigQuery DataFrames, Anda memerlukan
peran Project IAM Admin (roles/resourcemanager.projectIamAdmin)
jika Anda menggunakan koneksi BigQuery default, atau
peran Browser (roles/browser)
jika Anda menggunakan koneksi yang telah dikonfigurasi sebelumnya. Anda dapat menghindari persyaratan ini dengan
menyetel opsi bigframes.pandas.options.bigquery.skip_bq_connection_check
ke True, yang dalam hal ini koneksi (default atau yang telah dikonfigurasi sebelumnya) digunakan
apa adanya tanpa pemeriksaan izin atau keberadaan. Jika Anda menggunakan koneksi yang telah dikonfigurasi sebelumnya dan melewati pemeriksaan koneksi, verifikasi hal berikut:
- Koneksi dibuat di lokasi yang tepat.
- Jika Anda menggunakan model jarak jauh BigQuery DataFrames ML, akun layanan memiliki
peran Pengguna Vertex AI (
roles/aiplatform.user) di project.
Membuat model jarak jauh di BigQuery DataFrames akan membuat
koneksi BigQuery.
Secara default, koneksi dengan nama bigframes-default-connection akan digunakan. Anda dapat menggunakan koneksi BigQuery yang telah dikonfigurasi sebelumnya jika mau, dan dalam hal ini, pembuatan koneksi akan dilewati. Akun layanan
untuk koneksi default diberi
peran Vertex AI User (roles/aiplatform.user) di project.
Membuat pipeline
Anda dapat membuat pipeline ML menggunakan
modul bigframes.ml.pipeline.
Dengan pipeline, Anda dapat mengumpulkan beberapa langkah ML untuk divalidasi silang bersama-sama sambil
menetapkan parameter yang berbeda. Hal ini menyederhanakan kode Anda, dan memungkinkan Anda men-deploy
langkah-langkah praproses data dan estimator secara bersamaan.
Untuk membuat pipeline transformasi dengan estimator akhir, gunakan
class Pipeline.
Pilih model
Untuk membagi set data pelatihan dan pengujian serta memilih model terbaik, gunakan
modul bigframes.ml.model_selection
berikut:
Untuk membagi data menjadi pelatihan dan pengujian (set evaluasi), seperti yang ditunjukkan dalam contoh kode berikut, gunakan fungsi
train_test_split:X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)Untuk membuat set pelatihan dan pengujian multi-fold untuk melatih dan mengevaluasi model, seperti yang ditunjukkan dalam contoh kode berikut, gunakan class
KFolddan metodeKFold.split. Fitur ini berguna untuk set data kecil.kf = KFold(n_splits=5) for i, (X_train, X_test, y_train, y_test) in enumerate(kf.split(X, y)): # Train and evaluate models with training and testing setsUntuk membuat set pelatihan dan pengujian multi-fold secara otomatis, melatih dan mengevaluasi model, serta mendapatkan hasil setiap fold, seperti yang ditunjukkan dalam contoh kode berikut, gunakan fungsi
cross_validate:scores = cross_validate(model, X, y, cv=5)
Langkah berikutnya
- Pelajari sistem jenis data BigQuery DataFrames.
- Pelajari cara membuat kode BigQuery DataFrames dengan Gemini.
- Pelajari cara menganalisis download paket dari PyPI dengan DataFrame BigQuery.
- Lihat kode sumber BigQuery DataFrames, notebook contoh, dan contoh di GitHub.
- Jelajahi referensi BigQuery DataFrames API.