Polar_AI は、クラウドネイティブデータベース PolarDB 向けの AI 拡張機能です。高度な AI モデルとアルゴリズムを統合し、データベースと最新の人工知能のギャップを埋め、データベースが機械学習や自然言語処理 (NLP) などのタスクを実行できるようにします。このトピックでは、Polar_AI エンジンの基本機能について説明します。これには、大規模 AI モデルを呼び出してテキストの埋め込み変換やテキストの感情分類を実行する方法や、SQL を拡張して他の AI モデルサービスと連携するカスタムモデルを定義する方法などがあります。
基本概念
NLP:自然言語処理は、コンピュータが人間の言語を理解し生成できるようにすることに焦点を当てた AI の分野です。この分野には、テキスト分類、感情分析、機械翻訳、対話システムなどの技術があります。
埋め込み:機械学習と自然言語処理 (NLP) における中核的な概念であり、辞書内の単語や画像のピクセルなどの高次元でスパースな特徴ベクトルを、低次元で密度が高く連続的なベクトル表現に変換することです。
メリット
標準 SQL を使用して、データベース内で AI モデルを直接呼び出し、管理できます。この方法には、次の主なメリットがあります。
使いやすさ:基本的な SQL を使用して、モデルのトレーニングから推論まで、エンドツーエンドの AI 操作を実行できます。AI の深い専門知識や複雑なプログラミングスキルは必要ありません。これにより、参入障壁が大幅に下がり、より多くのユーザーが AI アプリケーションを構築できるようになります。
柔軟性とカスタマイズ:事前設定された AI アルゴリズムのセットに加えて、ビジネスニーズに合わせて新しいモデルを追加し、いくつかの簡単な SQL ステートメントで機能を拡張できます。これにより、統一されたフレームワーク内で、テキスト分類、画像認識、時系列予測などのさまざまなタスクを効率的に処理できます。
シームレスなデータ統合:Polar_AI は、AI で生成された結果をデータベースに直接保存するため、モデル出力を既存のシステムに統合するために通常必要な追加の手順が不要になります。AI の結果を他の構造化データや非構造化データと簡単に結合して、包括的な分析とより適切な意思決定を行うことができます。
データセキュリティ:計算プロセス全体を通じて、データは安全で信頼性の高いデータベース環境内に留まり、データ転送中の情報漏洩を防ぎます。きめ細かなアクセス制御、アクセス監査、暗号化などのエンタープライズグレードの機能により、システムのセキュリティがさらに強化されます。
優れたパフォーマンス:すべての計算がデータベース内で実行されるため、データ移行によるオーバーヘッドが削減され、リアルタイムパフォーマンスを必要とするアプリケーションに優れた応答時間とスループットを提供します。
エンタープライズグレードの機能:Polar_AI は、クラウドネイティブデータベース PolarDB のすべての高度な機能を継承しています。これには、自動フェイルオーバー、オンラインスケーリング、階層型ストレージなどが含まれます。これらの機能は、安定した信頼性の高い大規模データ処理プラットフォームを構築するための強固な基盤を提供します。
クイックスタート
拡張機能の作成
として、次のステートメントを実行します。
CREATE EXTENSION IF NOT EXISTS polar_ai;カスタムモデルを作成するための 関数について
関数のパラメータとして次の情報を準備します。
デプロイ済みで実行中のモデルサービス。この例では、Platform for AI (PAI) にデプロイされた DeepSeek-R1-Distill-Qwen-7B モデルを使用します。
説明デプロイされたモデルサービスは、PolarDB クラスターと同じ Virtual Private Cloud (VPC) 内にある必要があります。
デプロイ後、[サービス詳細] > [呼び出し情報] に移動して VPC 呼び出し情報を表示し、記録します。この情報には、モデルの作成に使用するアクセスアドレスとトークンが含まれています。
モデル入力関数と出力関数を定義します。
呼び出し方法には、
ChatとCompletionsの 2 つがあります。このトピックでは、Completionsを例に説明します。モデル入力関数:
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$;モデル出力関数:
HTTP 経由で
DeepSeek-R1-Distill-Qwen-7Bモデルを呼び出した場合、レスポンスボディは以下のとおりです。{ "id": "8e44xxxx", "object": "text_completion", "created": 1744355891, "model": "DeepSeek-R1-Distill-Qwen-7B", "choices": [ { "index": 0, "text": " I have a\n\n\n</think>\n\nHello! How can I assist you today? ", "logprobs": null, "finish_reason": "stop", "matched_stop": 151643 } ], "usage": { "prompt_tokens": 3, "total_tokens": 21, "completion_tokens": 18, "prompt_tokens_details": null } }choices[0].textの内容を取得するだけでよく、出力は追加の処理を必要としないテキストブロックであるため、モデル出力関数を定義する必要はありません。
AI モデルの作成
関数を呼び出してモデルを作成します。モデルを作成するときは、次のパラメータを設定します。
モデル呼び出しアドレス
model_urlは Platform for AI (PAI) にデプロイされたモデルのアクセスアドレスで、これに呼び出しメソッド/v1/completionsを付加する必要があります。モデル構成
model_configでは、tokenは Platform for AI (PAI) にデプロイされたモデルのトークンです。モデル入力変換関数
model_in_transform_fnは、前の手順で作成されたai_text_in_fn関数です。
SELECT polar_ai.ai_createmodel('my_test_pai_model', '<EAS Endpoint>/v1/completions','Alibaba','EAS large language model','DeepSeek-R1-Distill-Qwen-7B','{"author_type": "token", "token": "<EAS Token>"}', NULL,'ai_text_in_fn'::regproc,NULL);説明SELECT * FROM polar_ai._ai_models;クエリを実行すると、作成されたモデルの情報を表示できます。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 を使用したモデルの呼び出し
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)