Pineconeは先頃、レコメンデーションシステム、画像検索、および同様のアプリケーションを簡単に開発できるようにする、ベクタ類似性検索(vector similarity search)ソリューションのバージョン2.0をリリースした。
Pineconeは、データのベクタ表現にインデックスを付けて検索することで、クエリと類似するアイテムを検出します。数十億のアイテムにリアルタイムでインデックスを付けて、ミリ秒単位のレイテンシで最もマッチするものを検索する能力を持っています。
PineconeにはREST APIが用意されているので、開発者はこれを使用してインデックスの生成、ベクタデータの挿入、インデックスのクエリによるインプットに類似するベクタの検出、といった操作を行うことができる。ベクタはN次元空間におけるデータの表現を提供すると同時に、解釈やフィルタリングを容易にするためにメタデータを関連付けることができる。簡単に言うとベクタ検索は、2つのベクタの距離計算をベースとして、K最近傍法や近似近傍法といった最も近いベクタを検出するアルゴリズムを適用することで行われる。
Pinecone 2.0は単一ステージフィルタリングをサポートすることによって、フィルタリング機能を強化している。これにより、メタデータに任意のフィルタを指定することや、フィルタに一致する最近傍の数を取得することが可能になっている。さらに、ハイブリッドストレージが導入されて、RAMメモリに収まらないような数十億単位のアイテムの処理が可能になった。
これら新機能の他、新たなアーキテクチャや、OpenAPIに基づく新しいREST APIも導入されている。
Pineconeの創設者でCEOのEdo Liberty氏に話を聞くことができた。
InfoQ: 今日のアプリケーションにとって、ベクタ類似性検索は、どのような重要性を持っているのでしょうか?
Edo Liberty: 簡単に言うと、より関連性の深い検索結果やレコメンデーションによって、ユーザエンゲージメントや収益、顧客満足、運用効率などのさまざまな意味において、より効果的なアプリケーションが実現する、ということです。
検索、レコメンデーション、データ管理、セキュリティシステムなど、多くのアプリケーションにとって、情報の抽出は重要な機能です。いかに迅速に、正確に、高い信頼性を持ってデータを検索できるかは、多くの企業の成長や収益に大きな影響を与えます。
ベクタ類似性検索 — ディープラーニングの発達を活用した新しい検索手法 — は、GoogleやMicrosoft、Facebook、Amazonといった企業において、その有用性が証明されています。
最近のAmazonによるパーソナライズされた製品レコメンデーション、Spotifyのサブライムミュージック、神秘的なほどの関連性を持ったGoogle/Bingの検索結果、Facebook/LinkedIn/Twitterの目を見張るようなアクティビティフィードに驚いたことがあるならば、それはベクタ検索の生み出す違いを身を持って経験したことになります。これらの企業は、収益やエンゲージメント数でも突出した存在です。
これら最大手コンシューマ企業におけるベクタ検索の成功は、その他の人たちにもメリットを提供しています。ソーシャルアプリから職場のソフトウェアに至るまで、インタラクションするすべてのサービスに対して、これまでより優れたレコメンデーションや検索結果を期待できるようになるからです。
ただし、ベクタ検索の重要性の認識は、現時点ではここまでです。すでに導入済の一部大手ハイテク企業を除けば、たとえ大企業であっても、ベクタ検索の運用システムへの導入には困難が伴う場合があるのです。例えば、企業を対象とするソフトウェア会社では、ユーザが必要とするものをより早く見つけられるようにすることで、ユーザの生産性向上が可能になるのですが、その反応が遅ければ十分な効果は期待できません。また、メディアプラットフォームは、ユーザのエンゲージメントとリテンションを得るために、より優れたコンテンツレコメンデーションを提供したいと思っていますが、ユーザがスクロール可能な速度で動作することが条件になります。このような理由から、ベクタ検索を研究室から実稼働環境に移すための道筋を見つけることが、その開発と同じように重要なのです。
InfoQ: 他社のソリューションと比較した場合、Pineconeの強みは何ですか?
Liberty: 私たちが開発しているのは、ベクタ検索を短い期間でプロダクションに投入し、高いコストを掛けずに強化したいと考えている、プロダクトチームやMLチームのためのものです。その結果として、いくつかの点で他社とは違うものになっています。
まず最初は、実用性です。Pinecodeのユーザは、メタデータフィルタリングやCRUDオペレーション、ライブインデックスアップデート、水平スケーリングといった重要な機能を備えたベクタ検索サービスを、APIコールひとつで立ち上げることができます。構築やメンテナンスのためのインフラストラクチャ、チューニングの必要な最近傍アルゴリズム、開発作業といったものは必要ありません。
次に、規模と性能です。類似性検索は計算集約的なプロセスです。小さなデータセットであれば問題ないのですが、10M、100M、1B、それ以上にデータセットが巨大化すると、そのレベルでの類似性検索を行うために特別に設計されたシステムを使わない限り、レイテンシの急上昇と信頼性の急落に見舞われることになります。Pineconeで私たちは、分散システムのアーキテクチャとエンジニアリングに他の何よりも力を注いできました。そのため、1Mから100Bアイテムにスケールアップしたとしても、ユーザはまったく気がづきません。
このシステムはすべてがPineconeの管理下にあって、当社のマルチテナント環境または専用環境の上で動作しています。運用やセキュリティはすべて当社が行うので、ユーザは何もする必要はありません。専門チームによるハイパフォーマンス、ハイアベイラビリティ、サポートを、すべてのユーザに対して提供します。
そして何よりも、他のマネージドサービスやオープンソースソリューションを自己運用するインフラストラクチャコストに比較した場合、最大10分の1のコストで運用が可能なのです。ベクタ検索は通常、完全インメモリ(RAM)で動作しますが、10億のアイテムをカタログに持つ企業のほとんどにとっては、そのメモリのコストひとつ取っても、ベクタ検索は検討に値しないほど高価なものになってしまいます。ベクタ検索ライブラリの一部には、すべてをディスク上で処理するオプションを持つものもありますが、検索レイテンシが受け入れられないほど大きくなる場合があります。Pineconeはハイブリッドストレージコンフィギュレーションを用意することで、インフラストラクチャコストを大幅にカットしながら、同じように高速かつ正確な検索結果を提供しています。
InfoQ: Pineconeのロードマップについて、少し教えて頂くことはできますか?
Liberty: はい。当社は、あらゆる規模(あらゆるデータサイズ)のMLチームが、自分たちの検索システムやレコメンデーションシステムにベクタ検索を簡単に統合できるようになる、ということに焦点を当てています。
簡単に言うとこれは、スケーラビリティ、アベイラビリティ、デプロイメントの選択肢、費用の安さ、可観測性、セキュリティ(およびコンプライアンス)、REST APIとクライアント、数百万から数十億のレコード処理に関する付加機能、といったものになります。
Pinecone v2は、機能を確認するための無償トライアルと、実稼働環境を対象とした従量制の価格モデルが提供される。