시맨틱 검색
원본 보기시맨틱 검색
시맨틱 검색은 자연어 처리(NLP) 모델과 벡터 검색을 사용해 키워드만이 아니라 의미를 기반으로 결과를 찾습니다. 이 페이지에서는 텍스트 시맨틱 검색을 구현하기 위해 Elasticsearch에서 제공하는 관리형 워크플로를 다룹니다.
벡터 검색의 기본 개념은 Elasticsearch의 벡터 검색을 참고하세요. 시맨틱 검색과 저수준 벡터 검색을 비교하고 프로젝트에 맞는 방식을 결정하려면 시맨틱 검색과 벡터 검색을 참고하세요. 관리형 서비스와 추론 엔드포인트를 포함해 시맨틱 검색 및 기타 NLP 작업을 뒷받침하는 인프라를 이해하려면 Elastic Inference 개요 페이지를 참고하세요. Elastic Stack 전반의 AI 기반 기능을 살펴보려면 AI 기반 기능을 참고하세요.
Elastic Stack에서 시맨틱 검색에 NLP 모델을 사용하는 방법에는 여러 가지가 있습니다:
다음 다이어그램은 각 워크플로의 상대적인 복잡도를 요약한 것입니다:
Elastic Stack에서 NLP 모델을 사용하는 가장 간단한 방법은 semantic_text 워크플로입니다. 수작업을 상당 부분 추상화해 주므로 이 방식을 권장합니다. 인덱스 매핑만 생성하면 데이터를 수집하고 임베딩하고 쿼리할 수 있습니다. 모델 관련 설정과 파라미터를 정의하거나 추론 인제스트 파이프라인을 만들 필요가 없습니다. semantic_text에 사용할 수 있는 쿼리 유형에 대한 안내는 semantic_text 필드 쿼리하기를 참고하세요.
지원되는 서비스에 대해 자세히 알아보려면 기본 추론 엔드포인트, 적응형 할당, 청킹과 추론 API 문서를 참고하세요. 전체 과정을 다루는 튜토리얼은 semantic_text를 사용한 시맨틱 검색을 참고하세요.
추론 API 워크플로는 더 복잡하지만 추론 엔드포인트 구성을 더 세밀하게 제어할 수 있습니다. 추론 엔드포인트를 생성하고, 다양한 모델 관련 설정과 파라미터를 제공하며, 인덱스 매핑을 정의해야 합니다. 선택적으로 데이터 수집 중 자동 임베딩을 위한 추론 인제스트 파이프라인을 설정하거나, 대신 추론 API를 직접 호출할 수도 있습니다.
전체 과정을 다루는 튜토리얼은 추론 API를 사용한 시맨틱 검색을 참고하세요.
추론 엔드포인트를 사용하지 않고 Elasticsearch에 NLP를 직접 배포할 수도 있습니다. 이는 Elastic Stack에서 시맨틱 검색을 수행하는 가장 복잡하고 손이 많이 가는 워크플로입니다. 지원되는 밀집 및 희소 벡터 모델 목록에서 NLP 모델을 선택하고, Eland 클라이언트로 배포하고, 인덱스 매핑을 생성한 뒤, 데이터를 수집하고 쿼리할 수 있도록 적절한 인제스트 파이프라인을 설정해야 합니다.
전체 과정을 다루는 튜토리얼은 Elasticsearch에 배포한 모델을 사용한 시맨틱 검색을 참고하세요.
간단한 참조 개요는 벡터 쿼리와 필드 유형을 참고하세요. 밀집 벡터 임베딩의 메모리 사용량을 줄이려면 벡터 스토리지 최적화를 참고하세요.
elasticsearch-labs저장소에는 Elasticsearch Python 클라이언트를 사용해 실행 가능한 Python 노트북 형태로 제공되는 대화형 시맨틱 검색 예제가 다수 있습니다- 모델 배포 워크플로를 사용한 ELSER 시맨틱 검색
semantic_text를 사용한 시맨틱 검색