밀버스가 최적의 처리량과 사용자 경험을 위해 BIGO의 비디오 중복 제거 시스템을 혁신한 방법

<200ms
높은 리콜률로 검색 응답 시간 단축
>7억 이상
임베딩 벡터 인덱싱 및 관리
크게 증가
성능 저하 없는 쿼리 처리량
Milvus has done an extraordinary job in revolutionizing Likee's video deduplication system, which significantly fueled the growth of BIGO's short-video business.
Xinyang Guo
BIGO 소개
비고 테크놀로지(이하 비고)는 싱가포르에 본사를 두고 전 세계 30개 이상의 지사와 6개 R&D 센터를 운영하며 빠르게 성장하고 있는 기술 기업입니다. 인공지능 기술을 기반으로 라이브 스트리밍을 위한 비고 라이브와 짧은 동영상 공유를 위한 좋아요 등 동영상 기반 제품과 서비스를 제공하며 150개국 4억 명 이상의 사용자들에게 큰 인기를 얻고 있습니다.
도전 과제: 대량의 중복 동영상 제거하기
Likee는 사용자가 짧은 동영상을 통해 자신을 표현하고 순간을 공유할 수 있는 놀라운 글로벌 플랫폼입니다. 그러나 매일 수천만 명의 사용자가 동영상을 생성하는 상황에서 Likee는 사용자 경험을 개선하고 고품질 콘텐츠를 추천하는 데 있어 상당한 어려움에 직면해 있습니다. Likee가 극복해야 할 가장 큰 과제 중 하나는 플랫폼에 업로드되는 중복 동영상의 양이 너무 많다는 것입니다.
이 문제를 해결하기 위해 Likee는 중복 동영상을 신속하고 효율적으로 감지하고 제거하는 솔루션이 필요합니다. 이러한 프로세스는 복잡하며 각 동영상의 고유한 특성을 포괄적으로 이해하고 신속하게 비교 및 대조할 수 있는 능력이 필요합니다.
이전에 Likee는 유사도 검색 및 고밀도 벡터 클러스터링을 위한 라이브러리인 Faiss를 사용했습니다. 그러나 Faiss는 방대한 양의 벡터를 관리하는 데 어려움을 겪었고 쿼리 응답이 느리고 쿼리 처리량이 제한적이었습니다. 따라서 Likee 팀은 유사도 검색 및 탐지를 위한 보다 효율적인 솔루션이 시급히 필요했습니다.
솔루션: Milvus로 동영상 유사도 검색 강화하기
Milvus는 임베딩 벡터를 저장, 색인 및 쿼리하기 위해 특별히 제작된 오픈 소스 벡터 데이터베이스로, 초고속 유사도 검색이 특징입니다. Likee의 엔지니어링 팀은 Milvus를 통해 보다 효율적인 중복 제거 시스템을 구축하여 높은 리콜률을 유지하면서 200ms 미만의 검색을 수행할 수 있게 되었습니다. Likee는 또한 Milvus의 확장성을 통해 벡터 쿼리 처리량을 개선하고 작업 효율성을 높일 수 있었습니다.
Likee가 중복 동영상을 식별하는 방법
Likee의 중복 제거 시스템은 새로 업로드되는 모든 동영상을 15~20개의 프레임으로 잘라내어 각각 특징 벡터로 변환합니다. 그런 다음, 기존의 모든 동영상에 해당하는 7억 개 이상의 벡터가 저장된 데이터베이스에서 가장 유사한 상위 'k'개의 벡터를 검색합니다. 그런 다음 시스템은 어떤 테이프가 중복되어 제거가 필요한지 결정합니다.
아래 다이어그램은 Likee의 중복 제거 시스템의 구조를 보여줍니다. 먼저, 새로운 동영상이 데이터 스토리지 시스템인 카프카에 저장되고 카프카 소비자들이 이를 소비합니다. 그런 다음 시스템은 딥러닝 모델을 사용하여 동영상을 임베딩으로 변환하고 유사도 감사자에게 보냅니다. 추가 검색을 위해 로드되기 전에 임베딩은 Milvus에 의해 색인화되고 Ceph에 저장됩니다. 마지막으로, 시스템은 해당 임베딩에 해당하는 동영상 ID를 관계형 데이터베이스인 TiDB 또는 Pika에 저장합니다.
Likee의 중복 제거 시스템 아키텍처](https://assets.zilliz.com/bigo_20230525_035947_149d0c0e81.png)
Milvus가 Likee의 유사도 검색 기능을 강화하는 방법
아래 다이어그램은 유사도 검색 절차에 관련된 단계를 보여줍니다.
- 동영상 유사도 검색을 수행하기 위해 Milvus는 먼저 일괄 검색을 수행하여 새 동영상에서 추출한 각 특징 벡터와 유사한 상위 100개의 벡터를 불러옵니다. 각 유사 벡터는 해당 비디오 ID와 연결됩니다.
- 다음으로, Milvus는 비디오 ID를 비교하고 나머지 비디오의 특징 벡터를 TiDB 또는 Pika에서 검색하여 중복 비디오를 제거합니다.
- 마지막으로 Milvus는 검색된 특징 벡터와 쿼리 동영상의 특징 벡터 간의 유사도를 계산하고 점수를 매깁니다. 그 결과 가장 높은 점수를 받은 동영상 ID가 반환됩니다.
밀버스가 Likee의 유사도 검색을 돕는 방법](https://assets.zilliz.com/Bigo_graphics_2_30d7ca1fc6.png)
결과: 빠른 검색 응답으로 쿼리 처리량 향상
고성능 벡터 검색 엔진인 Milvus는 Likee의 동영상 중복 제거 시스템에서 중요한 역할을 수행하여 사용자 경험을 크게 개선하고 BIGO의 짧은 동영상 비즈니스 성장에 기여했습니다. Likee는 Milvus를 사용하여 200밀리초 이내에 검색을 완료할 수 있어 높은 회상률을 보장합니다. 또한 Milvus는 수평적 확장이 가능하기 때문에 Likee는 성능 저하 없이 시스템의 효율성을 향상시키면서 벡터 쿼리 처리량을 크게 늘릴 수 있습니다.
비고는 동영상 중복 제거 외에도 감정 분석, 객체 인식, 개인화된 동영상 추천 등 더 많은 동영상 관련 목적에 Milvus를 사용할 계획을 가지고 있습니다. BIGO와 Milvus는 이러한 분야와 그 이상으로 협력을 확대할 수 있게 되어 기대가 큽니다.
We plan to expand the use of Milvus in different fields like content moderation and restriction and customized video services. BIGO and Milvus working together will benefit both businesses and I look forward to Milvus and its community to keep growing and prosper.
Xinyang Guo