BigQuery 整合

BigQuery 與 Document AI 整合,有助於建構文件分析和生成式 AI 用途。隨著數位轉型速度加快,機構會產生大量文字和其他文件資料,這些資料都蘊含豐富的洞察潛力,可用於支援新型的生成式 AI 用途。為協助您善用這類資料,我們很高興宣布 BigQueryDocument AI 整合,讓您從文件資料中擷取洞察資料,並建構新的大型語言模型 (LLM) 應用程式。

總覽

BigQuery 客戶現在可以建立 Document AI 自訂擷取器,並運用 Google 最先進的基礎模型,根據自己的文件和中繼資料進行自訂。接著,您就能從 BigQuery 叫用這些自訂模型,以安全且受控的方式,透過 SQL 的簡易性和強大功能,從文件中擷取結構化資料。在這個整合前,部分客戶嘗試建構獨立的 Document AI 管道,這需要手動策劃擷取邏輯和結構定義。由於缺乏內建整合功能,因此他們必須自行開發基礎架構,以便同步處理及維持資料一致性。這使得每個文件分析專案都變成需要大量投資的重大工程。有了這項整合功能,客戶現在可以在 BigQuery 中為 Document AI 中的自訂擷取器建立遠端模型,並用於大規模執行文件分析和生成式 AI,開啟以資料為依據的洞察和創新的新紀元。

統一且受控的資料到 AI 體驗

您可以透過三個步驟在 Document AI 中建立自訂擷取器:

  1. 定義您需要從文件中擷取的資料。這稱為 document schema,會與每個自訂擷取器版本一併儲存,可透過 BigQuery 存取。
  2. 視需要提供附註的額外文件,做為擷取內容的樣本。
  3. 根據 Document AI 提供的基礎模型,訓練自訂擷取工具的模型。

除了需要手動訓練的自訂擷取器之外,Document AI 也提供處理器庫中的現成擷取器,可用於處理費用、收據、發票、稅務表單、政府身分證件和許多其他情境。

自訂擷取器準備就緒後,您可以前往 BigQuery Studio,按照下列四個步驟使用 SQL 分析文件:

  1. 使用 SQL 為擷取工具註冊 BigQuery 遠端模型。模型可瞭解上述建立的文書結構定義、叫用自訂擷取器,並剖析結果。
  2. 使用 SQL 為儲存在 Cloud Storage 的文件建立物件資料表。您可以設定資料表層級存取權政策,藉此控管資料表中的非結構化資料,限制使用者存取特定文件的權限,進而限制 AI 系統的隱私權和安全性。
  3. 使用物件資料表上的函式 ML.PROCESS_DOCUMENT,透過對 API 端點進行推論呼叫來擷取相關欄位。您也可以在函式外使用 WHERE 子句,篩除要擷取的文件。這個函式會傳回結構化表格,其中每個欄都是已擷取的欄位。
  4. 將擷取的資料與其他 BigQuery 資料表彙整,結合結構化與非結構化資料,產生業務價值。

以下範例說明使用者體驗:

bigquery-integration-with-document-ai-1

  # Create an object table in BigQuery that maps to the document files stored in Cloud Storage.
  CREATE OR REPLACE EXTERNAL TABLE `my_dataset.document`
  WITH CONNECTION `my_project.us.example_connection`
  OPTIONS (
    object_metadata = 'SIMPLE',
    uris = ['gs://my_bucket/path/*'],
    metadata_cache_mode= 'AUTOMATIC',
    max_staleness= INTERVAL 1 HOUR
  );

  # Create a remote model to register your Doc AI processor in BigQuery.
  CREATE OR REPLACE MODEL `my_dataset.layout_parser`
  REMOTE WITH CONNECTION `my_project.us.example_connection`
  OPTIONS (
    remote_service_type = 'CLOUD_AI_DOCUMENT_V1',   
    document_processor='PROCESSOR_ID'
  );

  # Invoke the registered model over the object table to parse PDF document
  SELECT uri, total_amount, invoice_date
  FROM ML.PROCESS_DOCUMENT(
    MODEL `my_dataset.layout_parser`,
    TABLE `my_dataset.document`,
    PROCESS_OPTIONS => (
      JSON '{"layout_config": {"chunking_config": {"chunk_size": 250}}}')
    )
  WHERE content_type = 'application/pdf';

結果表格

bigquery-integration-with-document-ai-2

文字分析、摘要和其他文件分析用途

從文件中擷取文字後,您可以透過以下幾種方式執行文件分析:

  • 使用 BigQuery ML 執行文字分析:BigQuery ML 支援以各種方式訓練及部署嵌入模型。舉例來說,您可以使用 BigQuery ML 找出客戶在支援電話中的情緒,或將產品意見回饋分類。如果您是 Python 使用者,也可以使用 BigQuery DataFrames 搭配 pandas,以及 scikit-learn 類似的 API 進行資料文字分析。
  • 使用 text-embedding-004 LLM 從分割的文件產生嵌入:BigQuery 有 ML.GENERATE_EMBEDDING 函式,可呼叫 text-embedding-004 模型來產生嵌入。舉例來說,您可以使用 Document AI 擷取顧客意見回饋,並使用 PaLM 2 加以總結,所有操作都會透過 BigQuery SQL 執行。
  • 將文件中繼資料與儲存在 BigQuery 資料表中的其他結構化資料彙整:

舉例來說,您可以使用分割的文件產生嵌入項目,並用於向量搜尋。

# Example 1: Parse the chunked data

CREATE OR REPLACE TABLE docai_demo.demo_result_parsed AS (SELECT
  uri,
  JSON_EXTRACT_SCALAR(json , '$.chunkId') AS id,
  JSON_EXTRACT_SCALAR(json , '$.content') AS content,
  JSON_EXTRACT_SCALAR(json , '$.pageFooters[0].text') AS page_footers_text,
  JSON_EXTRACT_SCALAR(json , '$.pageSpan.pageStart') AS page_span_start,
  JSON_EXTRACT_SCALAR(json , '$.pageSpan.pageEnd') AS page_span_end
FROM docai_demo.demo_result, UNNEST(JSON_EXTRACT_ARRAY(ml_process_document_result.chunkedDocument.chunks, '$')) json)

# Example 2: Generate embedding

CREATE OR REPLACE TABLE `docai_demo.embeddings` AS
SELECT * FROM ML.GENERATE_EMBEDDING(
  MODEL `docai_demo.embedding_model`,
  TABLE `docai_demo.demo_result_parsed`
);

實作搜尋和生成式 AI 用途

從文件中擷取結構化文字後,您可以建立索引,以便針對「大海撈針」查詢進行最佳化,這要歸功於 BigQuery 的搜尋和索引功能,可發揮強大的搜尋功能。這項整合功能也能發揮新的生成式 LLM 應用程式,例如使用 SQL 和自訂 Document AI 模型執行文字檔處理作業,以便進行隱私權篩選、內容安全性檢查和符記分割。擷取的文字與其他中繼資料結合後,可簡化精修大型語言模型所需的訓練語料庫。此外,您還可在受控的企業資料上建立 LLM 用途,這些資料已透過 BigQuery 的嵌入項目產生功能和向量索引管理功能建立基準。只要將這個索引與 Vertex AI 同步,您就能導入檢索增強生成用途,打造更受控且流暢的 AI 體驗。

應用程式範例

使用 Document AI 連接器的範例端對端應用程式:

  • 參閱 GitHub 上的支出報表示範。
  • 閱讀隨附的網誌文章
  • 觀看 Google Cloud 2021 年 Next 大會的深入解析影片