Menggunakan ML dan AI dengan BigQuery DataFrames
Library bigframes.ml di BigQuery DataFrames memungkinkan Anda mengintegrasikan kemampuan AI dan machine learning (ML) ke dalam alur kerja analisis data. Melakukan prapemrosesan data, melatih model, dan membuat pipeline ML langsung di BigQuery memungkinkan Anda menskalakan analisis tanpa mengekstrak set data dari data warehouse.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan tugas dalam dokumen ini, minta administrator untuk memberi Anda peran IAM berikut di project Anda:
-
Menggunakan model jarak jauh atau fungsi AI:
BigQuery Connection Admin (
roles/bigquery.connectionAdmin) -
Menggunakan BigQuery DataFrame di notebook BigQuery:
- BigQuery User (
roles/bigquery.user) - Notebook Runtime User (
roles/aiplatform.notebookRuntimeUser) - Code Creator (
roles/dataform.codeCreator)
- BigQuery User (
-
Gunakan koneksi BigQuery default:
- BigQuery Data Editor (
roles/bigquery.dataEditor) - BigQuery Connection Admin (
roles/bigquery.connectionAdmin) - Cloud Functions Developer (
roles/cloudfunctions.developer) - Service Account User (
roles/iam.serviceAccountUser) - Storage Object Viewer (
roles/storage.objectViewer)
- BigQuery Data Editor (
-
Menggunakan model jarak jauh BigQuery DataFrames ML:
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 BigQuery ML dan fungsi ML lainnya didukung di semua region BigQuery. Dukungan untuk
pelatihan model bervariasi menurut region. Untuk mengetahui informasi selengkapnya, baca artikel Lokasi BigQuery ML.
Melakukan pra-pemrosesan data
Buat transformer untuk menyiapkan data yang akan digunakan dalam estimator (model) 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 menstandarkan fitur dengan menskalakan setiap fitur ke rentang
[0, 1], gunakan classMinMaxScalerdalam modulbigframes.ml.preprocessing.Untuk menstandarkan 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
ColumnTransformerdi 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 untuk 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 guna mendapatkan data dimensi yang lebih rendah sekaligus mempertahankan variasi data sebanyak mungkin.
Model ansambel
Anda dapat membuat estimator untuk model ensemble menggunakan
modul bigframes.ml.ensemble.
Untuk membuat model pengklasifikasi hutan acak, gunakan class
RandomForestClassifier. 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 tree gradient boosting, gunakan class
XGBClassifier. Gunakan model ini untuk membuat beberapa pohon keputusan metode pembelajaran secara aditif untuk klasifikasi.Untuk membuat model regresi gradient boosting tree, gunakan class
XGBRegressor. Gunakan model ini untuk membuat beberapa pohon keputusan metode pembelajaran secara aditif untuk regresi.
Model perkiraan
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.
- Membersihkan dan menyiapkan data pelatihan.
- Membuat dan menerapkan 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 BigQuery DataFrames ML (bigframes.ml.remote atau bigframes.ml.llm), Anda harus mengaktifkan API berikut:
Saat menggunakan model jarak jauh BigQuery DataFrames ML, Anda memerlukan
peran Project IAM Admin (roles/resourcemanager.projectIamAdmin)
jika menggunakan koneksi BigQuery default, atau
peran Browser (roles/browser)
jika menggunakan koneksi yang telah dikonfigurasi sebelumnya. Anda dapat menghindari persyaratan ini dengan
menetapkan opsi bigframes.pandas.options.bigquery.skip_bq_connection_check
ke True, sehingga koneksi (default atau yang telah dikonfigurasi sebelumnya) digunakan
apa adanya tanpa pemeriksaan keberadaan atau izin. 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 Agent Platform User (
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 ingin, sehingga pembuatan koneksi akan dilewati. Akun layanan untuk koneksi default diberi peran Agent Platform User (roles/aiplatform.user) di project.
Membuat pipeline
Anda dapat membuat pipeline ML menggunakan
modul bigframes.ml.pipeline.
Pipeline memungkinkan Anda menyusun 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 pra-pemrosesan data dan estimator secara bersamaan.
Untuk membuat pipeline transformasi dengan estimator akhir, gunakan
class Pipeline.
Memilih model
Untuk membagi set data pelatihan dan pengujian serta memilih model terbaik, gunakan modul
bigframes.ml.model_selection:
Untuk membagi data menjadi set pelatihan dan pengujian (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 guna 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 otomatis membuat set pelatihan dan pengujian multi-fold, melatih dan mengevaluasi model, serta mendapatkan hasil dari 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 BigQuery DataFrames.
- Lihat kode sumber, notebook contoh, dan contoh BigQuery DataFrame di GitHub.
- Pelajari referensi BigQuery DataFrames API.