vector-embeddings

2 개의 포스트

PinLanding: 멀티모달 (새 탭에서 열림)

Pinterest의 'PinLanding'은 수십억 개의 제품 데이터를 멀티모달 AI를 통해 정교한 쇼핑 컬렉션으로 자동 변환하는 프로덕션 파이프라인입니다. 기존의 수동 큐레이션이나 단순 검색 기록 기반 방식에서 벗어나, 제품의 이미지와 텍스트를 직접 분석하여 사용자의 복잡하고 긴 꼬리형(Long-tail) 검색 의도에 맞는 컬렉션을 생성합니다. 이 시스템은 비전-언어 모델(VLM)을 통한 속성 추출과 CLIP 스타일의 효율적인 임베딩 모델을 결합하여 대규모 데이터셋에서도 정밀도와 확장성을 동시에 확보했습니다. **사용자 쇼핑 의도와 데이터 신호의 특성화** * 사용자의 검색 기록, 자동 완성 상호작용, 필터 사용 패턴을 분석하여 쇼핑 의도의 분포를 파악합니다. * '검은색 칵테일 드레스'와 같은 정형화된 주요 쿼리(Head)뿐만 아니라, '이탈리아 여름 휴가 때 입을 옷'과 같은 서술형 및 대화형 쿼리에 대응하는 것을 목표로 합니다. * 색상, 상황, 스타일, 핏 등 20개 카테고리에 걸친 속성 차원을 정의하여, 수요는 높지만 기존 검색 결과가 부족한 영역을 식별합니다. **VLM과 LLM-as-Judge를 활용한 쇼핑 토픽 정제** * 제품의 이미지와 메타데이터를 비전-언어 모델(VLM)에 입력하여 정규화된 키-값 쌍 형태의 속성을 생성합니다. * 초기 VLM 출력의 너무 구체적이거나 중복된 속성(예: 'boho'와 'bohemian')을 해결하기 위해 빈도 기반 필터링과 임베딩 기반 클러스터링을 수행합니다. * 최종적으로 'LLM-as-judge' 단계를 거쳐 추출된 속성들이 실제 쇼핑 의도와 일치하는지, 의미적으로 일관성이 있는지 평가하여 고품질의 쇼핑 토픽 사전을 구축합니다. **CLIP 스타일 모델을 통한 대규모 속성 할당** * 모든 제품에 VLM을 직접 적용하는 것은 비용이 과다하므로, 이미지-텍스트를 정렬하는 CLIP 스타일의 듀얼 인코더 모델을 별도로 학습시킵니다. * 제품 인코더와 속성 구절 인코더를 통해 각각의 임베딩을 생성하고, 두 벡터 간의 유사도가 임계치를 넘을 때 속성을 할당합니다. * 이 방식은 VLM 대비 연산 비용을 획기적으로 낮추면서도, 제품별 속성 밀도를 높여 더욱 일관된 제품-속성 그래프를 형성합니다. **Ray 및 Spark 기반의 효율적인 배치 추론 및 피드 구축** * 수백만 개의 핀(Pin)과 토픽을 처리하기 위해 Ray 프레임워크를 사용하여 GPU와 CPU 리소스를 독립적으로 확장하며 스트리밍 방식으로 추론을 수행합니다. * CLIP 기반 분류기는 8개의 NVIDIA A100 GPU에서 약 12시간 만에 학습 및 추론을 완료하며, 회당 비용을 약 500달러 수준으로 절감했습니다. * 최종 피드 구성은 Apache Spark를 활용하여 제품과 쇼핑 토픽 간의 속성 유사도를 계산하고, 가중치 기반 스코어링을 통해 관련성 높은 제품들을 컬렉션으로 묶어냅니다. PinLanding 시스템은 AI가 단순한 키워드 매칭을 넘어 제품의 시각적, 맥락적 의미를 깊이 있게 이해할 수 있음을 보여줍니다. 대규모 이커머스 환경에서 사용자에게 개인화되고 탐색 가능한 쇼핑 경험을 제공하려는 기업은 VLM을 통한 '지식 추출'과 CLIP 스타일 모델을 통한 '효율적 확산' 전략을 참고할 가치가 있습니다.

