モデル変換のファイル構造
この記事では、モデル変換ワークフロー中に生成されるファイル構造、およびキャッシュ処理、履歴追跡、推論など、各フォルダーとファイルの目的について説明します。
モデルプロジェクトを作成して数回実行すると、ファイル構造は次のようになります。
model_project_name/
├── model_lab.workspace.config
└── huggingface_microsoft_resnet-50_v1/
├── .gitignore
├── imagenet.py
├── inference_sample.ipynb
├── model_project.config
├── README.md
├── requirements.txt
├── resnet_ptq_qnn.json
├── cache/
└── history/
└── history_1(20250414_161046)/
├── model/
├── footprints.json
├── history.config
├── history.config.user
├── inference_sample.ipynb
├── log.txt
├── metrics.json
├── model_config.json
├── olive_config.json
├── output_footprint.json
└── run_history.txt
└── history_2/
└── history_3/
model_project_name
フォルダーには、各モデルのワークフローが個別のフォルダーに保存されます。
requirements.txt
: ワークフローと推論サンプルを実行するために必要な依存関係をリストします。resnet_ptq_qnn.json
,imagenet.py
: Olive によってモデルを変換するために使用される JSON ファイル。カスタマイズのために追加の Python ファイルが必要な場合もあります。README.md
: モデルのタスク、パフォーマンスメトリック、使用方法などのモデルの詳細を記述します。model_project.config
: プロジェクトテンプレートの設定が含まれます。一部の設定は、特定の要件に合わせて上書きできます。inference_sample.ipynb
: 出力モデルをテストするためのサンプル。このファイルはhistory
フォルダーにコピーされ、異なる Jupyter ノートブックを使用して異なる履歴のモデルを比較できるようにします。
キャッシュフォルダー
cache
フォルダーには、ワークフロー実行中に生成されたキャッシュファイルが保存されます。これらのキャッシュされた結果は、ワークフローの繰り返し実行を高速化するのに役立ちます。
不要になった場合は、このフォルダーを削除してスペースを解放できます。
履歴フォルダー
history
フォルダー名のタイムスタンプは、2025年4月14日 16:10:46
のように実行時間を示します。
model
: モデルファイル。model_config.json
: モデルの詳細が含まれます。footprints.json
,output_footprint.json
,run_history.txt
: Olive の出力。history.config
,history.config.user
: モデル変換で使用される履歴設定。inference_sample.ipynb
: 出力モデルをテストするためのサンプル。log.txt
: ログが含まれます。metrics.json
: 評価が有効になっている場合、評価結果が含まれます。olive_config.json
: 変換の実行に使用される設定。
Gitについて
デフォルトでは、cache
および history
フォルダーは、次の2つの設定ファイル history.config
および olive_config.json
を除き、バージョン管理 (.gitignore
) から除外されます。
保存する価値のある特定の履歴フォルダーを含めるように .gitignore
ファイルを更新することができます。
他の誰かがリポジトリをクローンすると、これらの2つのファイルにより、変換結果を再現するためにこれらの履歴を再実行できるようになります。
__pycache__
/cache
/history/*/*
!/history/*/history.config
!/history/*/olive_config.json