본문 바로가기

pytorch

(4)
🐳 Stable Diffusion API Docker 패키징: 로컬 모델 조립 → 컨테이너화까지 Stable Diffusion 모델 구성요소를 로컬에서 조립한 다음, 이를 Docker 기반 API 서버로 패키징한 과정을 정리했다. 작업 배경앞선 포스팅에서 from_pretrained() 없이 로컬에 저장된 모델 구성 요소들만으로 Stable Diffusion 파이프라인을 조립했다. 그리고 이후에는 이 모델들을 EFS에 저장하고 API 서버에서 직접 로딩하는 구조로 개선했다. 이제 남은 건 이 환경을 실제 운영에 적합한 형태로 포장하는 일. 즉, Docker 컨테이너로 패키징해서 어디서든 실행 가능하게 만드는 것이었다.Dockerfile 구성패키징 대상은 다음과 같다:FastAPI 기반 API 서버 코드 (main.py)Stable Diffusion 구성 요소를 로드하는 로직requirements.t..
EFS에 모델 구성요소 저장하고, 컨테이너에서 불러오는 구조로 전환하기 컨테이너 재빌드 없이 모델을 안정적으로 불러오기 위해, EFS에 모델 구성요소를 저장하고 Docker에서 직접 마운트하는 구조로 전환했다. 왜 이 작업이 필요했을까?이전까지는 모델 구성 요소들을 로컬에 저장하고, 컨테이너 안에서 로드하는 구조였다. 이 방식도 잘 작동하긴 했지만, 다음과 같은 불편함이 있었다:컨테이너를 새로 빌드하거나 다른 인스턴스에서 실행할 경우 모델을 다시 복사해야 함모델 파일 용량이 수 GB 단위라 이미지 용량도 불필요하게 커짐장기적으로 여러 서버에서 공유하려면 중앙 저장소가 필요함그래서 Amazon EFS(Elastic File System)를 활용하기로 했다. EC2 인스턴스에 EFS 마운트먼저 EFS를 EC2 인스턴스에 /mnt/efs 경로로 마운트했다. 이후 Stable Di..
PyTorch 모델 저장 시 ModuleNotFoundError 오류 해결기: pickle과 버전 호환의 함정 모델을 저장하고 다시 불러오기만 했을 뿐인데 에러가 났다. 그 원인은 다름 아닌 pickle이었다.🧩 문제는 환경의 “미묘한 차이”였다Stable Diffusion 기반 API 서버를 개발하는 과정에서 .pth 파일로 저장한 모델을 불러오는 도중 다음과 같은 오류를 만났다.ModuleNotFoundError: No module named 'diffusers.models.unets' 흥미로운 점은 같은 서버에서 저장한 모델임에도, Docker 컨테이너에서 실행했을 때 이 오류가 발생했다는 것이다. 알고 보니 로컬 환경과 컨테이너 내부의 라이브러리 버전이 미묘하게 달랐고, 바로 그 차이로 인해 모델을 제대로 불러올 수 없었던 것이다.왜 이런 일이 발생했을까?# 저장 시[UNet2DConditionModel..
Ubuntu에서 AI 개발 환경 세팅한 기록 4060 Ti GPU 머신에서 Stable Diffusion 기반 이미지 생성 API를 돌리기 위해, Ubuntu 환경에서 개발 환경을 세팅했다! 최근 회사에 4060 Ti GPU가 탑재된 워크스테이션이 들어오면서, 본격적으로 로컬 GPU 환경에서 AI 모델을 테스트할 수 있게 됐다. Stable Diffusion을 활용한 이미지 생성 API를 운영할 예정이라, 해당 머신 위에 개발 환경을 직접 구축하게 되었다.Ubuntu 22.04 기반에서 Anaconda 설치부터 NVIDIA 드라이버 세팅, PyTorch GPU 버전 설치까지 내가 진행한 세팅 과정을 아래에 공유한다. 추후 유사한 환경을 세팅할 일이 있다면 참고하면 좋을 것 같다. 1. Ubuntu 22.04 + Anaconda 설치리눅스 환경에서는..