paint-brush
AI 開発に革命を起こす: Apache Cassandra がベクトル検索を導入@datastax
1,694 測定値
1,694 測定値

AI 開発に革命を起こす: Apache Cassandra がベクトル検索を導入

DataStax7m2023/05/22
Read on Terminal Reader

長すぎる; 読むには

強力なベクトル検索と世界で最もスケーラブルなデータベースである Apache Cassandra を組み合わせることで、AI アプリケーションにとって大きな変革をもたらします。
featured image - AI 開発に革命を起こす: Apache Cassandra がベクトル検索を導入
DataStax HackerNoon profile picture


データがなければ人工知能は存在しません。また、データがあちこちに分散している場合、最も重要なことであるアプリケーションの構築に集中する代わりに、実装プロセスの管理に多くの時間を費やすことになります。世界で最も著名なアプリケーションはすでに Apache Cassandra を使用しているため、データ効率の向上がますます重要な目標となっています。 AI はスケールがすべてであり、AI モデルを使用する際の重要なコンポーネントであるベクトル検索をCassandra に導入することで、組織はコストを削減し、データ管理を合理化し、データから最後の一滴まで価値を絞り出すことができます。


この最先端の機能は、最近 Cassandra 拡張提案 ( CEP-30 ) は、信頼性の高い機能を迅速に構築するという Cassandra コミュニティの取り組みのさらなる証拠です。これは、高度なデータ駆動型アプリケーションを作成するツールを提供する Cassandra が、膨大なデータセットに取り組む AI 開発者や組織にとってますます魅力的になっていることの証でもあります。


ベクトル検索とは何ですか?

テキスト検索の概念は長い間存在していました。これには、ドキュメント内の特定のキーワードを検索することが含まれます。しかし、重要なデータはテキストだけで見つかるわけではありません。音声、画像、ビデオ (またはそれらの組み合わせ) にも、検索方法を必要とする関連情報が含まれています。そこでベクトル検索が登場します。これはすでに使用されています。 しばらくの間、特に AI と機械学習の分野で、さまざまなアプリケーションで非常に価値があることが証明されています。


ベクトル類似性検索とも呼ばれるこの検索ゲームには、高度な検索を行うために 2 つの部分が必要です。


まず、生データを数学的記述として機能するベクトル表現 (数値の配列) にインデックス付けする必要があります。


次に、ベクター データは、開発者が「ある点を考慮すると、他にどのような類似点があるでしょうか?」と尋ねることができる方法で保存する必要があります。これは開発者にとってシンプルかつ強力ですが、サーバー側で大規模に実装するのは困難です。ここで Cassandra が真価を発揮するのは、世界中のあらゆる規模のデータを、安心感を与える回復力で一貫して提供することです。


これは、ベクトル検索を完全に深く掘り下げることを意図したものではありませんが、コードの複雑さを軽減し、機能を使用してより迅速に実稼働環境に移行するために、まったく新しい次元の有用なデータを作成することで、アプリケーションに何ができるかを説明するものです。欲しい。


ベクトル検索の実際の例としては、次のようなものがあります。

  • コンテンツベースの画像検索。視覚的に類似した画像が特徴ベクトルに基づいて識別されます。次のようなライブラリを使用するimg2vecを使用すると、画像ファイルを類似性検索に使用できる 512 個の一意の識別子に変換できます。


  • レコメンダー システム。消費者が以前にやり取りしたアイテムとの類似性に基づいて、製品またはコンテンツが消費者に推奨されます。


  • 自然言語処理アプリケーション。テキスト コンテンツ間の意味上の類似性を特定し、センチメント分析、ドキュメント クラスタリング、トピック モデリングなどのタスクに活用できます。これは通常、次のようなツールを使用して行われます。 word2vec Cassandra が提供するスケールが必要になる場合があります。


  • ChatGPT を使用しますか?ベクトル検索は、LLM トレーニング プロセス中に得られた抽出された知識を表すベクトル埋め込みの効率的な保存と取得を可能にするため、大規模言語モデル (LLM) のユースケースにとって重要です。類似性検索を実行することにより、ベクトル検索は、ユーザーのプロンプトに対応する最も関連性の高い埋め込みを迅速に特定できます。


    これは、LLM がより正確で状況に応じて適切な応答を生成するのに役立ち、同時にモデルに長期記憶の形式を提供します。本質的に、ベクトル検索は、LLM と、LLM がトレーニングされる膨大な知識ベースとの間の重要な架け橋です。


カサンドラに何が起こるのでしょうか?

Cassandra プロジェクトは、Cassandra をデータベース世界の究極の権力者にするために終わりのない探求を続けています。前述したように、データをベクトル埋め込みに変換した後、それを保存して使用する場所が必要になります。これらの機能は Cassandra に追加され、シンプルかつ強力な方法で公開されます。


ベクトルデータ型

高次元ベクトルの保存をサポートするために、新しいデータ型 ` VECTOR<type, dimension> ` を導入しています。これにより、以下の取り扱いと保管が可能になります。 Float32 AI アプリケーションで一般的に使用される埋め込み。これにより、Cassandra を次のような AI ライブラリに追加するという議論がすでに行われています。ラングチェーン。この例では、意味上の類似性検索を可能にするために、説明からベクトルを作成することを想像してください。



CREATE TABLE products(

id UUID PRIMARY KEY,

name varchar,

description varchar,

item_vector VECTOR<float, 3>

);



