評估搜尋品質

使用 Vertex AI Search 打造搜尋體驗時,您可以透過範例查詢集,評估自訂搜尋應用程式的搜尋結果品質。

您可以評估包含結構化、非結構化和網站資料的自訂搜尋應用程式成效。您無法評估有多個資料儲存庫的應用程式成效。

本頁說明使用評估方法評估搜尋品質的原因、時機和方式。

總覽

本節說明執行搜尋品質評估的原因和時機。 如要瞭解如何評估搜尋品質,請參閱「評估搜尋品質的程序」。

執行評估的原因

評估搜尋品質可提供指標,協助您執行下列工作:

  • 從匯總層級評估搜尋引擎的成效
  • 在查詢層級找出模式,瞭解排名演算法中潛在的偏誤或缺點
  • 比較歷來評估結果,瞭解搜尋設定變更的影響

如需指標清單,請參閱「解讀結果」一文。

何時執行評估

Vertex AI Search 擴充了多項搜尋設定,可提升搜尋體驗。進行下列變更後,即可執行搜尋品質評估:

此外,由於搜尋行為會定期更新,因此您也可以定期執行評估測試。

關於範例查詢集

我們會使用查詢集樣本評估品質。範例查詢集必須符合指定格式,且必須包含具有下列巢狀欄位的查詢項目:

  • 查詢:系統會使用查詢的搜尋結果產生評估指標,並判斷搜尋品質。Google 建議使用一組多樣化的查詢,反映使用者的搜尋模式和行為。
  • 目標:預期會成為範例查詢搜尋結果的文件 URI。如要瞭解結構化、非結構化和網站搜尋應用程式的文件定義,請參閱「文件」一文。

    將目標文件與搜尋回應中擷取的文件進行比較,即可產生成效指標。系統會使用下列兩種技術產生指標:

    • 文件比對:系統會比較目標文件的 URI 與擷取文件的 URI。這會決定搜尋結果中是否包含預期文件。比較期間,評估 API 會嘗試依下列順序擷取下列欄位,並使用第一個可用值將目標與擷取的檔案比對:
    • 頁面比對:在範例目標中加入頁碼時,評估 API 會比較頁面層級的結果。這項設定會決定搜尋回應中是否也引用目標中提及的網頁。您必須啟用擷取式答案,才能啟用網頁層級比對。評估 API 會比對搜尋結果中第一個擷取式答案的網頁。

範例查詢集的目的

針對特定資料存放區的所有搜尋品質評估作業,使用相同的範例查詢集,可確保搜尋品質結果的測量方式一致且可靠。這也有助於建立公平且可重複執行的系統。

系統會比較每次評估的結果與每個樣本查詢的目標結果,計算出各種指標,例如召回率、準確率和正規化折扣累積收益 (NDCG)。這些量化指標可用於評估不同搜尋設定的結果排名。

配額與限制

以下限制適用於範例查詢集:

  • 每個範例查詢集最多可包含 20,000 個查詢。

下列配額適用於範例查詢集:

  • 每個專案最多可建立 100 個範例查詢集,每個機構最多可建立 500 個範例查詢集。

詳情請參閱「配額與限制」。

查詢集格式範例

以 JSON 格式建構查詢集時,必須符合下列結構定義。查詢集可包含多個查詢項目,每個查詢項目各有一個查詢。以換行符號分隔的 JSON (NDJSON) 格式呈現時,每個查詢項目都必須另起一行。

從 BigQuery 和 Cloud Storage 匯入

以下章節提供範例查詢集範本,可從 BigQuery 和 Cloud Storage 匯入資料。

非結構化資料

使用下列範本,以 JSON 格式草擬範例查詢檔案,評估含中繼資料的非結構化資料。

{
  "queryEntry": {
    "query": "SAMPLE_QUERY",
    "targets": [
      {
        "uri": "gs://PATH/TO/CLOUD/STORAGE/LOCATION_1.docx"
      },
      {
        "uri": "gs://PATH/TO/CLOUD/STORAGE/LOCATION_2.pdf",
        "pageNumbers": [
        PAGE_NUMBER_1,
        PAGE_NUMBER_2
        ]
      },
      {
        "uri": "CDOC_URL"
      }
    ]
  }
}

