11.1 ローカル・ファイルシステムからのカスタム・モデルのロード
事前トレーニング済のHugging Faceモデルから微調整され、ローカル・ファイルシステムに存在するカスタム・モデルは、新しいlocal_model_path
設定を使用してONNX形式に変換できます。この設定は、ネットワークを使用できず、事前トレーニング済モデルが以前にダウンロードされている場合にも役立ちます。
カスタム・モデルのモデル・ディレクトリは、次の形式に従う必要があります:
<basedir>/<model_file_subfolders>
- basedir: モデル・サブ・フォルダのベース・ディレクトリで、
local_model_path
設定パラメータとして渡されます。このパラメータの詳細は、「拡張ONNXファイルの生成」の項を参照してください。絶対パスまたは相対パスを指定できます。相対の場合、Pythonが起動された場所を基準にします。 - model_file_subfolders: これらのネストされたフォルダは、モデルの名前に基づいて作成されます。モデルの名前に含まれる「/」文字ごとに、新しいサブディレクトリを作成する必要があります。
例11-1 カスタム・モデル・ファイルのローカル・ディレクトリ
たとえば、モデル名がmymodel
の場合、mymodel
という名前の1つのディレクトリのみが想定されます。ただし、モデル名がuser/mymodel
の場合は、user
という親ディレクトリとmymodel
というサブディレクトリを作成する必要があります。すべてのモデル・ファイルは、最後のサブディレクトリ(この場合はmymodel
)に配置する必要があります。
user
mymodel
拡張ONNXファイルの生成
EmbeddingModelオブジェクトを初期化する場合は、設定パラメータを使用して、モデルのbasedir
を識別する新しいプロパティlocal_model_path
を渡します。たとえば、ローカル・ファイルシステムのモデルのbasedir
が$HOME/sample-model
で、my-model
という名前のカスタム・モデルがある場合、次のPythonコードを使用してこれを実現できます:
from oml.utils import EmbeddingModel
import os
em = EmbeddingModel('my-model',settings={'local_model_path':f'{os.environ["HOME"]}/sample-model'})
em.export2file('my-onnx-model','.')
この処理が終わると、現在のディレクトリに
my-onnx-model.onnx
という名前のファイルがあることを確認できます。
ノート:
前述のコードは、export2fileのかわりにexport2dbが使用される点を除き、データベースにエクスポートする場合と同じです。詳細は、「事前トレーニング済モデルからONNX形式への変換」を参照してください。このコードは、ダウンロードされたすべての事前トレーニング済モデル、事前構成済モデルおよびテンプレートと互換性があります。エラーおよび警告の条件
表11-1 エラーおよび警告の条件
エラー(または警告)条件 | エラー(または警告)メッセージ | ノート |
---|---|---|
force_downloadが指定された | 「local_model_path」を指定する場合、force_downloadをtrueにすることはできません | force_downloadは、この機能と相互に排他的であるため、local_model_pathに値がある場合は指定できません。 |
local_model_pathがディレクトリではない | 「local_model_path」で指定された「{local_path}」は既存のディレクトリである必要があります。 | {local_path} は、local_model_path で指定された値です。このメッセージは、local_model_pathの値が既存のディレクトリでない場合に返されます。
|
モデル構成ファイルがない | config.jsonファイルを含むローカル・モデル・フォルダ{model_path}を予期していましたが、見つかりませんでした。 | {model_path} は、ローカル・モデル・フォルダへのフルパスです。このメッセージは、ローカル・モデル・フォルダにconfig.jsonという名前のファイルが含まれていない場合に返されます。
|
モデル・ファイルがない | ローカル・モデル・フォルダ{model_path}にmodel.safetensorsまたはpytorch_model.binファイルの少なくとも1つが含まれていることが予期されていました。どちらも見つかりませんでした。 | {model_path} は、ローカル・モデル・フォルダへのフルパスです。このメッセージは、ローカル・モデル・フォルダにpytorch_mode.binファイルが含まれていない場合、または.safetensorsで終わらないファイルが少なくとも1つ含まれていない場合に返されます。
|
事前構成済モデルが使用されている(警告) | 警告: 事前構成済モデルをローカル・パスからロードすると、チェックサム検証が無効になります。 | この警告は、事前構成済モデルがローカル・パスからロードされたときに表示されます。 |
親トピック: 事前トレーニング済モデルからONNX形式への変換