Computer Vision / Video Analytics

NVIDIA AI Blueprint로 비디오 검색 및 요약 에이전트 구축하기

Reading Time: 6 minutes

이 게시물은 2024년 7월 29일에 처음 게시되었으나, 이후 NVIDIA AI Blueprint 정보를 바탕으로 수정되었습니다.

기존 비디오 분석 애플리케이션과 개발 워크플로우는 특정 객체만 감지하고 식별하도록 설계된 고정된 기능의 제한된 모델을 주로 사용했습니다.

이제 생성형 AI, NVIDIA NIM 마이크로서비스, 파운데이션 모델을 활용하면 더 적은 모델로 다양한 객체를 인식하고 풍부한 컨텍스트를 이해하는 애플리케이션을 구축할 수 있습니다.

특히 새로운 생성형 AI 모델인 비전 언어 모델(VLM)은 자연어 프롬프트를 이해하고 시각적 질문에 답할 수 있는 시각 AI 에이전트를 강화합니다. VLM, LLM, 최신 그래프-RAG 기술을 결합하면 긴 형식의 동영상도 이해할 수 있는 강력한 시각 AI 에이전트를 만들 수 있습니다.

이러한 시각적 AI 에이전트는 공장, 창고, 소매점, 공항, 교차로 등에 배포될 예정이며, 운영팀은 자연스러운 상호 작용을 통해 생성된 풍부한 인사이트로 더 나은 의사 결정을 내릴 수 있습니다.

이 포스팅에서는 NVIDIA AI Blueprint를 사용해 비디오 검색 및 요약 작업을 처리하며, 긴 형식의 비디오를 이해하는 AI 에이전트를 손쉽게 구축하는 방법을 소개합니다. 이 새로운 AI Blueprint는 현재 얼리 액세스 신청이 가능합니다.

비디오 검색 및 요약용 NVIDIA AI Blueprint 출시

동영상 1. 비전 언어 모델을 사용하여 시각 AI 에이전트 구축하기

NVIDIA AI Blueprint는 NVIDIA NIM을 기반으로 하며, 생성형 AI의 다양한 사용 사례를 위한 참조 워크플로우입니다. NVIDIA NIM은 업계 표준 API, 도메인별 코드, 최적화된 추론 엔진, 엔터프라이즈급 런타임을 포함한 마이크로서비스 세트로, 라이브 및 아카이브된 이미지와 비디오에서 자연어로 유용한 인사이트를 추출할 수 있는 시각적 AI 에이전트를 구축하는 데 필요한 다양한 VLM을 제공합니다.

새로운 동영상 검색 및 요약용 AI Blueprint는 VLM, LLM, 최신 RAG 기술을 사용해 긴 형식의 동영상을 효율적으로 이해하는 방법을 제시하여, 시각적 AI 에이전트 개발을 빠르게 돕습니다.

에이전트와 상호작용할 수 있도록 동영상 요약, 동영상 기반 대화형 Q&A, 특정 이벤트 탐지를 위한 실시간 스트림 맞춤 알림 등의 기능을 제공하는 REST API 세트를 준비되어 있습니다. 이 REST API는 에이전트를 자체 애플리케이션에 통합할 때 활용할 수 있으며, 빠른 테스트를 위해 참조 UI에서도 사용할 수 있습니다.

Blueprint에 사용된 모델은 모델 프리뷰 API와 다운로드 가능한 NIM 마이크로서비스의 NVIDIA API 카탈로그에서 가져올 수 있습니다. 예를 들어, NVIDIA에서 제공하는 llama-3_1-70b-instruct NIM 마이크로서비스는 NVIDIA NeMo 가드레일, CA-RAG, Graph-RAG 모듈과 함께 AI Blueprint의 LLM으로 사용됩니다. 이 API 카탈로그에서는 NVIDIA 호스팅 및 로컬 배포 옵션을 포함한 다양한 LLM과 VLM을 선택할 수 있습니다.

동영상 검색 및 요약용 시각적 AI 에이전트

