Kapa.ai Image Indexing for RAG

在攝取時進行圖像索引優於查詢時的多模態 RAG

Kapa.ai 已確定,在索引階段對圖像進行一次性描述——而不是在每次查詢時將原始圖像傳遞給視覺模型——是將視覺數據整合到 RAG 流程中最具擴展性且最具成本效益的方式。與僅限文本的系統相比,這種方法將每次查詢的開銷降低了 1% 到 6%,同時在統計學上提高了回答品質 (p < 0.05)。

技術文檔中圖像的角色

技術文檔中的圖像通常分為兩類,兩者都為終端用戶提供關鍵價值:

  • 說明性圖像: 這些圖像用於澄清現有文本(例如,顯示設定圖示位置的螢幕截圖)。它們使指令更容易執行。
  • 承載數據的圖像: 這些圖像包含文本中未發現的獨特數據(例如,佈線圖、規格表或顏色可用性矩陣)。在這些情況下,圖像就是答案的主要來源。

當圖像上下文可用時,LLM 評審員在多個模型和客戶專案中一致地更偏好產生的答案,因為這允許用戶進行自助服務,而不是提交支援工單。

為何查詢時的多模態處理無法規模化

將檢索到的圖像直接傳遞給具備視覺能力的模型(例如 GPT 5.1 或 Claude 4.6 Sonnet)會造成三個主要的結構性瓶頸:

  1. 高昂的經濟成本: 原始圖像會顯著增加每次查詢的成本。在 Kapa.ai 的測試中,圖像在 GPT 上增加了 27% 的成本,在 Claude 上增加了 51%,這主要是由於高昂的 Token 化成本(GPT 每張圖像約為 716 個 tokens,Claude 約為 975 個 tokens)。
  2. 負載限制: 高密度的文檔通常在每次查詢時檢索到 20-30 張圖像。由於 Claude 的負載限制為 30 MB,OpenAI 的負載限制為 50 MB,系統很快就會達到上限,迫使進行激進的圖像限制,從而移除有用的上下文。
  3. 檢索效率低下: CLIP 風格的多模態嵌入(embeddings)通常無法捕捉技術圖表和表格所需的細粒度細節。此外,簡短的技術查詢通常缺乏足夠的訊號來有效地與圖像向量進行匹配。

「一次性描述」架構

為了解决這些問題,Kapa.ai 實施了一種在攝取時將圖像轉換為文本的工作流程:

  • 索引階段: 視覺語言模型 (VLM) 為每張圖像生成詳細的說明文字或轉錄內容。對於承載數據的圖表,VLM 會轉錄實際的數值和標籤。
  • 儲存: 這些說明文字作為獨立的文本塊(chunks)儲存在知識庫中。
  • 查詢階段: 檢索器將說明文字視為普通文本。如果說明文字具有相關性,模型會使用文本描述來回答查詢,並引用原始圖像的 URL。

這種架構確保了計算成本高昂的「觀察」圖像的過程僅發生一次,將視覺數據轉化為可檢索、有根據的文本。

生產環境實施策略

圖像過濾與分類

為了避免為「垃圾」圖像(標誌、橫幅、頭像)生成說明文字的成本,Kapa.ai 使用兩步過濾法:

  1. 啟發式方法: 根據不支援的格式、過小的尺寸或極端的長寬比來捨棄圖像。
  2. 零樣本分類 (Zero-Shot Classification): 基於多模態嵌入的分類器會移除剩餘的雜訊。雖然這在判斷明確的圖像上達到了 96.8% 的準確度,但模糊的圖像(例如,可能是橫幅或教學步驟的螢幕截圖)會被保留,以避免丟失潛在資訊。

優化說明文字品質

說明文字的有效性更多地取決於上下文,而非模型大小。Kapa.ai 發現,為 VLM 提供圖像前後緊鄰的段落,可以顯顯著提高說明文字的精確度與實用性。此外,較小的模型(例如 GPT 5.4 mini)產生的說明文字與昂貴得多的模型幾乎無異,使其成為大規模索引的效率之選。

儲存:獨立塊 vs. 行內文本

將說明文字作為獨立塊儲存,優於在文檔內直接替換 alt-text:

  • 行內儲存: 會使包含圖像的每個文本塊變得臃腫,無論圖像是否相關,都會增加每次查詢的成本。
  • 獨立儲存: 只有當檢索器認為說明文字相關時,說明文字才會進入 LLM 上下文。這在基於 GPT 的專案中,將每次查詢的成本從 19% (行內) 降低到了 6% (獨立儲存)。

性能結果

在三個使用 GPT 5.1 和 Claude 4.6 Sonnet 的客戶專案中進行測試,結果如下:

指標 僅限文本基準線 使用圖像說明文字
答案中引用的圖像數量 0% 10% 到 64%
回答品質 (LLM 評審員) 基準線 顯著提升 (p < 0.05)
每次查詢成本 基準線 +1% 到 6%
延遲 (TTFT) 次秒級增加 次秒級增加
模型不確定性 基準線 未改變或略微降低
索引成本 不適用 一次性成本

社群觀點

業界從業者指出,這種方法反映了傳統媒體攝取中使用的「積極處理 (eager processing)」概念(例如,預先生成縮圖)。然而,有些人在於 LLM 的非確定性本來性質:

"New models will reveal new information about your data... A new model might pick that up while an old one doesn't. These context adjustments might sometimes require you to rerun your LLM processing."

其他開發者也證實,手動版本的此過程——為個人知識庫中的重要圖像生成文本描述——在 Agent 的結果中也產生了類似的改進。

Sources