更改下列內容:

  • SAMPLE_QUERY:用於測試評估搜尋品質的查詢
  • PATH/TO/CLOUD/STORAGE/LOCATION:預期結果所在的 Cloud Storage 位置路徑。這是文件定義 derivedStructData 欄位中 link 欄位的值。
  • PAGE_NUMBER_1:選用欄位,用於指出 PDF 檔案中預期查詢回應所在的頁碼。如果檔案有多個頁面,這項功能就非常實用。
  • CDOC_URL:選用欄位,用於指出 Vertex AI Search 資料存放區結構定義中文件中繼資料的自訂文件 ID cdoc_url 欄位。

結構化資料

使用下列範本,以 JSON 格式草擬範例查詢檔案,評估 BigQuery 中的結構化資料。

{
  "queryEntry": {
    "query": "SAMPLE_QUERY",
    "targets": [
      {
        "uri": "CDOC_URL"
      }
    ]
  }
}

更改下列內容:

  • SAMPLE_QUERY:用於測試評估搜尋品質的查詢
  • CDOC_URL:必要欄位,用於指出 Vertex AI Search 資料儲存庫結構定義中結構化資料欄位的自訂 cdoc_url 欄位。

網站資料

使用下列範本,以 JSON 格式草擬範例查詢檔案,評估網站內容。

{
  "queryEntry": {
    "query": "SAMPLE_QUERY",
    "targets": [
      {
        "uri": "WEBSITE_URL"
      }
    ]
  }
}

更改下列內容:

  • SAMPLE_QUERY:用於測試評估搜尋品質的查詢
  • WEBSITE_URL:查詢的目標網站。

以下是採用 JSON 和 NDJSON 格式的範例查詢集:

JSON

[
  {
    "queryEntry": {
      "query": "2018 Q4 Google revenue",
      "targets": [
        {
          "uri": "gs://cloud-samples-data/gen-app-builder/search/alphabet-investor-pdfs/2018Q4_alphabet_earnings_release.pdf"
        },
        {
          "uri": "gs://cloud-samples-data/gen-app-builder/search/alphabet-investor-pdfs/201802024_alphabet_10K.pdf"
        }
      ]
    }
  },
  {
    "queryEntry": {
      "query": "2019 Q4 Google revenue",
      "targets": [
        {
          "uri": "gs://cloud-samples-data/gen-app-builder/search/alphabet-investor-pdfs/2019Q4_alphabet_earnings_release.pdf"
        }
      ]
    }
  }
]

NDJSON

{"queryEntry":{"query":"2018 Q4 Google revenue","targets":[{"uri":"gs://cloud-samples-data/gen-app-builder/search/alphabet-investor-pdfs/2018Q4_alphabet_earnings_release.pdf"},{"uri":"gs://cloud-samples-data/gen-app-builder/search/alphabet-investor-pdfs/201802024_alphabet_10K.pdf"}]}}
{"queryEntry":{"query":"2019 Q4 Google revenue","targets":[{"uri":"gs://cloud-samples-data/gen-app-builder/search/alphabet-investor-pdfs/2019Q4_alphabet_earnings_release.pdf"}]}}

從本機檔案系統匯入

以下章節提供範例查詢集範本,方便您從本機檔案系統匯入。

非結構化資料

使用下列範本,以 JSON 格式草擬範例查詢檔案,評估含中繼資料的非結構化資料。

{
  "inlineSource": {
    "sampleQueries": [
      {
        "queryEntry": {
          "query": "SAMPLE_QUERY",
          "targets": [
            {
              "uri": "gs://PATH/TO/CLOUD/STORAGE/LOCATION_1.docx"
            },
            {
              "uri": "gs://PATH/TO/CLOUD/STORAGE/LOCATION_2.pdf",
              "pageNumbers": [
                PAGE_NUMBER_1,
                PAGE_NUMBER_2
              ]
            },
            {
              "uri": "CDOC_URL"
            }
          ]
        }
      }
    ]
  }
}

