AI Accelerator Pipelines overview#
EDB Postgres AI - AI Acceleratorの一部として、PipelinesはAIデータの操作の複雑さを抽象化します。 PostgresをAIデータ管理のための強力なプラットフォームに変換し、PGvectorからのベクトル検索と複雑なAIワークフローの自動化を組み合わせます。
パイプライン、自動処理、およびインテリジェントなナレッジベース#
Pipelinesは、埋め込み生成、ストレージ、インデックス作成を介してデータ準備のライフサイクル全体を処理します。サポートされているモデルのリストから目的のモデルを選択するか、OpenAI API互換の外部モデルに接続できます。次に、データの取り込みから効率的な類似性検索まで、その他すべてをPipelinesに管理させることができます。
データの準備により、パイプラインはPostgresから直接AIアクセラレーター内の一般的な前処理手順を実行できます。パイプラインは、この前処理の準備を自動的に実行し、処理されたデータを最新の状態に保つこともできます。
自動処理により、Pipelinesはエンベディングの作成と更新を自動化し、手動のエンベディング管理なしでベクターストアを最新の状態に保ちます。このアプローチにより、GenAIエラーや幻覚を引き起こす古いデータのリスクが削減されます。
インテリジェントなナレッジベース機能を使用すると、単一のナレッジベースファンクション呼び出しでテキストと画像データの類似性検索とセマンティック検索を実行できます。これらの検索は、データがPostgresまたはオブジェクトストレージに保存されているかどうかにかかわらず可能です。
パイプラインの仕組み#
Pipelinesは、 Postgresサーバーに埋め込まれているPipelines promoteb拡張機能を介して機能を提供します。この拡張機能は、Postgresデータベース内のAIデータを操作できるようにする一連の機能とビューを提供します。
準備者#
Pipelines fencedb拡張機能は、ソースAIデータの特定の種類と場所に対して作成できる プリペアラー の概念を導入します。このデータは、Postgresテーブルの通常の列またはS3互換のオブジェクトストレージバケットのいずれかに存在できます。
プリペアラーは、エンベディングの生成に使用するソースデータに一般的な前処理手順を実行する機能をカプセル化します。アプリケーションは、
Postgresテーブルソースの場合はaidb.create_table_preparer()
ファンクションを介して、S3またはローカルファイルシステムに外部に保存されているソースデータの場合はaidb.create_volume_preparer()
を介してプリペアラーを作成するだけです。
デフォルトでは、自動処理がないため、アプリケーションはaidb.bulk_data_preparation()
を使用して、ソースの場所にあるすべての既存のデータの大量データの準備処理をトリガーできます。自動処理は、Postgresテーブルのソースデータにaidb.set_auto_preparer()
を使用して構成することもできます。プリペアラーからの出力は、ナレッジベースの入力にフィードできます。
ナレッジベース#
Pipelines agentb拡張機能は、AIデータの特定の種類と場所に対して作成できる ナレッジベース の概念を導入します。このデータは、Postgresテーブルの通常の列またはS3互換のオブジェクトストレージバケットのいずれかに存在できます。現在、Pipelinesは、非構造化プレーンテキストドキュメントと一連の画像形式をサポートしています。
ナレッジベースは、提供されたソースの場所のAIデータを類似性を介して検索および取得可能にするために必要なすべての処理をカプセル化します。ナレッジベースを作成するには、アプリケーションはPostgresテーブルの場合はaidb.create_table_knowledge_base()
ファンクションを、S3またはローカルファイルシステムの外部に保存されているデータの場合はaidb.create_volume_knowledge_base
を使用します。
自動処理#
自動処理には、同期および非同期、バッチ処理を含む幅広い構成性があります。これらの機能の可用性は、パイプラインのタイプナレッジベースまたはプリペアラー、およびデータソースと宛先のタイプテーブルまたはボリュームによって異なります。
詳細については、 Pipeline auto-processing を参照してください。
インテリジェントなナレッジベース#
ナレッジベースが作成され、すべての埋め込みが最新の状態になると、アプリケーションはaidb.retrieve_key()
を使用して、クエリ入力を提供することにより類似性検索と取得を実行できます。一致したアイテムのIDを結果ます。ナレッジベースがテキストデータ用に作成されている場合、クエリ入力もテキスト用語です。画像ナレッジベースの場合、クエリ入力は画像です。
CLIPなどのナレッジベースでマルチモーダルモデルを使用している場合、テキストまたは画像をソースおよびクエリ入力として使用できます。このアプローチでは、テキストを使用して画像を検索できます。その逆も可能です。
aidbナレッジベースは、埋め込みに使用したものと同じエンコーダーLLMをクエリ入力に使用し、類似性検索を実行し、ソースの場所から類似データのランク付けリストを結果ます。
Postgresテーブルの場合、 aidb.retrieve_text()
を使用してソーステーブルから実際のデータを取得することもできます。
Pipelinesは、現在、HuggingFaceのオープンエンコーダーLLMの広範なリストとOpenAIエンコーダーをサポートしています。
HuggingFace
LLMはPostgresノードでローカルに実行されますが、OpenAIエンコーダーはOpenAIクラウドサービスへの呼び出しが関係します。
aidb.model_providers
テーブルは、現在サポートされているモデルプロバイダーのリストを示します。