Serverless에 대한 자동 의미 체계 보강 - Amazon OpenSearch Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Serverless에 대한 자동 의미 체계 보강

소개

자동 의미 체계 보강 기능은 어휘 검색보다 검색 관련성을 최대 20% 개선할 수 있습니다. 자동 의미 체계 보강을 사용하면 자체 ML(기계 학습) 모델 인프라를 관리하고 검색 엔진과 통합할 때 차별화되지 않은 부담을 덜 수 있습니다. 이 기능은 검색, 시계열, 벡터의 세 가지 서버리스 컬렉션 유형 모두에서 사용할 수 있습니다.

의미 체계 검색이란 무엇입니까?

기존 검색 엔진은 word-to-word 일치(어휘 검색이라고 함)를 사용하여 쿼리 결과를 찾습니다. 이는 TV 모델 번호와 같은 특정 쿼리에 효과적이지만 추상 검색이 많아지는 데 어려움을 겪습니다. 예를 들어, "Shoes for the Beach"를 검색할 때 어휘 검색은 카탈로그 항목의 개별 단어 "shoes", "beach", "for" 및 "the"와 일치할 뿐이며, 정확한 검색어가 포함되지 않은 "water-resistant sandals" 또는 "surf PPE"와 같은 관련 제품이 누락될 수 있습니다.

시맨틱 검색은 키워드 매칭뿐만 아니라 사용자 검색의 의도와 컨텍스트 의미까지 포함하는 쿼리 결과를 반환합니다. 예를 들어 사용자가 "두통 치료 방법"을 검색하면 의미 체계 검색 시스템이 다음 결과를 반환할 수 있습니다.

  • 자세한 해결 방법

  • 통증 관리 기법

  • 일반의약품 진통제

모델 세부 정보 및 성능 벤치마크

이 기능은 기본 모델을 노출하지 않고 이면의 기술적 복잡성을 처리하지만 간단한 모델 설명과 벤치마크 결과를 통해 투명성을 제공하여 중요한 워크로드의 기능 채택에 대해 정보에 입각한 결정을 내리는 데 도움이 됩니다.

자동 의미 체계 보강은 사용자 지정 미세 조정 없이 효과적으로 작동하는 서비스 관리형 사전 훈련된 희소 모델을 사용합니다. 모델은 지정한 필드를 분석하여 다양한 훈련 데이터에서 학습한 연결을 기반으로 희소 벡터로 확장합니다. 확장된 용어와 중요도 가중치는 효율적인 검색을 위해 네이티브 Lucene 인덱스 형식으로 저장됩니다. 데이터 수집 중에만 인코딩이 이루어지는 문서 전용 모드를 사용하여이 프로세스를 최적화했습니다. 검색 쿼리는 희소 모델을 통해 처리되지 않고 단순히 토큰화되므로 솔루션은 비용 효율적이고 성능이 뛰어납니다.

기능 개발 중 성능 검증에서는 평균 334자의 구절이 포함된 MS MARCO 구절 검색 데이터 세트를 사용했습니다. 관련성 점수의 경우 영어 콘텐츠의 경우 BEIR 벤치마크에서 처음 10개의 검색 결과(ndcg@10)에 대한 평균 정규화된 누적 이득(NDCG)을 측정했고 다국어 콘텐츠의 경우 MIRACL의 경우 평균 ndcg@10을 측정했습니다. 클라이언트 측, 90번째 백분위수(p90) 측정을 통해 지연 시간을 평가하고 검색 응답 p90이 값을 취했습니다. 이러한 벤치마크는 검색 관련성과 응답 시간 모두에 대한 기준 성능 지표를 제공합니다. 다음은 주요 벤치마크 번호입니다.

  • 영어 - 어휘 검색에 비해 관련성 20% 개선. 또한 P90 검색 지연 시간을 어휘 검색보다 7.7% 낮췄습니다(BM25는 26ms, 자동 의미 체계 보강은 24ms).

  • 다국어 - 어휘 검색에 비해 105%의 관련성 개선, 어휘 검색에 비해 P90 검색 지연 시간이 38.4% 증가했습니다(BM25는 26ms, 자동 의미 체계 보강은 36ms).

각 워크로드의 고유한 특성을 고려하여 구현 결정을 내리기 전에 자체 벤치마킹 기준을 사용하여 개발 환경에서이 기능을 평가하는 것이 좋습니다.

지원되는 언어

이 기능은 영어를 지원합니다. 또한이 모델은 아랍어, 벵골어, 중국어, 핀란드어, 프랑스어, 힌디어, 인도네시아어, 일본어, 한국어, 페르시아어, 러시아어, 스페인어, 스와힐리어, 텔루구어도 지원합니다.

서버리스 컬렉션에 대한 자동 의미 체계 보강 인덱스 설정

텍스트 필드에 대해 자동 의미 체계 보강이 활성화된 인덱스를 쉽게 설정할 수 있으며 새 인덱스 생성 중에 콘솔, APIs 및 CloudFormation 템플릿을 통해 관리할 수 있습니다. 기존 인덱스에 대해 활성화하려면 텍스트 필드에 대해 자동 의미 체계 보강이 활성화된 인덱스를 다시 생성해야 합니다.

