11.2 事前トレーニング済モデルをONNXモデルに変換するPythonクラス
Python内のEmbeddingModelConfig
クラスおよびEmbeddingModel
クラスの関数と属性を確認します。これらのクラスは、事前トレーニング済埋込みモデルを構成するために設計されています。
EmbeddingModelConfig
EmbeddingModelConfig
クラスには、ONNXモデルのダウンロード、エクスポート、拡張、検証および格納を実行するためにパッケージに必要なプロパティが含まれています。このクラスでは、ドット演算子を使用して構成プロパティへのアクセスが提供されます。利便性のために、よく知られた構成がテンプレートとして提供されます。
パラメータ
この表は、EmbeddingModelConfig
クラスの関数およびプロパティについて説明しています。
関数 | パラメータ・タイプ | 戻り値 | 説明 |
---|---|---|---|
from_template(name,**kwargs) |
|
EmbeddingModelConfig のインスタンス |
nameパラメータで指定された事前定義済テンプレートに基づいてEmbeddingModelConfig オブジェクトを作成する静的関数。名前付き引数を使用して、テンプレートのプロパティをオーバーライドできます。
|
show_templates() |
該当なし | 既存のテンプレートのリスト | 既存のテンプレートの名前のリストを返す静的関数。 |
show_preconfigured() |
|
事前構成済モデルの名前またはプロパティのリスト。 | 事前構成済モデルの名前またはプロパティのリストを示します。この関数では、デフォルトで、名前のリストのみが返されます。プロパティが必要な場合は、include_properties パラメータをTrue として渡します。返されるリストには、単一のdictが含まれます。ここで、dictの各キーは事前構成済モデルの名前であり、値はそのモデルのプロパティ・セットです。また、特定のモデルの1つのプロパティ・セットのみが必要な場合は、model_name パラメータでモデルの名前を渡します(include_properties パラメータがTrue である必要もあります)。これにより、指定されたモデルのプロパティを含む単一dictのリストが返されます。
|
テンプレートのプロパティ
テキスト・テンプレートには、次に示す構成プロパティがあります:
"do_lower_case": true,
"post_processors":[{"name":"Pooling","type":"mean"},{"name":"Normalize"}]
ノート:
「プロパティ」表内の他のすべてのプロパティは、デフォルト値をとります。EmbeddingModelConfig
インスタンスの作成時は、デフォルト値のないプロパティを指定する必要があります。
プロパティ
この表では、構成可能なすべてのプロパティを示します。事前構成済モデルでは、これらのプロパティが特定の値に設定されています。テンプレートでは、EmbeddingModelConfig
でfrom_template
関数を使用するときにユーザーがオーバーライドしないかぎり、デフォルト値が使用されます。
プロパティ | 説明 |
---|---|
|
モデルのロード後または初期化後にロードされるポストプロセッサの配列。既知のポストプロセッサおよびサポートされているポストプロセッサのリストは、この項で後で示します。テンプレートにより、それでサポートしているモデルのタイプに対してポストプロセッサのリストを定義できます。それ以外の場合は、空の配列がデフォルトになります。 |
|
このプロパティは、テキストベースのモデルにのみ適用されます。モデルへの入力の最大長(トークン数)。デフォルト値はありません。この値は事前構成されていないモデルに対して指定します。 |
|
トークン化時に入力を小文字にするかどうかを指定します。デフォルト値はTrue です。
|
|
モデルに対して量子化を実行します。これにより、モデルのサイズを大幅に縮小し、処理を高速化できます。ただし、埋込みベクトルの結果が(元のモデルに対して)異なる結果になり、精度が少し低下する可能性があります。デフォルト値は、False です。
|
distance_metrics |
モデルに適した距離メトリックの名前の配列。この名前は、Oracleベクトル距離演算子に使用される距離メトリックの名前である必要があります。モデルをデータベースにエクスポートする場合のみ使用されます。サポートされているリストは、["EUCLIDEAN ","COSINE ","MANHATTAN ","HAMMING ","DOT ","EUCLIDEAN_SQUARED "]です。デフォルト値は空の配列。
|
languages |
データベースでサポートされている言語(略称)の配列。モデルをデータベースにエクスポートする場合のみ使用されます。サポートされている言語のリストは、言語を参照してください。デフォルト値は空の配列。 |
use_float16 |
エクスポートされたonnxモデルをfloat16に変換するかどうかを指定します。デフォルト値は、False です。
|
post_processorsのプロパティ
この表は、組込みpost_processorsとその構成パラメータについて説明しています。
post_processor | パラメータ | 説明 |
---|---|---|
|
|
post_processorがPoolingの場合、トランスフォーマ・モデルの出力が固定長のベクトルに要約されます。 |
|
|
post_processorがNormalizeの場合、L2正規化を使用してベクトル値が範囲にバインドされます。 |
|
|
受信データに変換を適用します。 |
例: post_processorsの構成
Max
にした後にNormalizationを指定してオーバーライドしています。
config = EmbeddingModelConfig.from_template("text")
config.post_processors = [{"name":"Pooling","type":"max"},{"name":"Normalize"}]
EmbeddingModel
トランスフォーマ・モデルをONNX形式に変換し、後処理ステップを最終モデルに埋め込むには、EmbeddingModel
クラスを使用します。
パラメータ
この表は、EmbeddingModel
クラスのシグネチャとプロパティについて説明しています。
関数 | パラメータ | 説明 |
---|---|---|
EmbeddingModel(model_name,configuration=None,settings={}) |
|
EmbeddingModel クラスの新しいインスタンスを作成します。
|
settings
settingsオブジェクトは、EmbeddingModel
クラスに渡されるディクショナリです。これにより、モデル固有操作以外(ロギングなど)に使用される、EmbeddingModel
クラスのグローバル・プロパティを提供します。
プロパティ | デフォルト値 | 説明 |
---|---|---|
cache_dir |
$HOME/.cache/OML |
ダウンロードに使用するベース・ディレクトリ。モデル・ファイルは、リポジトリから、cache_dir を基準としたディレクトリにダウンロードされます。実行時にcache_dir が存在しない場合は、それが作成されます。
|
logging_level |
ERROR |
ロギングのレベル。有効な値は['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']です。
ノート: このログ・レベルは、すべてのpythonパッケージにもグローバルに適用され、ONNXRuntimeライブラリにもマップされます。 |
force_download |
False |
キャッシュから再ロードするのではなく、モデル・ファイルを強制的にダウンロードします。 |
ignore_checksum_error |
False |
事前構成済モデルの使用時にチェックサムでの不一致によって発生したエラーを無視します。 |
関数
この表は、EmbeddingModel
クラスの関数およびプロパティについて説明しています。
関数 | パラメータ | 説明 |
---|---|---|
export2file(export_name,output_dir=None) |
|
モデルをファイルにエクスポートします。 |
export2db(export_name) |
|
モデルをデータベースにエクスポートします。 |
例: 事前構成済モデル
次の例は、Pythonパッケージに付属する事前構成済の埋込みモデルを示しています。このモデルは、追加の構成なしで使用できます。
"sentence-transformers/distiluse-base-multilingual-cased-v2": {
"max_seq_length": 128,
"do_lower_case": false,
"post_processors":[{"name":"Pooling","type":"mean"},{"name":"Dense","in_features":768, "out_features":512, "bias":true, "activation_function":"Tanh"}],
"quantize_model":true,
"distance_metrics": ["COSINE"],
"languages": ["ar", "bg", "ca", "cs", "dk", "d", "us", "el", "et", "fa", "sf", "f", "frc", "gu", "iw", "hi", "hr", "hu", "hy", "in", "i", "ja", "ko", "lt", "lv", "mk", "mr", "ms", "n", "nl", "pl", "pt", "ptb", "ro", "ru", "sk", "sl", "sq", "lsr", "s", "th", "tr", "uk", "ur", "vn", "zhs", "zht"]
}
親トピック: 事前トレーニング済モデルからONNX形式への変換