
단순히 코드를 옮긴 것이 아니라, 로컬(Windows) 환경에서 API 연동 테스트까지 완벽히 마친 후 이전을 결정했다.
서버가 API 요청을 주고받으며 기능적으로 문제없이 돌아가는지 검증하는 과정은 필수적이었으나, Windows에서의 작업은 말 그대로 "억지로 몸을 비틀며 전진하는 느낌"
문제 발생:
로컬(Windows) 환경에서 FLUX.2-klein-4B 모델을 구동하려 했으나, ModuleNotFoundError: No module named 'triton' 에러에 직면했다. Triton은 기본적으로 Linux 전용 라이브러리였기에 Windows 환경에서의 구동은 시작부터 난관이었다.
잘못된 접근과 나비효과:
처음에는 Triton 의존성을 피하기 위해 코드에서 -FP8(양자화 모델) 접미사를 제거하는 시도를 했다. 하지만 이는 예상치 못한 **'50GB 다운로드 사태'**를 불러왔다. 4GB짜리 경량 모델 대신 압축되지 않은 50GB 규모의 원본 FP32 모델을 불러오게 된 것이다. 이로 인해 C드라이브 용량이 순식간에 점유되고 시스템이 마비되는 임계 상황을 경험.
기술적 돌파구:
"코드를 깎아 성능을 포기하는 대신, 환경을 정복하자"는 결정을 내렸다. Windows용 비공식 Triton 빌드 파일(.whl)을 찾아 강제로 설치하는 '부품 끼워넣기' 방식을 채택했다.
# Windows용 비공식 Triton 강제 설치
pip install <https://github.com/woct0rdho/triton-windows/releases/download/v3.0.0-windows.post1/triton-3.0.0-cp310-cp310-win_amd64.whl>
결과적으로 Triton 문제를 해결함으로써 원래 계획했던 **FP8 경량 모델(4GB)**을 로컬 4090 환경에서 완벽하게 구동하는 데 성공했다.
이전의 당위성:
이러한 '몸 비틀기'식 해결은 로컬 테스트를 가능케 했으나, 근본적으로 Linux 기반인 모델의 특성을 고려할 때 GCP(Linux) 환경으로의 마이그레이션이 필수적임을 다시 한번 확신하는 계기가 되었다.
GCP로 이사하며 환경 구축의 도구로 **Conda**를 선택했다. 일반적인 venv와 달리 Conda를 선택한 이유는 프로젝트의 **'안전한 격리'와 '시스템 의존성 해결'**을 위해서다.
venv (원룸 방식) vs Conda (기숙사 방식): venv는 프로젝트 폴더 안에 .venv를 만들어 관리하므로 관리가 번거롭고 실수로 삭제될 위험이 큰 반면, Conda는 시스템 내부의 별도 전용 공간(기숙사)에서 관리되어 프로젝트 폴더를 깨끗하게 유지하면서도 환경을 안전하게 보호합니다.venv와 달리, Conda는 파이썬 버전, C++ 라이브러리, GPU 드라이버(CUDA) 연결 고리 등 AI 모델 구동에 필수적인 '비(非) 파이썬' 부품들까지 통째로 관리한다. 이는 런타임 에러를 최소화하고 다른 팀원들과의 환경 공유 시 높은 재현성을 보장할 수 있다.GCP 환경에서 Conda설치 후 발생한 계정 권한 및 경로 충돌 문제를 다음과 같이 해결했다.