更改下列內容:

  • SAMPLE_QUERY:用於測試評估搜尋品質的查詢
  • PATH/TO/CLOUD/STORAGE/LOCATION:非結構化資料檔案的路徑,該檔案位於要查詢的 Cloud Storage 位置。這是文件定義 derivedStructData 欄位中 link 欄位的值。
  • PAGE_NUMBER_1:選用欄位,用於指出 PDF 檔案中可找到查詢所需回應的頁碼。如果檔案有多個頁面,這項功能就非常實用。
  • CDOC_URL:選用欄位,用於指出 Vertex AI Search 資料存放區結構定義中文件中繼資料的自訂文件 ID cdoc_url 欄位。

結構化資料

使用下列範本,以 JSON 格式草擬範例查詢檔案,評估 BigQuery 中的結構化資料。

{
  "inlineSource": {
    "sampleQueries": [
      {
        "queryEntry": {
          "query": "SAMPLE_QUERY",
          "targets": [
            {
              "uri": "CDOC_URL"
            }
          ]
        }
      }
    ]
  }
}

更改下列內容:

  • SAMPLE_QUERY:用於測試評估搜尋品質的查詢
  • CDOC_URL:必要欄位,用於指出 Vertex AI Search 資料儲存庫結構定義中結構化資料欄位的自訂 cdoc_url 欄位。

網站資料

使用下列範本,以 JSON 格式草擬範例查詢檔案,評估網站內容。

{
  "inlineSource": {
    "sampleQueries": [
      {
        "queryEntry": {
          "query": "SAMPLE_QUERY",
          "targets": [
            {
              "uri": "WEBSITE_URL"
            }
          ]
        }
      }
    ]
  }
}

更改下列內容:

  • SAMPLE_QUERY:用於測試評估搜尋品質的查詢
  • WEBSITE_URL:查詢的目標網站。

以下是範例查詢集:

JSON

{
  "inlineSource": {
    "sampleQueries": [
      {
        "queryEntry": {
          "query": "2018 Q4 Google revenue",
          "targets": [
            {
              "uri": "gs://cloud-samples-data/gen-app-builder/search/alphabet-investor-pdfs/2018Q4_alphabet_earnings_release.pdf"
            },
            {
              "uri": "gs://cloud-samples-data/gen-app-builder/search/alphabet-investor-pdfs/201802024_alphabet_10K.pdf"
            }
          ]
        }
      },
      {
        "queryEntry": {
          "query": "2019 Q4 Google revenue",
          "targets": [
            {
              "uri": "gs://cloud-samples-data/gen-app-builder/search/alphabet-investor-pdfs/2019Q4_alphabet_earnings_release.pdf"
            }
          ]
        }
      }
    ]
  }
}

搜尋品質評估程序

搜尋品質評估程序如下:

  1. 建立範例查詢集
  2. 匯入符合規定 JSON 格式的查詢範例
  3. 執行搜尋品質評估
  4. 解讀結果

以下各節將說明如何使用 REST API 方法執行這些步驟。

事前準備

  • 相關限制如下:
    • 每個專案一次只能有一個有效評估。
  • 適用下列配額:
    • 每個專案每天最多可發出五項評估要求。 詳情請參閱「配額與限制」。
  • 如要取得網頁層級指標,請啟用擷取式答案

建立範例查詢集

您可以建立範例查詢集,並用來評估特定資料儲存庫的搜尋回應品質。如要建立範例查詢集,請按照下列步驟操作。

REST

以下範例說明如何使用 sampleQuerySets.create 方法建立範例查詢集。

  1. 建立範例查詢集。

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: PROJECT_ID" \
        "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/sampleQuerySets?sampleQuerySetId=SAMPLE_QUERY_SET_ID" \
        -d '{
      "displayName": "SAMPLE_QUERY_SET_DISPLAY_NAME"
    }'
    

    更改下列內容:

    • PROJECT_ID:您的 Google Cloud 專案 ID。
    • SAMPLE_QUERY_SET_ID:範例查詢集的自訂 ID。
    • SAMPLE_QUERY_SET_DISPLAY_NAME:範例查詢集的自訂名稱。

匯入範例查詢資料

