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つ含まれていない場合に返されます。
事前構成済モデルが使用されている(警告) 警告: 事前構成済モデルをローカル・パスからロードすると、チェックサム検証が無効になります。 この警告は、事前構成済モデルがローカル・パスからロードされたときに表示されます。