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には、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 AI DatabaseへのONNXモデルのインポートに関するエンドツーエンドの例
ONNX形式の事前トレーニング済埋込みモデルをインポートし、ベクトル埋込みを生成する方法を学習します。
親トピック: ベクトル埋込みの生成