Pinterest / recommendation-systems

4 개의 포스트

pinterest

GPU-Serving Two-Tower Models for Lightweight Ads Engagement Prediction (새 탭에서 열림)

Pinterest는 광고 추천 시스템의 중간 단계인 경량 랭킹(Lightweight ranking)의 효율성을 극대화하기 위해, 기존 CPU 기반의 2-타워 모델을 GPU 기반의 MMOE-DCN 아키텍처로 전환했습니다. 이를 통해 모델의 복잡도를 높이면서도 지연 시간을 안정적으로 유지했으며, 오프라인 예측 오차 감소와 더불어 온라인 클릭률(CTR) 증가 및 클릭당 비용(CPC) 감소라는 실질적인 성과를 거두었습니다. **MMOE-DCN 아키텍처로의 전환** * 기존의 MTMD(Multi-Task Multi-Domain) 모델에서 MMOE(Multi-gate Mixture-of-Experts)와 DCN(Deep & Cross Networks)이 결합된 구조로 아키텍처를 변경했습니다. * MLP 게이팅 메커니즘을 적용한 MMOE 구조를 통해 별도의 도메인 전용 모듈 없이도 다중 도메인 및 다중 작업(Multi-task) 학습 문제를 효과적으로 해결했습니다. * 모델 내의 각 전문가(Expert) 유닛에 풀랭크(Full-rank) 및 로우랭크(Low-rank) DCN 레이어를 도입하여 특성 간의 교차 작용을 더 정교하게 학습하도록 설계했습니다. **GPU 학습 및 서빙 효율성 최적화** * 데이터 로더 최적화: GPU 프리패치(Prefetch) 기능을 활성화하여 GPU 연산과 데이터 준비를 병렬화하고, 대용량 CPU 메모리를 활용해 워커 스레드 수를 늘려 병목 현상을 제거했습니다. * 연산 효율성 증대: CPU에서의 메모리 할당을 최소화하고 GPU에서 직접 연산을 수행하며, 개별 커널들을 하나로 합친 퓨즈드 커널(Fused kernels)을 사용해 오버헤드를 줄였습니다. * 훈련 설정 개선: BF16(Brain Floating Point 16) 정밀도를 도입해 학습 속도를 높였으며, 배치 크기를 확대하여 GPU 메모리 활용도를 극대화했습니다. **데이터 분리 및 성과 분석** * 쇼핑 광고와 일반 광고 시나리오를 분리하고 각 데이터에 맞게 개별 학습을 진행함으로써 오프라인 손실(Loss)을 추가로 5~10% 더 절감했으며, 모델 반복 학습 속도를 2배 개선했습니다. * 오프라인 평가에서 이전 모델 대비 CTR 예측 손실이 총 10~20%가량 감소하는 결과를 확인했습니다. * 실제 온라인 서비스 적용 결과, 모든 광고 영역에서 사용자 클릭률(CTR)은 상승하고 광고주가 부담하는 클릭당 비용(CPC)은 낮아지는 지표 개선을 달성했습니다. GPU 인프라를 활용한 모델 복잡도 최적화는 대규모 추천 시스템에서 성능과 비용 효율성을 동시에 잡을 수 있는 핵심 전략입니다. 특히 단순한 하드웨어 교체를 넘어 하드웨어 가속에 최적화된 커널 사용과 데이터 파이프라인 튜닝을 병행할 때 복잡한 딥러닝 모델의 실무 적용 효과가 극대화됩니다.

pinterest

Beyond Two Towers: Re-architecting the Serving Stack for Next-Gen Ads Lightweight Ranking Models… (새 탭에서 열림)

