Azure Database for PostgreSQL - フレキシブル サーバー (プレビュー) の azure_local_ai 拡張機能とは

Azure Database for PostgreSQL フレキシブル サーバーの azure_local_ai 拡張機能を使用すると、Azure Database for PostgreSQL サーバーにローカルにデプロイされた登録済みの事前トレーニングされたオープンソース モデルを使用できます。 これらのモデルを使用すると、リッチな生成 AI アプリケーションを構築する際に、取得拡張生成 (RAG) パターンにコンテキストを提供できるテキスト埋め込みを作成できます。  azure_local_ai 拡張機能を使用すると、ローカルにデプロイされたモデルをデータベースで呼び出して、テキスト データからベクトル埋め込みを作成できます。これにより、PostgreSQL 境界の外でホストされている AI 埋め込みモデルに対して多くのリモート API 呼び出しを行う必要がなくなり、開発プロセスが簡略化され、待機時間が短縮されます。 このリリースでは、この拡張機能によって、単一モデルの multilingual-e5-small が Azure Database for PostgreSQL フレキシブル サーバー インスタンスにデプロイされます。 その他のサードパーティ製のオープンソース モデルも、継続的にインストールできるようになる可能性があります。

ローカル埋め込みによって、お客様は以下を行うことができます。

  • 埋め込み作成の待機時間を短縮する。

  • 予測可能なコストで埋め込みモデルを使用する。

  • データをデータベース内に保持する。これにより、リモート エンドポイントにデータを送信する必要がなくなります。

重要

azure_local_ai 拡張機能は現在プレビュー段階にあります。 Azure Local AI 拡張機能を使用したインストール用の Microsoft のオープン ソース AI モデルは、Microsoft 製品条項に基づき、Microsoft 以外の製品と見なされます。 お客様によるオープンソース AI モデルの使用は、azure_local_ai 拡張機能を通じて利用可能になるこのようなモデルに関連する製品ドキュメントに記載されている別個のライセンス条項によって管理されます。 追加使用条件: 制限付きアクセス AI サービス (プレビュー)

azure_local_ai 拡張機能を有効にする (プレビュー)

Azure Database for PostgreSQL フレキシブル サーバー インスタンスで azure_local_ai を有効にする前に、「PostgreSQL 拡張機能の使用方法」で説明されているように、それを許可リストに追加し、正しく追加されているかを SQL ステートメント SHOW azure.extensions; を実行して確認する必要があります。

重要

データベースで言語モデルをホストするには、大きなメモリ占有領域が必要です。 この要件をサポートするために、azure_local_ai は、メモリが最適化されており、仮想コアが少なくとも 4 個ある Azure SKU でのみサポートされます。 現在、最小要件を満たさない VM を使用している場合、サーバー パラメーターの利用できる拡張機能の一覧には、azure_local_ai 拡張機能が表示されません。 Azure Database for PostgreSQL フレキシブル サーバーの Azure portal ページにある [リソース] メニューの [設定] セクションで、[サーバー パラメーター] を選択します。

PostgreSQL サーバー パラメーター ページのスクリーンショット。

"extensions" または "azure.extensions" を検索します

Azure Database for Postgresql - フレキシブル サーバーの許可リストで使用できる拡張機能のスクリーンショット。

拡張機能の一覧から AZURE_LOCAL_AI を選択します。

Azure Local AI 拡張機能の拡張機能許可リストのスクリーンショット。

[保存] を選択して変更を適用し、許可リストのデプロイ プロセスを開始します。

Azure Local AI 拡張機能の許可リストに保存されている拡張機能のスクリーンショット。

このデプロイは、Azure portal の上部にあるベルのアイコンを使用して監視できます。

Azure Local AI 拡張機能の拡張機能許可リストのデプロイ状態のスクリーンショット。

許可リストのデプロイが完了したら、インストール プロセスを続行できます。

Note

Azure Local AI プレビューを有効にすると、multilingual-e5-small モデルが Azure Database for PostgreSQL フレキシブル サーバー インスタンスにデプロイされます。 リンクされたドキュメントには、e5 チームのライセンス条項が記載されています。 その他のサードパーティ製のオープンソース モデルも、継続的にインストールできるようになる可能性があります。

これで、ターゲット データベースに接続して CREATE EXTENSION コマンドを実行することで、拡張機能をインストールできます。 拡張機能を使用できるようにしたいデータベースごとに、このコマンドを個別に繰り返す必要があります。

リスト拡張機能は、Azure portal の [サーバー パラメーター] ページからデータベースで許可されます。

SHOW azure.extensions;

データベース内に拡張機能を作成します。

CREATE EXTENSION azure_local_ai;