콘솔 환경 - AWS 콘솔을 사용하면 자동 의미 체계 보강 필드를 사용하여 인덱스를 쉽게 생성할 수 있습니다. 컬렉션을 선택하면 콘솔 상단에서 인덱스 생성 버튼을 찾을 수 있습니다. 인덱스 생성 버튼을 클릭하면 자동 의미 체계 보강 필드를 정의하는 옵션이 표시됩니다. 하나의 인덱스에서 영어 및 다국어에 대한 자동 의미 체계 보강과 어휘 필드의 조합을 사용할 수 있습니다.

API 경험 - AWS 명령줄 인터페이스(AWS CLI)를 사용하여 자동 의미 체계 보강 인덱스를 생성하려면 create-index 명령을 사용합니다.

aws opensearchserverless create-index \ --id [collection_id] \ --index-name [index_name] \ --index-schema [index_body] \

다음 예제 index-schema에서 title_semantic 필드는 필드 유형이 텍스트로 설정되고 파라미터 semantic_enrichmentENABLED 상태로 설정됩니다. semantic_enrichment 파라미터를 설정하면 title_semantic 필드에서 자동 의미 체계 보강이 활성화됩니다. language_options 필드를 사용하여 영어 또는 다국어를 지정할 수 있습니다.

aws opensearchserverless create-index \ --id XXXXXXXXX \ --index-name 'product-catalog' \ --index-schema '{ "mappings": { "properties": { "product_id": { "type": "keyword" }, "title_semantic": { "type": "text", "semantic_enrichment": { "status": "ENABLED", "language_options": "english" } }, "title_non_semantic": { "type": "text" } } } }'

생성된 인덱스를 설명하려면 다음 명령을 사용합니다.

aws opensearchserverless get-index \ --id [collection_id] \ --index-name [index_name] \

CloudFormation 템플릿(Type:AWS::OpenSearchServerless::CollectionIndex)을 사용하여 컬렉션 프로비저닝 중과 컬렉션 생성 후에 의미 체계 검색을 생성할 수도 있습니다.

데이터 수집 및 검색

자동 의미 체계 보강이 활성화된 인덱스를 생성하면 추가 구성 없이 데이터 수집 프로세스 중에 기능이 자동으로 작동합니다.

데이터 수집: 인덱스에 문서를 추가하면 시스템이 자동으로 다음을 수행합니다.

  • 의미 체계 보강을 위해 지정한 텍스트 필드를 분석합니다.

  • OpenSearch Service 관리형 스파스 모델을 사용하여 의미 체계 인코딩 생성

  • 이러한 보강된 표현을 원본 데이터와 함께 저장합니다.

이 프로세스는 OpenSearch의 기본 제공 ML 커넥터와 수집 파이프라인을 사용하며, 이는 백그라운드에서 자동으로 생성 및 관리됩니다.

검색: 의미 체계 보강 데이터는 이미 인덱싱되어 있으므로 ML 모델을 다시 호출하지 않고도 쿼리가 효율적으로 실행됩니다. 즉, 추가 검색 지연 시간 오버헤드 없이 검색 관련성을 개선할 수 있습니다.

자동 시맨틱 보강에 대한 권한 구성

자동 시맨틱 보강 인덱스를 생성하기 전에 필요한 권한을 구성해야 합니다. 이 섹션에서는 필요한 권한과 이를 설정하는 방법을 설명합니다.

IAM 정책 권한

다음 AWS Identity and Access Management (IAM) 정책을 사용하여 자동 의미 체계 보강 작업에 필요한 권한을 부여합니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AutomaticSemanticEnrichmentPermissions", "Effect": "Allow", "Action": [ "aoss:CreateIndex", "aoss:GetIndex", "aoss:UpdateIndex", "aoss:DeleteIndex", "aoss:APIAccessAll" ], "Resource": "*" } ] }
키 권한
  • aoss:*Index 권한은 인덱스 관리를 지원합니다.

  • aoss:APIAccessAll 권한은 OpenSearch API 작업을 허용합니다.

  • 특정 컬렉션에 대한 권한을 제한하려면 "Resource": "*"를 컬렉션의 ARN으로 바꿉니다.

데이터 액세스 권한 구성

자동 시맨틱 보강을 위한 인덱스를 설정하려면 인덱스, 파이프라인 및 모델 컬렉션 리소스에 액세스할 권한을 부여하는 적절한 데이터 액세스 정책이 있어야 합니다. 데이터 액세스 정책에 대한 자세한 내용은 Amazon OpenSearch Serverless를 위한 데이터 액세스 제어 섹션을 참조하세요. 데이터 액세스 정책을 구성하는 절차는 데이터 액세스 정책 생성(콘솔) 섹션을 참조하세요.

데이터 액세스 권한