전통적인 추천 시스템의 표준인 'Two-Tower' 모델은 효율적이지만, 사용자-아이템 간의 복잡한 상호작용 특징(Interaction features)을 반영하지 못하는 구조적 한계가 있습니다. 이를 해결하기 위해 핀터레스트는 범용 신경망 기반의 복잡한 랭킹 모델을 도입하기로 결정하고, 이를 지원하기 위한 GPU 기반의 서빙 스택 재설계를 단행했습니다. 데이터 전송 병목 현상을 해결하고 비즈니스 로직을 모델 내부에 통합함으로써, 초기 4,000ms에 달하던 지연 시간을 실시간 서비스 가능한 수준인 20ms까지 단축하는 데 성공했습니다. ### Two-Tower 모델의 한계와 새로운 도전 * **표현력의 제약:** Two-Tower 구조는 사용자(User)와 아이템(Item)을 각각 독립적인 벡터로 인코딩한 뒤 마지막에 내적(Dot product)만 수행하므로, 네트워크 깊은 곳에서 두 피처가 결합되는 '교차 피처(Cross-features)'나 '타겟 어텐션(Target attention)'을 활용하기 어렵습니다. * **복잡한 모델 도입의 필요성:** 보다 정교한 추천을 위해 피처 간의 직접적인 상호작용을 모델링할 수 있는 일반적인 딥러닝 아키텍처 도입이 필요해졌습니다. * **서빙 인프라의 한계:** 기존 인프라는 단순한 연산(내적 또는 ANN 검색)에 특화되어 있어, 무거운 GPU 추론 단계를 지연 시간 손실 없이 통합하는 것이 핵심 과제였습니다. ### 인벤토리 세분화를 통한 피처 패칭(Feature Fetching) 최적화 * **데이터 전송 병목:** 수만 개의 후보군에 대해 네트워크를 통해 피처를 가져오는 I/O 작업이 모델 추론보다 더 긴 시간을 소모하는 문제가 발생했습니다. * **고가치 인벤토리(Segment 1):** 매출 기여도가 높은 약 100만 개의 문서는 피처를 PyTorch 모델 파일 내의 'Registered Buffer' 형태로 직접 삽입했습니다. 이를 통해 모델 가중치처럼 GPU의 고대역폭 메모리(HBM)에 피처가 상주하게 되어 네트워크 오버헤드를 완전히 제거했습니다. * **롱테일 인벤토리(Segment 2):** 나머지 10억 개 이상의 문서는 고성능 Key-Value 저장소와 인-호스트 캐시를 조합하여 피처를 가져오도록 이원화했습니다. ### 비즈니스 로직의 모델 내부 통합 * **데이터 전송량 최소화:** 기존에는 GPU에서 계산된 수만 개의 점수를 모두 CPU로 보낸 뒤 필터링했으나, 이는 Device-to-Host(D2H) 전송 병목을 야기했습니다. * **로직 내재화:** 유틸리티 계산(pCTR, pCVR, 입찰가 조합 등), 다양성 규칙, Top-K 정렬 등의 비즈니스 로직을 PyTorch 텐서 연산으로 구현하여 모델 내부에 포함시켰습니다. * **병렬 처리 이점:** 복잡한 필터링과 정렬을 GPU의 대규모 병렬 연산으로 처리함으로써 CPU 기반 처리보다 속도를 높였고, 최종 결과값(약 1,000개)만 출력하여 전송 효율을 극대화했습니다. ### GPU 추론 가속화 및 시스템 최적화 * **멀티 스트림 CUDA:** 단일 스트림 방식에서 벗어나 여러 CUDA 스트림을 사용하여 데이터 전송(H2D, D2H)과 연산(Compute)이 서로 겹쳐서 수행(Overlap)되도록 설계했습니다. * **커널 퓨전(Kernel Fusion):** Triton 커널을 사용하여 선형 레이어와 활성화 함수 같은 반복적인 레이어 패턴을 하나로 합침으로써 메모리 대역폭 압박을 완화했습니다. * **수치 형식 최적화:** FP32 대신 BF16(Brain Floating Point 16) 형식을 채택하여 메모리 사용량을 줄이고 연산 속도를 높였습니다. * **워커 정렬:** 호스트 CPU 코어 수에 맞춰 워커 스레드 수를 조정하고 고정(Pinning)하여 컨텍스트 스위칭과 락 경합을 최소화했습니다. 이러한 재설계는 고성능 추천 시스템을 구축할 때 모델 아키텍처뿐만 아니라, 데이터 흐름과 하드웨어 가속기(GPU)의 특성을 고려한 인프라 최적화가 필수적임을 보여줍니다. 특히 대규모 트래픽 환경에서 GPU를 효율적으로 활용하려면 비즈니스 로직을 포함한 전체 서빙 파이프라인을 모델과 밀접하게 통합하는 전략이 유효합니다.