ANN検索インデックス

「VectorMemtableIndex」と呼ばれる新しいストレージ接続インデックス (SAI) を追加します。これは、近似最近傍 (ANN) 検索機能に対応します。このインデックスは、新しいデータ型および Apache Lucene の Hierarchical Navigable Small World (HNSW) ライブラリと連携して動作し、Cassandra 内で効率的なベクトル検索機能を有効にします。


CREATE CUSTOM INDEX item_ann_index ON product(item_vector)

USING 'VectorMemtableIndex';


CQL の ANN 演算子

ユーザーが自分のデータに対して ANN 検索を簡単に実行できるようにするために、新しい Cassandra Query Language (CQL) 演算子 ANN OF を導入します。この演算子を使用すると、ユーザーはシンプルで使い慣れたクエリ構文を使用して、データに対して ANN 検索を効率的に実行できるようになります。例を続けると、開発者は説明から作成されたベクトルに似たものをデータベースに要求できます。


SELECT * FROM product WHERE item_vector ANN OF [3.4, 7.8, 9.1]



Cassandra の拡張性を強調する

Cassandra 4.0 がリリースされたとき、見落とされがちなハイライトの 1 つは、プラグ可能性の向上というコンセプトでした。 Cassandra の新しいベクトル検索機能は、既存の SAI フレームワークの拡張機能として構築されており、コア インデックス エンジンの書き換えを回避しています。よく知られ広く使用されているものを使用しますHNSW の機能Lucene では、高次元空間で近似最近傍を見つけるための高速かつ効率的なソリューションが提供されます。


Cassandra 4 の新たな追加機能は、その驚くべきモジュール性と拡張性を際立たせています。 HNSW Lucene の統合と SAI フレームワークの拡張により、開発者は本番環境に対応した幅広い機能にさらに迅速にアクセスできるようになりました。開発者は多数のベクトル データベースにアクセスでき、その多くはストレージを追加する前にベクトル インデックス エンジンを構築することを好みます。 Cassandra は、10 年以上にわたって大規模なデータ ストレージという困難な問題に取り組むことに成功してきました。私たちは、Cassandra にベクトル検索を組み込むことで、さらに優れた実稼働対応機能が提供されると確信しています。


新しいユースケース

Cassandra は機械学習と AI ワークロードに慣れているわけではありません。 Cassandra の長年のユーザーは、高速かつ効率的な機能ストアとして Cassandra を長年使用してきました。 OpenAI は LLM の構築に Cassandra を多用しているという噂さえあります。これらの使用例はすべて、Cassandra の既存の機能を採用しています。新しいベクトル検索を使用する方法は数多くあります。私たちのコミュニティが何を思いつくかを見るのはエキサイティングですが、おそらく 2 つのカテゴリに分類されるでしょう。


ANN 検索で既存のユースケースを強化する

すでに Cassandra 上にアプリケーションを構築している場合は、ANN (「近似最近傍」) 検索を組み込むことでその機能を強化できます。たとえば、コンテンツ推奨システムがある場合は、ANN 検索を使用して類似のアイテムを検索し、推奨の関連性を高めることができます。製品カタログでは、特徴を非正規化して、同じレコードに保存された埋め込みベクトルにすることができます。不正行為の検出は、動作を機能にマッピングすることでさらに強化できます。ユースケースを考えてみると、おそらくそれが関連しているでしょう。

ベクトル検索が必要な新しいものを構築する

高速な類似性検索機能を必要とする新しいプロジェクトを開始する場合、Cassandra の新しいベクトル検索機能は、データの保存と取得に最適な選択肢になります。同じシステム上でギガバイトからペタバイトまで拡張できることがわかれば、トレードオフを気にせずにアプリケーションの構築に集中できるようになります。ベクトル埋め込みの保存に加えて、CQL の全機能とフル機能のデータベースの表形式ストレージをすべて投入できます。


Cassandra をどのように消費しても、これらのオプションはすべて利用可能です。オープンソース Cassandra を使用した独自のデプロイメントの場合は、次を使用して Kubernetes にデプロイされます。 K8サンドラまたはクラウド上で次のようなサービスを利用することもできます。 DataStax Astra DB 、同じ素晴らしいシステムが得られます。オープンソースで得られる自由は、アプリケーションの構築方法を選択できる自由です。


開発者によって開発者のために構築される

Cassandra の機能の革新と拡張を続ける中で、私たちはデータ管理において必要なものの最前線に留まり続けることに尽力していきます。ベクトル検索の導入は、データ駆動型アプリケーションをさらに強力かつ多用途にするエキサイティングな新しいユースケースです。これに、分散型などの他の最先端の機能も加えたものです。大規模な ACID トランザクションにより、Cassandra 5.0 が最も重要なアップグレードになります。私たちはここでも止まりません。 Cassandra をサポートする企業や開発者は、データを統合し、管理を簡素化し、コストを節約するためのさらなる方法を一生懸命考えています。


この追加は、AI 開発者だけでなく、高速な類似性検索の恩恵を受ける大規模なデータ セットを管理する組織にも役立つと確信しています。したがって、第 3 四半期中に予定されている、ベクター検索機能を備えた Cassandra のアルファ版リリースに注目してください。私たちは、この新機能を使用して構築される素晴らしいアプリケーションを見ることを楽しみにしています。また、ユースケースを次のコミュニティと共有していただければ幸いです。惑星カサンドラ