11 事前トレーニング済モデルからONNX形式への変換
OML4Pyでは、Hugging Faceからのテキスト・トランスフォーマを、ONNX形式のモデルに変換することで使用できるようになります。OML4Pyにより、必要なトークン化および後処理も追加されます。結果となるONNXパイプラインは、その後、データベースにインポートされます。また、AIベクトル検索用の埋込みの生成に使用できます。
ノート:
この機能は、OML4Pyクライアントでのみ動作します。OML4Pyサーバーではサポートされていません。データの埋込みを生成するONNX形式の事前トレーニング済モデルがない場合は、Oracleが提供しているPythonユーティリティ・パッケージで、外部ソースから事前トレーニング済モデルをダウンロードし、そのモデルを前処理ステップおよび後処理ステップで拡張されたONNX形式に変換し、それをOracle Databaseにファイルとしてインポートできます。DBMS_VECTOR.LOAD_ONNX_MODEL
プロシージャまたはOML4Pyのexport2db()
関数を使用して、ファイルをマイニング・モデルとしてインポートします。次に、データベース内ONNX RuntimeをONNXモデルとともに利用して、ベクトル埋込みを生成します。
- 事前トレーニング済モデルを外部ソースからシステムにダウンロードします
- 前処理および後処理ステップを使用してモデルを拡張し、新しいONNXモデルを作成します
- 拡張したONNXモデルを検証します
- マイニング・モデルとしてデータベースにロードするか、オプションで、ファイルにエクスポートします
Pythonユーティリティは、事前構成済リストの任意のモデルを入力として受け取ることができます。または、特定のモデル・グループ(テキストベース・モデルなど)の共通構成を含む組込みテンプレートを使用することもできます。事前構成済リストとは何か、組込みテンプレートとは何か、それらをどのように使用するかを理解するには、以降の説明をお読みください。
制限事項
この表では、Pythonユーティリティ・パッケージの制限事項について説明します。
ノート:
この機能は、OML4Pyクライアントでのみ使用できます。パラメータ | 説明 |
---|---|
トランスフォーマ・モデル・タイプ |
現在、テキスト・トランスフォーマでのみサポートされています。 |
モデル・サイズ |
モデル・サイズは1GB未満にする必要があります。量子化はサイズを小さくするのに役立ちます。 |
トークン化機能 |
BERT 、GPT2 、SENTENCEPIECE またはROBERTA のどれかである必要があります。
|
モデルの事前構成済リスト
モデルの事前構成済リストは、Pythonユーティリティで提供される外部リソース・リポジトリの共通モデルです。事前構成済モデルには既存の仕様があります。ユーザーは、開始点としてテキスト・テンプレートを使用して独自の仕様を作成できます。事前構成済リストのすべてのモデル名のリストを取得するには、show_preconfigured
関数を使用します。
テンプレート
Pythonユーティリティ・パッケージには、前処理操作と後処理操作を使用して事前トレーニング済モデルを構成するための組込みテキスト・テンプレートが用意されています。このテンプレートには、事前トレーニング済モデルのデフォルト仕様が含まれています。この仕様を変更または拡張してカスタム構成を作成できます。テキスト・テンプレートでは、デフォルトで後処理操作として平均プーリングと正規化が使用されます。
-
EmbeddingModelConfig
-
EmbeddingModel
Pythonクラスとそのプロパティについて確認し、プロパティを構成するには、「事前トレーニング済モデルをONNXモデルに変換するPythonクラス」を参照してください。
-
オンプレミス・データベース用にLinux X64で実行されているOML4Pyクライアント
-
Python 3.12 (以前のバージョンは互換性がありません)
DBMS_VECTOR.LOAD_ONNX_MODEL
は、モデルをデータベースに保存するためにexport2db
を使用するのではなくONNXモデル・ファイルをローカル・システムに保存するためにexport2file
を使用した場合のみ必要です。DBMS_VECTOR.LOAD_ONNX_MODEL
では、ONNX形式のモデルがOracle Databaseにインポートされて、データベース内ONNX Runtimeが利用され、VECTOR_EMBEDDING
SQL演算子によってベクトル埋込みが生成されます。
関連項目:
VECTOR_EMBEDDING
SQLファンクションについては、『Oracle Database SQL言語リファレンス』を参照してくださいIMPORT_ONNX_MODEL
プロシージャについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してくださいLOAD_ONNX_MODEL
プロシージャについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください- ONNX形式での事前トレーニング済埋込みモデルのインポート、およびベクトル埋込みの生成の詳細は、『Oracle Machine Learning for SQL概要』を参照してください
- ONNXドキュメントについては、https://onnx.ai/onnx/intro/を参照してください
- ONNXモデルへの事前トレーニング済モデルの変換: エンドツーエンドの手順
この項では、OML4Pyクライアントのインストールから、Oracleが提供するPythonユーティリティ・パッケージを使用したONNX形式での事前トレーニング済埋込みモデルのダウンロードまでの、エンドツーエンドの手順について説明します。 - 事前トレーニング済モデルをONNXモデルに変換するPythonクラス
Python内のEmbeddingModelConfig
クラスおよびEmbeddingModel
クラスの関数および属性を示します。これらのクラスは、事前トレーニング済埋込みモデルを構成するために設計されています。