MUVERA: 다 (새 탭에서 열림)

구글 리서치에서 발표한 MUVERA는 복잡한 멀티 벡터 검색(Multi-vector retrieval) 과정을 단일 벡터 기반의 최대 내적 탐색(MIPS) 문제로 변환하여 처리 속도를 혁신적으로 개선한 알고리즘입니다. 이 기술은 고정 차원 인코딩(FDE)을 통해 여러 개의 벡터 집합을 하나의 벡터로 압축함으로써, 멀티 벡터 모델의 높은 정확도를 유지하면서도 기존의 최적화된 단일 벡터 검색 인프라를 그대로 활용할 수 있게 해줍니다. **멀티 벡터 검색의 복잡성과 기존의 한계** * ColBERT와 같은 최신 멀티 벡터 모델은 텍스트의 각 토큰마다 별도의 임베딩을 생성하여 문맥을 정밀하게 파악하지만, 이는 처리해야 할 벡터의 양을 기하급수적으로 늘리는 결과를 초래합니다. * 멀티 벡터 간의 유사도를 측정할 때는 주로 챔퍼 유사도(Chamfer similarity)를 사용하는데, 이는 비선형적인 행렬 곱 연산이 필요하여 단일 벡터의 점곱(Dot-product) 연산보다 훨씬 많은 계산 자원을 소모합니다. * 기존의 효율적인 검색 알고리즘(공간 분할 기법 등)은 대개 단일 벡터에 최적화되어 있어, 복잡한 멀티 벡터 구조에서는 검색 속도가 데이터 규모에 비례해 느려지는 성능 병목 현상이 발생합니다. **고정 차원 인코딩(FDE)을 통한 효율화** * MUVERA의 핵심은 '고정 차원 인코딩(Fixed Dimensional Encoding, FDE)' 기술로, 여러 벡터로 구성된 데이터 포인트를 유사도 정보가 보존된 단일 벡터로 변환합니다. * 이 방식은 두 FDE 벡터 간의 내적 값이 원래 멀티 벡터 집합 간의 복잡한 유사도와 유사하도록 설계되어, 고차원적인 검색 문제를 단순한 벡터 비교 문제로 치환합니다. * 특히 이 변환 과정은 '데이터 무관(Data-oblivious)' 방식으로 작동하여 특정 데이터셋의 분포에 의존하지 않으므로, 데이터가 실시간으로 변하는 스트리밍 환경에서도 안정적으로 적용 가능합니다. **MUVERA의 3단계 검색 프로세스** * **FDE 생성 및 인덱싱**: 문서 내의 멀티 벡터 집합을 단일 FDE 벡터로 변환하고, 이를 표준 MIPS 솔버를 사용하여 인덱싱합니다. * **MIPS 기반 1차 검색**: 쿼리가 들어오면 쿼리의 FDE를 즉시 계산한 후, 최적화된 MIPS 알고리즘을 통해 수많은 데이터 중 유사도가 높은 후보군을 하위 선형 시간(Sublinear time) 내에 빠르게 추출합니다. * **재순위화(Re-ranking)**: 추출된 소수의 후보군에 대해서만 원래의 정밀한 챔퍼 유사도를 계산하여 최종 검색 결과의 순위를 조정함으로써 정확도를 극대화합니다. 멀티 벡터 모델의 높은 검색 품질을 원하면서도 기존 단일 벡터 검색 엔진의 속도와 효율성을 포기할 수 없는 환경이라면 MUVERA가 최적의 해결책이 될 수 있습니다. 기존 MIPS 인프라를 그대로 사용하면서 모델의 성능만 업그레이드할 수 있다는 점에서 시스템 확장성 측면의 이점이 매우 큽니다.