ONNX形式での事前トレーニング済モデルのインポート
Oracle Database 23aiには、データベース内で埋込みモデルを直接実行するためのONNXランタイム・エンジンが含まれています。この項では、既存の事前トレーニング済埋込みモデルをOracleデータベースにインポートするプロセスについて説明します。これには、モデルがまだ変換されていない場合のONNX形式への変換も含まれます。
Open Neural Network Exchange (ONNX)は、機械学習モデルのオープン・スタンダードな形式です。次のユースケースについて考えます。
- 類似検索でのテキストやイメージなどの複雑なメディア入力の使用
- テキスト分類の実行
- 再ランク付けの実行
前述のすべてのタスクを実行するには、メディア入力のベクトル埋込みが必要です。ONNXパイプライン・モデルでは、テキスト・モデルまたはイメージ・モデル(あるいはその両方)がONNX形式でない場合はONNX形式に変換し、ONNX形式モデルをOracle Databaseにインポートして、データベース内のデータから埋込みを生成できます。データベースにインポートされたONNX形式モデルは、検索や分類などのタスクに使用できます。
事前トレーニング済モデルは、メディア・データ(テキスト、イメージなど)ですでにトレーニングされ、将来使用するためにストレージ形式に保存されたモデルです。Hugging Faceは、通常PyTorchで作成される事前トレーニング済モデルをホストする最も一般的なプラットフォームです。
Pythonパッケージ
oml.utils
には、ONNXPipeline
、ONNXPipelineConfig
およびMiningFunction
の3つのクラスが含まれています。このパッケージでは、ONNXパイプラインの生成およびエクスポートを処理し、必要な前処理および後処理ステップも含まれています。
- ONNXPipeline: 事前トレーニング済モデルをインポートできます(独自の事前トレーニング済モデルまたはHugging Faceのサポートされているいずれかのモデル)
- ONNXPipelineConfig: 事前トレーニング済モデルの属性を構成できます(独自の事前トレーニング済モデルまたはHugging Faceのサポートされているいずれかのモデル)。
- MiningFunction: 次のマイニング・オプションのいずれかを選択できます:
EMBEDDING
: テキストおよびイメージの埋込みに対応しますCLASSIFICATION
: テキスト分類に対応しますREGRESSION
: 再ランク付けに対応します
警告:
EmbeddingModelおよびEmbeddingModelConfigは非推奨です。かわりに、ONNXPipelineおよびONNXPipelineConfigをそれぞれ使用してください。非推奨クラスの詳細は、「事前トレーニング済モデルをONNXモデルに変換するPythonクラス(非推奨)」を参照してください。非推奨のクラスを使用した場合は、警告メッセージが表示されて、そのクラスが将来削除されることが示され、新しいクラスに切り替えるようにユーザーに通知されます。ONNXパイプライン・モデルは、テキスト埋込み、イメージ埋込み、マルチモーダル埋込み、テキスト分類および再ランク付けに使用できます。
- ONNXパイプライン・モデル: テキスト埋込み
ONNXパイプライン・モデルでは、テキストを入力として受け入れ、埋込みを出力として生成するテキスト埋込みモデルが提供されます。パイプライン・モデルでは、テキストに必要な前処理および後処理も提供されます。 - ONNXパイプライン・モデル: イメージ埋込み
ONNXパイプライン・モデルでは、イメージを入力として受け入れ、埋込みを出力として生成するイメージ埋込みモデルが提供されます。パイプライン・モデルには、必要な前処理も用意されています。 - ONNXパイプライン・モデル: CLIPマルチモーダル埋込み
ONNXパイプライン・モデルでは、イメージとテキストの両方を入力として受け入れ、埋込みを出力として生成するマルチモーダル埋込みモデルが提供されます。パイプライン・モデルには、必要な前処理も用意されています。 - ONNXパイプライン・モデル: テキスト分類
ONNXパイプライン・モデルでは、テキスト文字列を入力として受け入れ、特定のラベルに属する入力文字列の確率を生成するテキスト分類モデルが提供されます。パイプライン・モデルでは、必要な前処理および後処理も提供されます。 - ONNXパイプライン・モデル: パイプラインの再ランク付け
ONNXパイプライン・モデルでは、特定のテキスト・ペアの類似度スコアを計算する再ランク付けパイプラインが提供されます。 - ONNXモデルへの事前トレーニング済モデルの変換: テキスト埋込みのエンドツーエンドの手順
この項では、OML4Pyクライアントのインストールから、Oracleが提供するPythonユーティリティ・パッケージを使用したONNX形式での事前トレーニング済埋込みモデルのダウンロードまでのエンドツーエンドの手順について説明します。 - Oracle DatabaseへのONNXモデルのインポートのエンドツーエンドの例
ONNX形式の事前トレーニング済埋込みモデルをインポートし、ベクトル埋込みを生成する方法を学習します。
親トピック: ベクトル埋込みの生成