モデル変換ファイルの構造
この記事では、モデル変換ワークフロー中に生成されるファイル構造と、キャッシュ処理、履歴追跡、推論など、各フォルダーおよびファイルの目的について説明します。
モデルプロジェクトを作成し、複数回実行すると、ファイル構造は次のようになります。
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
: 出力モデルをテストするためのサンプルです。このファイルは、異なる Jupyter ノートブックを使用して異なる履歴のモデルを比較できるように、history
フォルダーにコピーされます。
キャッシュフォルダー
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
フォルダーはバージョン管理 (.gitignore
) から除外されますが、history.config
および olive_config.json
の 2 つの構成ファイルは例外です。
保存する価値のある特定の履歴フォルダーを含めるように、.gitignore
ファイルを更新できます。
他の誰かがリポジトリをクローンするとき、これらの2つのファイルにより、これらの履歴を再実行して変換結果を再現できるようになります。
__pycache__
/cache
/history/*/*
!/history/*/history.config
!/history/*/olive_config.json