고급 비디오 검색: 의미론적 검색을 위한 Twelve Labs와 Milvus 활용
2024년 8월, 샌프란시스코에서 열린 Unstructured Data Meetup에서 Twelve Labs의 개발자 경험 책임자인 James Le는 의미론적 검색을 위한 고급 비디오 검색에 대해 통찰력 있는 발표를 했습니다. 아직 Twelve Labs에 대해 들어보지 못했다면, 기대하셔도 좋습니다. Twelve Labs는 기계가 인간처럼 직관적으로 비디오를 이해하도록 돕는 최첨단 멀티모달 모델을 개발합니다. 이들은 인간과 같은 정밀도로 비디오 콘텐츠를 검색, 생성, 분류할 수 있는 API와 함께 비디오 임베딩을 생성하는 최첨단 파운데이션 모델을 만들었습니다.
발표에서 James는 비디오 이해의 핵심 개념과 이들의 파운데이션 모델 및 API의 전체 워크플로를 설명합니다. 또한 James는 비디오 이해 모델을 Zilliz의 Milvus와 같은 효율적인 벡터 데이터베이스와 통합하여 의미론적 검색을 위한 흥미로운 애플리케이션을 만드는 방법에 대해서도 이야기합니다. AI가 비디오 콘텐츠를 어떻게 혁신할 수 있는지에 관심이 있다면, 이 밋업은 정말 기억에 남을 만한 시간이었습니다.
그럼, James의 ‘Advanced Video Search - Leveraging Twelve Labs and Milvus for Semantic Retrieval’ 발표를 살펴보겠습니다: YouTube에서 발표 보기.
8월 South Bay Unstructured Data Meetup에서 발표하는 James Le
비디오 이해란 무엇인가요?
비디오는 현실 세계에 대한 강력한 정보의 원천입니다. 정적인 장면만 포착하는 이미지와 달리, 비디오는 변화하는 행동, 행위 또는 사건과 같은 시간적 정보를 포착합니다. 인간처럼, 기계도 컴퓨터 비전과 딥러닝 기법을 사용하여 비디오를 분석, 해석하고 의미 있는 정보를 추출하도록 학습될 수 있습니다.
비디오 이해의 발전
비디오는 19세기 후반에 처음 발명되었으며, 당시에는 해석을 위한 기술이 없었습니다. 이후 1996년에 최초의 음성-텍스트 변환 기술이 상용화되어 트랜스크립트가 생성되었습니다. 하지만 그 트랜스크립트는 읽기 매우 불편했고 시각 정보와도 단절되어 있었습니다. 또한 1997년에 최초의 CNN 기반 이미지 인식 모델인 LeNet-5가 출시되어 ‘person,’ ‘dog,’ ‘clothing,’ 등 비디오 프레임 내 객체를 이해하기 위한 태그를 생성했습니다. 이러한 태그는 비디오의 맥락을 이해하는 데 도움이 되지 않았고 불일치를 만들어내곤 했습니다. 이후 2012년부터 비디오 이해는 합성곱 신경망(CNN)으로 혁신되었으며, 이를 통해 모델은 행동 인식과 같은 고급 작업을 수행할 수 있게 되었습니다.
비디오 이해의 과거, 현재, 미래
과거의 비디오 이해는 Histogram of Gradients (HOG)와 같은 수작업 특징 또는 단순한 컴퓨터 비전 기법을 사용해 색상, 질감, 움직임과 같은 저수준 특징을 추출하는 등 저수준 비디오 지각 작업을 해결하는 데 집중되어 있었습니다. 가장 초기의 비디오 지각 작업에는 Video Object Detection, Video Object Tracking, Video Instance Segmentation, Action Recognition이 포함되었습니다.
앞서 언급한 작업들은 범위가 좁은 경우가 많았고, 잘못 라벨링된 객체나 누락된 태그와 같은 비효율을 수반했습니다. 현재 비디오 이해는 Video Classification, Video Retrieval, Video Question Answering, Video Captioning과 같은 더 광범위한 작업을 처리하도록 발전했습니다. CNN, 순환 신경망(RNN), 그리고 최근에는 Transformers와 같은 기법 덕분에 모델은 공간적 및 시간적 패턴을 효율적으로 처리할 수 있게 되었습니다. 행동 인식은 비디오 분류로 발전했으며, 여기서 모델은 단일 행동을 인식하는 대신 전체 시퀀스를 분류합니다. 마찬가지로, 비디오 검색 시스템은 이제 질의를 기반으로 관련 비디오를 색인화하고 검색할 수 있습니다. 동시에, 질의응답 모델은 비디오 관련 질문에 응답할 수 있으며, 비디오 캡셔닝은 장면에 대한 텍스트 설명을 생성할 수 있습니다.
현재 모델들은 특정 작업에 집중하거나, 특정 데이터로 학습되었거나, 단일 모달리티에 기반하고 있습니다. 앞으로는 범용 이해를 제공하는 멀티모달 비디오 파운데이션 모델에 초점이 맞춰질 것입니다. 이러한 모델은 비디오, 오디오, 텍스트 등 여러 소스의 정보를 통합하여 비디오 콘텐츠에 대한 총체적인 이해를 발전시킬 것입니다. 이러한 모델의 핵심 아이디어는 다양한 사용 사례와 산업에 대응하고, 동적인 작업을 처리하며, 모든 모달리티에 대한 통합된 이해를 제공하여 실시간으로 작동하는 복잡한 애플리케이션을 가능하게 한다는 것입니다.
Twelve Labs의 Video Foundation Models
비디오 Foundation Models는 비디오를 종합적으로 이해하도록 설계된 대규모 사전 학습 모델입니다. 언어 모델(예: GPT)이 다양한 텍스트 기반 애플리케이션의 기반 역할을 하는 것처럼, 방대한 양의 멀티모달 데이터(비디오, 오디오, 텍스트)로 학습된 비디오 파운데이션 모델은 멀티모달 임베딩을 생성할 수 있으며, 이는 다양한 다운스트림 작업을 처리하고 여러 산업 전반에서 비디오 중심 애플리케이션을 만드는 데 추가로 사용될 수 있습니다.
강연에서 James Lee는 실제 애플리케이션을 만드는 데 있어 비디오 파운데이션 모델의 역할과 그것이 최종 사용자에게 어떻게 유익한지 매우 명확하게 설명합니다.
임베딩 생성: 먼저, 파운데이션 모델은 입력 데이터에 대한 멀티모달 임베딩을 생성합니다. 이러한 임베딩은 비디오의 모든 대화 및 시각적 의미 정보를 저장하는 수치적 표현입니다.
다운스트림 작업: 생성된 임베딩은 검색 및 분류, 생성, 임베드와 같은 다운스트림 작업을 위한 API를 만드는 데 추가로 사용될 수 있습니다.
비디오 중심 애플리케이션: 임베딩 기반 게이트웨이 API는 법 집행, 이러닝, 스포츠, 크리에이터 경제와 같은 다양한 산업 전반에서 비디오 중심 애플리케이션을 생성하는 데 추가로 사용될 수 있습니다.
최종 사용자: 위 단계들은 개인 사용자와 기업의 수요에 유익한 지능형 비디오 이해 파이프라인을 만들 것입니다.
전체 스택을 이해했으니, 이제 비디오 파운데이션 모델의 기술적 세부 사항을 더 깊이 살펴보겠습니다.
비디오 임베딩이란 무엇인가요?
비디오 임베딩은 본질적으로 수치 벡터 형태의 저차원 벡터 공간에서 비디오를 표현한 것입니다. 이러한 임베딩은 비디오의 시각적 특징과 의미를 포착하여 파운데이션 모델이 비디오의 콘텐츠를 이해할 수 있게 합니다. 전통적으로 벡터 임베딩은 이미지, 텍스트 또는 오디오와 같은 단일 모달리티에만 속했으며, 각각 독립적으로 처리되었습니다. 그러나 멀티미디어 콘텐츠의 증가와 트랜스포머 아키텍처의 인기에 힘입어, 공유 잠재 공간에서 시각적, 텍스트적, 청각적 정보를 포착할 수 있는 임베딩을 개발하는 방향으로 변화가 있었습니다.
비디오 임베딩의 마법
최첨단 비디오 파운데이션 모델 - Marengo 2.6
James Lee는 Twelve Labs에서 개발한 최신 최첨단 비디오 파운데이션 모델인 Marengo 2.6을 소개합니다. 이 모델은 ‘any-to-any’ 검색 작업을 수행할 수 있으며, 이는 Text-To-Video, Text-To-Image, Text-To-Audio, Audio-To-Video, Image-To-Video 등 다양한 입력 형식을 사용하여 비디오 데이터를 쿼리할 수 있음을 의미합니다. 이 모델은 비디오 검색 효율성을 크게 향상시키고 서로 다른 모달리티 간의 강력한 상호작용을 가능하게 하므로 비디오 이해 영역에서 혁신적입니다.
블로그 ‘Marengo 2.6 소개’에서 언급했듯이, 이 아키텍처의 기본 개념은 전문화된 인코더를 통해 멀티모달 입력을 처리한 뒤 이를 포괄적인 멀티모달 표현으로 결합할 수 있게 해주는 ‘Gated Modality Experts’에 관한 것입니다. 이 아키텍처에는 세 가지 주요 모듈이 있습니다
Visual Expert - 비디오 내의 외관, 움직임, 시간적 변화를 포착하기 위해 시각 정보를 처리합니다.
Audio Expert - 비디오와 관련된 언어적 및 비언어적 오디오 신호를 모두 포착하기 위해 청각 정보를 처리합니다.
Gated Fusion Module - 비디오에 대한 각 expert의 기여도를 평가하고, any-to-any 검색을 위한 통합된 멀티모달 표현으로 병합합니다.
또한 Marengo 2.6은 파인튜닝에 뛰어나 사용자가 특정 콘텐츠 요구사항이나 도메인에 맞게 모델을 맞춤화할 수 있습니다. 이 모델의 인프라는 방대한 비디오 데이터셋 처리를 지원하여, 대규모 비디오 라이브러리를 보유한 조직에 적응할 수 있습니다. 이 모델은 원활한 API 통합을 통해 향상된 검색, 분류, 콘텐츠 관리와 같은 다운스트림 작업에 추가로 활용될 수 있습니다.
Twelve Labs API를 활용한 다운스트림 작업
Video Search API
Roger Federer가 상대를 강타하며 득점하는 그랜드 슬램 테니스 토너먼트 비디오의 정확한 장면을, 이러한 시각적 내용을 자연어로 설명하기만 하면 찾을 수 있다고 상상해 보세요. 믿기지 않을 정도로 좋아 보이죠? 이것을 비디오 검색이라고 합니다.
아래 그림에서 볼 수 있듯이, 비디오 검색은 먼저 비디오 foundation model이 비디오의 임베딩을 생성하는 방식으로 작동합니다. 다음으로, 검색 API는 자연어 쿼리에서 입력을 받으며, 이 입력 또한 임베딩으로 변환됩니다. 마지막으로, 쿼리 임베딩은 비디오 임베딩과 비교하여 검색되고, 타이밍이 포함된 비디오 장면을 제공합니다.
Twelve Labs Search API
반면 전통적인 비디오 검색은 주로 키워드 매칭에 의존해 비디오를 인덱싱하고 검색했기 때문에 접근 방식과 실행 면에서 심각한 한계가 있었습니다. 그러나 멀티모달 AI 비디오 이해를 사용하면 모든 모달리티 간의 복잡한 관계를 동시에 포착하고 비디오에 대해 보다 인간과 유사한 해석을 제공할 수 있습니다.
Video Classify API
AI 기반 비디오 이해는 비디오를 사전 정의된 클래스로 자동 분류할 수 있게 해줍니다. 제로샷 접근 방식을 사용하면 클래스를 미리 정의하지 않고도 즉석에서 클래스를 얻는 것도 가능합니다. Twelve Labs의 Classify API를 사용하면 콘텐츠의 의미론적 특징, 객체, 행동 및 기타 요소를 분석하여 비디오를 스포츠, 뉴스, 엔터테인먼트 또는 다큐멘터리로 구성할 수 있습니다.
Twelve Labs Classify API
Video Embed API
Twelve Labs Embed API
Twelve Labs는 개발자를 위해 비공개 베타로 Embed API도 출시했습니다. Search 및 Classify API는 엔드투엔드였지만, 이 API는 자체 메타데이터를 추가하거나 추가적인 수학 연산을 수행하는 방식으로 임베딩 계층에서 실험하고 싶은 사람을 위한 것입니다.
이 API는 비디오 수준 및 클립 수준에서 멀티모달 임베딩을 생성하며, 이는 이상 탐지, 다양성 정렬, 감정 분석, 추천, Retrieval Augmented Generation (RAG) 시스템 구축 등을 포함하되 이에 국한되지 않는 다양한 사용자 지정 다운스트림 작업에 사용할 수 있습니다.
Twelve Labs Meets Milvus
Twelve Labs Meets Milvus
2024년 8월, Twelve Labs와 Milvus (Zilliz의 vector database)는 강력한 비디오 검색 애플리케이션을 만들기 위해 협력했습니다. Milvus는 벡터 임베딩을 관리, 쿼리 및 검색하기 위한 확장 가능하고 효율적인 벡터 데이터베이스입니다. 이는 고성능 AI 애플리케이션을 만들도록 특별히 설계되었습니다. Twelve Labs의 고급 멀티모달 임베딩의 힘을 활용하고 이를 Milvus와 통합함으로써, 개발자는 검색 엔진, 추천 시스템, 콘텐츠 기반 비디오 검색과 같은 애플리케이션을 만들어 비디오 콘텐츠 분석의 새로운 가능성을 열 수 있습니다.
Twelve Labs와 Milvus를 사용한 시맨틱 검색
시맨틱 검색을 수행하기 위해 첫 번째 단계는 임베딩을 생성하는 데 필요한 벡터 데이터베이스 및 API의 SDK와 라이브러리를 선택하고 설정하는 것입니다. 다음으로, Twelve Labs의 Embed API의 도움으로 비디오의 멀티모달 임베딩이 클립 수준 또는 비디오 수준을 기반으로 생성됩니다. 클립 수준의 경우, 비디오를 분할할 클립의 길이를 정의할 수 있습니다. 예를 들어 전체 비디오가 18초이고 클립 길이를 6초로 선택하면 3개의 클립 수준 임베딩을 얻게 됩니다. 그런 다음 임베딩이 벡터 데이터베이스에 삽입되고, 마지막으로 유사도 검색을 수행할 수 있습니다. 사용자가 쿼리(비디오 또는 텍스트)를 제출하면 동일한 임베딩 모델을 사용하여 이 또한 벡터로 변환됩니다. 그런 다음 시스템은 이 쿼리 벡터를 데이터베이스에 저장된 벡터와 비교하여 의미적으로 가장 유사한 결과를 검색합니다.
개발자 리소스
계속 읽기

Migrating Self-Managed Milvus to Zilliz Cloud for >99% Latency Reduction
Step-by-step guide to migrating 50M vectors from self-managed Milvus to Zilliz Cloud using milvus-backup. Achieve >99% query latency reduction with zero data loss.

A Developer's Guide to Exploring Milvus 2.6 Features on Zilliz Cloud
Milvus 2.6 marks a shift from “vector search + glue code” to a more advanced retrieval engine, and it is now Generally Available (GA) on Zilliz Cloud (a managed Milvus service).

Cosmos World Foundation Model Platform for Physical AI
NVIDIA's Cosmos platform enables safe, digital twin training of GenAI models for physical applications, overcoming data scarcity and safety challenges.


