프로덕션 환경에서 다운타임 없는 PyTorch 업그레이드: 접근법, 함정 및 교훈
Pinterest는 새로운 기능을 활용하고 성능을 향상시키기 위해 머신러닝 스택을 PyTorch 2.1에서 2.6으로 업그레이드했습니다. 이 업그레이드는 오래된 종속성, API 변경으로 인한 문제, TorchScript 호환성 문제와 같은 과제를 해결하는 과정을 포함했습니다. PyTorch 2.6 요구 사항을 충족하기 위해 Ubuntu DLAMI 및 CUDA 버전을 업데이트했습니다. 또한 JIT 프로파일링을 비활성화하고 TorchScript용 fuser를 비활성화하여 TorchScript 초기화 문제를 해결했습니다. API 변경으로 인한 문제를 완화하기 위해 컴파일 타임 매크로를 도입하여 버전 간의 호환성을 확보했습니다. 다운타임을 최소화하고 프로덕션 환경에 미치는 영향을 제어하기 위해 시간 기반의 다단계 롤아웃 방식을 채택했습니다. 업그레이드 후에는 리소스 충돌 문제를 해결하여 DCGM 메트릭 손실 문제를 해결했습니다. 또한 간헐적인 모델 배포 실패 문제를 해결했습니다. 이러한 업데이트는 새로운 DLAMI로의 전환, 충돌 해결, 변경 사항 적응을 포함했습니다. 궁극적인 목표는 원활하고 안정적인 프로덕션 환경 전환을 보장하는 것이었습니다.