在 BigQuery 中分析多模態資料
本文說明如何使用 BigQuery 功能建立及分析多模態資料。您可以在 BigQuery 中使用 GoogleSQL,也可以透過 BigQuery DataFrames 使用 Python 存取這些功能。
BigQuery 的多模態資料功能可讓您執行下列工作:
- 將儲存在 Cloud Storage 中的非結構化資料,以
ObjectRef值的形式表示,與標準 BigQuery 資料表中的結構化資料整合為另一個資料欄。 - 使用 BigQuery ML 生成式 AI 函式和 Gemini 模型,從多模態資料生成註解、嵌入和純量值。
- 在 BigQuery DataFrames 中建立多模態 DataFrame,並使用 Python 程式庫,從多模態資料生成註解、嵌入和純量值。
如需使用 Cloud de Confiance 控制台的逐步教學課程,請參閱「使用 SQL 和 Python 分析多模態資料」。
優點
BigQuery 的多模態資料功能提供下列優點:
- 可組合性:您可以使用
ObjectRef值,在同一個標準資料表列中儲存及管理結構化和非結構化資料。舉例來說,你可以將產品圖片與其他產品資訊儲存在同一列。您可以使用標準 SQL 函式建立及更新包含ObjectRef值的資料欄,也可以建立ObjectRef值,做為物件轉換動作的輸出內容。 - 在生成式 AI 提示中新增多個非結構化資料:將多個
ObjectRef值新增為生成式 AI 函式的輸入內容。舉例來說,您可以從同一個資料表產生圖片和文字資料的嵌入內容。如要生成文字和純量值,您也可以在傳送至模型的提示中參照多個物件。舉例來說,您可以建立提示,要求模型根據產品圖片和屬性生成產品說明。 - 保留區塊順序:您可以將物件分塊,然後將區塊儲存為標準資料表資料欄中的
ObjectRef值陣列,藉此保留區塊順序。舉例來說,您可以剖析影片中的圖片,然後將這些圖片儲存為ObjectRef值陣列,讓圖片維持在原始影片中的順序。
ObjectRef 個值
ObjectRef 值是使用 ObjectRef 結構定義的 STRUCT 值。您可以建立使用此格式的 STRUCT 或 ARRAY<STRUCT> 資料欄,將 Cloud Storage 物件中繼資料和相關聯的授權者儲存在 BigQuery 標準資料表中。授權者值會識別 BigQuery 用來存取 Cloud Storage 物件的Cloud 資源連結。如果將授權者設為 NULL,BigQuery 會使用您的使用者憑證。
如要將非結構化資料整合到標準表格中,請使用 ObjectRef 值。舉例來說,在產品資料表中,您可以新增包含 ObjectRef 值的資料欄,將產品圖片與其他產品資訊儲存在同一列。
使用下列 GoogleSQL 函式建立及更新 ObjectRef 值:
OBJ.MAKE_REF: 建立包含 Cloud Storage 物件中繼資料的ObjectRef值。OBJ.FETCH_METADATA:擷取部分填入uri和authorizer值的ObjectRef值的 Cloud Storage 中繼資料。
詳情請參閱「使用 ObjectRef 值」。
ObjectRefRuntime 個值
ObjectRefRuntime 值是使用 ObjectRefRuntime 結構定義的 JSON 值。ObjectRefRuntime 值包含用於建立該值的 ObjectRef 值中的 Cloud Storage 物件中繼資料、相關聯的授權者和存取網址。您可以使用存取網址讀取或修改 Cloud Storage 中的物件。
在分析和轉換工作流程中,使用 ObjectRefRuntime 值處理物件資料。ObjectRefRuntime 值中的存取網址最多會在 6 小時後過期,但您可以設定較短的到期時間。如果您在工作流程中將 ObjectRefRuntime 值保留在任何位置,請定期重新整理這項資料。如要保留物件中繼資料,請改為儲存 ObjectRef 值,然後在需要時使用這些值產生 ObjectRefRuntime 值。除非 Cloud Storage 中的基礎物件經過修改,否則不需要重新整理 ObjectRef 值。
使用 OBJ.GET_ACCESS_URL 函式建立 ObjectRefRuntime 值。
生成式 AI 功能
根據 ObjectRef 或 ObjectRefRuntime 輸入內容,使用下列生成式 AI 函式和 Gemini 模型生成文字、嵌入和純量值:
AI.GENERATEAI.GENERATE_TEXTAI.GENERATE_TABLEAI.GENERATE_BOOLAI.GENERATE_DOUBLEAI.GENERATE_INTAI.GENERATE_EMBEDDINGAI.EMBEDAI.SIMILARITYAI.CLASSIFYAI.IFAI.SCORE
在 Python 中處理多模態資料
您可以使用 BigQuery DataFrames 類別和方法,在 Python 中分析多模態資料。
多模態 DataFrame
使用 read_gbq 方法建立整合結構化和非結構化資料的多模態 DataFrame:從物件資料表建立多模態 DataFrame。
如要試用,請參閱 GitHub 上的多模態 DataFrame 教學課程。
生成式 AI 方法
您可以使用下列方法,對多模態資料執行生成式 AI 任務:
predict方法 的GeminiTextGenerator類別: 根據多模態資料生成文字。predict方法MultimodalEmbeddingGenerator類別: 根據多模態資料生成嵌入項目。
物件資料表
您建立的任何新物件表格,都會有 ref 資料欄,其中包含指定物件的 ObjectRef 值。用於建立物件資料表的連線,會用來填入 ref 資料欄中的 authorizer 值。您可以使用 ref 欄位,在標準表格中填入及重新整理 ObjectRef 值。
儲存空間分析資料集
儲存空間分析資料集是連結的 BigQuery 資料集,可供您查詢,以分析及呈現 Cloud Storage 資料。ref 欄包含 ObjectRef 值,可用於分析物件資料和中繼資料。
限制
BigQuery 多模態資料功能有下列限制:
- 如果您未在
ObjectRef值的authorizer欄位中明確指定包含連線的專案名稱,則連線必須存在於包含儲存連線的物件資料表的專案中,或存在於執行參照ObjectRef值的查詢的專案中。 - 在查詢以
ObjectRef值存取物件資料的專案和區域中,Cloud 資源連線不得超過 20 個。 - 除了執行查詢的專案外,您最多可以參照五個專案的
ObjectRef值。
費用
使用多模態資料時,適用下列費用:
- 在標準資料表中以
ObjectRef值形式儲存物件中繼資料,會增加資料表的 BigQuery 儲存費用。 - 對
ObjectRef值執行的查詢會產生 BigQuery 計算費用。 - 從物件轉換建立的新物件會產生 Cloud Storage 費用。
- 您在 BigQuery 中建立及保留的新資料會產生 BigQuery 儲存費用。
- 使用生成式 AI 函數會產生 Vertex AI 費用。
- 在 BigQuery DataFrames 中使用 BigQuery Python UDF,以及多模態 DataFrame 和物件轉換方法,會產生 Python UDF 費用。
詳情請參閱下列定價頁面: