
네트워크 병목을 뚫고 GPU 효율을 극대화하는 'Send What You Use' 전략의 모든 것
본 아티클은 대규모 ML 서빙 환경에서 발생하는 네트워크 병목 현상을 해결하기 위한 핀터레스트 엔지니어링 팀의 여정을 담고 있습니다. 불필요한 피처 전송을 차단하는 Feature Trimmer 기술과 모델 서명(Signature) 기반의 자동화된 동기화 프로세스를 통해 인프라 비용 절감과 시스템 성능 향상을 동시에 달성한 사례를 소개합니다.
대규모 트래픽을 처리하는 ML 서빙 인프라 운영자라면, 네트워크 I/O가 GPU 성능의 발목을 잡고 있지는 않은지 확인해 보시기 바랍니다. 모델 사양을 기반으로 한 데이터 전송 최적화는 인프라 비용을 획기적으로 줄일 수 있는 강력한 방법입니다.
핀터레스트의 ML 서빙 시스템은 Root-Leaf 아키텍처를 사용하는데, Root에서 모든 기능을 가져와 Leaf로 전달하는 과정에서 네트워크 대역폭이 병목 현상을 일으켜 GPU 연산 자원을 완전히 활용하지 못하는 문제가 발생했습니다.
모델의 입력 사양(Model Signature)을 기반으로 필요한 피처만 선별하여 전송하는 'Feature Trimmer'를 도입하고, fbthrift RPC 프레임워크에 LZ4 압축을 적용하여 데이터 전송량을 최소화했습니다.
LZ4 압축으로 네트워크 사용량을 20% 절감했으며, Feature Trimmer 도입을 통해 네트워크 사용량을 약 50%까지 줄여 고가의 네트워크 최적화 인스턴스(m6in) 대신 일반 인스턴스(m6i)를 사용할 수 있게 되어 비용 효율성을 높였습니다.
Trade-off
압축 및 트리밍 과정에서 약 5%의 CPU 사용량 증가와 p90 기준 5ms(약 10%)의 지연 시간(Latency) 증가가 발생했으며, 모델 배포와 설정 동기화의 복잡도가 다소 상승했습니다.
Root 노드가 피처 로딩 및 전처리 등의 CPU 집약적 작업을 담당하고, Leaf 노드가 GPU를 사용해 실제 모델 추론(Inference)을 수행하는 분산 시스템 구조입니다.
모델의 입력 피처와 출력 값의 규격을 정의한 메타데이터로, 특정 버전의 모델이 실행되기 위해 어떤 데이터가 필요한지 명시합니다.
Root에서 Leaf로 데이터를 전송하기 전, 해당 모델의 Signature를 참고하여 불필요한 피처를 제거하고 꼭 필요한 데이터만 필터링하는 모듈입니다.