긴 형식의 동영상을 이해할 수 있는 시각적 AI 에이전트를 구축하려면 데이터스토어와 함께 VLM과 LLM을 조합해야 합니다. 이 Blueprint는 이러한 모든 구성 요소를 결합하여 라이브 스트리밍 비디오에서 요약, Q&A, 이벤트 감지 등 여러 작업을 수행할 수 있는 확장 가능하고 GPU 가속화된 비디오 인식 에이전트를 구현하는 방법을 제공합니다.

Blueprint의 주요 구성 요소는 다음과 같습니다:

  • 스트림 핸들러(Stream handler): NeMo 가드레일, CA-RAG, VLM 파이프라인, 청킹, Milvus 벡터 DB 등 다양한 구성 요소와의 동기화 및 상호작용을 관리합니다.
  • NeMo 가드레일(NeMo Guardrails): 유효하지 않은 사용자 프롬프트를 필터링합니다. REST API를 통해 LLM NIM 마이크로서비스와 연결됩니다.
  • VLM 파이프라인: 스트림 핸들러에서 생성된 비디오 청크를 디코딩해 NVIDIA TensorRT 기반 비주얼 인코더 모델로 임베딩을 생성하고, VLM을 사용해 사용자 쿼리에 따른 청크별 응답을 제공합니다. NVIDIA DeepStream SDK를 기반으로 합니다.
  • VectorDB: 청크별 중간 VLM 응답을 저장합니다.
  • CA-RAG 모듈: 청크별 VLM 응답에서 유용한 정보를 추출해 통합된 요약을 생성합니다. CA-RAG는 LLM NIM 마이크로서비스의 REST API를 사용합니다.
  • 그래프-RAG 모듈(Graph-RAG module): 비디오에 포함된 복잡한 관계를 그래프 데이터베이스의 노드와 에지로 캡처하여 대화형 Q&A를 위한 LLM 쿼리로 활용합니다.
그림 1. 요약 비전 AI 에이전트의 하이레벨 아키텍처

이 Blueprint는 비디오 수집과 검색 파이프라인, 긴 형식의 비디오와 라이브 스트림에서 요약, Q&A, 알림을 제공하는 포괄적인 방법을 제시합니다.

동영상 수집

동영상을 요약하거나 Q&A를 수행하려면 모든 중요한 정보를 포착하는 종합적인 동영상 색인을 구축해야 합니다. 이를 위해 VLM과 LLM을 결합하여 정보가 많은 자막과 메타데이터를 생성하여 비디오의 지식 그래프를 구축합니다. 이 비디오 수집 파이프라인은 GPU 가속을 통해 처리 시간을 단축하기 위해 더 많은 GPU로 확장할 수 있습니다.

VLM 파이프라인과 CA-RAG

오늘날 대부분의 VLM은 8/10/100과 같이 제한된 수의 프레임만 허용합니다. 또한 긴 동영상에 대한 자막을 정확하게 생성할 수 없습니다. 1시간 길이의 동영상과 같이 긴 동영상의 경우 샘플링된 프레임 간격이 10초 또는 그 이상일 수 있습니다. 이로 인해 일부 세부 사항을 놓치거나 동작을 인식하지 못할 수 있습니다.

이 문제에 대한 해결책은 긴 동영상에서 작은 청크를 만들고, VLM을 사용하여 청크를 개별적으로 분석하여 정보성이 높은 자막을 생성한 다음, 결과를 요약 및 집계하여 전체 파일에 대한 단일 요약을 생성하는 것입니다. 수집 프로세스의 이 부분이 바로 VLM 파이프라인과 CA-RAG 모듈입니다.

이러한 청킹 및 캡션(자막) 전략은 생방송에도 적용할 수 있습니다. Blueprint에는 RTSP 서버에서 스트리밍 데이터를 수신하는 스트리밍 파이프라인이 포함되어 있습니다. NVIDIA AI Blueprint는 사용자가 구성한 청크 길이에 따라 비디오 청크 세그먼트를 지속적으로 생성합니다. 그런 다음 VLM 파이프라인이 이러한 청크에 대한 자막을 생성합니다.
NVIDIA AI Blueprint는 VLM 파이프라인에서 자막을 계속 수집합니다. 사용자가 구성한 요약 기간에 따라 충분한 청크가 처리되면 수집된 청크는 요약 및 집계를 위해 CA-RAG로 전송됩니다.Blueprint는 다음 청크를 계속 처리합니다. 요약은 HTTP 서버에서 전송된 이벤트를 사용하여 클라이언트로 스트리밍됩니다.

