#AI

활동에서 의도로: LLM을 활용한 유저 여정 생성

활동에서 의도로: LLM을 활용한 유저 여정 생성
01

Summary

핀터레스트가 다단계 추천 파이프라인을 4B 생성형 LLM 단 하나로 통합한 비결

단순한 단발성 아이템 추천을 넘어 수개월간 지속되는 유저의 진짜 목적을 포착하는 혁신적 엔지니어링 리포트

핀터레스트는 복잡했던 기존 클러스터링 기반 유저 여정 추론 시스템을 단일 4B 파라미터 생성형 LLM으로 전면 재설계했습니다. 교사 모델의 추론 성능을 지식 증류 기법으로 전달받은 소형 모델과 PagedAttention 기반의 vLLM 서빙 인프라를 조합하여, 수억 명의 유저 활동 로그를 정교한 맞춤형 프로젝트명으로 변환하는 성과를 이뤄냈습니다.

  • 01복잡한 키워드 추출 및 클러스터링 단계를 단일 프롬프트 입출력 기반 생성 파이프라인으로 통합
  • 02프런티어 LLM의 추론 능력을 4B Qwen3 모델에 지식 증류 및 LoRA 파인튜닝으로 이전
  • 03vLLM, PagedAttention, KV 캐시 인식 라우팅을 적용해 100여 대 GPU 환경에서 초당 775건 처리 서빙 구축
  • 04다국어 유저를 지원하고 하운드 오류를 방지하는 방어적 JSON 파싱 및 프롬프트 제약 조건 구현
  • 05RQ-VAE 기반 Semantic ID(SID)를 도입하여 핀 데이터를 압축하고 토큰 비용을 최소화하는 차세대 시도 포함

RECOMMENDATION

추천 시스템이나 이커머스 로그 분석을 다루는 ML 엔지니어 및 테크 리더에게 다단계 파이프라인을 단일 LLM으로 통합하는 아키텍처 패턴과 고성능 vLLM 배포 실무 사례로서 적극 추천합니다.

The Problem

기존 핀터레스트의 유저 여정 추론 시스템은 키워드 추출, 임베딩, 계층적 클러스터링, 다단계 랭킹 등 다단계 파이프라인으로 구성되어 오차가 누적되고 일반적 범주화나 파편화 현상이 발생했습니다.

The Solution

파편화된 파이프라인을 단일 생성형 모델 구조로 전환하고, 고성능 프런티어 모델의 능력을 지식 증류(Distillation)한 4B 파라미터 Qwen3 소형 모델을 구축하여 vLLM 및 Dynamo 기반의 대규모 서빙 스택에서 구동하도록 설계했습니다.

The Result

이메일 클릭률 1.1%, 푸시 오픈율 1.3% 증가와 함께 전사적 사용자 인게이지먼트 및 리텐션 지표의 통계적 유의미한 상승을 기록하며 수억 명 사용자 대상 다국어 여정 추론에 성공했습니다.

Trade-off

기존 키워드 클러스터링 대비 GPU 인프라 운영 비용이 크고, 디코딩 지연 시간이 늘어날 수 있으며, 최근 시도 중인 Semantic ID 적용 시 프롬프트의 가독성과 가시성이 저하되는 한계가 존재합니다.

03

Key Concepts

Concept · 01

User Journey (유저 여정)

단순한 단발성 관심사를 넘어 유저가 특정 기간 동안 달성하고자 하는 목표나 프로젝트를 뜻합니다.

  • 핀터레스트에서 주방 리모델링, 여름 결혼식 하객룩 찾기 등 수개월에 걸쳐 일어나는 고차원적 의도를 의미합니다.
  • 기존의 단발성 클릭 기반 아이템 추천을 넘어서는 개인화의 핵심 단위로 사용됩니다.
Concept · 02

Knowledge Distillation (지식 증류)

고성능의 대형 교사(Teacher) 모델이 생성한 데이터나 지식을 경량화된 학생(Student) 모델에 학습시켜 효율성을 높이는 기법입니다.

  • 프런티어 LLM의 높은 추론 능력을 4B 파라미터의 Qwen3 경량화 모델로 이식했습니다.
  • 비용 절감과 서빙 속도 개선을 동시에 달성하면서 높은 유저 여정 추론 품질을 유지했습니다.
Concept · 03

vLLM & PagedAttention

LLM 생성 디코딩 과정에서 메모리 파편화를 줄이고 GPU 가용성을 극대화하기 위한 고성능 인퍼런스 엔진 및 메모리 관리 기술입니다.

  • NVIDIA Dynamo와 vLLM 디코드 워커를 결합하여 L40S GPU 환경에서 초당 775건의 요청을 처리했습니다.
  • PagedAttention 및 연속 배칭(Continuous Batching)을 통해 처리량을 최대화했습니다.