拡張機能 azure_local_ai をインストールすると、次のスキーマが作成されます。

  • azure_local_ai: 拡張機能がテーブル、関数、およびその機能を実装して公開するために必要なその他の SQL 関連オブジェクトを作成するプリンシパル スキーマ。

重要

PostgreSQL データベースにテキスト埋め込みを保存する必要があるため、ベクトル拡張機能を有効にする必要があります。

azure_local_ai 拡張機能によって提供される関数

azure_local_ai 拡張機能は、一連の関数を提供します。 これらの関数を使用すると、テキスト データからベクトル埋め込みを作成できるため、生成 AI アプリケーションを簡単に開発できます。 この拡張機能には、埋め込みの作成、設定の取得などの関数が用意されています。 これらの関数を使用すると、PostgreSQL 境界の外でホストされている AI 埋め込みモデルに対する追加のリモート API 呼び出しを行う必要がなくなり、開発プロセスを簡略化し、待機時間を短縮できます。

[スキーマ] 名前 結果のデータ型 引数のデータ型
azure_local_ai create_embeddings TABLE(embedding real[]) model_uri text, inputs text[], batch_size bigint DEFAULT 128, timeout_ms integer DEFAULT 3600000
azure_local_ai create_embeddings real[] model_uri text, input text, timeout_ms integer DEFAULT 3600000
azure_local_ai get_setting jsonb keys text[] DEFAULT ARRAY[]::text[], timeout_ms integer DEFAULT 3600000
azure_local_ai get_setting text key text, timeout_ms integer DEFAULT 3600000
azure_local_ai model_metadata jsonb model_uri text

これらは、PSQL コマンドを使用して表示できます。

\df azure_local_ai.*

azure_local_ai.create_embeddings

azure_local_ai 拡張機能を使用すると、ローカルにデプロイされた LLM を呼び出して、スカラー形式とバッチ形式の両方で埋め込みを作成および更新できます。

azure_local_ai.create_embeddings(model_uri text, input text, batch_size bigint DEFAULT 128, timeout_ms integer DEFAULT 3600000);
azure_local_ai.create_embeddings(model_uri text, array[inputs [text]], batch_size bigint DEFAULT 128, timeout_ms integer DEFAULT 3600000);

引数

model_uri

埋め込みを作成するために呼び出されるテキスト埋め込みモデルの text 名。

input

text または text[] は、使用される関数のオーバーロードに応じて、埋め込みが作成される 1 つのテキストまたはテキストの配列。

batch_size

bigint DEFAULT 128 は、一度に処理するレコードの数 (パラメーター input がタイプ text[] の関数のオーバーロードでのみ使用可能 )。

timeout_ms

integer DEFAULT 3600000 操作停止後のタイムアウト時間 (ミリ秒単位)。

簡単な埋め込み作成の例:

SELECT azure_local_ai.create_embeddings('model_uri TEXT', 'query: input TEXT');
SELECT azure_local_ai.create_embeddings('multilingual-e5-small:v1', 'query: Vector databases are awesome');
SELECT azure_local_ai.create_embeddings('model_uri TEXT', array['input TEXT', 'input TEXT']);
SELECT azure_local_ai.create_embeddings('multilingual-e5-small:v1', array['Hello', 'World']);

azure_local_ai 拡張機能のバージョンを確認する

SELECT * FROM pg_available_extensions
WHERE NAME ='azure_local_ai';

ONNX Runtime の構成

azure_local_ai.get_setting

構成オプションの現在の値を取得するために使用されます。

SELECT azure_local_ai.get_setting(key TEXT)

azure_local_ai では、ONNX Runtime サービス内の ONNX Runtime スレッドプールの構成パラメーターの確認がサポートされています。 現時点では、変更は許可されていません。 「ONNX Runtime のパフォーマンス チューニング」を参照してください。

引数

キー

key の有効な値は次のとおりです。

  • intra_op_parallelism: ONNX Runtime スレッドプールによる単一演算子の並列化に使用されるスレッドの合計数を設定します。 既定では、intra ops スレッドの数を可能な限り最大化することで (既定では利用可能なすべての CPU)、全体的なスループットを大幅に向上させます。
  • inter_op_parallelism: ONNX Runtime スレッドプールによって複数の演算子を並列に計算するために使用されるスレッドの合計数を設定します。 既定では、最小スレッド数 (1) に設定します。 これを増やすと、スレッド間のコンテキスト切り替えが頻繁に発生するため、多くの場合にパフォーマンスが低下します。
  • spin_control: 要求に対する ONNX Runtime スレッドプールのスピンを切り替えます。 無効にすると CPU 使用量が少なくなり、待機時間が長くなります。 既定では true (有効) に設定されています。

返り値の種類

TEXT は選択した設定の現在の値を表します。