문서 수준 관련성으로 검색 필터링

Vertex AI Search 앱에서 검색할 때 문서 수준 관련성 필터를 지정하면 필터 기준을 충족하는 문서만 결과로 반환됩니다. 이 페이지에서는 기준점 유형, 기준점 최적화의 중요성, 관련성 필터와 기준점을 지정하는 방법을 설명합니다.

문서 수준 관련성별 필터링 정보

검색어가 결과를 반환하면 검색어는 검색된 각 문서에 관련성 수준을 할당합니다. 검색 요청에서 필터 기준을 충족하는 문서만 반환하도록 기준을 설정할 수 있습니다. 기준을 높게 설정하면 쿼리에서 반환되는 문서 수가 줄어들 수 있습니다. 반면 기준을 낮게 설정하면 사용자 검색어와 관련성이 낮은 문서가 결과에 포함될 수 있습니다.

따라서 결과에 사용자와 관련성이 낮은 문서가 너무 많이 포함된 경우 관련성 기준을 높음으로 설정하여 가장 관련성이 높은 문서 몇 개만 표시되도록 결과 범위를 좁힐 수 있습니다. 높은 임계값이 너무 제한적이라면 더 최적의 값으로 낮출 수 있습니다.

검색 유형

다음 유형의 검색에 관련성 필터를 적용할 수 있습니다.

  • 키워드 검색: 키워드 검색을 기반으로 문서를 검색합니다.
  • 의미 유사성 검색: 임베딩을 기반으로 문서를 검색합니다.

관련성 필터 정의에서 이러한 각 검색의 기준 유형을 지정할 수 있습니다. 검색은 지정된 검색의 문서를 가져온 다음 지정된 기준점을 적용합니다.

기준 유형

검색 요청을 보낼 때 키워드 및 의미 유사성 검색에 대해 다음 유형의 임계값을 지정할 수 있습니다.

  • 관련성 임곗값: 이 임곗값을 설정하면 검색에서 독점 모델을 사용하여 문서의 관련성을 결정합니다. 이 경우 검색에서는 키워드 유사성 점수, 주제성 점수, 의미 유사성 점수와 같은 관련 신호를 사용할 수 있습니다.

    관련성 기준은 HIGH, MEDIUM, LOW, LOWEST 값을 허용하는 대략적인 설정입니다. HIGH 기준은 관련성 점수가 높은 문서를 더 적게 반환할 수 있는 반면 LOWEST 기준은 검색어와 관련이 없을 수 있는 문서를 더 많이 반환할 수 있습니다.

  • 의미 관련성 기준: 이 기준을 설정하면 필터는 의미 유사성 점수만을 사용하여 문서의 관련성을 판단합니다.

    의미론적 관련성 기준점은 세부적인 설정이며 [0,1] 범위의 부동 소수점 값입니다. 기준을 0으로 설정하면 모든 문서가 반환되고 기준을 1로 설정하면 관련성이 가장 높은 문서가 반환됩니다.

관련성 필터 정의 및 예시

검색 요청에서 관련성 필터를 정의하려면 각 검색 유형 (키워드 검색 및 시맨틱 검색)에 대해 하나의 기준점 유형 (관련성 기준점 및 시맨틱 관련성 기준점)만 지정합니다. 관련성 필터 사양 내에서 검색 유형을 하나 또는 둘 다 지정할 수 있습니다. 하지만 각 검색 유형 내에 정의된 기준액 유형은 하나만 있어야 합니다. 예를 들어 다음 사항을 고려해 보세요.

{
  "relevanceFilterSpec": {
    "keywordSearchThreshold":  {
      "relevanceThreshold": "LOW"
    },
    "semanticSearchThreshold":  {
      "semanticRelevanceThreshold": 0.871
    }
  }
}

이 검색 요청에서 결과는 검색과 필터링의 두 단계로 반환됩니다.

  • 검색은 키워드 일치에 따라 문서를 가져온 다음 관련성 기준이 낮은 문서를 필터링합니다. 이렇게 하면 검색된 문서가 많이 반환됩니다.
  • 동시에 검색은 의미상 유사성에 따라 문서를 검색한 다음 의미상 관련성 기준이 0.871인 문서를 필터링합니다. 이렇게 하면 검색된 문서가 더 적게 반환됩니다.

