Polar_AI は、高度な AI モデルとアルゴリズムを統合した PolarDB が提供する AI 拡張機能です。データベース内で機械学習や自然言語処理などのタスクを実行できます。このトピックでは、Polar_AI の基本的な機能を紹介します。これには、AI モデルを呼び出してデータベース内で embedding と感情分類を実行する方法、および SQL 文を使用して AI モデルをカスタマイズして他の AI モデルサービスと対話する方法が含まれます。
サポートされているバージョン
PolarDB for PostgreSQL クラスタは、次のデータベースエンジンバージョンのいずれかを実行しています。
リビジョンバージョン 2.0.16.6.2.0 以降の PolarDB for PostgreSQL 16。
リビジョンバージョン 2.0.15.12.4.0 以降の PolarDB for PostgreSQL 15。
リビジョンバージョン 2.0.14.13.28.0 以降の PolarDB for PostgreSQL 14。
PolarDB コンソールで、または SHOW polardb_version;
文を実行することで、クラスタのリビジョンバージョンを確認できます。必要に応じて、バージョンをアップグレードしてください。
用語
自然言語処理 (NLP): コンピュータが人間の言語を理解し、生成できるようにすることに重点を置いた AI の分野。この分野には、テキスト分類、感情分析、機械翻訳、対話システムなどのテクノロジーが含まれます。
Embedding: 機械学習と NLP の分野における重要な概念。この概念は、高次元でスパースな特徴ベクトル (辞書の単語や画像ピクセルなど) を、低次元で密度の高い連続ベクトル空間のベクトル表現に変換するプロセスを指します。
メリット
標準 SQL 文を使用して、データベース内で AI モデルを呼び出して管理できます。このアプローチには、次の利点があります。
使いやすさ: 深い AI の専門知識や複雑なプログラミングスキルは必要ありません。モデルのトレーニングから予測推論の出力までのプロセス全体を完了するには、基本的な SQL 構文を習得するだけで済みます。これにより、専門家以外の人も AI アプリケーションの実践に参加できます。
柔軟性とカスタマイズ: Polar_AI が提供する一般的な AI アルゴリズムに加えて、ビジネスニーズに基づいて新しいモデルをインポートできます。いくつかの簡単な SQL 文を記述するだけで、機能拡張を実装できます。したがって、テキスト分類、画像認識、時系列予測など、さまざまな種類のタスクを統一されたフレームワークで効率的に処理できます。
シームレスなデータ統合: 従来、AI モデルによって生成された出力は、既存の情報システムに効果的に統合される前に、追加のステップを経由する必要がありました。ただし、このソリューションでは、すべての AI 計算結果をデータベースに直接保存し、他の構造化データまたは非構造化データと簡単に結合してクエリと分析を行うことができるため、意思決定のためのより包括的で正確な情報サポートを提供します。
データセキュリティ: 計算プロセス全体を通して、生データは常に安全で信頼性の高いデータベース環境に保存され、頻繁なデータ送信による情報漏洩を回避します。同時に、きめ細かいアクセス制御、監査証跡、暗号化技術などの成熟したエンタープライズレベルの機能により、システムの保護レベルがさらに強化されます。
優れたパフォーマンス: すべての計算タスクはデータベース内で実行されるため、データ移行によるオーバーヘッドが削減されます。応答時間とスループットの点で、システムパフォーマンスは優れています。これは、リアルタイムパフォーマンスの高いレベルを必要とするシナリオで特に重要です。
エンタープライズレベルのサービスサポート: 自動フェールオーバー、オンラインスケーリング、階層型ストレージなどの PolarDB の高度な機能により、企業ユーザーは安定した信頼性の高い大規模データ処理プラットフォームを構築できます。
手順
拡張機能を作成します。
特権アカウントを使用して、次の文を実行します。
CREATE EXTENSION IF NOT EXISTS polar_ai;
カスタム AI モデルを作成するために、AI_CreateModel 関数の使用準備をします。
モデルサービスをデプロイし、使用可能であることを確認します。この例では、DeepSeek-R1-Distill-Qwen-7B モデルを Platform for AI(PAI)にデプロイします。
説明モデルサービスは、PolarDB クラスタと同じ VPC(仮想プライベートクラウド)にデプロイする必要があります。
デプロイ後、
に移動します。[呼び出し情報を表示] をクリックして、[アクセスアドレス] と [トークン] 情報を取得します。入力関数を定義します。
DeepSeek-R1-Distill-Qwen-7B
モデルを呼び出すには、次のサンプル HTTP リクエスト本文を参照してください。{ "model": "DeepSeek-R1-Distill-Qwen-7B", "prompt": "Hello!" }
リクエスト本文では、
model
パラメータとprompt
パラメータが必要です。入力関数は次のように定義できます。CREATE OR REPLACE FUNCTION ai_text_in_fn(model_name text, content text) RETURNS jsonb LANGUAGE plpgsql AS $function$ BEGIN RETURN ('{"model": "'|| model_name ||'","prompt":"'|| content ||'"}')::jsonb; END; $function$;
AI モデルを作成します。
AI_CreateModel 関数を呼び出して、モデルを作成します。 AI_CreateModel 関数の構文は次のとおりです。
table AI_CreateModel(text model_id, text model_url, text model_provider, text model_type, text model_name, json model_config, regprocedure model_headers_fn, regprocedure model_in_transform_fn, regprocedure model_out_transform_fn);
モデルを作成する SQL 文では、次のパラメータを設定する必要があります。
model_url
パラメータには、手順 2 で取得したアクセスアドレスに呼び出しメソッドを追加して設定します。Chat
およびCompletions
呼び出しメソッドがサポートされています。この例では、/v1/completions
を追加することでCompletions
メソッドを使用しています。model_config
パラメータのトークンには、手順 2 で取得した AI モデルサービストークンを設定します。model_in_transform_fn
パラメータには、入力関数名であるai_text_in_fn
を設定します。
次の SQL 文を実行して、AI モデルを作成します。
SELECT polar_ai.ai_createmodel('my_test_pai_model', '<access address>/v1/completions','Alibaba','EAS large language model','DeepSeek-R1-Distill-Qwen-7B','{"author_type": "token", "token": "<model service token>"}', NULL,'ai_text_in_fn'::regproc,NULL);
説明作成された AI モデルに関する情報を表示するには、
SELECT * FROM polar_ai._ai_models;
文を実行します。AI モデルを呼び出す関数を定義します。
AI_CallModel 関数を使用して、AI モデルを呼び出す関数を定義します。
CREATE OR REPLACE FUNCTION my_text_pai_model_func(model_id text, content text) RETURNS text AS $$ select (polar_ai.AI_CALLMODEL($1,$2)::jsonb -> 'choices' -> 0 ->> 'text')::text AS result $$ LANGUAGE 'sql' IMMUTABLE;
次の SQL 文を実行して、AI モデルを呼び出します。
SELECT my_text_pai_model_func('my_test_pai_model', 'Hello');
出力例:
my_text_pai_model_func -------------------------------------- Hello! How can I assist you today? (1 row)