피드로 돌아가기
Spotify EngineeringBackend
원문 읽기
Why We Use Separate Tech Stacks for Personalization and Experimentation
Spotify가 개인화(Personalization)와 실험(Experimentation)을 별도의 기술 스택으로 분리하여 58개 팀이 연 520개 실험을 동시에 독립 실행
AI 요약
Context
개인화 시스템과 실험 시스템의 기술적 기초가 유사해 보이지만(contextual bandits가 personalization과 유사), 두 도메인의 목표와 제약 조건이 근본적으로 다르다. Personalization은 개별 사용자를 위한 최적의 경험을 학습하는 것이 목표이며, Experimentation은 평균적 성능을 측정하거나 개인화 시스템 전체의 개선을 평가하는 것이 목표다.
Technical Solution
- ML/AI 스택과 Experimentation 스택을 물리적으로 분리: Personalization 팀은 deep neural networks, LLMs 같은 고급 ML 모델을 ML 플랫폼에서 관리하고, Experimentation 팀은 이를 평가하는 별도의 Confidence 실험 플랫폼 운영
- 두 스택 간 느슨한 결합 유지: API 통합과 UI 기반 통합을 혼용하여 Personalization 팀이 ML 플랫폼에서 모델을 배포한 후, 필요시 Confidence에서 실험 평가 수행
- Multi-armed bandits에서 Contextual bandits로의 단계적 진화: 초기 A/B 테스트(모든 사용자에게 동일 변수)→ Multi-armed bandits(성능 기반 트래픽 재할당)→ Contextual bandits(사용자 특성 기반 개인화)로 체계화
- ML 플랫폼과 Experimentation 플랫폼 간 seamless 통합: 광고(ads), 인앱 메시지(in-app messages) 등 타 시스템과도 custom 통합을 통해 팀들이 외부 UI나 API 호출만으로 실험 설정 가능
- 낮은 레이턴시 특성 계산과 빠른 추천 연산을 위한 인프라 최적화: Personalization 스택은 rich feature sets 처리와 실시간 추천 생성에 특화된 ML 플랫폼으로 구성
Impact
지난 1년간 모바일 앱 홈페이지만 58개 팀이 520개 실험 동시 운영
Key Takeaway
여러 팀이 동시에 혁신할 수 있는 환경을 만들려면, 유사한 기술 기초를 가진 도메인도 목표와 제약이 다르면 스택을 분리하고 느슨한 결합으로 통합하는 것이 각 팀의 속도를 해치지 않으면서도 전사 차원의 확장성을 확보할 수 있다.
실천 포인트
개인화 추천 시스템과 A/B 테스트를 운영하는 조직에서는 두 시스템의 목표(개별 최적화 vs 평균 성능 측정)를 명확히 분리하고, ML 플랫폼과 Experimentation 플랫폼을 별개의 기술 스택으로 유지한 뒤 API 또는 UI 기반 통합으로 느슨하게 연결하면, 각 팀이 서로 간섭 없이 동시에 실험하면서도 infrastructure 복잡도를 제어할 수 있다.