pile·
AI / ML·pinterest-engPinterest Engineering·

Pinterest 파운데이션 모델의 선형에 가까운 분산 훈련 스케일링 달성기

Pinterest는 월 6억 명 이상의 사용자를 서비스하는 추천 시스템 파운데이션 모델의 분산 훈련 스케일링 문제를 다룬다. 초기 멀티 노드 확장 시 2노드에서 성능이 0.2x로 역행했고, AWS EFA 도입 후에도 4노드 기준 1.21x에 그쳤다. 5단계 최적화를 통해 4노드 3.9x, 8노드 7.5x의 거의 선형에 가까운 스케일링을 달성했다.

핵심 포인트
  • GPU utilization이 97.7%로 정상처럼 보였지만 SM efficiency는 54.54%로, GPU가 실제로는 절반의 시간을 네트워크 데이터 대기에 소비하고 있었다.
  • 분산 embedding collective communication (all-to-all)이 병목 근본 원인이었으며, QComms로 FP32→FP8 양자화 적용 시 NCCL op 크기가 75% 이상 감소했다.
  • Balanced Sharding으로 GPU 간 embedding table을 균등 분배해 최대 15.2% 추가 성능을 확보했다.
  • Bandwidth-Aware Embedding으로 dimension 절반/row 2배 구조 변경을 통해 all-to-all payload를 50% 줄였다.
  • 2D Parallel Topology로 all-to-all을 노드 내부로 국한하고 노드 간에는 AllReduce만 사용해 최종 8노드 7.5x를 달성했다.
상세 정리
  • 초기 상태: 단일 8-GPU 노드에서 정상 동작하던 모델을 멀티 노드로 확장하자 2노드에서 오히려 성능이 0.2x로 저하됐다.
  • EFA 도입 후 한계: AWS Elastic Fabric Adapter 적용으로 2노드 1.13x, 4노드 1.21x로 개선됐지만 선형 스케일링과는 여전히 큰 차이였다.
  • 프로파일링 진단: PyTorch 프로파일러로 분석하자 GPU utilization은 97.7%로 건강해 보였지만 SM efficiency가 54.54%로, 실제로는 절반의 GPU 시간이 네트워크 대기에 소비됐다.
  • 병목 확정: 분산 embedding table의 all-to-all collective communication이 핵심 원인임을 확인했다.
  • QComms 적용: NCCL 전송 전 FP32 임베딩을 FP8로 양자화해 가장 큰 NCCL op 크기를 75% 이상 감소, 스케일링 1.57x(2N)/2.3x(4N) 달성.
  • Balanced Sharding: GPU별 embedding 파라미터를 균등 분배해 특정 GPU에 부하가 집중되는 문제를 해소, 추가로 5.3%(2N)/15.2%(4N) 성능 향상.
  • Bandwidth-Aware Embedding: embedding dimension을 절반으로 줄이고 row 수를 2배로 늘리는 구조 변경으로 all-to-all payload 50% 감소, 1.78x(2N)/2.8x(4N) 달성.
  • 2D Parallel Topology 설계: GPU 그룹을 노드 내/노드 간 2차원으로 재구성, 비용이 큰 all-to-all 통신은 동일 노드 내 GPU끼리만 수행하고 노드 간에는 AllReduce를 사용했다.
  • all-to-all latency 결과: 78ms에서 13ms로 83% 감소했다.
  • 최종 스케일링: 2노드 2.0x, 4노드 3.9x(이론 대비 97.5%), 8노드 7.5x(이론 대비 93.75%).
  • 전체 처리량: EFA 도입 전 기준 최종 최적화까지 13x 처리량 향상.
  • 프로덕션 영향: 더 큰 모델로 Homefeed와 Related Pins에서 통계적으로 유의미한 참여도 개선과 함께 빠른 훈련으로 실험 사이클이 단축됐다.
왜 읽나PyTorch 기반 대규모 추천 모델의 분산 훈련을 최적화하려는 ML/MLOps 엔지니어에게, 병목 진단부터 5단계 통신 최적화까지의 실전 수치 레퍼런스.
pinterest-eng
Pinterest Engineering 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. AI / ML·인프랩 (인프런)인프런 (인프랩)·

    학습 에이전트 — AI 두뇌 구축하기

    인프런이 강의 학습 에이전트를 구축하며 겪은 기술 스택 선정, 컨텍스트·도구 설계, LLM-as-a-Judge 품질 개선, 비용 최적화 전략을 다룬다. LLM SSE 스트리밍 처리를 위해 Spring MVC + Virtual Thread + Spring AI를 선택하고, 명시적 프롬프트 캐싱으로 입력 토큰을 90% 절감하는 과정까지 실전 경험이 담겨 있다.

    #ai-agent#llm#llm-as-a-judge+2
  2. AI / ML·네이버 D2네이버 D2·

    AI 에이전트 회사 차리기: 설립부터 어디서든 동기화까지

    네이버 ENGINEERING DAY 2026 발표. Claude Code를 매일 쓰지만 매번 초기화되는 문제를 해결하기 위해 NaverMadCat이라는 다중 AI 에이전트 조직 프레임워크를 구축한 경험을 다룬다. 비서실장 역할의 에이전트가 10개 부서 에이전트를 조율하며, 어느 환경에서 접속해도 동일한 컨텍스트로 동작하도록 동기화 메커니즘을 구현했다.

    #claude-code#multi-agent#ai-agent+2
  3. AI / ML·vercel-blogVercel Blog·

    AI Gateway에서 실시간 음성 에이전트 구축하기

    Vercel AI Gateway가 음성·오디오 기능을 정식 지원한다. 실시간 대화 음성(Realtime Voice), 텍스트→음성(TTS), 음성→텍스트(STT) 세 가지를 기존 텍스트/이미지 모델과 동일한 라우팅·인증·모니터링 체계 위에서 사용할 수 있다. OpenAI gpt-realtime-2·Whisper와 xAI Grok 오디오 모델을 지원하며, AI SDK 7 베타로 제공된다.

    #llm-app#ai-sdk#realtime-voice+2