ONNX形式での事前トレーニング済モデルのインポート

Oracle AI Database 26aiには、データベース内で埋込みモデルを直接実行するためのONNX Runtimeエンジンが含まれています。この項では、既存の事前トレーニング済埋込みモデルをOracle AI Databaseにインポートするプロセスについて説明します。これには、モデルがまだ変換されていない場合のONNX形式への変換も含まれます。

Open Neural Network Exchange (ONNX)は、機械学習モデルのオープン・スタンダードな形式です。次のユースケースについて考えます。
  • 類似検索でのテキストやイメージなどの複雑なメディア入力の使用
  • テキスト分類の実行
  • 再ランク付けの実行

前述のすべてのタスクを実行するには、メディア入力のベクトル埋込みが必要です。ONNXパイプライン・モデルでは、テキスト・モデルまたはイメージ・モデル(あるいはその両方)がONNX形式でない場合はONNX形式に変換し、ONNX形式モデルをOracle AI Databaseにインポートして、データベース内のデータから埋込みを生成できます。データベースにインポートされたONNX形式モデルは、検索や分類などのタスクに使用できます。

事前トレーニング済モデルは、メディア・データ(テキスト、イメージなど)ですでにトレーニングされ、将来使用するためにストレージ形式に保存されたモデルです。Hugging Faceは、通常PyTorchで作成される事前トレーニング済モデルをホストする最も一般的なプラットフォームです。

この表では、機械学習モデルと、それぞれの簡潔な説明、モデル・サイズおよびPARダウンロード・リンクを示します。

モデル名 説明 次元数 サイズ(MB) 最終更新日 ダウンロード
all_MiniLM_L12_v2 これは、セマンティック類似検索とクラスタリングのユースケースに適した、SentenceTransformersモデルです。 384 116.92 7/15/2024 リンク
multilingual_e5_base これは、100言語をサポートしている多言語sentence-transformerモデルです。テキスト埋込み、翻訳および多言語理解をサポートします。多言語タスクのための、12個のレイヤーと768次元の埋込みを特徴としています。 768 1040 2/17/2024 リンク
multilingual_e5_small これは、100個をサポートしている多言語sentence-transformerモデルです。テキスト埋込み、翻訳または多言語理解をサポートします。効率的になるように最適化されています。これは、複数の言語に対応できるとともに、推論の高速化と計算要件の削減のために小さいサイズに保たれています。 384 76.8 9/9/2024 リンク
clip_vit_base_patch32_txt これは、CLIP画像エンコーダと互換性がある埋込みを生成するテキスト・エンコーダです。テキストから画像への検索と、テキスト説明と画像の間の類似性照合が可能になります。 512 243.57 1/29/2021 リンク
clip_vit_base_patch32_img これは、CLIPテキスト・エンコーダと互換性がある埋込みを生成する画像エンコーダです。画像からテキストへのと、画像とテキスト説明の間の類似性照合が可能になります。 512 335.38 1/29/2021 リンク
Pythonパッケージoml.utilsには、ONNXPipelineONNXPipelineConfigおよびMiningFunctionの3つのクラスが含まれています。このパッケージでは、ONNXパイプラインの生成およびエクスポートを処理し、必要な前処理および後処理ステップも含まれています。
  • ONNXPipeline: 事前トレーニング済モデルをインポートできます(独自の事前トレーニング済モデルまたはHugging Faceのサポートされているいずれかのモデル)
  • ONNXPipelineConfig: 事前トレーニング済モデルの属性を構成できます(独自の事前トレーニング済モデルまたはHugging Faceのサポートされているいずれかのモデル)。
  • MiningFunction: 次のマイニング・オプションのいずれかを選択できます:
    • EMBEDDING: テキストおよびイメージの埋込みに対応します
    • CLASSIFICATION: テキスト分類に対応します
    • REGRESSION: 再ランク付けに対応します

警告:

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

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