pinterest

Improving Quality of Recommended Content through Pinner Surveys (새 탭에서 열림)

핀터레스트는 클릭 중심의 단순한 사용자 반응을 넘어, 사용자가 진정으로 선호하는 고품질 콘텐츠를 추천하기 위해 직접적인 설문 기반의 머신러닝 모델을 도입했습니다. 이는 '클릭베이트'와 같은 저품질 콘텐츠의 확산을 막고, 사용자의 웰빙과 장기적인 만족도를 우선시하는 '사용자 제일주의(Put Pinners First)' 가치를 실현하기 위한 시도입니다. 결과적으로 설문 데이터를 학습한 모델을 통해 홈피드, 관련 핀, 검색 서비스 전반에서 추천 콘텐츠의 품질을 성공적으로 개선했습니다. **사용자 직접 피드백을 통한 시각적 품질 데이터 확보** - '이미지가 시각적으로 얼마나 즐거움을 주는가?'라는 질문으로 1~5점 척도의 인앱 설문을 실시하여 사용자의 주관적인 품질 인식을 데이터화했습니다. - 예술, 뷰티, DIY, 홈 데코, 패션 등 5가지 주요 카테고리(L1)에서 노출 수 가중치를 적용해 5,000개의 이미지를 선정했습니다. - 개별 사용자의 주관성과 오클릭에 따른 노이즈를 줄이기 위해 이미지당 최소 10명 이상의 응답을 확보하여 평균 점수를 산출했습니다. - 설문 결과, 홈 데코 카테고리가 전반적으로 높은 점수를 받았으며 예술 카테고리는 사용자 간 평가 편차가 가장 크게 나타나는 등 카테고리별 특성이 확인되었습니다. **시각적 품질 예측을 위한 머신러닝 모델링** - 이미지의 시각적·텍스트적 특성과 핀이 저장된 보드 간의 관계를 포함한 핀터레스트 내부 임베딩 기능을 모델의 피처로 활용했습니다. - 5,000개의 상대적으로 작은 데이터셋에서 과적합(Overfitting)을 방지하고 추론 속도 및 비용을 최적화하기 위해 92,000개의 파라미터만을 가진 단순한 완전 연결 신경망(Fully-connected NN) 구조를 채택했습니다. - 절대적인 점수를 예측하는 방식 대신, 두 이미지 중 어떤 것이 더 높은 평가를 받을지 예측하는 '쌍체 순위 지정(Pairwise ranking)' 기법을 적용해 학습 효율을 높였습니다. - 특히 학습 시 동일한 카테고리 내의 이미지만 비교하게 함으로써, 모델이 콘텐츠의 주제(Semantic)가 아닌 순수한 시각적 품질 차이에 집중하도록 설계했습니다. **실용적 인사이트 및 결론** 단순히 클릭률(CTR)과 같은 단기적인 인게이지먼트 지표에만 의존하는 추천 시스템은 장기적으로 콘텐츠의 질을 저하시킬 위험이 있습니다. 핀터레스트의 사례는 정제된 소규모 설문 데이터를 활용해 사용자의 의도를 모델링에 직접 반영함으로써, 비즈니스 지표와 사용자 만족도를 동시에 잡는 '윈-윈' 전략이 가능함을 보여줍니다. 품질에 대한 정의가 모호할수록 전문가의 라벨링보다는 실제 대중 사용자의 피드백을 수집하여 평균적인 인식을 학습시키는 것이 실질적인 추천 서비스 개선에 더 효과적일 수 있습니다.

pinterest

On the (re)-prioritization of open-source AI (새 탭에서 열림)

