生成式 AI 資訊摘要
本文說明 BigQuery 支援的生成式人工智慧 (AI) 函式。這些函式會接受自然語言輸入內容,並使用預先訓練的 Vertex AI 模型和內建 BigQuery 模型。
BigQuery 提供多種 AI 函式,可協助您執行下列工作:
- 生成創意內容。
- 分析文字或非結構化資料 (例如圖片)、偵測情緒,以及回答相關問題。
- 總結內容傳達的主要想法或印象。
- 從文字中擷取結構化資料。
- 將文字或非結構化資料分類至使用者定義的類別。
- 生成嵌入內容,搜尋相似的文字、圖片和影片。
- 根據品質、相似度或其他條件,為輸入內容評分並排序。
AI 函式會歸入下列類別,協助您完成這些工作:
一般用途的 AI 函式:這些函式可讓您完全掌控並清楚瞭解所選用的模型、提示和參數。
執行大型語言模型推論,例如回答資料相關問題
AI.GENERATE是最彈性的推論函式,可讓您分析任何結構化或非結構化資料。AI.GENERATE_TEXT是AI.GENERATE的值為資料表版本,也支援合作夥伴模型和開放式模型。
生成結構化輸出內容,例如從文字、文件或圖片中擷取名稱、地址或物件說明。
AI.GENERATE,指定輸出內容結構定義時。AI.GENERATE_TABLE是AI.GENERATE的表值版本,可呼叫遠端模型並指定自訂輸出結構定義。- 如果輸出結構定義只有一個欄位,可以使用下列其中一個專用函式:
AI.GENERATE_BOOL、AI.GENERATE_DOUBLE或AI.GENERATE_INT。
生成嵌入項目,用於語意搜尋和叢集
AI.EMBED:從文字或圖片資料建立嵌入。AI.GENERATE_EMBEDDING:這個函式會將內嵌文字、圖片、音訊、影片或文件資料的資料欄新增至資料表。
受管理 AI 函式:這些函式採用簡化語法,並經過最佳化,可降低成本及提升品質。使用最佳化模式 (預覽版) 時,這些函式可擴充至數百萬或數十億列。
使用自然語言條件篩選資料
AI.IF
評估輸入內容,例如品質或情緒
AI.SCORE
將輸入內容分類到使用者定義的類別
AI.CLASSIFY
工作專屬函式:這些函式會使用 Cloud AI API 協助您執行自然語言處理、機器翻譯、文件處理、音訊轉錄和電腦視覺等工作。
一般用途 AI 函式
通用型 AI 函式可讓您完全掌控並清楚瞭解要使用的模型、提示和參數。輸出內容包含模型呼叫的詳細資訊,包括狀態和完整模型回應,其中可能包含安全評分或引文資訊。
執行 LLM 推論
AI.GENERATE 函式是彈性的推論函式,可將要求傳送至 Vertex AI Gemini 模型,並傳回該模型的回覆。你可以使用這項功能分析文字、圖片、音訊、影片或 PDF 資料。舉例來說,您可以分析居家擺設的圖片,為 design_type 欄生成文字,讓擺設 SKU 具有相關聯的說明,例如 mid-century modern 或 farmhouse。
您可以在 BigQuery ML 中使用遠端模型,透過 AI.GENERATE_TEXT 表格值函式參照部署至或託管於 Vertex AI 的模型,執行生成式 AI 工作。您可以使用下列類型的遠端模型:
透過任何正式發布或預先發布版 Gemini 模型分析標準資料表或物件資料表中的文字、圖片、音訊、影片或 PDF 內容,並以您提供的提示詞做為函式引數。
透過 Anthropic Claude、Mistral AI 或 Llama 合作夥伴模型,或支援的開放式模型,分析您在查詢中提供的提示詞,或標準資料表中資料欄的提示詞。
如要在 BigQuery ML 中試用文字生成功能,請參閱下列主題:
- 使用 Gemini 模型和
AI.GENERATE_TEXT函式生成文字。 - 使用 Gemma 模型和
AI.GENERATE_TEXT函式生成文字。 - 使用 Gemini 模型分析圖片。
- 使用
AI.GENERATE_TEXT函式和資料生成文字。 - 使用資料調整模型。
部分模型可選擇設定監督式調整,讓您使用自己的資料訓練模型,使其更符合您的用途。所有推論作業都會在 Vertex AI 中進行。 結果會儲存在 BigQuery 中。
生成結構化資料
生成結構化資料與生成文字非常相似,但您可以指定 SQL 結構定義,設定模型回覆的格式。舉例來說,您可能會從電話通話記錄產生資料表,其中包含顧客姓名、電話號碼、地址、要求和報價。
您可以透過下列方式產生結構化資料:
AI.GENERATE函式會呼叫 Vertex AI 端點,並使用自訂結構定義產生STRUCT值。如要試用,請參閱這篇文章,瞭解如何呼叫
AI.GENERATE函式時使用結構化輸出。AI.GENERATE_TABLE函式會呼叫遠端模型,並以資料表值函式產生具有自訂結構定義的資料表。如要試著建立結構化資料,請參閱「使用
AI.GENERATE_TABLE函式產生結構化資料」。如為單一輸出欄位,您可以使用下列其中一個專用推論函式:
生成嵌入項目
嵌入是指高維度數值向量,代表特定實體,例如一段文字或音訊檔案。產生嵌入內容後,您就能以更容易推論及比較資料的方式,擷取資料的語意。
以下是生成嵌入內容的常見用途:
- 使用檢索增強生成 (RAG) 技術,從可信來源參照額外資料,增強模型對使用者查詢的回覆。RAG 可提供更準確的事實資訊和一致的回覆內容,並存取比模型訓練資料更新的資料。
- 執行多模態搜尋。例如,使用文字輸入搜尋圖片。
- 執行語意搜尋,找出類似項目,用於推薦、替代和記錄重複資料刪除。
- 建立嵌入,以便搭配 k-means 模型進行分群。
如要進一步瞭解如何產生嵌入項目,並使用這些項目執行上述工作,請參閱「嵌入項目和向量搜尋簡介」。
代管 AI 函式
代管 AI 函式可簡化篩選、分類或匯總等例行工作。這些函式可以分析文字、圖片、音訊、影片或 PDF 資料。這些功能會使用 Gemini,不需要自訂。BigQuery 會使用提示工程,並選取適合特定工作的模型和參數,以提升結果的品質和一致性。每個函式都會傳回純量值,例如 BOOL、FLOAT64 或 STRING,且不包含模型的其他狀態資訊。下列代管 AI 函式可供使用:
AI.IF: 根據提示篩選文字或多模態資料,例如WHERE或JOIN子句。舉例來說,你可以篩選產品說明,找出適合當禮物的商品。AI.SCORE:根據提示評估輸入內容,依據品質、相似度或其他條件排列資料列。您可以在ORDER BY子句中使用此函式,根據分數擷取前 K 個項目。舉例來說,您可以找出產品最正面或負面的前 10 則使用者評論。AI.CLASSIFY:將文字分類至使用者定義的類別。您可以在GROUP BY子句中使用這個函式,根據您定義的類別將輸入內容分組。舉例來說,你可以根據支援單是否與帳單、運送、產品品質或其他事項相關,將支援單分類。
如需這些函式的使用範例教學課程,請參閱「使用受管理 AI 函式執行語意分析」。
如需筆記本教學課程,瞭解如何使用受管理和一般用途的 AI 函式,請參閱「使用 AI 函式進行語意分析」。
特定工作的函式
除了前幾節中介紹的較一般函式之外,您還可以使用 Cloud AI API,在 BigQuery ML 中開發特定工作專用的解決方案。支援的任務包括:
詳情請參閱「工作專屬解決方案總覽」。
位置
文字生成和嵌入模型支援的地點會因您使用的模型類型和版本而異。詳情請參閱「位置」。
定價
您需要為用來對模型執行查詢的運算資源付費。遠端模型會呼叫 Vertex AI 模型,因此對遠端模型發出的查詢也會產生 Vertex AI 費用。
詳情請參閱「BigQuery ML 定價」一文。
追蹤費用
BigQuery 中的生成式 AI 函式會將要求傳送至 Vertex AI,這可能會產生費用。如要追蹤在 BigQuery 中執行的工作所產生的 Vertex AI 費用,請按照下列步驟操作:
- 在 Cloud Billing 中查看帳單報表。
使用篩選器縮小結果範圍。
選取「Vertex AI」服務。
如要查看特定作業的費用,請依標籤篩選。
將索引鍵設為
bigquery_job_id_prefix,並將值設為工作的工作 ID。如果工作 ID 長度超過 63 個字元,請只使用前 63 個字元。如果工作 ID 含有大寫字元,請改為小寫。或者,你也可以將工作與自訂標籤建立關聯,方便日後搜尋。
部分費用最多可能需要 24 小時才會顯示在 Cloud Billing 中。
監控
如要進一步瞭解您在 BigQuery 中呼叫的 AI 函式行為,可以啟用要求和回應記錄。如要記錄傳送至 Vertex AI 和從 Vertex AI 接收的整個要求和回應,請按照下列步驟操作:
在 Vertex AI 中啟用要求/回應記錄。記錄檔會儲存在 BigQuery 中。 您必須分別為每個基礎模型和區域啟用記錄功能。如要記錄在
us區域執行的查詢,請在要求中指定us-central1區域。如要記錄在eu區域執行的查詢,請在要求中指定europe-west4區域。使用 AI 函式執行查詢,透過您在上一個步驟中啟用記錄的模型,呼叫 Vertex AI。
如要查看完整的 Vertex AI 要求和回應,請查詢記錄資料表,找出
full_request欄的labels.bigquery_job_id_prefix欄位與工作 ID 前 63 個字元相符的資料列。您也可以選擇使用自訂查詢標籤,方便在記錄中查詢。舉例來說,您可以使用類似下列的查詢:
SELECT * FROM `my_project.my_dataset.request_response_logging` WHERE JSON_VALUE(full_request, '$.labels.bigquery_job_id_prefix') = 'bquxjob_123456...';
錯誤管理
如果 AI 函式超出遠端服務的配額或限制,可能會發生 RESOURCE_EXHAUSTED 等資料列層級的錯誤。如果發生資料列層級的錯誤,函式會針對該資料列傳回 NULL,導致查詢結果不完整。
所有 AI 功能都可能發生這些錯誤。不過,代管 AI 函式 (AI.IF、AI.CLASSIFY 和 AI.SCORE) 支援 max_error_ratio 引數,可協助您管理這些函式。使用這個引數設定失敗門檻,允許查詢在發生資料列層級的失敗時仍可成功。
max_error_ratio 的預設值為 1.0。如要降低錯誤容許度,請將值設為較小的值 (例如 0.2),這樣查詢就會失敗,而不是部分失敗但仍成功。如需語法詳細資料,請參閱 AI.IF、AI.CLASSIFY 或 AI.SCORE 的參考說明文件。
如果查詢成功,但有部分失敗,BigQuery 會傳回警告。如要進一步瞭解函式錯誤,請在 Google Cloud 控制台的查詢結果中,查看「Job information」(工作資訊) 分頁的「Gen AI function errors」(生成式 AI 函式錯誤) 欄位。
如果查詢包含 LIMIT 子句,系統會在模型處理一批資料列後套用限制。因此,最終結果集中 NULL 值的比例可能會高於指定的 max_error_ratio。
舉例來說,假設您的查詢包含 LIMIT 10 子句和 max_error_ratio 的 0.2。模型可能會先處理 20 列,再套用限制。如果這 20 列中有 3 列失敗,錯誤率為 0.15 (15%),低於 20% 的門檻。不過,如果 LIMIT 子句選取的資料列子集剛好包含所有 3 個失敗的資料列,則顯示的輸出內容會包含 30% 的 NULL 值。
後續步驟
- 如要瞭解 BigQuery 中的 AI 和 ML,請參閱「簡介:在 BigQuery 使用 AI 與機器學習」。
- 如要進一步瞭解如何對機器學習模型執行推論,請參閱模型推論總覽。
- 如要進一步瞭解生成式 AI 模型支援的 SQL 陳述式和函式,請參閱生成式 AI 模型的端對端使用者歷程。