跳到主要內容

VideoRAG:單張 RTX 3090 跑 100 小時影片問答,KDD 2026 長影片 RAG 系統

HKUDS/VideoRAG on GitHub

100 小時的影片,24GB 的 VRAM,單張 RTX 3090。VideoRAG 不是靠無限堆算力解決長影片理解問題——它靠的是架構上的取捨。

這是香港大學 HKUDS 數據科學實驗室發表於 KDD 2026 的研究,2.9k stars,核心問題是:如何對幾十、幾百小時的影片做自然語言問答,而不讓記憶體需求隨長度線性爆炸。


為什麼長影片理解很難

影片不是文字。每秒 25 帧、每帧帶有視覺語義、聲音帶有情緒與指涉、字幕帶有語意連接——這三個通道在任意時間點都相互依賴。

傳統 RAG 做的是把文字切塊、向量化、檢索。影片問題的難處在於:

  • 一個問題的答案可能跨越兩個不同場景,中間隔了三十分鐘
  • 視覺線索(白板上的圖、人物的動作)和口頭說明是分開的
  • 長影片沒有「段落」邊界,時間切塊會丟失跨片段的語義關係

VideoRAG 的解法是兩個平行通道,各自解決不同層次的語義捕獲問題。


雙通道架構

Loading diagram...

Channel 1:多模態知識圖譜索引

系統從影片中抽取實體(人物、物件、地點、概念)和它們的關係,建立一個圖結構。這個圖把視覺語義、語音語義、字幕語義三個來源的實體連結在一起。檢索時不只是向量距離——還走圖路徑,可以推斷跨場景的語義關聯。

Channel 2:分層時空語境編碼

三個粒度並行編碼:帧級(每帧的視覺特徵)、場景片段(連貫動作或對話的片段)、語義摘要(整段影片的高層語意)。問題進來時,系統在三個層次同時檢索,再融合答案。


效能數字

Video-MME 長影片準確率(%)

Video-MME 長影片 track 上,VideoRAG 達到 60.2% 準確率,高於其他開源系統。這個 benchmark 設計來測試真正需要長程語義理解的問題,不是看短片就能回答的那種。

測試集是 LongerVideos,164 部影片、總時長 134.6 小時,平均每部超過 49 分鐘。這個規模下大部分系統要麼記憶體爆掉,要麼靠大量降采樣犧牲細節。


記憶體設計

單張 RTX 3090(24GB VRAM)能跑 100+ 小時影片的關鍵不是特殊硬體,而是索引設計:

影片在索引階段被拆解、編碼、存入知識圖譜和分層索引,這個過程可以是 CPU 主導的 IO 密集工作。推理階段才用 GPU,但此時只需要載入檢索到的少量語境片段,而不是整部影片的帧特徵。

這是 RAG 架構天然的優點:把「理解整部影片」變成「理解與問題相關的少量片段」,記憶體峰值和影片總長度解耦。


安裝與使用

git clone https://github.com/HKUDS/VideoRAG.git
cd VideoRAG
pip install -r requirements.txt

# 索引一部影片(或一個影片資料夾)
python index.py --video_path ./videos/lecture.mp4 --output_dir ./index_store

# 問答
python query.py \
  --index_dir ./index_store \
  --query "第三章講到的注意力機制和第七章的哪個概念有關聯?"

索引和查詢是分開的兩個步驟。這讓你可以一次索引整個影片庫,之後的查詢都是輕量操作。


技術棧

程式碼組成 Python 57.6%、TypeScript 40.9%——TypeScript 比例這麼高是因為系統附帶一個 Web UI,讓你可以在瀏覽器裡對影片提問、看到檢索到的語境片段和知識圖譜的推斷路徑。

VideoRAG/
├── indexing/        # 影片解析、帧抽取、ASR、知識圖譜構建
├── retrieval/       # 雙通道檢索與融合
├── generation/      # LLM 調用與答案生成
├── web/             # TypeScript Web UI(Next.js)
└── eval/            # LongerVideos benchmark 評測腳本

知識圖譜底層用 Neo4j 或本地輕量替代,向量索引用 FAISS。如果你不想裝 Neo4j,有一個純檔案系統的 fallback 選項。


適用場景

VideoRAG 對下列場景特別實用:

教育影片庫:幾百小時的課程錄影,讓學生用自然語言問「某個概念在哪一課出現過」、「這個公式是在哪裡推導的」。

企業內訓影片:HR 把幾十場 onboarding 錄影建成索引,新人問問題直接找到對應片段。

研究影片資料:田野調查、訪談錄影、實驗過程的影片記錄,支援跨影片的主題查詢。

長影片媒體存檔:新聞、紀錄片、會議錄影,需要快速定位特定內容。


和現有方法的差異

大多數影片問答系統的做法是:抽帧 + 描述 + 向量檢索。這在短影片(1–5 分鐘)上夠用,超過 30 分鐘就開始出問題——帧採樣率降低導致細節丟失、跨場景的語義關聯完全沒有被捕獲。

VideoRAG 不同的地方有兩個:

  1. 圖結構補充了向量的局限:向量相似度只能找「語義接近的」,知識圖譜的路徑推斷可以找「有推理關聯的」。這兩件事對長影片理解都需要。

  2. 分層索引對抗了時間稀疏:長影片問題不一定在某個特定時間點有答案,可能需要整段影片的高層摘要,也可能需要某個精確帧的視覺細節。分層設計讓系統可以在不同粒度回答問題,不用強制選一個。


結語

VideoRAG 解決的問題不是「如何把影片餵進 LLM」,而是「如何讓 RAG 架構理解影片的時間結構和跨模態語義」。60.2% 的 Video-MME 準確率在當前公開結果中處於前段,更重要的是 24GB 記憶體跑 100 小時影片這個硬體門檻——這讓它從論文變成了可以實際部署的工具。

如果你在做任何需要「問長影片問題」的應用,VideoRAG 目前是開源方案裡值得認真評估的第一選項。