Menggunakan BigQuery DataFrames
BigQuery DataFrames menyediakan DataFrame Pythonic dan API machine learning (ML) yang didukung oleh mesin BigQuery. BigQuery DataFrames adalah paket open source.
Anda dapat menjalankan pip install --upgrade bigframes
untuk menginstal versi terbaru.
BigQuery DataFrames menyediakan dua library:
bigframes.pandas
, yang menyediakan API yang kompatibel dengan pandas untuk analisis.bigframes.ml
, yang menyediakan API seperti scikit-learn untuk machine learning (ML).
Izin yang diperlukan
- Anda harus memiliki peran BigQuery Job User dan BigQuery Read Session User untuk menggunakan DataFrame BigQuery.
- Saat Anda melakukan autentikasi pengguna akhir di lingkungan interaktif seperti notebook, REPL Python, atau command line, BigQuery DataFrames akan meminta autentikasi jika diperlukan. Jika tidak, lihat cara menyiapkan kredensial default aplikasi untuk berbagai lingkungan.
- Persyaratan Identity and Access Management (IAM) tambahan berlaku untuk menggunakan fungsi jarak jauh dan model jarak jauh ML.
-
Untuk menggunakan BigQuery DataFrames di notebook BigQuery, Anda memerlukan peran IAM berikut:
Opsi
Setelah penginstalan, Anda perlu menentukan lokasi dan project tempat Anda ingin menggunakan DataFrame BigQuery. Anda dapat menentukan lokasi dan project di notebook dengan cara berikut:Jika bf.options.bigquery.project
tidak ditetapkan, variabel lingkungan $GOOGLE_CLOUD_PROJECT
akan digunakan, yang ditetapkan di runtime notebook yang menayangkan notebook BigQuery Studio dan Vertex AI.
Lokasi pemrosesan data
BigQuery DataFrames dirancang untuk skala, yang dicapai dengan menyimpan data dan pemrosesan di layanan BigQuery. Namun, Anda dapat memasukkan data ke dalam
memori mesin klien dengan memanggil .to_pandas()
pada
objek DataFrame atau Series. Jika Anda memilih untuk melakukannya, batasan memori
mesin klien akan berlaku.
Lokasi sesi
BigQuery DataFrames menggunakan objek sesi lokal untuk mengelola metadata secara internal. Sesi ini
terikat dengan lokasi.
BigQuery DataFrames menggunakan multi-region US
sebagai lokasi default, tetapi Anda dapat menggunakan session_options.location
untuk menetapkan lokasi lain. Setiap kueri
dalam sesi dijalankan di lokasi tempat sesi dibuat.
BigQuery DataFrames mengisi bf.options.bigquery.location
secara otomatis dengan lokasi tabel jika pengguna memulai dengan read_gbq/read_gbq_table/read_gbq_query()
dan menentukan tabel, baik secara langsung maupun dalam pernyataan SQL.
Jika ingin mereset lokasi objek DataFrame atau Series yang dibuat,
Anda dapat menutup sesi dengan menjalankan bigframes.pandas.close_session()
.
Setelah itu, Anda dapat menggunakan kembali bigframes.pandas.options.bigquery.location
untuk
menentukan lokasi lain.
read_gbq()
mengharuskan Anda menentukan lokasi jika set data yang Anda kueri tidak berada di multi-region US
. Jika mencoba membaca tabel dari lokasi lain, Anda akan mendapatkan pengecualian NotFound
.
Jenis data
BigQuery DataFrames mendukung jenis data numpy dan pandas berikut:
BigQuery | BigQuery DataFrames dan pandas |
---|---|
ARRAY |
pandas.ArrowDtype(pa.list_()) |
BOOL |
pandas.BooleanDtype() |
DATE |
pandas.ArrowDtype(pa.date32()) |
DATETIME |
pandas.ArrowDtype(pa.timestamp("us")) |
FLOAT64 |
pandas.Float64Dtype() |
GEOGRAPHY |
Didukung oleh |
INT64 |
pandas.Int64Dtype() |
STRING |
pandas.StringDtype(storage="pyarrow") |
STRUCT |
pandas.ArrowDtype(pa.struct()) |
TIME |
pandas.ArrowDtype(pa.time64("us")) |
TIMESTAMP |
pandas.ArrowDtype(pa.timestamp("us", tz="UTC")) |
BigQuery DataFrames tidak mendukung jenis data BigQuery berikut:
NUMERIC
BIGNUMERIC
INTERVAL
RANGE
JSON
Semua jenis data BigQuery lainnya ditampilkan sebagai jenis objek.
Mode pengurutan sebagian
BigQuery DataFrame menyediakan fitur mode pengurutan. Tetapkan ordering_mode
ke partial
untuk menghasilkan kueri yang lebih efisien.
Mode pengurutan partial
kontras dengan mode strict
default,
yang membuat pengurutan total di semua baris. Pengurutan total membuat DataFrame BigQuery lebih
kompatibel dengan pandas dengan memberikan akses berbasis urutan ke baris dengan properti
DataFrame.iloc
. Namun, pengurutan total dan indeks berurutan default pada pengurutan tersebut berarti bahwa
filter kolom maupun filter baris tidak mengurangi jumlah byte yang dipindai, kecuali jika filter tersebut
diterapkan sebagai parameter ke fungsi read_gbq
dan read_gbq_table
. Untuk
memberikan pengurutan total pada semua baris dalam DataFrame, BigQuery DataFrames membuat
hash dari semua baris. Hal ini dapat menyebabkan pemindaian data lengkap yang mengabaikan filter baris dan kolom.
Menetapkan properti ordering_mode
ke partial
akan menghentikan
DataFrame BigQuery membuat pengurutan total di semua baris. Mode pengurutan
parsial juga menonaktifkan fitur yang memerlukan pengurutan total di semua baris, seperti
properti DataFrame.iloc
. Mode pengurutan parsial menetapkan
DefaultIndexKind
ke indeks null, bukan ke indeks berurutan berdasarkan pengurutan.
Saat memfilter DataFrame dengan ordering_mode
ditetapkan ke
partial
, DataFrame BigQuery tidak perlu lagi menghitung baris mana
yang tidak ada dalam indeks berurutan, sehingga menghasilkan kueri yang lebih cepat dan lebih efisien. BigQuery DataFrames API masih mirip dengan pandas, seperti pengalaman default dengan mode pengurutan ketat. Namun, mode pengurutan parsial akan berbeda dengan perilaku pandas umum—misalnya, mode pengurutan parsial tidak melakukan join implisit menurut indeks.
Dengan mode pengurutan parsial dan ketat, Anda membayar resource BigQuery yang digunakan. Namun, menggunakan mode pengurutan sebagian dapat mengurangi biaya saat menggunakan tabel berkelompok dan/atau berpartisi yang besar, karena filter baris pada kolom cluster dan partisi mengurangi jumlah byte yang diproses.
Penggunaan
Untuk menggunakan pengurutan sebagian, tetapkan ordering_mode
ke partial
sebelum melakukan
operasi lain dengan BigQuery DataFrames, seperti yang ditunjukkan dalam contoh kode berikut:
import bigframes.pandas as bdp bpd.options.bigquery.ordering_mode = "partial"
Karena tidak ada indeks berurutan dengan mode pengurutan parsial, BigQuery DataFrames yang tidak terkait tidak digabungkan secara implisit. Sebagai gantinya, Anda harus memanggil metode DataFrame.merge
secara eksplisit untuk menggabungkan dua DataFrame BigQuery yang berasal dari ekspresi tabel yang berbeda.
Fitur Series.unique()
dan Series.drop_duplicates()
tidak
kompatibel dengan mode pengurutan sebagian. Sebagai gantinya, gunakan metode groupby
untuk menemukan nilai unik dengan cara ini:
unique_col = df.groupby(["column"], as_index=False).size().drop(columns="size")
Dengan mode pengurutan sebagian, output fungsi DataFrame.head(n)
dan
Series.head(n)
tidak dijamin idempoten di semua pemanggilan.
Untuk mendownload sampel data arbitrer yang kecil, gunakan metode DataFrame.peek()
atau
Series.peek()
.
Untuk tutorial mendetail tentang penggunaan properti ordering_mode = "partial"
, lihat notebook BigQuery DataFrames ini yang menunjukkan penggunaan mode pengurutan sebagian.
Pemecahan masalah
Error pesanan wajib
Beberapa fitur memerlukan pengurutan, seperti fungsi DataFrame.head()
dan
DataFrame.iloc
. Untuk daftar fitur yang memerlukan pengurutan, lihat kolom
Memerlukan pengurutan di
API pandas yang didukung.
Jika tidak ada pengurutan pada objek, operasi akan gagal dengan pesan OrderRequiredError
seperti berikut:
OrderRequiredError: Op iloc requires an ordering. Use .sort_values or .sort_index
to provide an ordering.
Seperti yang dijelaskan pesan error, Anda dapat memberikan pengurutan menggunakan metode DataFrame.sort_values()
untuk mengurutkan menurut satu atau beberapa kolom. Operasi lain, seperti operasi DataFrame.groupby()
, secara implisit memberikan pengurutan total atas grup menurut kunci.
Jika pengurutan tidak dapat ditentukan sebagai pengurutan total yang sepenuhnya stabil di semua
baris, operasi berikutnya mungkin memperingatkan Anda dengan pesan AmbiguousWindowWarning
seperti
berikut:
AmbiguousWindowWarning: Window ordering may be ambiguous, this can cause unstable
results.
Jika beban kerja Anda dapat mengakomodasi hasil non-deterministik atau Anda dapat memverifikasi secara manual bahwa
urutan yang Anda berikan adalah urutan total, Anda dapat memfilter pesan AmbiguousWindowWarning
dengan cara ini:
import warnings import bigframes.exceptions warnings.simplefilter("ignore", category=bigframes.exceptions.AmbiguousWindowWarning)
Error indeks null
Beberapa fitur memerlukan indeks, seperti properti DataFrame.unstack()
dan
Series.interpolate()
.Untuk daftar fitur yang memerlukan indeks, lihat
kolom Memerlukan indeks di
API pandas yang didukung.
Saat Anda menggunakan operasi yang memerlukan indeks dengan mode pengurutan parsial, operasi tersebut akan menampilkan pesan NullIndexError
seperti berikut:
NullIndexError: DataFrame cannot perform interpolate as it has no index. Set an index using
set_index.
Seperti yang dijelaskan pesan error, Anda dapat memberikan indeks menggunakan metode DataFrame.set_index()
untuk mengurutkan menurut satu atau beberapa kolom. Operasi lain, seperti operasi
DataFrame.groupby()
, secara implisit memberikan indeks di seluruh grup berdasarkan kunci, kecuali jika parameter as_index=False
ditetapkan.
Menggunakan library bigframes.pandas
Library bigframes.pandas
menyediakan API seperti pandas yang dapat Anda gunakan untuk menganalisis dan memanipulasi data di BigQuery. bigframes.pandas
API bersifat skalabel untuk mendukung pemrosesan terabyte data BigQuery, dan menggunakan mesin kueri BigQuery untuk melakukan penghitungan. Untuk informasi selengkapnya, lihat
API pandas yang didukung.
bigframes.pandas
API menyediakan kemampuan
berikut:
Input dan output
Anda dapat mengakses data dari berbagai sumber, termasuk file CSV lokal, file Cloud Storage, DataFrame pandas
, model BigQuery, dan fungsi BigQuery, lalu memuat data tersebut ke dalam DataFrame BigQuery DataFrames. Anda juga dapat membuat
tabel BigQuery dari DataFrame BigQuery.
Manipulasi data
Anda dapat menggunakan Python, bukan SQL, untuk pengembangan. Anda dapat mengembangkan semua
manipulasi data BigQuery di Python, sehingga tidak perlu beralih antara
bahasa dan mencoba mengambil pernyataan SQL sebagai string teks. bigframes.pandas
API menawarkan lebih dari 750 fungsi pandas
.
Ekosistem dan visualisasi Python
bigframes.pandas
API adalah gateway ke ekosistem alat
Python lengkap. API ini mendukung operasi statistik lanjutan, dan Anda dapat memvisualisasikan agregasi yang dihasilkan dari BigQuery DataFrame. Anda juga dapat
beralih dari DataFrame BigQuery DataFrames ke DataFrame pandas
dengan
operasi sampling bawaan.
Fungsi Python kustom
BigQuery DataFrames memberi Anda kemampuan untuk mengubah fungsi skalar kustom menjadi fungsi jarak jauh BigQuery . Membuat fungsi 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. Jika demikian, pembuatan koneksi akan dilewati.Akun layanan untuk koneksi default diberi peran IAM Cloud Run Invoker (
roles/run.invoker
).Fungsi jarak jauh BigQuery yang menggunakan fungsi cloud (1) menggunakan koneksi BigQuery (2).
Untuk mengetahui contohnya, lihat Membuat fungsi jarak jauh.
Koneksi BigQuery dibuat di lokasi yang sama dengan sesi BigQuery DataFrames, menggunakan nama yang Anda berikan dalam definisi fungsi kustom. Untuk melihat dan mengelola koneksi, lakukan tindakan berikut:
Pilih project tempat Anda membuat fungsi jarak jauh.
Di panel Penjelajah, luaskan project tersebut, lalu luaskan Koneksi eksternal.
Fungsi jarak jauh BigQuery dibuat di set data yang Anda tentukan, atau di set data anonim, yaitu jenis set data tersembunyi. Jika Anda tidak menetapkan nama untuk fungsi jarak jauh selama pembuatannya, BigQuery DataFrames akan menerapkan nama default yang dimulai dengan awalan bigframes
. Untuk melihat dan mengelola fungsi jarak jauh yang dibuat dalam set data yang ditentukan pengguna, lakukan tindakan berikut:
Pilih project tempat Anda membuat fungsi jarak jauh.
Di panel Penjelajah, luaskan project tersebut, luaskan set data tempat Anda membuat fungsi jarak jauh, lalu luaskan Rutinitas.
Untuk melihat dan mengelola fungsi Cloud Run, gunakan halaman Functions dan gunakan pemilih project untuk memilih project tempat Anda membuat fungsi. Untuk memudahkan identifikasi, nama fungsi yang dibuat oleh BigQuery DataFrame diawali dengan bigframes
.
Anda dapat membersihkan fungsi jarak jauh BigQuery yang tidak bernama dan fungsi Cloud Run terkait dengan cara berikut:
- Untuk
session
BigQuery DataFrames, gunakansession.close()
. - Untuk sesi BigQuery DataFrames default, gunakan
bigframes.pandas.close_session()
. - Untuk sesi sebelumnya dengan
session_id
, gunakanbigframes.pandas.clean_up_by_session_id(session_id)
.
Persyaratan
Untuk menggunakan fungsi jarak jauh BigQuery DataFrames, Anda harus mengaktifkan API berikut:
BigQuery API (
bigquery.googleapis.com
)BigQuery Connection API (
bigqueryconnection.googleapis.com
)Cloud Functions API (
cloudfunctions.googleapis.com
)Cloud Run Admin API (
run.googleapis.com
)Artifact Registry API (
artifactregistry.googleapis.com
)Cloud Build API (
cloudbuild.googleapis.com
)Compute Engine API (
compute.googleapis.com
)Cloud Resource Manager API (
cloudresourcemanager.googleapis.com
)Anda dapat menghindari persyaratan ini dengan menetapkan opsi
bigframes.pandas.options.bigquery.skip_bq_connection_check
keTrue
. Dalam hal ini, koneksi (default atau yang telah dikonfigurasi sebelumnya) digunakan apa adanya tanpa memeriksa keberadaan koneksi atau memverifikasi izinnya.
Untuk menggunakan fungsi jarak jauh BigQuery DataFrames, Anda harus diberi peran IAM berikut dalam project:
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
)Project IAM Admin (
roles/resourcemanager.projectIamAdmin
) jika menggunakan koneksi BigQuery default, atau Browser (peran/browser) jika menggunakan koneksi yang telah dikonfigurasi sebelumnya. Persyaratan ini dapat dihindari dengan menetapkan opsibigframes.pandas.options.bigquery.skip_bq_connection_check
keTrue
, dengan demikian koneksi (default atau yang telah dikonfigurasi sebelumnya) akan digunakan apa adanya tanpa pemeriksaan izin atau keberadaan. Jika Anda menggunakan koneksi yang telah dikonfigurasi sebelumnya dan melewati pemeriksaan koneksi, pastikan koneksi dibuat di lokasi yang tepat dan akun layanannya memiliki peran Cloud Run Invoker (roles/run.invoker
) di project.
Batasan
Fungsi jarak jauh memerlukan waktu sekitar 90 detik untuk tersedia saat Anda pertama kali membuatnya.
Perubahan sepele di notebook, seperti menyisipkan sel baru atau mengganti nama variabel, dapat menyebabkan fungsi jarak jauh dibuat ulang, meskipun perubahan ini tidak terkait dengan kode fungsi jarak jauh.
BigQuery DataFrames tidak membedakan data pribadi apa pun yang Anda sertakan dalam kode fungsi jarak jauh. Kode fungsi jarak jauh diserialisasi sebagai kotak buram untuk men-deploynya sebagai fungsi Cloud Run Functions.
Fungsi Cloud Run (generasi ke-2), koneksi BigQuery, dan fungsi jarak jauh BigQuery yang dibuat oleh BigQuery DataFrames akan tetap ada di Google Cloud. Jika tidak ingin mempertahankan resource ini, Anda harus menghapusnya secara terpisah menggunakan fungsi Cloud Run atau antarmuka BigQuery yang sesuai.
Sebuah project dapat memiliki hingga 1.000 fungsi Cloud Run (generasi ke-2) sekaligus. Lihat Kuota fungsi Cloud Run untuk semua batas.
bigframes.pandas
contoh
Contoh berikut menunjukkan cara umum menggunakan bigframes.pandas
.
Memuat data dari tabel atau kueri BigQuery
Anda dapat membuat DataFrame dari tabel atau kueri BigQuery dengan cara berikut:
Memuat data dari file CSV
Anda dapat membuat DataFrame dari file CSV lokal atau Cloud Storage dengan cara berikut:
Memeriksa dan memanipulasi data
Anda dapat menggunakan bigframes.pandas
untuk melakukan operasi penghitungan dan
pemeriksaan data.
Contoh kode berikut menunjukkan penggunaan bigframes.pandas
untuk
memeriksa kolom body_mass_g
, menghitung body_mass
rata-rata, dan menghitung body_mass
rata-rata menurut
species
:
Menggunakan library bigframes.ml
Kemampuan ML di BigQuery DataFrames memungkinkan Anda memproses data terlebih dahulu, lalu melatih model pada data tersebut. Anda juga dapat menggabungkan tindakan ini untuk membuat pipeline data.
Lokasi ML
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 wilayah. Untuk mengetahui informasi selengkapnya, lihat Lokasi BigQuery ML.
Melakukan prapemrosesan data
Buat pengubah untuk menyiapkan data agar dapat digunakan dalam estimator (model) dengan menggunakan modul bigframes.ml.preprocessing dan modul bigframes.ml.compose. DataFrame BigQuery menawarkan transformasi berikut:
Gunakan class KBinsDiscretizer dalam modul
bigframes.ml.preprocessing
untuk mengelompokkan data berkelanjutan ke dalam interval.Gunakan class LabelEncoder dalam modul
bigframes.ml.preprocessing
untuk menstandarkan label target sebagai nilai bilangan bulat.Gunakan class MaxAbsScaler dalam modul
bigframes.ml.preprocessing
untuk menskalakan setiap fitur ke rentang[-1, 1]
berdasarkan nilai absolut maksimumnya.Gunakan class MinMaxScaler dalam modul
bigframes.ml.preprocessing
untuk menstandarkan fitur dengan menskalakan setiap fitur ke rentang[0, 1]
.Gunakan class StandardScaler di modul
bigframes.ml.preprocessing
untuk menstandarkan fitur dengan menghapus rata-rata dan penskalaan ke varian unit.Gunakan class OneHotEncoder dalam modul
bigframes.ml.preprocessing
untuk mengubah nilai kategoris menjadi format numerik.Gunakan class ColumnTransformer di modul
bigframes.ml.compose
untuk menerapkan pengubah ke kolom DataFrames.
Melatih model
Membuat estimator untuk melatih model di BigQuery DataFrames.
Model pengelompokan
Buat estimator untuk model pengelompokan menggunakan modul bigframes.ml.cluster.
- Gunakan class KMeans untuk membuat model pengelompokan K-means. 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
Buat estimator untuk model dekomposisi menggunakan modul bigframes.ml.decomposition.
- Gunakan class PCA untuk membuat model analisis komponen utama (PCA). Gunakan model ini untuk menghitung komponen utama dan menggunakannya untuk melakukan perubahan dasar pada data. Analisis ini 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 ensemble
Buat estimator untuk model ensemble menggunakan modul bigframes.ml.ensemble.
Gunakan class RandomForestClassifier untuk membuat model pengklasifikasi random forest. Gunakan model ini untuk membuat beberapa pohon keputusan metode pembelajaran untuk klasifikasi.
Gunakan class RandomForestRegressor untuk membuat model regresi random forest. Gunakan model ini untuk membuat beberapa pohon keputusan metode pembelajaran untuk regresi.
Gunakan class XGBClassifier untuk membuat model pengklasifikasi boosted tree gradien. Gunakan model ini untuk membuat beberapa pohon keputusan metode pembelajaran secara tambahan untuk klasifikasi.
Gunakan class XGBRegressor untuk membuat model regresi boosted tree gradien. Gunakan model ini untuk membuat beberapa pohon keputusan metode pembelajaran secara tambahan untuk regresi.
Model peramalan
Buat estimator untuk model perkiraan menggunakan modul bigframes.ml.forecasting.
- Gunakan class ARIMAPlus untuk membuat model perkiraan deret waktu.
Model yang diimpor
Buat estimator untuk model yang diimpor menggunakan modul bigframes.ml.imported.
Gunakan class ONNXModel untuk mengimpor model Open Neural Network Exchange (ONNX).
Gunakan class TensorFlowModel untuk mengimpor model TensorFlow.
Gunakan class XGBoostModel untuk mengimpor model XGBoostModel.
Model linear
Buat estimator untuk model linear menggunakan modul bigframes.ml.linear_model.
Gunakan class LinearRegression untuk membuat model regresi linear. Gunakan model ini untuk peramalan. Misalnya, memperkirakan penjualan item pada hari tertentu.
Gunakan class LogisticRegression untuk membuat model regresi logistik. Gunakan model ini untuk klasifikasi dua atau beberapa nilai yang mungkin, seperti apakah inputnya
low-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
Buat estimator untuk LLM menggunakan modul bigframes.ml.llm.
Gunakan class GeminiTextGenerator untuk membuat model generator teks Gemini. Gunakan model ini untuk tugas pembuatan teks.
Gunakan class PaLM2TextGenerator untuk membuat model generator teks PaLM2. Gunakan model ini untuk tugas pembuatan teks.
Gunakan class PaLM2TextEmbeddingGenerator untuk membuat model generator embedding teks PaLM2. Gunakan model ini untuk tugas pembuatan penyematan teks.
Anda dapat menggunakan modul bigframes.ml.llm
untuk membuat estimator untuk model bahasa besar (LLM) jarak jauh.
Contoh kode berikut menunjukkan penggunaan class bigframes.ml.llm
GeminiTextGenerator
untuk membuat model Gemini guna 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:
- BigQuery API (
bigquery.googleapis.com
) - BigQuery Connection API (
bigqueryconnection.googleapis.com
) - Vertex AI API (
aiplatform.googleapis.com
) - Cloud Resource Manager API (
cloudresourcemanager.googleapis.com
)Anda dapat menghindari persyaratan ini dengan menetapkan opsi
bigframes.pandas.options.bigquery.skip_bq_connection_check
keTrue
. Dalam hal ini, koneksi (default atau yang telah dikonfigurasi sebelumnya) digunakan apa adanya tanpa memeriksa keberadaan koneksi atau memverifikasi izinnya.
Anda juga harus diberi peran IAM berikut dalam project:
- BigQuery Connection Admin (
roles/bigquery.connectionAdmin
) - Admin IAM Project (
roles/resourcemanager.projectIamAdmin
) jika menggunakan koneksi BigQuery default, atau Browser (peran/browser) jika menggunakan koneksi yang telah dikonfigurasi sebelumnya. Persyaratan ini dapat dihindari dengan menetapkan opsibigframes.pandas.options.bigquery.skip_bq_connection_check
keTrue
, sehingga koneksi (default atau yang telah dikonfigurasi sebelumnya) akan digunakan apa adanya tanpa pemeriksaan izin atau keberadaan. Jika Anda menggunakan koneksi yang telah dikonfigurasi sebelumnya dan melewati pemeriksaan koneksi, pastikan koneksi dibuat di lokasi yang tepat dan akun layanannya 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. Jika demikian, pembuatan koneksi akan dilewati. Akun layanan untuk koneksi default diberi peran IAM Vertex AI User (roles/aiplatform.user
).
Membuat pipeline
Buat pipeline ML menggunakan modul bigframes.ml.pipeline. Pipeline memungkinkan Anda menyusun beberapa langkah ML untuk divalidasi silang secara bersamaan sekaligus menetapkan parameter yang berbeda. Hal ini menyederhanakan kode Anda, dan memungkinkan Anda men-deploy langkah prapemrosesan data dan estimator secara bersamaan.
Gunakan class Pipeline untuk membuat pipeline transformasi dengan estimator akhir.