今年、AI大規模モデルの応用は爆発的な成長を遂げました。その中でも、LangChainやHaystackなどのエンドツーエンドの大規模言語モデル応用フレームワークにより、ベクトルデータベースが新たなホットスポットとなりました。 ベクター データベース (ベクター データベースとも呼ばれます) は、簡単に言えば、ベクター形式でデータを管理、保存、取得するデータベースです。 ベクトルデータベースはなぜ AI にとってそれほど重要なのでしょうか?画像処理から推奨システムまで、高次元データの処理における本質的な利点により、ベクトル データベースは間違いなく舞台裏のヒーローです。主な機能は次のとおりです。
したがって、ベクトル データベースは AI にメモリを与えると言えます。このメモリには、記録と保存だけでなく、検索と管理も含まれます。人間の記憶と同じように、私たちは卒業写真を通してクラスメートが誰であるかを常に認識できます。また、友人とおしゃべりしているときに過去を思い出すこともよくあります。 では、ベクター データベースはどのように機能するのでしょうか?ベクターデータベースの中核は、数学モデルを使用してベクターデータを管理することです。 ではベクトルとは何でしょうか?簡単に言えば、ベクトルは方向と大きさの両方を持つ数値オブジェクトです。ベクター データベースでは、ベクターを使用して画像やテキストなどの複雑なデータを表すことができます。 各データは高次元空間のベクトルに変換されて管理されます。類似したデータを見つける必要がある場合、データベースは各エントリを走査して選択する必要はありません。代わりに、ベクトル間の距離が計算されてベクトルが一致します。ベクトルが近いほど、データの類似性が高くなります。このアプローチは非常に効率的で、従来のリレーショナル データベースよりも高速に大量のデータを処理できます。 以下はテキスト ベクトル ストレージの例の図です。 以下は、画像のベクトル化された保存と取得の例の図です。 周知のとおり、一般的な大規模モデルの運用には膨大な計算リソースが必要となるため、多くの大規模モデルは MaaS をベースとしており、民営化コストが非常に高くなります。これとは矛盾する点は、特定の業界での大規模モデルの適用においては、データ セキュリティに高い要件が課されることが多く、セキュリティと専門性を確保するには、関連するビジネスまたはドメイン知識との詳細な統合が求められることです。 LangChain などの大規模モデル アプリケーション フレームワークは、業界の大規模モデル アプリケーションに古典的なソリューションを提供し、オープン ソース ベクトル データベースは、LangChain などの大規模モデル アプリケーション ソリューションに基本的なサポートを提供します。実際、ベクトル データベースは、多くのアプリケーション シナリオ (エンタープライズ ナレッジ ベース、推奨システム、アーカイブ管理など) でも非常に役立ちます。そのため、ベクター データベースは、大規模なモデル アプリケーションの開発でも人気のテクノロジになっています。 優れたオープンソースベクターデータベースプロジェクト8つオープンソース コミュニティは、ベクター データベースの開発に多大な貢献をしてきました。多くのオープンソース ベクター データベース プロジェクトは、パフォーマンス、柔軟性、堅牢性の点で非常に優れたパフォーマンスを発揮しています。ここでは、現在利用可能な最高のオープンソース ベクター データベース プロジェクトを 8 つ紹介します。これらのオープンソース プロジェクトは、AI ソリューションに最適なテクノロジを選択できるはずです。 1.ミルバス出典: milvus Milvus は、Zilliz が提供する高度にカスタマイズ可能なオープンソースのベクトル データベースで、組み込み類似性検索などの AI アプリケーションをサポートするように設計されています。 Milvus 2.0 がリリースされました。Milvus 2.0 は、ストレージとコンピューティングを分離するように設計されたクラウドネイティブのベクトル データベースです。 Milvus2.0 のすべてのコンポーネントはステートレス性をサポートしており、これによりアプリケーション全体の柔軟性と回復力が高まります。 Milvus は、Faiss、Annoy、HNSW などの主流のベクトル検索ライブラリ上に構築されており、数百万、数十億、さらには数兆のベクトルを含む高密度のベクトル データセットで類似性検索を実行するように設計されています。 Milvus は、データ シャーディング、データ永続性、ストリーミング データの取り込み、ベクター データとスカラー データ間のハイブリッド検索、その他多くの高度な機能もサポートしています。最高の可用性と回復力を得るには、Kubernetes を使用して Milvus をデプロイすることをお勧めします。 Milvus は共有ストレージ アーキテクチャを採用し、ストレージとコンピューティングを分離し、コンピューティング ノードの水平スケーラビリティを備えています。データ プレーンとコントロール プレーンの分解の原則に従って、Milvus はアクセス レイヤー、コーディネーション サービス、作業ノード、ストレージの 4 つのレイヤーで構成されます。これらの層は、スケーリングや災害復旧の観点からは互いに独立している場合があります。 以下はMilvusのアーキテクチャ図です。 Milvus の主な機能は次のとおりです。
詳細については、公式ウェブサイトをご覧ください:https://milvus.io デモ: https://milvus.io/milvus-demos/ ドキュメント: https://milvus.io/docs 2.ファイスhttps://github.com/facebookresearch/faiss Faiss は、Facebook の AI 研究チームによって開発された、高次元ベクトル検索に優れたベクトル データベースです。これは検索効率に優れたベクター ライブラリであり、リアルタイム要件が高い一部のアプリケーションにも最適です。 Faiss は、効率的な類似性検索と高密度ベクトル クラスタリング ライブラリです。 RAM のサイズを超えるサイズまで、あらゆるサイズのベクトル セットを検索できるアルゴリズムが含まれています。評価とパラメータ調整のためのサポート コードも含まれています。 Faiss は Python/numpy の完全なラッパーを使用して C++ で記述されており、一般的に使用されるいくつかのアルゴリズムが GPU 上に実装されています。 Faiss は、ベクトルのセットのインデックスを保存し、それらの間で比較する関数を提供することで検索を実装します。 現在、Faiss は GitHub で 24,000 以上のスターを獲得しています。 CPU と GPU に基づいた Python のインストール方法は次のとおりです。 後者は前者のスーパーセットであるため、上記のいずれか 1 つだけをインストールでき、両方を同時にインストールすることはできません。 3.イライラさせるhttps://github.com/spotify/annoy Annoy (approximate Nearest Neighbors Oh Yeah) は、Spotify によって作成された軽量で強力なベクター データベースです。大規模なデータ セットを高速に検索できるように設計されており、高速な応答時間を必要とするアプリケーションに最適です。これは C++ ライブラリですが、Python からも使用できます。 これは、大きな読み取り専用ファイル データ構造を作成し、それをメモリにマッピングすることで実現され、多くのプロセスが同じデータを共有できるようになります。 ANNOY の中核は、ランダム投影とツリーに基づくアルゴリズムです。これは、Spotify で働いていた Erik Bernhardsson によって 2015 年に開発されました。 ANNOY は、100 ~ 1000 の密な次元を持つデータセットを検索できるように設計されています。最近傍を計算するには、点のセットを半分に分割し、各セットに k 個の項目が含まれるまでこれを再帰的に実行します。通常、k は約 100 になります (下の図を参照)。 Annoy の主な機能の公式紹介は次のとおりです。
Python言語でのインストールの煩わしさ: Python 言語で annoy を使用する: 4.Nmslibhttps://github.com/nmslib/nmslib Nmslib (非メトリック空間ライブラリ) は、非メトリック空間用のオープンソースのベクトルライブラリです。これは、効率的なクロスプラットフォーム類似性検索ライブラリであり、類似性検索方法を評価するツールキットです。コアライブラリにはサードパーティの依存関係はありません。 このプロジェクトの目標は、一般的な検索方法、近似検索方法、さまざまなメトリック空間にアクセスするための方法、非メトリック空間のための方法など、一般的な空間と非メトリック空間を検索するための包括的なツールキットを作成することです。 Nmslib は、新しい検索方法と距離関数を追加できる拡張可能なライブラリです。 C++、Python、Java での使用をサポートしています。例えば、Java や他の言語を使用してクエリサーバーを構築できます。 5. クドラントhttps://github.com/qdrant/qdrant Qdrant は、ベクター データベースとベクター類似性検索エンジンを含むオープン ソース プロジェクトです。ベクトルデータの保存、検索、管理を実行するための便利な API セットを提供し、ペイロード データも同時に保存できるため、カスタマイズされたデータ フィルタリングに役立ちます。この側面は、さまざまなニューラル ネットワーク、セマンティック ベースのマッチング、ファセット検索、正確な推奨などのアプリケーションで非常に役立ちます。 Qdrant は Rust 言語で開発されているため、高負荷時でも効率的で信頼性があります。 Qdrant の使い方は非常に簡単です: (1)Dockerを使い始める
(2)Pythonでの使用 インストール: 接続する: qdrant の特徴は次のとおりです。
6. クロマhttps://github.com/chroma-core/chroma Chroma はオープンソースの組み込みベクター データベースです。 LLM アプリケーションは Chroma に基づいて簡単に構築できます。 Chroma は非常にシンプルで使いやすく、柔軟性が高く、さまざまなシナリオのニーズを満たすように設計されています。サードパーティの埋め込みモデルを使用したクエリとメタデータのフィルタリングをサポートします。 以下は、Chroma と OpenAI 埋め込みで使用されるアーキテクチャの概略図です。 Docker ベースの Chromadb については、以下を参照してください。
具体的なアプリケーション開発の点では、Python で Chroma を使用するのも非常に簡単です。 インストール: 4 つのコア API の使用: Chroma の主な機能は次のとおりです。
7. ランスDB出典: github.com LanceDB は、永続的なストレージをサポートするオープンソースのベクトル検索データベースです。このオープンソース プロジェクトにより、埋め込みの取得、フィルタリング、管理が大幅に簡素化されます。 LanceDB のコアは Rust で開発され、高性能 ML ワークロード向けに設計されたオープンソースの列指向形式である Lance を使用して構築されています。 PythonやJavaScriptなどの言語ではAPIを使用してLanceDBを操作することができます。 Python は次のように使用されます。 インストール: 検索: LanceDB の主な機能は次のとおりです。
8. ベクトラhttps://github.com/Stevenic/vectra Vectra は Node.js 用のローカル ベクター ライブラリで、機能は Pinecone や Qdrant に似ていますが、Vectra はローカル ファイルを使用して構築されます。各 Vectra インデックスはディスク上のフォルダーに対応します。フォルダーには index.json ファイルが含まれており、このファイルにはインデックスのすべてのベクトルとこれらのインデックスのメタデータが含まれています。インデックスを作成するときに、インデックスのメタデータ プロパティを指定すると、それらのフィールドのみが index.json ファイルに保存されます。プロジェクトのその他のメタデータは、GUID で識別されるファイルに保存されます。 実行時に、Vectra インデックス全体がメモリにロードされるため、リアルタイムでも検索効率が非常に高くなりますが、長いコンテキストを保持する必要のあるチャットボットなどのシナリオには適していません。 Vectra は、小規模なコーパス、静的データ、または一部の質問と回答のドキュメントの検索などのアプリケーション シナリオに適しています。 Node.js での使用方法は次のとおりです。 インストール: インスタンスを作成します。 インデックスを作成します。 インデックスにデータを追加します。 データを取得: 結論は上記の各オープンソース ベクター データベースには、それぞれ独自の特徴があります。どちらを使用するかの選択は、プロジェクトの具体的なニーズによって異なります。高速なデータ取得を必要とするプロジェクトに取り組んでいる場合は、Annoy が最適かもしれません。しかし、プロジェクトに非メトリック空間が含まれる場合は、Nmslib が最初の選択肢になる可能性があります。適切なベクトル データベースは AI ソリューションのメモリ スポンジとなり、AI が推論するだけでなく、記憶して取得できるようにすることで、AI アプリケーションの有効性が向上します。 |
<<: GPT-4 の推論はより人間的です!中国科学院は「思考コミュニケーション」を提唱、類推思考はCoT、プラグアンドプレイよりも優れている
>>: Nature の調査: AI が「必需品」になったと考える科学者はわずか 4%
[[439390]]中国国営ラジオの12月7日の北京での「ニュースハイパーリンク」によると、米国の...
テンセントは11月20日、移動ロボット研究における新たな進展を発表し、四足移動ロボット「ジャモカ」と...
中国自動車工程協会と国家インテリジェントコネクテッドビークルイノベーションセンターは、「2021年第...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
業界ではよく知られているデータサイエンスのウェブサイトである KDnuggests は昨日、4 月の...
EU があらゆる業界での AI および機械学習技術の使用を効果的に規制する AI 法の施行に向けて...
過去数か月間、私たちは大規模言語モデル (LLM) が高品質のテキストを生成し、幅広い言語タスクを解...
2018年ももうすぐ終わりです。今年は、ブロックチェーン、5G、チップ、量子コンピューティングが、誰...
今月、ニュースイベント分析、マイニング、検索システム NewsMiner のデータによると、図 1 ...
ソート アルゴリズムは、最も基本的で一般的に使用されるアルゴリズムです。ソート アルゴリズムは、シナ...
この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)か...