# Result Analysis ## 1. Tokenizer `AutoTokenizer`는 텍스트 문장을 모델이 처리할 수 있는 정수 ID 형태로 변환한다. 실행 결과 `input_ids`, `token_type_ids`, `attention_mask`가 생성되었다. - `input_ids`: 토큰을 vocabulary index로 바꾼 값 - `token_type_ids`: BERT 계열에서 문장 A/B를 구분하는 값 - `attention_mask`: 실제 토큰은 1, padding 토큰은 0 저장 후 다시 불러온 tokenizer도 같은 방식으로 입력을 처리할 수 있었다. ## 2. ImageProcessor `AutoImageProcessor` 또는 fallback `ViTImageProcessor`는 PIL 이미지를 모델 입력용 tensor로 변환한다. 실행 결과 `pixel_values`의 shape는 `(1, 3, 224, 224)`로 확인되었다. 이는 다음 의미를 가진다. - batch size: 1 - channel: 3, RGB 이미지 - height, width: 224 x 224 저장 시 `preprocessor_config.json`이 생성되며, 이 설정 파일을 통해 같은 전처리 방식을 다시 복원할 수 있다. ## 3. Processor / CLIP `AutoProcessor` 또는 `CLIPProcessor`는 tokenizer와 image processor를 함께 묶은 객체이다. 따라서 텍스트와 이미지를 동시에 입력받아 다음 key를 생성한다. - `pixel_values`: 이미지 입력 - `input_ids`: 텍스트 토큰 ID - `attention_mask`: 텍스트 padding mask - `token_type_ids`: tokenizer 종류에 따라 생성될 수 있는 문장 구분 ID Processor도 `save_pretrained()`와 `from_pretrained()` 방식으로 저장하고 복원할 수 있었다. ## 4. Custom ImageProcessor `ImageProcessingMixin`을 상속하여 직접 `SimpleVisionImageProcessor`를 구현하였다. 이 프로세서는 다음 작업을 수행한다. 1. PIL 이미지 또는 numpy array 입력 처리 2. RGB 변환 3. resize 4. `[0, 1]` 범위로 rescale 5. mean/std normalize 6. `(B, C, H, W)` 형식의 `pixel_values` 생성 저장 전과 저장 후 다시 로드한 processor의 출력 차이를 비교했을 때 `max diff = 0.0`으로 확인되었다. 즉, 저장/복원 후에도 같은 전처리 결과를 얻었다. ## 5. 실행 검증 - 모든 Python 파일 문법 검사 통과 - 인터넷이 없는 환경에서 fallback 모드로 `python scripts/run_all.py` 실행 성공 - 실행 로그는 `outputs/logs/run_all_test.log`에 저장됨