{ "cells": [ { "cell_type": "markdown", "id": "4ab918f6", "metadata": {}, "source": [ "# Hugging Face Processor Practice\n", "\n", "VS Code/Jupyter에서 실행하는 Tokenizer, ImageProcessor, Processor 실습 노트북입니다." ] }, { "cell_type": "code", "execution_count": null, "id": "ccf94033", "metadata": {}, "outputs": [], "source": [ "# notebooks 폴더에서 실행할 경우 프로젝트 루트로 이동합니다.\n", "from pathlib import Path\n", "if Path.cwd().name == \"notebooks\":\n", " %cd ..\n", "print(\"Current working directory:\", Path.cwd())" ] }, { "cell_type": "markdown", "id": "0528a49b", "metadata": {}, "source": [ "## 0. 환경 확인\n", "\n", "필요 패키지와 Python 버전을 확인합니다." ] }, { "cell_type": "code", "execution_count": null, "id": "2b245295", "metadata": {}, "outputs": [], "source": [ "!python scripts/00_check_environment.py" ] }, { "cell_type": "markdown", "id": "725dd5df", "metadata": {}, "source": [ "## 1. Tokenizer 실습\n", "\n", "문장을 모델 입력인 `input_ids`, `token_type_ids`, `attention_mask`로 변환하고 저장/복원을 확인합니다." ] }, { "cell_type": "code", "execution_count": null, "id": "41537e23", "metadata": {}, "outputs": [], "source": [ "!python scripts/01_tokenizer.py" ] }, { "cell_type": "markdown", "id": "0bd8dea4", "metadata": {}, "source": [ "## 2. ImageProcessor 실습\n", "\n", "이미지를 모델 입력인 `pixel_values` 텐서로 변환하고 저장/복원을 확인합니다." ] }, { "cell_type": "code", "execution_count": null, "id": "63a68ad2", "metadata": {}, "outputs": [], "source": [ "!python scripts/02_image_processor.py" ] }, { "cell_type": "markdown", "id": "35f35d79", "metadata": {}, "source": [ "## 3. Processor / CLIP 실습\n", "\n", "텍스트와 이미지를 한 번에 처리하는 Processor를 사용합니다." ] }, { "cell_type": "code", "execution_count": null, "id": "4f6d6884", "metadata": {}, "outputs": [], "source": [ "!python scripts/03_processor_clip.py" ] }, { "cell_type": "markdown", "id": "4cd9029c", "metadata": {}, "source": [ "## 4. Custom ImageProcessor 실습\n", "\n", "`ImageProcessingMixin`을 상속한 커스텀 ImageProcessor를 저장하고 다시 불러옵니다." ] }, { "cell_type": "code", "execution_count": null, "id": "eaf5b4a2", "metadata": {}, "outputs": [], "source": [ "!python scripts/04_custom_image_processor_roundtrip.py" ] }, { "cell_type": "markdown", "id": "79252f6a", "metadata": {}, "source": [ "## 결과 분석 요약\n", "\n", "- Tokenizer는 텍스트를 정수 ID와 attention mask로 변환한다.\n", "- ImageProcessor는 이미지를 모델 입력 shape인 `(B, C, H, W)`의 `pixel_values`로 변환한다.\n", "- Processor는 tokenizer와 image processor를 묶어 멀티모달 입력을 한 번에 처리한다.\n", "- `save_pretrained()`와 `from_pretrained()`를 사용하면 전처리 객체도 모델처럼 저장하고 복원할 수 있다." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "name": "python", "pygments_lexer": "ipython3" } }, "nbformat": 4, "nbformat_minor": 5 }