지식 그래프 및 Graph-RAG 모듈

VLM에서 생성된 복잡한 정보를 캡처하기 위해 비디오 수집 중에 지식 그래프가 구축되고 저장됩니다. LLM을 사용하여 노드, 에지 및 관련 속성 집합에서 정보성이 높은 자막을 변환합니다. 이 지식 그래프는 그래프 데이터베이스에 저장됩니다. LLM은 그래프-RAG 기술을 사용하여 이 정보에 액세스하여 요약, Q&A 및 알림을 위한 핵심 인사이트를 추출하고 VLM이 자체적으로 수행할 수 있는 기능을 뛰어넘을 수 있습니다.

그림 3. 짧은 창고 동영상에서 생성된 지식 그래프

비디오 검색

비디오가 수집되고나면 CA-RAG 및 Graph-RAG 모듈의 데이터베이스에는 비디오에서 발생한 객체, 이벤트 및 설명에 대한 방대한 양의 정보가 저장됩니다. 이 정보는 요약, Q&A, 알림 등 여러 작업을 위해 LLM에서 쿼리하고 사용할 수 있습니다.

이러한 각 작업에 대해 Blueprint는 애플리케이션과 통합하기 위해 호출할 수 있는 간단한 REST API를 노출합니다. 참조 UI도 제공되므로 Blueprint의 기능을 빠르게 실험하고 여러 구성 옵션으로 에이전트를 조정할 수 있습니다.

요약

API를 통해 비디오 파일이 에이전트에 업로드되면 summarize 엔드포인트를 호출하여 비디오의 요약을 가져옵니다. Blueprint는 구성 가능한 많은 매개 변수를 제공하면서 모든 무거운 작업을 처리합니다.

summarize 요청을 제출할 때 출력을 조정하는 데 사용되는 프롬프트가 있습니다. 이 프롬프트는 최종 요약을 생성하기 위해 VLM 정보가 많은 자막과 LLM 기반 캡션 집계를 제어합니다.

  • 프롬프트(VLM): 정보가 많은 자막을 생성하기 위해 VLM에 제공되는 프롬프트입니다. 이 프롬프트는 VLM이 어떤 유형의 객체, 이벤트 및 동작에 주의를 기울여야 하는지 정확히 알려주도록 조정할 수 있습니다.
  • 캡션 요약(LLM): VLM 캡션을 결합하는 데 사용되는 LLM 프롬프트입니다. 이 프롬프트는 캡션을 얼마나 세분화할지, 포함할 세부 정보 수준을 제어하는 데 사용할 수 있습니다.
  • 요약 집계(LLM): 집계된 캡션을 기반으로 최종 요약 출력을 생성합니다. 이 프롬프트는 출력 형식, 요약의 길이, 출력에 포함해야 하는 주요 정보 목록을 지정하도록 조정해야 합니다.

프롬프트 구성 외에도 동영상을 청크하는 전략도 사용 사례에 따라 조정하는 것이 중요합니다. 요약이 동영상 파일 또는 생방송을 통해 제공되는지 여부에 따라 몇 가지 다른 옵션이 있습니다.

동영상 파일

  • chunk_duration: 전체 비디오를 chunk_duration 길이 세그먼트로 나누고, 이 청크에서 N(VLM에 따라 다름) 프레임을 샘플링하여 추론을 위해 VLM으로 전송합니다. 청크 지속 시간은 N 프레임이 이벤트를 캡처할 수 있을 만큼 충분히 짧아야 합니다.
  • chunk_overlap: 청크 교차점에서 이벤트가 발생하면 샘플링된 프레임이 전체 이벤트를 캡처하지 못하고 모델이 이를 감지하지 못할 수 있습니다. NVIDIA AI Blueprint는 청크 간 겹침 기간인 chunk_overlap을 슬라이딩 윈도우 방식으로 사용하여 이 문제를 완화합니다. (기본값: 0). 스트림 청크지속시간: 동영상 파일과 마찬가지로 실시간 스트림은 추론을 위해 chunk_duration의 세그먼트로 나뉘어 VLM으로 전송됩니다. chunk_overlap은 N 프레임이 이벤트를 캡처할 수 있을 정도로 짧아야 합니다.

