Elasticsearch 9.0 및 8.18: 개발자를 위해 마련한 버전, OpenSearch보다 5배 더 빠른 초고속 BBQ 성능을 추가로 제공

Elastic Cloud 및 자체 관리 사용자에게 Elasticsearch 9.0 및 8.18을 출시하게 되어 자랑스럽게 생각합니다. 이러한 릴리즈의 기능은 AWS, AzureGCP에서 정식 출시된 완전 관리형 Elasticsearch를 이용해 온 Elastic Cloud Serverless 사용자에게는 이미 제공되고 있었습니다.

더 빠른 Better Binary Quantization(BBQ) 제공, OpenSearch보다 5배 더 빠른 성능

8.16에서 기술 미리보기로 처음 도입된 BBQ(Better Binary Quantization)는 이제 정식 출시되었으며, Product Quantization(PQ)과 같은 기존 양자화 기법을 대체하는 고성능 옵션을 제공합니다. 

Roboflow와 같은 Elastic 고객은 수십억 개에 달하는 벡터 데이터를 저장하고 업데이트합니다. 과거에는 관련성과 성능을 유지하면서 기존 하드웨어를 더욱 효율적으로 활용하기 위해 PQ와 같은 방식을 고려해야 했지만, 이제 BBQ를 이용할 수 있습니다.

BBQ에는 효율적이고 정확한 검색을 위해 SIMD를 활용하여 최대 20% 높은 재현율과 8배에서 30배 더 빠른 처리량을 제공하는 업데이트된 알고리즘이 적용되었습니다. Elastic은 이 접근 방식을 구현한 최초의 벡터 데이터베이스 공급업체로, 실제 검색 워크로드에서 컴퓨팅 리소스를 줄이면서 더 빠른 결과를 얻을 수 있도록 지원합니다. 

Apache Lucene을 최고의 벡터 데이터베이스로 만들고 이러한 혁신을 커뮤니티에 제공한다는 Elastic의 사명의 일환으로, 최근 이러한 기능을 Lucene에 병합했습니다. 

OpenSearch FAISS와 비교하면 Elasticsearch BBQ는 동일한 정확도를 유지하면서 모든 재현율 수준에서 최대 5배 더 빠른 쿼리와 3.9배 더 높은 처리량을 제공합니다. 속도와 효율성을 고려하여 설계된 BBQ는 지연 시간을 크게 줄여 대규모 프로덕션 워크로드에 이상적입니다.

양자화 벡터 재점수화에는 이제 간소화된 API가 적용되어 개발자 경험이 더욱 향상되었습니다. BBQ는 작은 예측 벡터를 사용하여 전체 인덱스를 스캔하고, 결과를 오버샘플링한 후 더 큰 벡터를 사용해 재순위를 지정합니다. 새 API에서는 오버샘플링 비율만 정의하면 Elasticsearch가 재순위를 원활하게 처리합니다.

이번 릴리즈에서는 ColPaliColBERT와 같은 다단계 상호 작용 모델도 MaxSim과 함께 지원됩니다!

즉시 사용할 수 있는 의미론적 검색 및 의미론적 재순위 지정

이번 릴리즈에서 개발자는 별도 구성 없이 Elastic의 희소 벡터 모델인 ELSER와 의미론적 검색용으로 최적화된 다국어 밀집 벡터 모델 e5를 사용할 수 있습니다. Elastic Rerank 모델을 통한 의미론적 재순위 지정도 제공되며, 저장된 데이터의 형태를 변경하지 않고 관련성을 향상하려는 사용자에게 고유한 이점을 제공할 수 있습니다. 

Elastic에서 이미 제공하는 모델에 원하는 모델을 추가하는 일이 어려워서는 안 됩니다. 오픈 추론 API를 사용하면 새로 추가된 통합을 통해 새로 기여된 JinaAI 임베딩 및 재순위 지정 기능이나 Watsonx.ai의 재순위 지정 기능을 의미론적 재순위 지정에 쉽게 사용할 수 있습니다. 

예를 들어 의미론적 검색은 단일 semantic_text 매핑에서 시작합니다.

PUT my-data
{ 
  	"mappings": {
"properties": {
"my_semantic_field": {
"type": "semantic_text" }}}}

추론 엔드포인트를 지정하지 않으면 기본 의미론적 모델인 ELSER를 활용하게 됩니다. 

Jina AI의 최신 임베딩 모델인 jina-embeddings-v3를 사용하려면, 대신 semantic_text와 함께 사용할 추론 엔드포인트를 지정하면 됩니다. 직접 사용해 보고 싶다면 지금 이 Jupyter notebook을 참조해 보세요!

