はじめに
Autonomous Databaseの付属ツールの1つであるデータ変換(Data Transforms)がOCI生成AIサービスを利用したベクトル埋め込みとの統合がサポートされました。
これにより、データ変換のデータフロー機能をつかってGUIでベクトル埋め込みの作業を行うことができるようになりました。
事前作業
- Oracle Database 23aiベースのAutonomous Database
- ネットワークACLの設定
データベースユーザーにホストに対する接続権限を付与
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => '*',
ace => xs$ace_type(privilege_list => xs$name_list('connect'),
principal_name => 'admin',
principal_type => xs_acl.ptype_db));
END;
/
- サンプル表、データの作成
作業用の表を作成しデータを格納します。また、Embedding結果を格納するためにVector型の列を持つ表を作成します。
create table wikisample (title varchar2(30),TEXT CLOB);
insert into wikisample (title,text) values('San Francisco','San Francisco is in California.');
-- 省略
commit;
create table wikisample_v (title varchar2(30),TEXT CLOB,v vector);
データ変換( Data Transforms ) の起動とログイン
データ変換(Data Transforms)はデータベース・アクションから起動できます。
起動しているAutonomous Databaseの詳細から、「データベース・アクション」の「すべてのデータベース・アクションの表示」を選択
データベース・アクション起動パッド
データベース・アクションのメニューから「データ変換」を選択
データ変換(Data Transforms)にログイン
データ変換に関連付けられたVMがプロビジョニングされます。
プロビジョニングされるVMのサイズはOCI WebコンソールのAutonomous Databaseの詳細の「ツール構成」から確認することができます。
Data Transformsの起動の確認
接続の作成
Embeddingデータを格納するAutonomous DatabaseとOCI 生成AIへの接続を作成します。
データ変換(Data Transforms)から「Connections」を選択
Autonomos Databaseへの接続が確認できます。
「Create Connection」をクリック
Service Typeから「Services」~「OCI Generative AI」を選択
接続の名前とOCI生成AIを利用するためのクレデンシャル情報を入力し「Create」をクリック
プロジェクトとデータフローの作成
Embeddingを実施するデータフローとそのデータフローを格納するプロジェクトを作成します。
データ変換(Data Transforms)から「Projects」を選択
「Create Data Flow」をクリック
「Create Data Flow」の画面で、データフローの名前を入力
「Create New Project」を選択し、プロジェクトの名前を入力
データフローの画面で「Add a Schema」をクリックして、Autonomous Databaseの接続とスキーマを選択します。
接続したスキーマが所持する表のリストからEmbedding対象とする表を選択
データベース機能ツールバーから「MACHINE LERNING」を選択
「Text Embedding Vector」をデザイン・キャンバスにドラッグし、最初に選択した表から「コネクタ」アイコン(「コネクタ」アイコン)をドラッグして、コンポーネントを接続
デザイン・キャンパス内の「Text Embedding Vector」をクリックし、OCI生成AIに関する情報を入力
- AI Service:「OCI Generative AI」
- Connection: 接続の名前(例:OCI_GENAI_CONN)
- AI Model:Embeddingに使用するモデルをリストから選択(例:cohere.embed-multilingual-v3.0)
「Column Mapping」(列マッピング)でinput_textの編集アイコンをクリック
「Expression」(式)列にEmbedding対象とするテキスト列をドラッグ
デザイン・キャンバスにEmbeddin結果を格納する表をドラッグ(例:WIKISAMPLE_V)
選択した表の編集から「Column Mapping」(列マッピング)でベクトル列の編集アイコンをクリック
「Expression」(式)列にTextEmbeddingVectorのVECTOR_EMBEDDINGをドラッグ
列マッピングの確認
Embeddingの実施と確認
データ・フローを保存して実行します。
保存していない場合ダイアログが表示されます。
データフローを開始
ジョブの確認
Embedding結果をSQLで確認(例:データベース・アクションSQL)
ベクトル列の値
おわりに
Autonomous Databaseのデータ変換を使うことでGUIベースにEmbeddingのフロー作成・実行ができました。
データ変換の使用を開始すると、ツールに関連付けられたVMがプロビジョニングされ、データベースECPU数に加えてツールに割り当てられたECPU数の時間課金が発生します。
データベースインスタンスが停止または終了した場合、またはデータ変換が指定された最大アイドル時間(デフォルト10分)を超えるアイドル状態の場合、データ変換に割当て済ECPUの請求が停止します。