Pinterest, Feature Trimmer로 ML 시스템 네트워크 병목 해결
Pinterest의 온라인 ML 시스템에서 Root-Leaf 아키텍처(Root-Leaf Architecture)의 네트워크 병목 현상 발생
Feature Trimmer 도입을 통해 Root-Leaf 간 전송되는 ML Feature 데이터량(ML Feature Data Volume)을 감소시켜 네트워크 사용량 최적화
네트워크 대역폭(Network Bandwidth) 65~75% 감소, 지연 시간(Latency) 25~30% 감소 및 연간 400만 달러(4M USD) 이상 비용 절감 효과
모델 배포 동기화(Model Deploy Synchronization)를 위해 모델 시그니처(Model Signature)를 활용하여 Feature Allowlist 관리
Pinterest ML 시스템의 Root-Leaf 아키텍처
Pinterest의 온라인 ML 시스템은 Root-Leaf 아키텍처(Root-Leaf Architecture)를 사용하며, 클라이언트 서비스(Client Service)는 Root에 요청을 보내고, Root는 Feature Store에서 필요한 Feature를 가져와 Leaf로 전달한다.
Root: Feature Store에서 Feature를 가져와 전처리 후, Leaf 파티션으로 요청 분산
Leaf: 실제 모델 추론(Inference) 수행, GPU 머신 활용
문제점: Root-Leaf 간 과도한 Feature 전송으로 네트워크 병목 현상(Network Bottleneck) 발생
이러한 아키텍처는 모델 온보딩(Model Onboarding) 및 Feature Store QPS 감소에 유리하지만, 네트워크 대역폭(Network Bandwidth) 사용량이 GPU 사용률을 제한하는 주요 원인이 되었다.
Feature Trimmer의 핵심 원리: "Send What You Use"
Feature Trimmer는 Root에서 Leaf로 전송되는 Feature의 양을 줄여 네트워크 병목 현상을 해결한다. 기존에는 Root가 모든 Feature를 Leaf로 전송했지만, Feature Trimmer는 각 모델에 필요한 Feature만 전송하는 "Send What You Use" 방식을 채택했다.
모델 시그니처(Model Signature) 활용: 각 모델이 필요로 하는 Feature 목록을 정의
Allowlist 기반 필터링: 불필요한 Feature를 제거하여 네트워크 트래픽(Network Traffic) 감소
모델 배포 동기화: 모델 버전 변경에 따라 Feature Allowlist를 동기화하여 안정적인 운영 보장
이러한 방식은 네트워크 사용량을 줄이는 동시에, Root의 CPU 사용량을 증가시키는 트레이드오프(Trade-off)를 가진다.
모델 시그니처(Model Signature) 기반 Feature Allowlist 관리
Feature Trimmer는 모델 시그니처(Model Signature)를 활용하여 각 모델에 필요한 Feature 목록을 관리한다. 모델 시그니처는 모델의 입력(Input)과 출력(Output)을 정의하며, 모델 훈련(Training) 후 .pt 아카이브 파일과 함께 module_info.json 파일로 저장된다.
module_info.json: 모델의 입력 Feature 목록을 포함
모델 배포 파이프라인(Model Deploy Pipeline): 모델 시그니처를 번들(Bundle) 단위로 묶어 Root 설정 파일과 함께 배포
버전 관리: 모델 이름과 버전을 사용하여 Feature Allowlist를 관리, 롤백(Rollback) 시 이전 버전의 Allowlist 사용
이러한 구조는 모델 업데이트(Model Update) 시 Feature Trimmer가 최신 Feature 목록을 정확하게 반영하도록 돕는다.
Feature Trimmer의 성능 및 비용 절감 효과
Feature Trimmer 도입 후 Pinterest의 ML 시스템은 다음과 같은 긍정적인 효과를 얻었다. Ads, Homefeed, Related Pins 등 다양한 서비스에서 네트워크 사용량 감소, 지연 시간 감소, 비용 절감 효과를 확인했다.
네트워크 대역폭(Network Bandwidth) 감소: Ads Root 클러스터에서 최대 4GBPS에서 1.5GBPS 미만으로 감소, Homefeed Leaf 클러스터에서 65~75% 감소
지연 시간(Latency) 감소: Related Pins 모델의 경우, P99 지연 시간(Latency)이 25~30% 감소
비용 절감: Ads Root 클러스터의 fleet size를 27% 감소, 연간 400만 달러(4M USD) 이상 인프라 비용 절감
이러한 결과는 Feature Trimmer가 Pinterest의 ML 시스템 성능 향상과 비용 효율성(Cost Efficiency)에 크게 기여했음을 보여준다.
Feature Trimmer의 안정성 확보를 위한 노력
Feature Trimmer는 ML 시스템의 핵심 구성 요소이므로, 안정적인 운영을 위해 다양한 안전 장치를 마련했다. 모델 시그니처(Model Signature) 파일의 손상이나 배포 실패 시에도 시스템이 정상적으로 동작하도록 설계되었다.
초기화 실패 방지: module_info.json 파일 파싱(Parsing) 실패 시, 경고를 표시하고 온콜(On-call) 알림을 발송
모델 번들(Model Bundle) 격리: 각 모델 번들의 module_info 내용을 별도의 메모리 맵에 저장하여, 특정 번들의 파일 손상 시 다른 번들에 영향 X
버전 관리: 모델 이름과 버전을 사용하여 Feature Allowlist를 관리, 롤백(Rollback) 시 이전 버전의 Allowlist 사용
이러한 조치를 통해 Feature Trimmer는 안정적으로 운영되며, ML 시스템의 성능과 비용 효율성을 지속적으로 유지할 수 있다.