アプリケーション開発プロセスへの生成 AI の急速な統合により、プライベート データとトレーニングに使用されるパブリック データを統合できるようにする必要性が高まっています。
最近のウェビナーでは、
この投稿では、プライベート データ生成 AI のすべてのニーズに対応するデータ統合、データ編成、データ取得のフレームワークとして LlamaIndex を使用する方法を説明します。
前述したように、LlamaIndex は、LLM アプリケーションの構築を簡素化するオーケストレーション フレームワークまたは「データ フレームワーク」です。プライベート データのデータ拡張を実行する機能を提供し、知識の生成と推論のために LLM にプライベート データを組み込むことができます。すべての生成 AI 機能の中心となるのはデータです。エンタープライズ アプリケーションは、LLM がトレーニングされる公開データ以上のものにアクセスできる必要があり、アプリケーションを構築するために内部および外部のすべてのデータ ソースから構造化データ、非構造化データ、および半構造化データを組み込む必要があります。
LlamaIndex が提供するのは、このデータの統合です。複数の一意のソースからデータを取り込む。
以前は GPT Index として知られていた LlamaIndex は、LLM ベースのアプリケーションを構築するためのエンドツーエンドのライフサイクルを管理するために必要なツールを提供するフレームワークです。 LLM ベースのアプリケーションを構築する際の課題は、通常、複数の異なるソースからのデータが必要であり、共通のデータ表現に強く準拠していない限り、必要なデータはさまざまな形式 (高度に構造化されたもの、非構造化されたもの、および高度に構造化されたもの、非構造化されたものなど) であることです。間。
そこで LlamaIndex は、データの取り込みとデータのインデックス作成のためのツールを使用して、このデータのロックを解除するためのツールボックスを提供します。取り込まれてインデックスが作成されると、
LlamaIndex には、カスタム データ ソースを LLM に接続する機能を提供する数百のデータ ローダーがあります。 Airtable、Jira、Salesforce などの事前に構築されたソリューションを、ファイル、JSON ドキュメント、単純な CSV、非構造化データからデータを読み込むための汎用プラグインに接続します。
データ ローダーの完全なリストは、次の場所にあります。
データが取り込まれたら、LLM で簡単にクエリできるように、データを数学的に表現する必要があります。 LlamaIndex を使用すると、インデックスは複数の異なる次元でデータを数学的に表現する機能を提供するだけです。データのインデックス作成は新しい概念ではありません。ただし、機械学習を使用すると、インデックス作成の粒度を 1 つまたは 2 つの次元 (キー/値の表現など) から数百または数千の次元に拡張できます。
機械学習および LLM 用にデータにインデックスを付ける最も一般的なアプローチは、ベクトル インデックスと呼ばれます。データにインデックスが付けられると、データの数学的表現はベクトル埋め込みと呼ばれます。インデックス作成モデルと埋め込みモデルには多くの種類がありますが、データが埋め込まれると、同様の意味を持つテキストなどは同様の数学的表現を持つため、データの数学的表現を使用してセマンティック検索を行うことができます。たとえば、クエリが王族に関する場合、国王と女王の関連性は高くなりますが、クエリが性別に関する場合は関連性が高くない可能性があります。
ここで、LlamaIndex と LLM の真の力が発揮されます。 LlamaIndex を使用したデータのクエリは、データをマージ/結合して検索するための複雑な一連のコマンドではないため、「LlamaIndex」と呼ばれる概念を通じて自然言語として表現されます。
LlamaIndex は、データの探索と分類の方法を最適化するように設計された、いくつかの異なるインデックス作成モデルを提供します。これは最終的に多くの利点を達成できる場所です。アプリケーションがデータに対して実行する必要がある操作の種類がわかっている場合、特定の種類のインデックスを活用すると、LLM を使用してクエリをインスタンス化するアプリケーションに大きなメリットをもたらすことができます。
リスト インデックスは、データを分割し、連続したリストの形式でデータを表すアプローチです。これの利点は、データを多次元的に探索できる一方で、データのクエリに対する主な最適化がシーケンシャル パターンを介して行われることです。このタイプのインデックスは、時間の経過とともに発生する構造化オブジェクトに適しているため、時間の経過とともに物事がどのように変化したかをクエリする変更ログなどに適しています。
ツリー インデックスを使用する場合、LlamaIndex は入力データを取得し、データが親ノードと葉ノードとして編成されるバイナリ ツリー構造に編成します。ツリー インデックスを使用すると、大量のデータを横断し、検索でツリーを横断する方法に基づいてテキストの特定のセグメントを抽出する必要がある応答を構築することができます。ツリー インデックスは、サポート/FAQ エンジン上に自然言語処理チャットボットを構築するなど、追跡または検証したい情報のパターンがある場合に最適です。
ベクトル ストア インデックス タイプを使用する場合、LlamaIndex はデータ ノートをベクトル埋め込みとして保存します。これは、ベクトル検索や類似性検索など、複数の異なる方法でデータの表現を使用できる機能を提供するため、おそらく最も一般的なインデックス付けの種類です。ベクター ストア インデックスを使用してデータにインデックスが付けられると、単一のアプリケーションまたはより大きなデータセットで小規模なデータセットに対してローカルで利用したり、複数の異なる LLM/アプリケーション間で使用したりすることができ、高性能ベクター データベースに保存できます。のように
キーワードのインデックス作成は、メタデータ タグ、つまりキーワードをそれらのキーワードを含む特定のノードにマッピングする従来のアプローチに近いものです。このマッピングは、キーワードに基づいて関係の網を構築します。これは、キーワードが複数の異なるノードにマッピングされたり、ノードが複数の異なるキーワードにマッピングされたりするためです。このインデックス作成モデルは、大量のデータにタグを付け、複数の異なるデータセットにわたってクエリできる特定のキーワードに基づいてデータをクエリする場合に適しています。たとえば、法的説明会、医療記録、または特定の種類のメタデータに基づいて調整する必要があるその他のデータなどです。
大きな疑問の 1 つは、LlamaIndex と LangChain をどのように比較するのか、同様の機能を提供するのか、それとも相互に補完し合うのかということです。実際には、LlamaIndex と LangChain は同じコインの裏表を提供します。どちらもアプリケーションで LLM と機械学習へのインターフェイスを提供するように設計されていますが、LlamaIndex は、データのインテリジェントな検索のためのインデックス作成およびクエリ機能を提供するために特別に設計および構築されています。そのコインの裏側には、自然言語処理を介してデータと対話する機能があります。つまり、データと対話するチャットボットを構築するか、そのデータを使用してコードの呼び出しなどの他の機能を駆動することができます。
LlamaIndex は、所有するデータをさまざまな形式で保存し、そのデータをさまざまなソースから取得する機能を提供し、最終的に生成 AI アプリケーションの方法を提供します。
LangChain は、保存されたデータを使用して何かを実行し、コードを生成し、生成的な質問の回答を提供し、意思決定を促進する機能を提供し、最終的に生成 AI アプリケーションに何を提供するかを提供します。
LlamaIndex を使用すると、生成 AI アプリケーションを構築するためにデータの取り込み、インデックス付け、クエリを実行するための使いやすいデータ/オーケストレーション フレームワークが得られます。上記では開始するための簡単な例を提供しましたが、LlamaIndex の真の力は、データ駆動型 AI アプリケーションを構築する機能から生まれます。モデルを再トレーニングする必要はありません。LlamaIndex と拡張性の高いベクター データベースを使用して、カスタム クエリ エンジン、会話型チャットボット、または受信データを動的に解釈してコンテキストに合わせて複雑な問題解決と対話できる強力なエージェントを作成できます。リアルタイムでの意思決定。
そのため、プライベート データを活用し、そのデータを操作して応答するアプリケーションの機能にそれを組み込む機能が必要な生成 AI アプリケーションを構築するときは、取り込み、インデックス作成、クエリの開始点として LlamaIndex が最適です。ただし、過去の間違いを繰り返して、AI アプリケーションで使用、埋め込み、アクセスしているデータをサイロ化しないでください。これらのエンベディングとインデックスを Astra DB のような拡張性の高いベクター ストアに保存することを含む、完全なエンドツーエンド ソリューションを構築します。
LlamaIndex の使用を開始し、DataStax と LlamaIndex がどのように連携してより優れているかを確認するには、最近の DataStax ブログ投稿「
大量のデータを大規模に処理できるように設計された Apache Cassandra 上に構築された、世界最高パフォーマンスのベクター ストアの 1 つで Astra DB をセットアップおよびデプロイする方法の詳細については、こちらをご覧ください。無料で始めるには、
-ビル・マクレーン著、DataStax