모델 변환 파일 구조
이 문서는 모델 변환 워크플로우 중에 생성되는 파일 구조와 캐시 처리, 히스토리 추적, 추론 등을 포함한 각 폴더 및 파일의 목적에 대해 설명합니다.
모델 프로젝트를 생성하고 여러 번 실행한 후 파일 구조는 다음과 같이 보일 수 있습니다.
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 폴더는 다음 두 가지 구성 파일을 제외하고 버전 관리(.gitignore)에서 제외됩니다: history.config 및 olive_config.json
저장할 가치가 있는 특정 히스토리 폴더를 포함하도록 .gitignore 파일을 업데이트할 수 있습니다.
다른 사람이 리포지토리를 클론할 때 이 두 파일은 해당 히스토리를 다시 실행하여 변환 결과를 재현할 수 있도록 보장합니다.
__pycache__
/cache
/history/*/*
!/history/*/history.config
!/history/*/olive_config.json