스트림

chunk_duration: 동영상 파일과 마찬가지로 라이브 스트림은 추론을 위해 chunk_duration 세그먼트로 나뉘어 VLM으로 전송됩니다. 청크 지속 시간은 N 프레임이 이벤트를 캡처할 수 있을 만큼 충분히 짧아야 합니다.

summary_duration: 사용자가 요약을 원하는 길이입니다. 이를 통해 사용자는 요약이 생성되어야 하는 스트림의 길이를 제어할 수 있습니다. 예를 들어, chunk_duration이 1분이고 요약 기간이 30분인 경우, 스트림은 VLM 추론을 위해 1분 단위의 청크로 나뉩니다. 30개의 청크가 합쳐져 30분 분량의 간결한 요약이 사용자에게 제공됩니다.

이는 가이드라인일 뿐이며 실제 매개변수는 특정 사용 사례에 맞게 조정해야 합니다.이는 정확성과 성능 사이의 절충안입니다. 청크 크기가 작을수록 설명이 더 정확하지만 처리하는 데 시간이 더 오래 걸립니다.

Q&A

비디오 수집 중에 구축된 지식 그래프를 LLM이 쿼리하여 비디오에 자연어 인터페이스를 제공할 수 있습니다. 이를 통해 사용자는 입력된 비디오에 대해 개방형 질문을 하고 챗봇을 경험할 수 있습니다. 참조 UI에서 이 기능은 동영상이 수집된 후에 사용할 수 있습니다.

Q&A를 구동하는 데 사용되는 LLM은 구성이 가능하며 배포 후 Blueprint 설정을 통해 조정할 수 있습니다. 로컬 배포에 가장 적합한 모델을 선택하거나 클라우드에 배포된 LLM을 가리키도록 제어할 수 있습니다.

지식에서 필요한 정보를 검색하기 위해 LLM에 제공되는 프롬프트는 조정 가능하며 응답의 정확성을 향상시키기 위해 조정할 수 있습니다.

알림

동영상 파일 외에도 동영상 라이브 스트림을 입력으로 받을 수 있습니다. 라이브 스트리밍 사용 사례의 경우, 특정 이벤트가 거의 실시간으로 발생하는 시점을 파악하는 것이 중요한 경우가 많습니다. 이를 위해 Blueprint에서는 라이브 스트림을 등록하고 알림 규칙을 설정하여 스트림을 모니터링할 수 있습니다. 이러한 알림 규칙은 자연어로 되어 있으며 사용자 지정 이벤트가 발생할 때 알림을 발동시키는 데 사용됩니다.

예를 들어, 숲에 설치된 카메라에 동물이 시야에 들어오거나 화재가 발생하면 이를 감지하도록 알림 규칙을 설정할 수 있습니다. 스트림이 등록되고 알림 규칙이 설정되면 에이전트가 스트림을 모니터링합니다. 경보 규칙 중 하나라도 해당되는 것이 감지되면 API를 통해 수신할 수 있는 알림을 발동합니다.

동영상 2. 비디오 검색 및 요약용 시각적 AI 에이전트 구축하기

시작하기

비디오 검색 및 요약용 NVIDIA AI Blueprint를 사용하여 강력한 VLM 기반 AI 에이전트를 구축하세요. REST API를 사용하면 기존 고객 애플리케이션에서 이 워크플로우와 VLM을 쉽게 통합할 수 있습니다. 지금 AI Blueprint에 대한 얼리 액세스를 신청하고 기술적인 질문이 있으면 Visual AI 에이전트 포럼을 참조하세요.

관련 리소스

Discuss (0)

Tags