인도의 주요 온라인 소매업체가 Milvus로 제품 매칭을 확장한 방법

메모리 사용량 75% 감소
임베딩을 RAM에서 객체 스토리지로 옮겨, 메모리가 확장의 병목이 되는 문제를 제거했습니다.
6배 더 빠른 처리 시간
대규모 검색 전반에서 카탈로그 매칭을 며칠에서 몇 시간으로 단축했습니다.
~200ms 지연 시간
엄격한 지연 시간 목표를 충족하면서 대규모로 더 강력한 정밀도를 제공했습니다.
향상된 운영 유연성
독립적인 노드 확장은 업데이트 중 전체 인덱스 재구축을 제거합니다.
회사 소개
고객사는 인도 최대 온라인 리테일 플랫폼 중 하나로, 종종 “인도의 Amazon”이라고 불리며, 전자제품, 패션, 식료품, 생활필수품과 같은 카테고리 전반에서 전국 고객을 대상으로 서비스를 제공합니다. 소비자 대상 마켓플레이스를 넘어, 이 회사는 기업 및 온라인 판매자를 위한 엔드투엔드 커머스 솔루션을 제공하는 SaaS 부문도 운영하고 있습니다. 이 제품의 핵심 구성 요소는 가격이 여전히 고객 의사결정에 가장 강력한 영향을 미치는 요소 중 하나인 시장에서 리테일러가 경쟁력을 유지하도록 돕는 가격 인텔리전스 시스템입니다.
그러나 전국 규모에서 정확한 실시간 가격 책정을 지원하는 것은 상당한 엔지니어링 과제를 야기했습니다. 팀은 수백만 개 SKU에서 수천만 개로 늘어나는 끊임없이 확장되는 디지털 카탈로그 전반에서 제품을 매칭하고, 자체적으로 방대한 재고를 보유한 여러 대형 경쟁사에 대해 매일 이를 갱신해야 했습니다. 이러한 폭발적인 성장은 기존의 키워드 및 FAISS 기반 아키텍처에 과부하를 일으켜 인프라 비용을 증가시키고 업데이트 주기를 늦췄습니다.
이러한 병목 현상을 해결하기 위해 팀은 제품 매칭 파이프라인을 Milvus Vector Database로 마이그레이션했습니다. Milvus의 디스크 기반 인덱싱 및 분산 아키텍처를 통해 처리 시간을 크게 단축하고 운영 비용을 낮추어, 엔터프라이즈급 가격 관리를 위한 더 확장 가능하고 지속 가능하며 고성능인 시스템을 구현했습니다.
과제: 엔터프라이즈 수준에서 제품 매칭 확장
이 회사의 가격 인텔리전스 플랫폼은 세 가지 핵심 모듈로 구동됩니다: 경쟁 인텔리전스(스크래핑 및 제품 매칭을 사용해 경쟁사 가격 추적), 동적 가격 책정(시장 신호에 기반한 규칙 기반 조정), 그리고 상품 구성 인텔리전스(리테일러 카탈로그의 공백 식별). 플랫폼이 더 많은 엔터프라이즈 고객을 온보딩하면서, 이러한 기능을 뒷받침하는 제품 매칭 엔진은 부담의 징후를 보이기 시작했습니다.
리테일러는 2천만 개가 넘는 SKU를 관리했으며, 이를 매일 또는 심지어 매시간 업데이트하는 동시에 10개 이상의 경쟁사를 추적했습니다. 각 경쟁사 카탈로그는 크롤링 및 비교해야 할 SKU 500만 개를 추가로 더해, 거의 기하급수적으로 증가하는 워크로드를 만들었습니다.
규모에 더해, 비정형 데이터 자체도 복잡했습니다: 일관되지 않은 해상도의 제품 이미지, 서로 다른 스타일로 작성된 설명, 그리고 정확한 일치와 “충분히 가까운” 변형을 모두 지원해야 하는 필요성이 있었습니다.
정확도 역시 매우 중요했습니다. 작은 오류율조차 가격 추천에 부정적인 영향을 미쳐, 가격이 너무 높게 책정되면 리테일러가 판매를 잃고, 너무 낮게 책정되면 손해를 보며, 움직이지 않는 재고에 묶이게 되어 수익이 직접적으로 감소하고 시스템에 대한 리테일러의 신뢰가 약화될 수 있었습니다.
리소스 최적화는 또 다른 주요 장애물이었습니다. 시스템은 대규모 엔터프라이즈 규모에서 지속적인 데이터 처리 및 쿼리를 위해 CPU, 메모리, 스토리지를 포함한 컴퓨팅 리소스를 효율적으로 관리해야 했습니다.
단일 서버 FAISS 기반 인메모리 인덱스 위에 구축된 레거시 아키텍처는 이러한 수준의 데이터 증가에 맞게 설계되지 않았습니다. 경쟁사 임베딩은 로컬 디스크에 저장된 뒤, 유사도 검색을 위해 주기적으로 메모리에 로드되었습니다. 더 작은 규모에서는 기능했지만, 이 설계는 규모가 커지면서 무너졌습니다. 메모리 사용량이 급증했습니다—약 2천만 개의 1,024차원 임베딩을 저장하려면 거의 400 GB의 RAM이 필요했습니다—그 결과 인프라 비용이 치솟았습니다. 성능도 저하되어, 특정 엔드투엔드 처리 작업은 완료하는 데 최대 12일이 걸렸습니다. 시의적절한 경쟁 인사이트를 기대하는 고객에게, 시스템은 분명히 한계에 도달한 상태였습니다.
확장 경로 평가와 Milvus 선택
이러한 중대한 한계에 직면한 엔지니어링 팀은 확장 과제를 해결하기 위한 세 가지 잠재적 경로를 고려했습니다.
수직 확장 — 더 크고 메모리 집약적인 VM으로 이동. 이 옵션은 일시적으로 성능 요구 사항을 충족할 수 있었지만, 솔루션의 물리적 한계가 곧 다시 드러나 비용이 크게 증가하게 될 것이었습니다. 분명히 이는 임시방편에 불과했습니다.
SQL 데이터베이스에 벡터 검색 기능 확장. 통합 관점에서 이 접근 방식은 매력적이었지만, 팀은 곧 위험을 깨달았습니다. 기본 SQL 데이터베이스에 과부하가 걸리면 트랜잭션 작업과 벡터 쿼리 모두 느려져 전체 시스템의 안정성이 저해될 수 있었습니다.
대규모 유사도 검색을 위해 설계된 전용 벡터 데이터베이스 도입. 이는 가장 유망한 옵션으로 입증되었습니다. 팀은 Milvus, Pinecone, Qdrant, Weaviate 전반에 걸쳐 삽입 속도, 쿼리 지연 시간, 필터링 정밀도, 배포 유연성을 테스트하며 광범위한 벤치마크를 실행했습니다. 이러한 평가에서 Milvus가 확실한 선두 주자로 부상했습니다.
Milvus를 선택한 이유: 주요 의사 결정 요인
평가 과정에서 Milvus는 모든 조건을 충족한 유일한 솔루션으로 부상했으며, 플랫폼의 확장 및 비용 문제를 직접적으로 해결했기 때문입니다. 주요 요인은 다음과 같습니다.
Milvus의 분산 아키텍처는 수평 확장과 효율적인 리소스 활용을 가능하게 하여, 팀이 인프라를 과도하게 프로비저닝하지 않고도 수십억 개의 임베딩을 처리할 수 있는 유연성을 제공했습니다. 또한 Milvus의 조정 가능한 설계는 엔지니어링 팀이 애플리케이션의 정확한 워크로드 요구 사항을 충족하도록 시스템을 최적화할 수 있게 했습니다.
두 번째 차별화 요소는 Milvus의 디스크 기반 인덱싱 알고리즘인 DiskANN이었습니다. HNSW와 같은 인메모리 방식에 비해 메모리 요구 사항을 최대 75%까지 줄임으로써, DiskANN은 대규모 검색을 실현 가능하게 했을 뿐만 아니라 비용 효율적으로 만들었습니다. S3와 같은 객체 스토리지 지원과 결합되어, 이는 플랫폼에 확장 가능하고 합리적인 비용의 기반을 제공했습니다.
마지막으로, Milvus의 사전 필터링 기능은 팀의 검색 최적화 전략과 완벽하게 부합하여, 벡터 검색을 수행하기 전에 카테고리, 브랜드 또는 가격을 기준으로 후보 집합을 좁힐 수 있게 했습니다. 이는 검색 공간을 크게 줄여 성능과 정확도를 모두 향상시켰습니다.
솔루션: Milvus로 대규모 제품 매칭 구축
Milvus를 선택한 후, 고객사의 엔지니어링 팀은 규모와 정밀도 모두에 최적화된 새로운 아키텍처를 설계했습니다.
파이프라인은 데이터 수집으로 시작되며, 여기서 고객 카탈로그와 경쟁사 데이터가 크롤링되어 저장됩니다. 그런 다음 정규화 계층이 일관되지 않은 제품 이미지와 설명 같은 지저분하고 비정형적인 데이터를 표준화된 형식으로 처리합니다. 이어서, 전자상거래 데이터에 명시적으로 학습된 팀의 독자적인 머신 러닝 모델이 각 제품의 핵심 속성을 포착하는 4바이트 float의 1024차원 벡터를 생성합니다. 이러한 임베딩은 Milvus에 인덱싱되어 저장되며, 유사도 검색은 고차원 공간에서 코사인 유사도를 사용하여 고객 제품 임베딩을 경쟁사 카탈로그와 비교합니다.
검색 파이프라인은 다단계 프로세스를 따릅니다. 카테고리, 브랜드, 가격 범위와 같은 구조화된 속성을 기반으로 한 사전 필터링으로 시작하여 후보 집합을 좁힙니다. 그런 다음 Milvus는 이 필터링된 하위 집합 내에서 벡터 유사도 검색을 수행하고, 이어서 결과에 대한 후처리와 점수 산정이 진행됩니다. 마지막으로, 임계값 기반 필터가 추천을 생성하며, 신뢰도가 높은 매칭에는 수동 검토가 적용됩니다. 이러한 계층적 접근 방식은 자동화와 감독 사이의 균형을 맞추어, 엔터프라이즈 규모에서 속도와 정확성을 모두 보장합니다.
Milvus를 도입함으로써 팀은 제품 매칭 주기를 가속화하는 동시에 인프라 비용을 크게 절감했습니다. 더 중요한 것은, 방대한 카탈로그와 매우 역동적인 경쟁 환경을 가진 엔터프라이즈 고객을 지원할 수 있는 미래 지향적인 기반을 구축했다는 점입니다.
결과: 확장 가능하고 비용 효율적이며 정확한 제품 매칭
Milvus로의 마이그레이션은 가격 인텔리전스 플랫폼이 엔터프라이즈 규모에서 제품 매칭을 처리하는 방식을 바꾸었습니다. 한때 메모리 한계, 긴 처리 주기, 경직된 운영에 제약을 받던 방식은 효율적이고 정확하며 엔터프라이즈 성장에 맞춰 확장할 준비가 된 방식으로 변화했습니다.
낮아진 인프라 비용: 이전 FAISS 구성은 모든 임베딩을 메모리에 로드해야 했기 때문에 확장이 비용 면에서 비싸고 실용적이지 않았습니다. Milvus로 전환함으로써 고객의 엔지니어링 팀은 메모리 요구 사항을 최대 75%까지 줄이고, 스토리지를 S3 및 GCP 버킷으로 이전했습니다. 과거에는 비용 장벽이었던 것이 이제는 확장을 위한 지속 가능한 기반이 되었습니다.
6배 빨라진 처리 시간: 한때 12일까지 걸리던 대규모 카탈로그 간 매칭 작업은 이제 20M 검색 기준 약 2일 만에 완료됩니다. 여전히 배치 기반이지만, 이 6배의 개선은 경쟁 인텔리전스가 실시간 가격 결정에 정보를 제공할 만큼 최신 상태를 유지하도록 보장합니다.
규모에 따른 더 높은 정확도: 가격 책정에서 정밀도는 타협할 수 없습니다. Milvus는 배치 쿼리에 대한 팀의 ~200ms 지연 시간 목표를 충족하면서 HNSW와 같은 대안보다 더 높은 정확도를 제공했습니다. 구조화된 필터(카테고리, 브랜드, 가격)와 벡터 유사도 검색을 결합함으로써, 팀은 비용이 큰 오매칭을 최소화하고 추천에 대한 신뢰를 구축했습니다.
향상된 운영 유연성: Milvus를 통해 팀은 더 이상 업데이트를 처리하기 위해 전체 인덱스를 재구축할 필요가 없습니다. 분산 아키텍처를 통해 쿼리, 인덱스, 데이터 노드를 독립적으로 확장할 수 있습니다. MySQL과의 하이브리드 통합은 구조화된 필터링과 벡터 검색을 결합하여 최대 효율을 내도록 워크플로를 더욱 간소화했습니다.
결론
이 플랫폼을 뒷받침하는 팀에게 더 나은 제품 매칭은 단순히 더 빠른 처리 이상의 의미를 가졌습니다 — 이는 전체 가격 엔진을 위한 더 강력한 기반을 만들었습니다. Milvus를 도입함으로써, 팀은 방대하고 복잡한 카탈로그를 정확하고 지속 가능한 비용으로 처리할 수 있는 역량을 확보했습니다. 인덱싱에는 DiskANN을 사용하고, 확장을 위해 자체 호스팅 분산 아키텍처를 활용하며, 기존 데이터베이스와 통합된 하이브리드 접근 방식을 적용함으로써, 팀은 실용적이면서도 복원력 있는 시스템을 구축했습니다.
이러한 전환을 통해 팀은 엔터프라이즈 고객이 신뢰를 가지고 실행할 수 있는 신뢰성 높은 경쟁 인사이트와 가격 추천을 제공할 수 있게 되었습니다. 이커머스 카탈로그가 성장하고 경쟁이 심화됨에 따라, 이 경험은 벡터 데이터베이스가 규모와 정밀도를 동시에 달성하기 위한 실용적인 접근 방식을 제공한다는 것을 보여줍니다 — 이는 빠르게 진화하는 시장에서 경쟁력을 유지하는 데 이제 필수적인 특성입니다.


