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には、ONNXPipelineONNXPipelineConfigおよびMiningFunctionの3つのクラスが含まれています。このパッケージでは、ONNXパイプラインの生成およびエクスポートを処理し、必要な前処理および後処理ステップも含まれています。
  • ONNXPipeline: 事前トレーニング済モデルをインポートできます(独自の事前トレーニング済モデルまたはHugging Faceのサポートされているいずれかのモデル)
  • ONNXPipelineConfig: 事前トレーニング済モデルの属性を構成できます(独自の事前トレーニング済モデルまたはHugging Faceのサポートされているいずれかのモデル)。
  • MiningFunction: 次のマイニング・オプションのいずれかを選択できます:
    • EMBEDDING: テキストおよびイメージの埋込みに対応します
    • CLASSIFICATION: テキスト分類に対応します
    • REGRESSION: 再ランク付けに対応します

警告:

EmbeddingModelおよびEmbeddingModelConfigは非推奨です。かわりに、ONNXPipelineおよびONNXPipelineConfigをそれぞれ使用してください。非推奨クラスの詳細は、「事前トレーニング済モデルをONNXモデルに変換するPythonクラス(非推奨)」を参照してください。非推奨のクラスを使用した場合は、警告メッセージが表示されて、そのクラスが将来削除されることが示され、新しいクラスに切り替えるようにユーザーに通知されます。

ONNXパイプライン・モデルは、テキスト埋込みイメージ埋込みマルチモーダル埋込みテキスト分類および再ランク付けに使用できます。