建立範例查詢集後,請匯入範例查詢資料。 如要匯入範例查詢資料,請執行下列任一操作:

  • 從 Cloud Storage 匯入:從 Cloud Storage 位置匯入 NDJSON 檔案。
  • 從 BigQuery 匯入:從 BigQuery 資料表匯入 BigQuery 資料。如要從 NDJSON 檔案建立 BigQuery 資料表,請參閱「從 Cloud Storage 載入 JSON 資料」。
  • 從本機檔案系統匯入:在本機檔案系統中建立範例查詢集,然後匯入。

Cloud Storage

  1. 建立符合範例查詢集格式的範例查詢集。

  2. 使用 sampleQueries.import 方法,從 Cloud Storage 位置匯入包含範例查詢集的 JSON 檔案。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/sampleQuerySets/SAMPLE_QUERY_SET_ID/sampleQueries:import" \
    -d '{
      "gcsSource": {
        "inputUris": ["INPUT_FILE_PATH"],
      },
      "errorConfig": {
        "gcsPrefix": "ERROR_DIRECTORY"
      }
    }'
    

    更改下列內容:

    • PROJECT_ID:您的 Google Cloud 專案 ID。
    • SAMPLE_QUERY_SET_ID:您在建立範例查詢集時定義的範例查詢集自訂 ID。
    • INPUT_FILE_PATH:範例查詢集的 Cloud Storage 位置路徑。
    • ERROR_DIRECTORY:選用欄位,可指定 Cloud Storage 位置的路徑。發生匯入錯誤時,系統會將錯誤檔案記錄到這個位置。Google 建議將這個欄位留空或移除 errorConfig 欄位,讓 Vertex AI Search 自動建立暫時位置。
  3. 使用 operations.get 方法取得長時間執行的作業 (LRO) 狀態。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_NUMBER/locations/global/sampleQuerySets/SAMPLE_QUERY_SET_ID/operations/OPERATION_ID"
    

BigQuery

  1. 建立符合範例查詢集格式的範例查詢集。

  2. 使用 sampleQueries.import 方法,從 BigQuery 位置匯入含有範例查詢集的 JSON 檔案。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/sampleQuerySets/SAMPLE_QUERY_SET_ID/sampleQueries:import" \
    -d '{
      "bigquerySource": {
        "projectId": "PROJECT_ID",
        "datasetId":"DATASET_ID",
        "tableId": "TABLE_ID"
      },
      "errorConfig": {
        "gcsPrefix": "ERROR_DIRECTORY"
      }
    }'
    

    更改下列內容:

    • PROJECT_ID:您的 Google Cloud 專案 ID。
    • SAMPLE_QUERY_SET_ID:您在建立範例查詢集時定義的範例查詢集自訂 ID。
    • DATASET_ID:包含範例查詢集的 BigQuery 資料集 ID。
    • TABLE_ID:包含範例查詢集的 BigQuery 資料表 ID。
    • ERROR_DIRECTORY:選用欄位,可指定 Cloud Storage 位置的路徑。發生匯入錯誤時,系統會將錯誤檔案記錄到這個位置。Google 建議將這個欄位留空或移除 `errorConfig` 欄位,讓 Vertex AI Search 自動建立臨時位置。
  3. 使用 operations.get 方法取得長時間執行的作業 (LRO) 狀態。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_NUMBER/locations/global/sampleQuerySets/SAMPLE_QUERY_SET_ID/operations/OPERATION_ID"
    

本機檔案系統

  1. 建立符合範例查詢集格式的範例查詢集。

  2. 使用 sampleQueries.import 方法,從本機檔案系統位置匯入包含範例查詢集的 JSON 檔案。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/sampleQuerySets/SAMPLE_QUERY_SET_ID/sampleQueries:import" \
    --data @PATH/TO/LOCAL/FILE.json
    

    更改下列內容:

    • PROJECT_ID:您的 Google Cloud 專案 ID。
    • SAMPLE_QUERY_SET_ID:您在建立範例查詢集時定義的範例查詢集自訂 ID。
    • PATH/TO/LOCAL/FILE.json:包含範例查詢集的 JSON 檔案路徑。
  3. 使用 operations.get 方法取得長時間執行的作業 (LRO) 狀態。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_NUMBER/locations/global/sampleQuerySets/SAMPLE_QUERY_SET_ID/operations/OPERATION_ID"
    

執行搜尋品質評估

將範例查詢資料匯入範例查詢集後,請按照下列步驟執行搜尋品質評估。

