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