[ { "Description": "Create index permission", "Rules": [ { "ResourceType": "index", "Resource": ["index/collection_name/*"], "Permission": [ "aoss:CreateIndex", "aoss:DescribeIndex", "aoss:UpdateIndex", "aoss:DeleteIndex" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create pipeline permission", "Rules": [ { "ResourceType": "collection", "Resource": ["collection/collection_name"], "Permission": [ "aoss:CreateCollectionItems", "aoss:DescribeCollectionItems" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create model permission", "Rules": [ { "ResourceType": "model", "Resource": ["model/collection_name/*"], "Permission": ["aoss:CreateMLResource"] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, ]

네트워크 액세스 권한

서비스 API 프라이빗 컬렉션에 액세스하도록 허용하려면 서비스 API와 컬렉션 간에 필요한 액세스를 허용하는 네트워크 정책을 구성해야 합니다. 네트워크 정책에 대한 자세한 내용은 Amazon OpenSearch Serverless에 대한 네트워크 액세스를 참조하세요.

[ { "Description":"Enable automatic semantic enrichment in a private collection", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/collection_name" ] } ], "AllowFromPublic":false, "SourceServices":[ "aoss.amazonaws.com" ], } ]
프라이빗 컬렉션에 대한 네트워크 액세스 권한을 구성하려면
  1. https://console.aws.amazon.com/aos/home에서 OpenSearch Service 콘솔에 로그인합니다.

  2. 왼쪽 탐색 창에서 네트워크 정책을 선택합니다. 그런 다음, 다음 중 하나를 수행하세요.

    • 기존 정책 이름을 선택하고 편집을 선택합니다.

    • 네트워크 정책 생성을 선택하고 정책 세부 정보를 구성합니다.

  3. 액세스 유형 영역에서 프라이빗(권장)을 선택한 다음 AWS 서비스 프라이빗 액세스를 선택합니다.

  4. 검색 필드에서 서비스를 선택한 다음 aoss.amazonaws.com을 선택합니다.

  5. 리소스 유형 영역에서 OpenSearch 엔드포인트에 대한 액세스 활성화 상자를 선택합니다.

  6. 검색 컬렉션 또는 특정 접두사 용어 입력의 검색 필드에서 컬렉션 이름을 선택합니다. 그런 다음 네트워크 정책과 연결할 컬렉션의 이름을 입력하거나 선택합니다.

  7. 새 네트워크 정책에 대해 생성 또는 기존 네트워크 정책에 대해 업데이트를 선택합니다.

쿼리 재작성

자동 의미 체계 보강은 쿼리 수정 없이 기존 “일치” 쿼리를 의미 체계 검색 쿼리로 자동 변환합니다. 일치 쿼리가 복합 쿼리의 일부인 경우 시스템은 쿼리 구조를 통과하고 일치 쿼리를 찾아 신경 스파스 쿼리로 바꿉니다. 현재이 기능은 독립 실행형 쿼리든 복합 쿼리의 일부이든 관계없이 “일치” 쿼리 교체만 지원합니다. “multi_match”는 지원되지 않습니다. 또한이 기능은 중첩된 일치 쿼리를 대체하기 위해 모든 복합 쿼리를 지원합니다. 복합 쿼리에는 부울, 부스팅, constant_score, dis_max, function_score 및 하이브리드가 포함됩니다.

자동 의미 체계 보강의 제한 사항

자동 의미 체계 검색은 영화 제목, 제품 설명, 리뷰 및 요약과 같은 자연어 콘텐츠가 포함된 중small-to-medium 규모의 필드에 적용할 때 가장 효과적입니다. 의미 체계 검색은 대부분의 사용 사례에 대한 관련성을 향상시키지만 특정 시나리오에는 최적화되지 않을 수 있습니다. 특정 사용 사례에 대해 자동 의미 체계 보강을 구현할지 여부를 결정할 때는 다음 제한 사항을 고려하세요.

  • 매우 긴 문서 - 현재 희소 모델은 영어에 대해 각 문서의 처음 8,192개 토큰만 처리합니다. 다국어 문서의 경우 토큰은 512개입니다. 긴 문서의 경우 완전한 콘텐츠 처리를 위해 문서 청킹을 구현하는 것이 좋습니다.

  • 로그 분석 워크로드 - 의미 체계 보강은 인덱스 크기를 크게 증가시키므로 일반적으로 정확히 일치하면 충분할 수 있는 로그 분석에 필요하지 않을 수 있습니다. 추가 의미 체계 컨텍스트는 증가된 스토리지 요구 사항을 정당화할 만큼 로그 검색 효과를 개선하는 경우는 거의 없습니다.

  • 자동 의미 체계 보강은 파생 소스 기능과 호환되지 않습니다.

가격 책정

OpenSearch Serverless는 인덱싱 시 희소 벡터 생성 중에 사용된 OpenSearch 컴퓨팅 유닛(OCUs)을 기반으로 자동 의미 체계 보강을 청구합니다. 인덱싱 중 실제 사용량에 대해서만 요금이 부과됩니다. Amazon CloudWatch 지표 SemanticSearchOCU를 사용하여이 소비를 모니터링할 수 있습니다. 모델 토큰 제한, OCU당 볼륨 처리량 및 샘플 계산 예제에 대한 자세한 내용은 OpenSearch Service Pricing을 참조하세요.