Elasticsearch 9.0 & 8.18:開発者向けに最適化され、さらに驚異的な高速性を実現 — OpenSearchより5倍高速

Elasticsearch 9.0および8.18のバージョンをElastic Cloudおよびセルフマネージドユーザー向けにリリースできることを誇りに思います。これらのリリースの機能は一般提供されているAWS、Azure、GCP上のフルマネージドElasticsearchへのアクセス権をお持ちのElastic Cloud Serverlessユーザーにすでに提供されています。
Better Binary Quantization (BBQ) をさらに高速で提供 — OpenSearchの5倍高速
BBQ(Better Binary Quantization)は8.16でテクニカルプレビューとして初めて導入されましたが、現在では一般提供されており、積量子化(PQ)などの従来の量子化手法に代わる高性能な選択肢を提供します。
Roboflowのような当社のお客様は、ますます膨大となる量(数十億)のベクトルデータを保存・更新しており、従来はデータの関連性とパフォーマンスを維持しつつ、既存のハードウェアをより効果的に活用するために、PQのようなツールの使用を検討する必要がありました。しかし今では、BBQを利用できるようになりました。
BBQのアルゴリズムが更新され、再現率が最大20%向上し、SIMDでスループットが8~30倍高速化されました。これにより、効率的で正確な検索が可能になります。Elasticは、このアプローチを実装した最初のベクトルデータベースベンダーであり、実際の検索ワークロードでコンピューティングリソースを削減しながら、より速い結果を実現できます。
Apache Luceneを最高のベクトルデータベースにするという私たちの使命の一環として、またこれらのイノベーションをコミュニティにもたらす推進者として、私たちは最近これらの機能をLuceneに統合しました。
OpenSearch FAISSと比較して、Elasticsearch BBQはすべてのリコールレベルで最大5倍の高速クエリと3.9倍のスループットを提供しつつ、同じ精度を維持しています。速度と効率を重視して設計されており、BBQはレイテンシを大幅に低減し、大規模な生産作業に最適です。
量子化ベクトルの再スコアリングは、簡素化されたAPIを備え、開発者の利便性がさらに向上しました。BBQは、小さな予測ベクトルを用いてフルインデックススキャンを実行し、結果をオーバーサンプリングした後、大きなベクトルで再ランク付けを行います。新しいAPIでは、オーバーサンプリング率を設定するだけで、Elasticsearchがシームレスに再ランク付けを処理します。
このリリースにより、ColPaliやColBERT などの多段階インタラクションモデルもMaxSimでサポートされるようになりました!
すぐに使えるセマンティック検索とセマンティック再ランキング
今回のリリースにより、開発者は、当社の低密度ベクトルモデル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ノートブックをご覧ください。
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です。デフォルトモデルを使用するか、お好みのモデルを使用するかは、推論エンドポイントの定義を1つ変更するだけで選択できます。
他にも続きがあります!
このリリースでは、ハイブリッド検索のファンの皆様に朗報です。レトリーバー(構成性と使いやすさを向上させるために以前のリリースでクエリDSLに追加した開発者向けの抽象化機能)が、さまざまな検索タイプの組み合わせでスコアを正規化する優れたデフォルト手法である逆順位合成(RRF)に加え、線形および一般的な再スコアリングを簡単に組み込めるようになりました。
Elasticsearchクエリ言語(ES|QL)にはエキサイティングな新しいコマンドを追加し続けていますが、DSLのクエリでは利用できなかった新しいコマンドが1つあります。JOINを使って、Elasticsearchのパワーを活用してデータ全体をクエリする新しい方法をご覧ください。
// join employees with their department name
FROM employees
| LOOKUP JOIN departments ON dep_id
| KEEP last_name, first_name, dep_nameES|QL JOINブログで詳細をご覧ください!
試してみる
これらの機能やその他の詳細については、リリースノートをご覧ください。
既存のElastic Cloudのお客様は、これらの機能の多くをElastic Cloudコンソールから直接利用できます。Elasticをクラウドでまだご利用になっていない方は、無料トライアルをお試しください。
ノートパソコンで早く始めたいですか?curl -fsSL https://elastic.co/start-local | shを実行すれば、数分で始められます。
またElastic Stackをダウンロードして、あるいはクラウドオーケストレーションプロダクトとして提供されるElastic Cloud EnterpriseやElastic Cloud for Kubernetesを活用して、セルフマネージドでお使いいただくことも可能です。
本記事に記述されているあらゆる機能ないし性能のリリースおよびタイミングは、Elasticの単独裁量に委ねられます。現時点で提供されていないあらゆる機能ないし性能は、すみやかに提供されない可能性、または一切の提供が行われない可能性があります。
このブログ記事では、それぞれのオーナーが所有・運用するサードパーティの生成AIツールを使用したり、参照している可能性があります。Elasticはこれらのサードパーティのツールについていかなる権限も持たず、これらのコンテンツ、運用、使用、またはこれらのツールの使用により生じた損失や損害について、一切の責任も義務も負いません。個人情報または秘密/機密情報についてAIツールを使用する場合は、十分に注意してください。提供したあらゆるデータはAIの訓練やその他の目的に使用される可能性があります。提供した情報の安全や機密性が確保される保証はありません。生成AIツールを使用する前に、プライバシー取り扱い方針や利用条件を十分に理解しておく必要があります。
Elastic、Elasticsearch、ESRE、Elasticsearch Relevance Engine、および関連するマークは、米国およびその他の国におけるElasticsearch N.V.の商標、ロゴ、または登録商標です。他のすべての会社名および製品名は、各所有者の商標、ロゴ、登録商標です。