GCP(Google Cloud Platform)에서 용량 부족 문제는 정말 흔한 이슈입니다. 특히 Hugging Face의 모델들은 기본적으로 개인 홈 디렉토리(~/.cache/huggingface)에 저장되는데, SDXL 같은 거대 모델 몇 개만 받아도 수십 GB가 훌쩍 차버리죠.
이걸 해결하는 가장 깔끔한 방법은 환경 변수(HF_HOME)를 설정해서 저장 경로를 공용 폴더로 돌리는 것입니다.
단계별로 정확히 알려드리겠습니다.
1단계: 공용 폴더 만들기 (터미널에서 실행)
먼저, 용량이 넉넉한 디스크(보통 /mnt나 /data 등 추가로 마운트한 디스크)에 폴더를 만들고 권한을 열어야 합니다. 여기서는 예시로 /data/shared_models라고 가정하겠습니다.
# 1. 공용 폴더 생성 (루트 권한 필요할 수 있음)
sudo mkdir -p /data/shared_models/huggingface
# 2. 권한 설정 (중요: 팀원 모두가 쓰고 읽을 수 있게 777 또는 그룹 권한 부여)
# 777은 보안상 좋진 않지만, 팀 내부용이라면 가장 확실한 방법입니다.
sudo chmod -R 777 /data/shared_models/huggingface
2단계: 환경 변수 설정하기 (가장 중요)
Hugging Face 라이브러리(transformers, diffusers)는 HF_HOME 이라는 환경 변수를 보고 저장 위치를 결정합니다. 이걸 설정하는 방법은 두 가지가 있습니다.
방법 A: 리눅스 영구 설정 (추천)
서버에 접속할 때마다 자동으로 적용되게 하려면 .bashrc 파일에 등록하세요.
# 1. .bashrc 파일 열기
nano ~/.bashrc
# 2. 맨 아래에 다음 줄 추가
export HF_HOME="/data/shared_models/huggingface"
# 3. 저장(Ctrl+O, Enter) 후 종료(Ctrl+X)
# 4. 변경 사항 바로 적용
source ~/.bashrc
이제부터 터미널에서 다운로드하는 모든 모델은 저기로 갑니다.
방법 B: 파이썬 코드에서 설정 (코드 내 강제 적용)
팀원들이 환경 설정을 안 할 수도 있으니, 파이썬 코드 안에서 강제로 경로를 지정하는 게 협업할 땐 더 안전합니다.
3단계: model_loader.py 코드 수정
이전에 드린 코드에 **환경 변수 설정 부분(3줄)**만 맨 위에 추가하면 됩니다.
import os
import torch
from diffusers import StableDiffusionXLPipeline
from datetime import datetime
# [추가됨] 공용 폴더 경로 지정 (임포트보다 먼저 해야 함!)
# 팀원들과 약속된 경로를 입력하세요.
SHARED_MODEL_PATH = "/data/shared_models/huggingface"
os.environ['HF_HOME'] = SHARED_MODEL_PATH
class ImageGenerator:
def __init__(self):
print(f"⏳ 모델 로딩 중... (저장 경로: {SHARED_MODEL_PATH})")
# ... (이하 코드는 기존과 동일) ...
if torch.cuda.is_available():
self.device = "cuda"
self.dtype = torch.float16
# ... (중략) ...
try:
# 모델 로드
# cache_dir 옵션을 직접 줘도 되지만, 위에서 os.environ을 썼으므로 자동 적용됨
self.pipe = StableDiffusionXLPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
torch_dtype=self.dtype,
use_safetensors=True,
variant="fp16" if self.device != "cpu" else None
# cache_dir=SHARED_MODEL_PATH <-- 이렇게 명시적으로 넣어도 됨
)
# ... (이하 동일)
4단계: 기존 파일 옮기기 (용량 확보)
이미 개인 폴더(.cache)에 받아둔 모델들이 용량을 차지하고 있다면, 새로 만든 공용 폴더로 옮겨주세요.
# 기존 캐시 파일을 공용 폴더로 이동 (이미 있다면 덮어쓰기 주의)
mv ~/.cache/huggingface/* /data/shared_models/huggingface/
# 기존 폴더는 비워졌는지 확인 후 삭제 (선택)
rm -rf ~/.cache/huggingface
요약
- 용량 큰 곳에 폴더(mkdir) 만들고 권한(chmod 777) 준다.
- export HF_HOME="/새/경로"를 .bashrc에 박거나, 파이썬 코드 맨 위에 os.environ['HF_HOME'] = ...를 쓴다.
- 기존 파일은 mv 명령어로 옮긴다.
이렇게 하면 팀원 중 누가 한 명이라도 모델을 다운로드하면, 다른 팀원은 다운로드 없이 바로 그 파일을 공유해서 사용하게 되므로 속도도 빠르고 용량도 획기적으로 아낄 수 있습니다.
'AI 엔지니어준비' 카테고리의 다른 글
| PyCharm 무료 버전으로 GCP 원격 개발하기 (0) | 2026.02.02 |
|---|---|
| 왜 cv2(OpenCV)를 썼는가? (PIL 대신) (0) | 2026.01.31 |
| dummy_data dummy_input 이란? (0) | 2026.01.31 |
| 딥러닝의 종류 (0) | 2026.01.30 |
| The Training Standard (0) | 2026.01.30 |