모델 실행 시 std::bad_alloc

표준성·2026년 1월 6일

TTS 모델을 로드하려는데 당황스러운 오류 메세지와 함께 프로세스가 멈춰버렸습니다.

std::bad_alloc

처음에는 단순히 RAM이 부족한가? 라고 생각했지만, 확인 결과 메모리는 충분했습니다. 문제는 시스템 메모리가 아니라 Pytorch의 버전 불일치에 있었습니다.

  1. 원인 파악: 범인은 PyTorch 버전 불일치
    문제를 격리하기 위해 라이브러리를 하나씩 임포트하며 테스트해 본 결과, 특정 모델(BERT, StyleTTS2 등)을 로드하는 시점에서 충돌이 발생했습니다.

결정적인 단서는 pip check 명령어를 통해 찾을 수 있었습니다.

현재 환경: torch==2.9.1

요구 사항: xformers, vllm, torchvision 등 주요 패키지들이 torch==2.8.0 버전을 요구 중

즉, 일반적으로 torch와 torchvision 등은 함께 설치하며 문제가 되지 않지만, 다른 패키지를 설치하면서 torchvision의 버전이 낮아지게 되었고, 이에 서로 호환되지 않는 바이너리 코드를 참조하여 메모리 할당 오류인 std::bad_alloc이 발생하였습니다.

  1. 해결: 패키지 삭제
    현재 설치된 torch 버전과 맞지 않으면서 시스템에 혼란을 주는 패키지들을 제거했습니다. 특히 xformers나 vllm처럼 C++ 바인딩이 강력한 패키지들이 주원인이었습니다.
pip uninstall -y xformers vllm torchvision

위 조치 후 다시 테스트를 실행한 결과, std::bad_alloc 오류 없이 모델이 정상적으로 로드되는 것을 확인했습니다.

이번 디버깅을 통해 얻은 교훈.

  • std::bad_alloc은 메모리 부족이 아닐 수 있다. 파이썬에서 이 에러가 나면 라이브러리 간의 버전 충돌을 의심해보자.
  • pip check의 생활화: 패키지 간의 버전 요구사항이 깨졌는지 수시로 확인하는 것이 정신 건강에 이롭다.
profile
HYU_INFOSYS 23

0개의 댓글