REST

  1. 啟動搜尋品質評估。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/evaluations" \
    -d '{
     "evaluationSpec": {
       "querySetSpec": {
         "sampleQuerySet": "projects/PROJECT_ID/locations/global/sampleQuerySets/SAMPLE_QUERY_SET_ID"
       },
       "searchRequest": {
         "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search"
       }
     }
    }'
    

    更改下列內容:

    • PROJECT_ID:您的 Google Cloud 專案 ID。
    • SAMPLE_QUERY_SET_ID:您在建立範例查詢集時定義的範例查詢集自訂 ID。
    • :要評估搜尋品質的 Vertex AI Search 應用程式 ID。APP_ID
  2. 監控評估進度。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/evaluations/EVALUATION_ID"
    

    更改下列內容:

    • PROJECT_ID:您的 Google Cloud 專案 ID。
    • EVALUATION_ID:評估工作的 ID。您在啟動評估時,上一個步驟會傳回這個 ID。
  3. 擷取匯總結果。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/evaluations/EVALUATION_ID"
    

    更改下列內容:

    • PROJECT_ID:您的 Google Cloud 專案 ID。
    • EVALUATION_ID:評估工作的 ID。您在啟動評估時,上一個步驟會傳回這個 ID。
  4. 擷取查詢層級結果。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/evaluations/EVALUATION_ID:listResults"
    

    更改下列內容:

    • PROJECT_ID:您的 Google Cloud 專案 ID。
    • EVALUATION_ID:評估工作的 ID。您在啟動評估時,上一個步驟會傳回這個 ID。

解讀結果

下表說明評估結果中傳回的指標。

名稱 說明 需求條件
docRecall

各文件的召回率,以及各種 top-k 截斷層級。

召回率是指從所有相關文件中檢索到的相關文件比例。 舉例來說,top5 值代表下列意義:

以單一查詢為例,如果前 5 個結果中有 3 個是相關文件,則 docRecall 可計算為 3/5 或 0.6。

範例查詢必須包含 URI 欄位。
pageRecall

各網頁的召回率,以及各種 top-k 截斷層級。

召回率是指系統從所有相關網頁中擷取的相關網頁比例。 舉例來說,top5 值代表下列意義:

如果某次查詢在排名前 5 的結果中,擷取了 3 個相關網頁,則 pageRecall 可計算為 3/5 = 0.6

  • 查詢範例必須包含 URI 和頁面欄位。
  • 必須啟用擷取式答案。
docNdcg

每份文件的正規化折減累計增益 (NDCG),適用於各種前 k 個截斷層級。

NDCG 會評估排名品質,並為排名較高的結果提供較高的關聯性。系統會根據標準化 CDG,計算每項查詢的 NDCG 值。

範例查詢必須包含 URI 欄位。
pageNdcg

每個網頁的正規化折減累計增益 (NDCG),以及各種前 k 個結果的截斷層級。

NDCG 會評估排名品質,並為排名較高的結果提供較高的關聯性。系統會根據標準化 CDG,計算每項查詢的 NDCG 值。

  • 查詢範例必須包含 URI 和頁面欄位。
  • 必須啟用擷取式答案。
docPrecision

各個前 k 個截斷層級的文件精確度。

精確度是指檢索到的文件中相關文件的比例。 舉例來說,top3 值代表下列意義:

以單一查詢為例,如果前 5 個擷取的文件中有 4 個相關,則 docPrecision 值可計算為 4/5 或 0.8。

範例查詢必須包含 URI 欄位。

根據這些支援指標的值,您可以執行下列工作:

  • 分析匯總指標:
    • 檢查平均喚回度、精確度和正規化折減累計增益 (NDCG) 等整體指標。
    • 這些指標可提供搜尋引擎成效的概略總覽。
  • 查看查詢層級的結果:
    • 深入瞭解個別查詢,找出搜尋引擎成效良好或不佳的特定領域。
    • 在結果中尋找模式,瞭解排名演算法的潛在偏誤或缺點。
  • 比較一段時間內的結果:
    • 定期執行評估,追蹤搜尋品質的變化。
    • 運用歷來資料找出趨勢,並評估您對搜尋引擎所做的任何變更帶來的影響。

後續步驟