Menggunakan ML dan AI dengan BigQuery DataFrames
BigQuery DataFrames menyediakan kemampuan ML dan AI untuk BigQuery DataFrames menggunakan library bigframes.ml.
Anda dapat melakukan prapemrosesan data, membuat estimator untuk melatih model di BigQuery DataFrames, membuat pipeline ML, dan membagi 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 (
-
Menggunakan 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 ML BigQuery dan fungsi ML lainnya didukung di semua region BigQuery. Dukungan untuk pelatihan model bervariasi menurut region. Untuk mengetahui informasi selengkapnya, lihat
Lokasi BigQuery ML.
Melakukan prapemrosesan data
Buat transformer untuk menyiapkan data agar dapat 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 the
KBinsDiscretizerclass in thebigframes.ml.preprocessingmodule.Untuk menormalkan label target sebagai nilai bilangan bulat, gunakan the
LabelEncoderclass in thebigframes.ml.preprocessingmodule.Untuk menskalakan setiap fitur ke rentang
[-1, 1]berdasarkan nilai absolut maksimumnya, gunakan classMaxAbsScalerdi modulbigframes.ml.preprocessing.Untuk menstandarkan fitur dengan menskalakan setiap fitur ke rentang
[0, 1], gunakan classMinMaxScalerdi modulbigframes.ml.preprocessing.Untuk menstandarkan fitur dengan menghapus mean dan menskalakan ke varians unit, gunakan
StandardScalerclass di modulbigframes.ml.preprocessing.Untuk mengubah nilai kategori ke dalam format numerik, gunakan the
OneHotEncoderclass in thebigframes.ml.preprocessingmodule.Untuk menerapkan transformer ke kolom DataFrames, 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 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 PCA
class. 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 ansambel 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 pohon yang ditingkatkan gradien, gunakan class
XGBClassifier. Gunakan model ini untuk membuat beberapa pohon keputusan metode pembelajaran untuk klasifikasi secara aditif.Untuk membuat model regresi pohon yang ditingkatkan gradien, gunakan class
XGBRegressor. Gunakan model ini untuk membuat beberapa pohon keputusan metode pembelajaran untuk regresi secara aditif.
Model prakiraan
Anda dapat membuat estimator untuk model prakiraan menggunakan modul
bigframes.ml.forecasting.
Untuk membuat model prakiraan deret waktu, gunakan the
ARIMAPlus class.
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 the
XGBoostModelclass.
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 prakiraan, 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
bigframes.ml.llmmodul.
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. 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
Vertex AI 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 digunakan. Anda dapat menggunakan koneksi BigQuery yang telah dikonfigurasi sebelumnya jika mau. 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
bigframes.ml.pipeline modul.
Pipeline memungkinkan Anda 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 prapemrosesan 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
bigframes.ml.model_selection modul
modul:
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-lipatan 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 membuat set pelatihan dan pengujian multi-lipatan secara otomatis, melatih dan mengevaluasi model, serta mendapatkan hasil setiap lipatan, seperti yang ditunjukkan dalam contoh kode berikut, gunakan fungsi
cross_validate:scores = cross_validate(model, X, y, cv=5)
Langkah berikutnya
- Pelajari tentang 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 DataFrames di GitHub.
- Jelajahi referensi BigQuery DataFrames API.