
통신 지옥에 빠진 거대 모델 학습을 구원한 5단계 최적화 전략과 2D Parallel의 마법
거대 추천 모델 학습의 최대 적은 '통신 병목'입니다. 핀터레스트 엔지니어링 팀이 노드를 추가할수록 느려지던 최악의 상황에서 선형에 가까운 확장성을 확보하기까지의 여정을 공개합니다. 하드웨어의 한계를 소프트웨어 아키텍처로 극복한 실전 레시피를 만나보세요.
거대 임베딩 테이블을 다루는 추천 시스템 엔지니어라면 반드시 읽어보아야 합니다. 특히 GPU 개수에 비례해 학습 속도가 나지 않아 고민인 팀에게 2D 병렬화와 양자화 통신은 즉각적인 해답이 될 것입니다.
핀터레스트의 파운데이션 모델은 대부분의 파라미터가 임베딩 테이블에 집중되어 있어 단일 GPU 메모리를 초과하며, 멀티 노드 학습 시 노드 간 통신 병목으로 인해 노드를 추가해도 성능이 오히려 저하되거나 확장성이 매우 낮았습니다.
AWS EFA 도입을 시작으로 통신 양을 줄이는 양자화 통신(QComms), 임베딩 차원 재조정, 그리고 비싼 All-to-All 통신을 노드 내부로 한정시키는 2D 병렬화(All-to-All Optimized) 토폴로지를 적용했습니다.
이러한 최적화를 통해 4개 노드에서 이론적 한계치의 97.5%인 3.9배, 8개 노드에서 93.75%인 7.5배의 확장성을 달성했으며, 최종적으로 2개 노드 기준 초기 대비 13배의 처리량 향상을 기록했습니다.
Trade-off
서빙 측의 임베딩 구성 제약으로 인해 일부 최적화 기법(Balanced Sharding)의 독립적 채택이 제한되기도 했으며, 최신 PyTorch 프레임워크 업그레이드 과정에서 라이브러리 간 버전 충돌 및 메모리 프로파일러 오류를 해결해야 하는 운영 공수가 발생했습니다.
대규모 추천 모델을 위한 PyTorch 라이브러리로, 거대한 임베딩 테이블을 여러 GPU에 효율적으로 분산(sharding)하여 학습할 수 있게 돕습니다.
데이터 병렬화와 모델 병렬화를 결합한 방식으로, 통신 비용이 비싼 작업을 네트워크 특성에 맞춰 재배치하는 전략입니다.
통신 시 발생하는 데이터 페이로드를 줄이기 위해 텐서를 낮은 정밀도(예: FP8)로 압축하여 전송하는 기술입니다.