현재 인공지능 기술의 경쟁 축은 거대 폐쇄형 모델에서 오픈소스 및 목적 특화형(Fit-for-purpose) 모델로 빠르게 이동하고 있습니다. 핀터레스트(Pinterest)는 오픈소스 모델을 자사 데이터로 미세 조정하여 상용 모델 대비 10% 미만의 비용으로 동등한 성능을 구현해냈으며, 특정 작업에서는 오히려 범용 모델을 능가하는 성과를 거두고 있습니다. 이는 AI 모델 아키텍처가 범용화됨에 따라 기업의 경쟁력이 독자적인 데이터와 제품 통합 능력에서 결정된다는 점을 시사합니다. ### 핀터레스트의 모달리티별 모델 구축 전략 핀터레스트는 서비스의 특성에 따라 '자체 구축(Build)', '구매(Buy)', '조정(Adapt)'의 전략을 차별화하여 적용합니다. * **사용자 추천 시스템(Users):** 수천억 개의 노드로 구성된 이미지-보드-사용자 그래프를 기반으로 PinFM, PinRec과 같은 모델을 자체 구축하여 사용자 행동 시퀀스를 정교하게 학습합니다. * **시각적 이해(Visual):** 시각적 검색 및 컬렉션 데이터를 활용한 대규모 약지도 학습(Weakly-supervised pretraining)을 위해 PinCLIP, Pinterest Canvas 등 독자적인 인코더와 확산 모델을 개발합니다. * **텍스트 및 추론(Text):** 과거에는 외부 상용 모델에 의존했으나, 최근에는 오픈소스 LLM을 핀터레스트의 고유 데이터로 미세 조정하여 사용하는 방식으로 전환하고 있습니다. ### 도메인 특화 데이터 기반의 성능 차별화 모델 아키텍처가 상향 평준화되면서, 특정 도메인에 최적화된 데이터가 모델의 성능을 결정짓는 핵심 요소로 부상했습니다. * 핀터레스트는 자체 시각 데이터를 학습시킨 임베딩 모델(UVE, PinCLIP)을 통해 기성 모델보다 우수한 검색 및 추천 성능을 확보했습니다. * 이미지 생성 모델인 'Pinterest Canvas' 역시 범용 모델보다 핀터레스트의 서비스 환경에 적합한 이미지 편집 및 향상 기능을 제공하도록 튜닝되었습니다. * 이러한 접근법은 과거 AlexNet 시절 아키텍처가 범용화되고 데이터 중심의 최적화가 중요해졌던 머신러닝의 역사적 흐름과 궤를 같이합니다. ### 핀터레스트 어시스턴트(Pinterest Assistant) 사례 최근 출시된 AI 에이전트 서비스는 오픈소스 모델의 효율성을 증명하는 대표적인 사례입니다. * **지능형 라우터 구조:** 에이전트 역할을 하는 LLM이 사용자의 의도를 파악하고, 추천 서비스나 시각 검색 등 핀터레스트 고유의 도구(Tool)를 호출하는 구조를 채택했습니다. * **오픈소스 기반 최적화:** 초기에는 상용 LLM을 사용했으나, 도구 호출(Tool calling)과 쿼리 계획 수립에 특화된 미세 조정을 거친 오픈소스 모델로 교체하여 비용을 획기적으로 절감했습니다. * **성능 유지와 비용 절감:** 오픈소스 모델 도입을 통해 상용 모델 대비 10배 이상의 비용 효율성을 달성하면서도 서비스 품질은 유지하는 성과를 거두었습니다. ### 기술적 통찰과 제언 AI 기술 전략을 수립할 때 더 이상 모델의 크기나 범용적인 벤치마크 점수에만 매몰되어서는 안 됩니다. 기업은 자사가 보유한 고유의 데이터를 가장 효과적으로 학습시킬 수 있는 오픈소스 모델을 선택하고, 이를 자사 서비스 생태계에 깊숙이 통합하는 '목적 특화형' 접근법을 취해야 합니다. 모델 자체의 성능보다는 그 모델이 비즈니스 맥락 안에서 얼마나 정교하게 도구를 활용하고 사용자 경험을 개선하는지가 진정한 차별화 포인트가 될 것입니다.