검색 시 시맨틱 유사성보다 키워드 일치에 더 중점을 둡니다. 필터를 사용하면 키워드 일치로 인해 검색되는 문서가 더 많아집니다.

마찬가지로 다음과 같이 관련성 필터를 정의하여 일치하는 키워드가 있는 문서는 더 적게 반환하고 의미상 유사성이 있는 문서는 더 많이 반환할 수 있습니다.

"relevanceFilterSpec": {
    "keywordSearchThreshold":  {
        "semanticRelevanceThreshold": 0.871
    },
    "semanticSearchThreshold":  {
        "relevanceThreshold": "LOW"
    }
}

문서 수준 관련성 필터에 지원되는 데이터 유형 및 앱

문서 수준 관련성 필터는 다음과 같은 유형의 데이터가 있는 데이터 스토어에 적용할 수 있습니다.

  • 고급 웹사이트 색인 생성을 사용하는 웹사이트 데이터
  • 커스텀 비정형 데이터
  • 커스텀 정형 데이터

문서 수준 관련성 필터는 기본 웹사이트 색인 생성, 미디어 데이터 또는 의료 데이터가 있는 데이터 스토어에는 작동하지 않습니다.

또한 문서 수준 관련성 필터는 혼합 검색 앱에서 사용할 수 없습니다. 혼합 검색 앱은 여러 데이터 스토어에 연결된 앱입니다.

기타 필터 종류

문서 수준 관련성 필터가 검색어에 의해 반환된 데이터를 필터링할 수 있는 유일한 방법이 아닙니다. 필터 표현식을 사용하여 메타데이터 (메타데이터 데이터 스토어가 있는 고급 웹사이트 색인 생성 및 비정형 데이터) 및 필드 값 (정형 데이터 스토어)을 기반으로 결과를 필터링할 수도 있습니다.

자세한 내용은 다음을 참조하세요.

필터 표현식과 문서 수준 관련성 필터를 모두 사용하는 경우 필터 표현식이 먼저 결과에 적용된 후 문서 수준 관련성 필터가 적용됩니다.

시작하기 전에

앱과 데이터 스토어를 만들고 데이터를 데이터 스토어에 수집했는지 확인합니다. 자세한 내용은 검색 앱 만들기를 참조하세요. 문서 수준 관련성 필터에 지원되는 데이터 유형 및 앱도 참조하세요.

관련성으로 필터링하려면 다음 단계를 따르세요.

  1. 앱 ID를 찾습니다. 앱 ID를 이미 알고 있는 경우 다음 단계로 건너뜁니다.

    1. Google Cloud 콘솔에서 AI 애플리케이션 페이지로 이동합니다.

      앱으로 이동

    2. 페이지에서 앱 이름을 찾고 ID 열에서 앱 ID를 가져옵니다.

  2. 문서 수준 관련성을 기준으로 검색을 필터링하려면 engines.servingConfigs.search 메서드를 사용하여 각 검색 유형에 대해 하나의 유형의 임계값만 정의하는 relevanceFilterSpec 필드를 지정합니다. 즉, 특정 유형의 검색에 대해 relevanceThreshold 또는 semanticRelevanceThreshold를 지정할 수 있습니다.

    curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
    -d '{
     "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search",
    "query": "QUERY",
    "relevanceFilterSpec": {
      "keywordSearchThreshold":  {
          "relevanceThreshold": "RELEVANCE_THRESHOLD"
      },
      "semanticSearchThreshold":  {
          "semanticRelevanceThreshold": SEMANTIC_RELEVANCE_THRESHOLD
      }
    }
    }'
    

    다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
    • APP_ID: 쿼리할 Vertex AI Search 앱의 ID입니다.
    • QUERY: 검색할 쿼리 텍스트입니다.
    • RELEVANCE_THRESHOLD: HIGH, MEDIUM, LOW, LOWEST 중 하나입니다.
    • SEMANTIC_RELEVANCE_THRESHOLD: [0,1] 범위의 부동 소수점 값입니다.
  3. 다양한 기준으로 여러 검색어를 테스트하여 데이터와 애플리케이션에 가장 적합한 기준 설정을 결정합니다.