PUT my-data-with-jina
{ "mappings": {
    "properties": {
      "my_semantic_field": {
        "type": "semantic_text",
        "inference_id": "my-jinaai-endpoint" }}}}

이제 사람이 읽을 수 있는 자연어 의미론적 검색을 처음으로 수행해 보겠습니다. 

POST my-data/_search
{ "query": {
        "match": {
"my_semantic_field": "Which vector database was the first in the industry to introduce BBQ and contribute it to the   open source community?"
        }
    },
    "highlight": {
        "fields": {
            "my_semantic_field": {
                "number_of_fragments": 2,  
                "order": "score"        }}}}

또는 ES|QL을 선호한다면 다음을 시도해 보세요. 

POST _query?format=txt
{
  "query": """
    FROM my-data
    | WHERE my_semantic_field:"Which vector database has BBQ?"
    | KEEP my_semantic_field
    """
}

이 쿼리의 답은 당연히 Elasticsearch입니다. 기본 모델을 사용할지 선호하는 모델을 사용할지는 추론 엔드포인트 하나만 정의하면 선택할 수 있습니다.

아직 더 있습니다!

이번 릴리즈에서는 하이브리드 검색을 선호하는 사용자분들께 기쁜 소식을 전해드립니다. 이전 릴리즈에서 더 나은 조합 가능성과 사용 편의성을 위해 쿼리 DSL에 추가한 개발자 추상화인 리트리버는, 이제 Reciprocal Rank Fusion(RRF)과 함께 선형 및 일반 재점수화를 쉽게 통합할 수 있습니다. RRF는 다양한 검색 유형을 조합할 때 점수를 정규화하는 훌륭한 기본 기법입니다.

Elastic은 Elasticsearch Query Language(ES|QL)에 흥미로운 새 명령어를 계속 추가하고 있습니다. 하지만 쿼리 DSL에서는 제공되지 않았던 새 명령어가 하나 있습니다. Elasticsearch의 강력한 기능으로 데이터 전반을 쿼리하는 새로운 방식인
JOIN을 함께 소개합니다.

// join employees with their department name
FROM employees
| LOOKUP JOIN departments ON dep_id
| KEEP last_name, first_name, dep_name

자세한 내용은 ES|QL JOIN 블로그에서 확인하세요!

사용해 보기

이러한 기능과 그 밖의 새로운 기능은 릴리즈 노트에서 확인할 수 있습니다.

기존 Elastic Cloud 고객은 Elastic Cloud 콘솔에서 이러한 기능 중 다수를 직접 이용할 수 있습니다. 클라우드에서 Elastic을 아직 사용하지 않고 계신가요? 무료 체험판을 시작해 보세요.

노트북에서 빠르게 시작하려면 curl -fsSL https://elastic.co/start-local | sh 명령어를 실행하여 몇 분 안에 Elasticsearch를 사용할 수 있습니다. 

또한 자체 관리 환경을 위해 Elastic Stack과 Elastic의 클라우드 오케스트레이션 제품인 Elastic Cloud Enterprise 및 Elastic Cloud for Kubernetes를 다운로드할 수 있습니다.

이 게시물에서 설명된 모든 기능이나 성능의 출시와 일정은 Elastic의 단독 재량에 따라 결정됩니다. 현재 제공되지 않는 기능이나 성능은 예정된 시간에 출시되지 않을 수도 있으며 아예 제공되지 않을 수도 있습니다.

이 블로그 게시물에서는 타사 생성형 AI 도구를 사용하거나 언급했을 수 있으며 이러한 도구는 각각의 소유자가 소유하고 운영합니다. Elastic은 이러한 타사 도구에 대해 어떠한 통제권도 없으며 해당 도구의 콘텐츠, 운영, 사용뿐 아니라 사용으로 인해 발생할 수 있는 손실이나 손해에 대해 어떠한 책임도 지지 않습니다. 개인 정보, 민감한 정보 또는 기밀 정보를 AI 도구와 함께 사용할 때는 주의하시기 바랍니다. 제출된 모든 데이터는 AI 학습이나 기타 목적으로 사용될 수 있습니다. 제공한 정보가 안전하게 보호되거나 비밀로 유지된다는 보장은 없습니다. 생성형 AI 도구를 사용하기 전에 해당 도구의 개인정보 보호 관행과 이용 약관을 숙지하시기 바랍니다. 

Elastic, Elasticsearch, ESRE, Elasticsearch Relevance Engine 및 관련 마크는 미국 및 기타 국가에서 Elasticsearch N.V.의 상표, 로고 또는 등록 상표입니다. 그 외의 모든 회사 및 제품 이름은 해당 소유자의 상표, 로고 또는 등록 상표입니다.