피드로 돌아가기
Dev.toAI/ML
원문 읽기
5억 개 포스트를 200ms 내 랭킹하는 Grok 기반 Transformer 아키텍처
X's Feed Ranking Algorithm: How Grok Ranks 500M Posts in 200ms
AI 요약
Context
수억 명의 사용자에게 제공되는 추천 피드에서 방대한 데이터 규모와 실시간성 요구사항으로 인한 DB 병목 현상 발생. 기존의 수동 Feature Engineering 및 Heuristic 기반 가중치 설정 방식의 한계를 극복하기 위한 완전 자동화된 ML 랭킹 시스템 필요성 증대.
Technical Solution
- Thunder를 통한 In-memory Post Store 구축으로 Follow 기반 In-network 포스트의 sub-millisecond 조회 달성
- Phoenix Retrieval의 Two-Tower Model을 활용하여 User와 Post 임베딩 간 Dot Product Similarity 기반 Out-of-network 후보군 추출
- Candidate Isolation 기법의 Attention Masking을 적용하여 후보 포스트 간 상호 간섭을 차단하고 일관된 점수 산출 및 캐싱 가능 구조 설계
- 14가지 Engagement Type을 동시 예측하는 Multi-action Prediction 모델 도입으로 Hand-engineered Feature 완전히 제거
- Candidate Pipeline이라는 Rust Trait 기반 프레임워크를 통해 Source부터 SideEffect까지 8단계의 컴포저블 파이프라인 구축
- 고비용 Transformer 추론 전 Pre-scoring Filter를 배치하여 5억 개의 데이터를 1,500개의 최적 후보군으로 압축 후 랭킹 수행
실천 포인트
- 대규모 데이터 조회 시 외부 DB 의존도를 낮추기 위해 Kafka 이벤트 기반의 In-memory Store 검토 - ML 랭킹 모델 설계 시 단일 점수가 아닌 다각도 Engagement 확률을 예측하는 Multi-task Learning 도입 고려 - 추론 비용 최적화를 위해 고비용 모델 전 단계에 정교한 Filtering 및 Candidate Reduction 레이어 배치 - 파이프라인의 확장성과 재사용성을 위해 Rust Trait과 같은 인터페이스 기반의 컴포저블 프레임워크 설계 적용